Calculer un montent dans une période avec condition [Résolu]

Signaler
Messages postés
7
Date d'inscription
jeudi 19 septembre 2019
Statut
Membre
Dernière intervention
12 avril 2021
-
Messages postés
15818
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 avril 2021
-
Bonjour à tous
je suis coincé dans un problème je pense que c'est un peu compliqué, j'essaierai de l'expliquer étape par étape, j'espère que quelqu'un pourra heureusement m'aider avec ça
donc j'ai une table Excel qui est ma base de données, je parviens à la connecter via ADOQUERY dans Delphi et la table est construite comme ceci:
N_client
code_maison
date_paiement
mantent
date_debut
date_fin
nbre_mois_payed
exemple: client-1 a payé le 28/02/2021 le loyer d'une maison pendant 03 mois
et le client-2 a payé le 01/03/2021 le loyer d'une maison pendant 12 mois, il vit déjà dans la maison depuis 05 mois
la table aura information comme vu dans l'image


donc ce que je veux comme résultat dans mon rapport rapide est un tableau simple qui me montre dans un intervalle de date je choisis ces informations:
arriére mantant (avant ma date d'intervalle)
mantant en cours (dans ma date d'intervalle)
mantent anticipé (après ma date d'intervalle)
avec une condition de: seules les lignes avec la colonne date_paiement est dans mon intervalle seront pris en charge
donc dans mon exemple
la date d'intervalle est du 01/03/2021 au 31/03/2021
arriére mantant = 5000
mantant en cours = 1000
mantent anticipé = 6000

mes meilleures salutations à vous tous

5 réponses

Messages postés
15818
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 avril 2021
532
Bon, c'est juste des maths alors.

Ça tombe bien je ne code pas en Delphi.

Donc voilà l'algorithme.

Debut, Paiement et Fin sont des dates.
DureeArriere et DureeAnticipee sont des entiers

DureeArriere = Mois(Paiement) - Moi(Debut)
Si DureeArriere < 0 alors DureeArriere += 12
(si en Delphi, il existe une fonction quit te donne directement le nombre de mois entre 2 dates alors sers t'en)

DureeAnticipee = Mois(Fin) - Mois(Paiement)
Si DureeAnticipee < 0 alors DureeAnticipee += 12

MontantArriere = DureeArriere * 1000
MontantAnticipe = DureeAnticipee * 1000
MontantEnCours = 1000
Messages postés
15818
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 avril 2021
532
Bonjour

Avant de parler de code, il faut comprendre ce que tu cherches à faire.
Peux tu détailler/définir certains termes/expression:
  • mantent
  • arriére mantant
  • mantant en cours
  • mantent anticipé


Messages postés
7
Date d'inscription
jeudi 19 septembre 2019
Statut
Membre
Dernière intervention
12 avril 2021

salut whismeril
le montant c'est le loyer payé par le client
donc pour le client-2 il a payé 12 mois entre le 01/10/2020 et le 30/09/2021 je veux savoir combien d'argent j'ai reçu avant la période du 01/03/2021 au 31/03/2021 dans ce cas c'est 05 mois donc
le montant arriéré est de 05 mois * 1000 (le loyer de 01 mois)
montant en cours est 01 mois donc est le mois en cours mars 2021
le montant anticipé est le loyer de la période du avril au septembre est de 06 mois
Messages postés
15818
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 avril 2021
532
Ok, sauf que montant, c'est ni mantent, ni mantant, attention à la rédaction ça peut être trompeur

Et comment on sait que 1 mois c'est 1000 de loyer, on fais la division du total par le nombre de mois ou c'est toujours 1000?
Messages postés
7
Date d'inscription
jeudi 19 septembre 2019
Statut
Membre
Dernière intervention
12 avril 2021

oui 1 mois c'est toujours 1000 de loyer