Calculer un montent dans une période avec condition

Résolu
zaoui34 Messages postés 9 Date d'inscription jeudi 19 septembre 2019 Statut Membre Dernière intervention 30 janvier 2022 - 14 mars 2021 à 11:00
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 - 14 mars 2021 à 15:13
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

Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 656
14 mars 2021 à 15:13
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
1
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 656
14 mars 2021 à 11:57
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é


0
zaoui34 Messages postés 9 Date d'inscription jeudi 19 septembre 2019 Statut Membre Dernière intervention 30 janvier 2022
14 mars 2021 à 13:30
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
0
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 656
14 mars 2021 à 13:36
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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zaoui34 Messages postés 9 Date d'inscription jeudi 19 septembre 2019 Statut Membre Dernière intervention 30 janvier 2022
14 mars 2021 à 13:46
oui 1 mois c'est toujours 1000 de loyer
0
Rejoignez-nous