Mise en place de la structure définitive du CRUD et modification de la page principale avec les datas

This commit is contained in:
2025-08-03 16:58:04 +02:00
parent 354c25ac06
commit fd080b2e64
1767 changed files with 147564 additions and 216 deletions

96
wwwroot/js/index.js Normal file
View File

@@ -0,0 +1,96 @@
/**
* Exemple dutilisation :
* Récupère les loyers avec un nombre de lignes défini
* @param {number} rows - Nombre de lignes à récupérer
*/
const Revenue = {
GetXRevenues: "x_revenues",
GetLastRevenues: "last_revenue",
GetAllRevenues: "all_revenues",
GetAdditionalRevenues: "additional_revenues"
};
const Expense = {
GetRightExpenses: "last_expenses"
}
var TotalRevenu = 0, TotalExpense = 0;
function loadRevenues() {
return Promise.all([
new Promise((resolve, reject) => {
apiCall(Controller.Revenue, Revenue.GetXRevenues, { rows: 1 }, data => {
const loyer = document.getElementById('salaire');
const salaire = parseFloat(data[0]?.salary || 0);
if (loyer) loyer.innerText = `${toPriceFormat(salaire)}`;
resolve(salaire);
}, reject);
}),
new Promise((resolve, reject) => {
apiCall(Controller.Revenue, Revenue.GetAdditionalRevenues, {}, data => {
const additionalRevenues = document.getElementById('additionalRevenues');
const totalAR = data.reduce((acc, item) => acc + (parseFloat(item.amount) || 0), 0);
if (additionalRevenues) additionalRevenues.innerText = `${toPriceFormat(totalAR)}`;
resolve(totalAR);
}, reject);
})
]).then(([salary, additional]) => {
TotalRevenu = salary + additional;
});
}
function loadExpenses() {
return new Promise((resolve, reject) => {
apiCall(Controller.Expense, Expense.GetRightExpenses, {}, data => {
const loyer = document.getElementById('loyer');
const trash = document.getElementById('trash');
const electricity = document.getElementById('electricity');
const insurance = document.getElementById('insurance');
const wifi = document.getElementById('wifi');
const groceries = document.getElementById('groceries');
const additionalSourcesExpense = document.getElementById('additionalSourcesExpense');
const additionalExpensesSub = document.getElementById('additionalExpensesSub');
const saving = document.getElementById('saving');
if (loyer) loyer.innerText = `${toPriceFormat(data.rent)}`;
if (trash) trash.innerText = `${toPriceFormat(data.trash)}`;
if (insurance) insurance.innerText = `${toPriceFormat(data.insurance)}`;
if (electricity) electricity.innerText = `${toPriceFormat(data.electricity)}`;
if (wifi) wifi.innerText = `${toPriceFormat(data.wifi)}`;
if (groceries) groceries.innerText = `${toPriceFormat(data.groceries)}`;
if (saving) saving.innerText = `${toPriceFormat(data.saving)}`;
if (additionalSourcesExpense) {
const totalAR = data.additionalSourcesExpense.reduce((acc, item) => acc + (parseFloat(item.amount) || 0), 0);
additionalSourcesExpense.innerText = `${toPriceFormat(totalAR)}`;
}
if (additionalExpensesSub) {
const totalAR = data.additionalSourcesSub.reduce((acc, item) => acc + (parseFloat(item.amount) || 0), 0);
additionalExpensesSub.innerText = `${toPriceFormat(totalAR)}`;
}
TotalExpense = data.total;
resolve();
}, reject);
});
}
// Lance automatiquement lappel au chargement de la page
document.addEventListener('DOMContentLoaded', () => {
const result = document.getElementById('result');
Promise.all([loadExpenses(), loadRevenues()])
.then(() => {
if (result) result.innerText = `${toPriceFormat(TotalRevenu - TotalExpense)}`;
})
.catch(error => {
console.error("❌ Erreur de chargement :", error);
if (result) result.innerText = "Erreur lors du calcul";
});
});