l'année commence le 1er décembre et se termine le 30 novembre? c'est ça?
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
Aide au calcul du nombre de mois
Discussion dans 'Résolution problème & conseils' créé par vicent54, Fev 26, 2018.
Page 1 sur 2
l'année commence le 1er décembre est se termine le 30 novembre? c'est ça?Cliquez pour agrandir...
Quelles sont donc tes variables fixes? Mensualité? Montant du prêt ? Taux ? Nbr mensualité?
Ou tu veux juste savoir le nombre des mois (Nbr mensualité) entre 2 dates préalablement connues?
si ton taux d’intérêt change chaque année alors c'est qu'il change tout les 12 mois, peu importe quand commence l'année ou quand se termine!
sauf si l’intérêt change un jour bien précis, le 1er jour de l'année ou le dernier ... (dans ton cas le 1er décembre ou le 30 novembre) ??
sinon, un exemple pratique illustratif?
Ce n'est pas un prêt, c'est un paiement annuel divisé en 12 versements. Si vous ne payez pas au cours du mois en cours, un taux d'intérêt variable est appliqué à la dette accumulée plus le versement du mois en cours, qui peut être modifié pour chaque mois. 0,5%, 1%, 1,5%... mensuellement lorsque le 1er jour du mois suivant de l'échéance n'est pas annulé. Si cette dette n'est pas payée au cours des mois suivants, les intérêts sont ajoutés mensuellement en fonction de l'intérêt du mois courant.
Le premier versement annuel est jusqu'au 31 décembre, soit le premier mois de versement.
si j'ai bien compris (ce qui n'est pas vraiment évident) les paramètres fixes sont :
- un Montant Annuel de départ (sans taux d’intérêt)
- un montant versement mensuel = Montant Annuel de départ / 12
- Taux de départ = 0
- Nbr de mensualité : ici = 12
- le jour de départ de tout ça : dans notre cas le 01 décembre de l'année N, Date début ??
- le jour de fin de tout ça (espérant le
) date fin ??
les variables:
- le Taux par mois qui s'ajoute en cas de retard?
- le Début de la période en cours? dans ton cas le 1er décembre N
- la fin de la période en cours? dans ton cas le 30 novembre N
Ce qui nous donne :
- une vérification se fait chaque 1er du mois pour savoir si un versement a été fait?
- le cas échéant: un taux d’intérêt est ajouter au montant total restant jusqu’à la fin de la période annuelle en cours? +0.5% a chaque fois?
ce que tu veux c'est d'automatiser la calcule des mensualités en cas de retard (ou pas) ??
j’espère que j'ai bien compris![]()
Le mode de paiement est le suivant:
Il est payable à partir du 1er décembre. Il n' y a pas d'acompte fixe, c'est comme n'importe quel autre mois, le paiement peut être effectué jusqu' à la fin du mois sans intérêt. Le 1er janvier, l'intérêt devrait déjà être calculé si le paiement de décembre n'est pas effectué, et ce, sur une base mensuelle.
Nombre de mensualités: 12. Vous pouvez tout payer en une seule fois, auquel cas aucun intérêt n'est versé et l'année entière est payée. Il n' y a plus de calcul pour cette personne dans l'année.
Vous pourriez avoir un solde de l'année précédente. Dans ce cas, si vous payez des intérêts sur le paiement de décembre sur le solde impayé.
Variables:
Intérêts par mois en cas de retard
le début de la période en cours? le cas échéant, le 1er décembre de l'année N
A la fin de la période en cours? le cas échéant, le 30 novembre N
Je dois y parvenir:
Automatisez le calcul des paiements mensuels et des intérêts.
Un rapport résumant ce qui a été perçu, les soldes, ce qui a été payé au cours du mois.
Il y a un nouveau calcul avec intérêts pour le mois et le total du montant impayé. Quota pour le mois précédent + solde des mois (ou de l'année) précédents
Je veux faire ces rapports, et envoyer par courriel le montant à payer chaque mois.
Je me suis mêlé au calcul des intérêts mensuels variables, des soldes impayés et des calculs mensuels.
J'espère avoir mieux expliqué ce que j'ai à faire et je vous remercie de votre temps et de votre disponibilité.
Salutations
ok c'est beaucoup plus clair
Ce que je peux faire c'est de t'aider dans la partie de la vérification si des versements ont été fait à temps ou pas
dans l'une de mes solutions, gestion de flotte auto, j'ai créé des procédures qui gèrent des paiements automatiques (des mensualité ou autres périodicités...) je penses, qu'avec qlqs modifications, ça devrait t'aider
![]()
dés que j'aurai un peu de temps je les posterai
bon courage![]()
Merci Channibal
Gelop4:
d1, d2 dDiff sont des Date
dDiff est une date ou durée variable?
Dans les deux cas, il marque l'erreur.
Étant la date, l'erreur indique qu'une durée champ ne peut pas être convertie en date.
Est ce que ton projet avance?
Je calcule les mensualités. J'apprécie votre coopération.
voila ce que j'ai fais (vite fait sans trop vérifier)
j'ai créé 3 fichiers :
J’ai écris une procédure qui parcourt le fichier des paiements par dossier et vérifie si il y a des retards ou pas, selon les paramètres enregistrés dans le fichier dossier
- Dossiers
- Paiements
- Retard
en cas de retard une autre procédure calcule le nouveau montant a payer par période selon le taux a appliquer (j'ai pas encore terminé cette procédure donc a y travailler) et rempli le fichier des retard avec toutes les mensualités
voici les procédures :
Code (Text):PROCEDURE VerificationPaiementsDossiers(nIdDos est un entier sur 8 octets = 0)
SI nIdDos = 0 ALORS
POUR TOUT F_Dossier SUR IDF_Dossier
gnIdDossier = F_Dossier.IDF_Dossier
SI F_Dossier.Creation_paiement_Ach = 2 ALORS
VerifiePaiements()
FIN
FIN
SINON
HLitRecherchePremier(F_Dossier,IDF_Dossier,nIdDos)
SI HTrouve(F_Dossier) ALORS
SI F_Dossier.Creation_paiement_Ach = 2 ALORS
gnIdDossier = nIdDos
VerifiePaiements()
FIN
FIN
FINCode (Text):PROCEDURE VerifiePaiements()
dDatepaiement est une Date = DateDuJour()
nPeriode est un entier = F_Dossier.ToutLes_paiement_Ach
nPeriodique est un entier = F_Dossier.Periode_paiement_Ach
dDateDebutPaiement est une Date = F_Dossier.DateDebut_paiement_Ach
dDateFinPaiement est une Date = F_Dossier.DateFin_paiement_Ach
moMontant est un monétaire = F_Dossier.montant_paiement_Ach
nLejour est un entier = F_Dossier.Le_paiement_Ach
nLeMois est un entier = F_Dossier.Num_mois_Ach
nLeSemaine est un entier = F_Dossier.numSemaine_Ach
nNbreJours est un entier = 0
rTaux est un réel = F_Dossier.Taux
nMoisEC est un entier
// Pas de période
SI nPeriode = 0 ALORS
RETOUR
FIN
//Date début pas encore échue
SI dDateDebutPaiement > DateDuJour() ALORS
RETOUR
FIN
//Date fin est dépassée
SI dDateFinPaiement < DateDuJour() ALORS
RETOUR
FIN
nNbreJours = DateDifférence(dDateDebutPaiement,dDateFinPaiement)
i est un entier = 1
SELON nPeriodique
CAS 1
//jour(s)
CAS 2
//semaine(s)
CAS 3
//mois
dDateCalcule est une Date = DateDuJour()
nMoisEC = MoisEnCours()
//Vérification si paiement déjà effectué le mois en cours
HLitRecherchePremier(F_Paiements,id_DossierMois,[gnIdDossier,nMoisEC])
SI HTrouve(F_Paiements) ALORS
RETOUR
SINON
//Recherche de la dernière paiement effectuée
HLitRechercheDernier(F_Paiements,id_DossierTransaction_auto,[gnIdDossier,Vrai])
SI HTrouve(F_Paiements) ALORS
SI F_Paiements.DAte_paiement >= dDateFinPaiement ALORS
RETOUR
FIN
// juste au cas ou :)
SI F_Paiements.DAte_paiement..Mois = dDateCalcule..Mois ALORS
RETOUR
FIN
//Retard : Calcul nbr mois de retard
nNbreJours = DateDifférence(DernierJourDuMois(F_Paiements.DAte_paiement),PremierJourDuMois(dDateCalcule))
SI nNbreJours >= nPeriode * 30 ALORS
dDateCalcule = DernierJourDuMois(F_Paiements.DAte_paiement)
nPeriode2 est un entier = nPeriode * 30
POUR i = 0 A nNbreJours PAS nPeriode2
dDateCalcule..Jour++
SI VerifieJourMois(dDateCalcule) ALORS
// calcule de la nouvelle mensualité et application de taux de retard par mois
// CalculNouvelleMensualite()
AjoutRetard(moMontant,dDateCalcule,rTaux)
FIN
FIN
FIN
SINON
//!! Ajoute retard par rapport a la date de début et date du jour
SI DateDuJour() > dDateFinPaiement ALORS
RETOUR
FIN
SI DateDuJour() < dDateDebutPaiement ALORS
RETOUR
FIN
dDateCalcule = PremierJourDuMois(dDateCalcule)
dDateCalcule..Jour--
nNbreJours = DateDifférence(PremierJourDuMois(dDateDebutPaiement),dDateCalcule)
SI nNbreJours >= nPeriode * 30 ALORS
dDateCalcule = PremierJourDuMois(dDateDebutPaiement)
// nPeriode2 est un entier = nPeriode * 30
POUR i = 1 A nNbreJours
dDateCalcule..Jour++
Trace("ici",dDateCalcule)
SI VerifieJourMois(dDateCalcule) ALORS
// calcule de la nouvelle mensualité et application de taux de retard par mois
// CalculNouvelleMensualite()
AjoutRetard(moMontant,dDateCalcule,rTaux)
//MiseAJourMontants(moMontant)
FIN
FIN
FIN
FIN
FIN
CAS 4
//année(s)
FIN
Le projet (Attention c'est une version HFSQL C/S !!!!!!!)
Dernière MAJ :
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Bon dev![]()
Merci Channibal
Page 1 sur 2