Remove cash
This commit is contained in:
@@ -1,116 +0,0 @@
|
||||
import Chart from 'chart.js/auto'
|
||||
import * as elements from "frontend/elementcreate";
|
||||
|
||||
interface Transaction {
|
||||
day: number;
|
||||
month: number;
|
||||
year: number;
|
||||
amount: number;
|
||||
type: number;
|
||||
company: string;
|
||||
}
|
||||
|
||||
var types: Array<string> = [];
|
||||
|
||||
async function submitMedia(event: SubmitEvent) {
|
||||
event.preventDefault();
|
||||
const pass = document.getElementById("pass") as HTMLInputElement | null;
|
||||
const date = document.getElementById("date") as HTMLInputElement | null;
|
||||
if (!pass || !date) return;
|
||||
|
||||
if (pass.value == "") return;
|
||||
|
||||
try {
|
||||
const result = await fetch('/api/cash/list', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ pass: pass.value, date: date.value }),
|
||||
})
|
||||
|
||||
const data: { types: string[]; transactions: Array<Transaction>; } = await result.json();
|
||||
types = data.types;
|
||||
|
||||
renderData(data.transactions);
|
||||
renderChart(data.transactions);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
pass.value = "";
|
||||
};
|
||||
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
document.getElementById("myform")?.addEventListener("submit", submitMedia);
|
||||
});
|
||||
|
||||
function renderChart(transactions: Array<Transaction>) {
|
||||
|
||||
const cash = [];
|
||||
|
||||
for (let index = 0; index < 7; index++) {
|
||||
cash.push(0);
|
||||
}
|
||||
|
||||
for (let index = 0; index < transactions.length; index++) {
|
||||
const element = transactions[index];
|
||||
|
||||
const type = element.type;
|
||||
const amount = element.amount;
|
||||
if (type == -1) continue;
|
||||
cash[type] += amount;
|
||||
}
|
||||
|
||||
var data = {
|
||||
labels: types,
|
||||
datasets: [{
|
||||
label: '',
|
||||
data: cash
|
||||
}]
|
||||
};
|
||||
|
||||
var ctx = document.getElementById('acquisitions') as HTMLCanvasElement | null;
|
||||
if (ctx == null) return;
|
||||
new Chart(
|
||||
ctx,
|
||||
{
|
||||
type: 'pie',
|
||||
data: data,
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
function getTypeName(type: number) {
|
||||
if (type == -1) return "UNKNOWN";
|
||||
return types[type];
|
||||
}
|
||||
|
||||
function renderData(transactions: Array<Transaction>) {
|
||||
var tbody = document.getElementById("tbody");
|
||||
if (tbody == null) return;
|
||||
tbody.innerHTML = "";
|
||||
|
||||
transactions
|
||||
.sort((a, b) => a.day - b.day)
|
||||
.sort((a, b) => a.month - b.month)
|
||||
.sort((a, b) => a.year - b.year);
|
||||
|
||||
for (let index = 0; index < transactions.length; index++) {
|
||||
const element = transactions[index];
|
||||
|
||||
var row =
|
||||
<tr>
|
||||
<th scope="row">{index}</th>
|
||||
<td>{element.day}</td>
|
||||
<td>{element.month}</td>
|
||||
<td>{element.year}</td>
|
||||
<td>{element.amount}</td>
|
||||
<td>{getTypeName(element.type)}</td>
|
||||
<td>{element.company}</td>
|
||||
</tr>
|
||||
|
||||
tbody.appendChild(row);
|
||||
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user