Réduire la complexité de F9 en séparant débits et crédits

This commit is contained in:
rabot
2026-10-21 11:16:34 +02:00
parent 5cdf32fdae
commit 3f98548446
3 changed files with 101 additions and 28 deletions
+35 -28
View File
@@ -259,37 +259,44 @@ long nb_facons_rendre(int somme, int nb_pieces)
}
/* F9 : catégorie d'une transaction (pour les statistiques) */
static int categorie_debit(const Transaction *t)
{
if (t->montant < -20000) {
if (t->jour % 7 >= 5)
return 1;
return 2;
}
if (t->montant < -5000)
return 3;
if (t->client % 10 == 0)
return 4;
return 5;
}
static int categorie_credit(const Transaction *t)
{
if (t->montant > 30000) {
if (t->client % 10 == 0 && t->jour % 7 < 5)
return 6;
return 7;
}
if (t->montant > 10000)
return 8;
if (t->montant > 1000) {
if (t->jour % 30 == 0)
return 9;
return 10;
}
return 11;
}
int categorie(const Transaction *t)
{
if (t->montant < 0) {
if (t->montant < -20000) {
if (t->jour % 7 == 5 || t->jour % 7 == 6)
return 1;
else
return 2;
} else if (t->montant < -5000) {
return 3;
} else {
if (t->client % 10 == 0)
return 4;
return 5;
}
} else if (t->montant == 0) {
if (t->montant < 0)
return categorie_debit(t);
if (t->montant == 0)
return 0;
} else {
if (t->montant > 30000) {
if (t->client % 10 == 0 && t->jour % 7 < 5)
return 6;
return 7;
} else if (t->montant > 10000) {
return 8;
} else if (t->montant > 1000) {
if (t->jour % 30 == 0)
return 9;
return 10;
}
return 11;
}
return categorie_credit(t);
}
/* F10 : ajoute une ligne à la fin du rapport */