Déjà, il me semblerai plus logique sous la forme 2022/001
Ainsi on cherche le dernier numéro de l'année en cours,
si on trouve on incrémente
si non on crée cette facture avec 2023/001
et voilà.Cliquez pour agrandir...
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
Réinitialiser N°Facture chaque nouvelle année
Discussion dans 'Windev' créé par Mohbrun, Mar 15, 2022.
Relis ma réponse.
Exemple :
Si tu cherches la dernière facture de 2022 et que tu la trouves, tu incrémentes.
Si tu cherches la dernière facture de 2023 et que tu ne la trouves pas tu initialises à 001
A condition que ton numéro de facture soit sous la forme AAAA/N°
Bonjour, j'ai une autre idée je ne sais pas si c'est la bonne...
1 - Tu crées un fichier chrono par exemple avec deux rubriques (clechrono <chaine>, valchrono <numérique>).
2 - Tu crées une procédure globale LireChrono comme celui-ci
FONCTION LireChrono(Param1)
nValRetour est un entier
HOuvre(Chrono)
HLitRecherche(Chrono,CleChrono,Complete(Param1,8))
SI PAS HTrouve(Chrono) ALORS
Chrono.CleChrono = Param1
Chrono.NumChrono = 2
HAjoute(Chrono)
nValRetour = 1
SINON
nValRetour = Chrono.NumChrono
Chrono.NumChrono = Chrono.NumChrono + 1
HModifie(Chrono)
FIN
HFerme(Chrono)
RENVOYER(nValRetour)
3 - Un exemple d'appel de la fonction :
sNumFacture est une chaine = NumériqueVersChaîne(LireChrono("FACTURE"+AnnéeEnCours()),"04d")+"/"+AnnéeEnCours()
Cela devrait fonctionner aussi.
Bon dev !
Bonjour, j'ai une autre idée je ne sais pas si c'est la bonne...
1 - Tu crées un fichier chrono par exemple avec deux rubriques (clechrono <chaine>, valchrono <numérique>).
2 - Tu crées une procédure globale LireChrono comme celui-ci
FONCTION LireChrono(Param1)
nValRetour est un entier
HOuvre(Chrono)
HLitRecherche(Chrono,CleChrono,Complete(Param1,8))
SI PAS HTrouve(Chrono) ALORS
Chrono.CleChrono = Param1
Chrono.NumChrono = 2
HAjoute(Chrono)
nValRetour = 1
SINON
nValRetour = Chrono.NumChrono
Chrono.NumChrono = Chrono.NumChrono + 1
HModifie(Chrono)
FIN
HFerme(Chrono)
RENVOYER(nValRetour)
3 - Un exemple d'appel de la fonction :
sNumFacture est une chaine = NumériqueVersChaîne(LireChrono("FACTURE"+AnnéeEnCours()),"04d")+"/"+AnnéeEnCours()
Cela devrait fonctionner aussi.
Bon dev !Cliquez pour agrandir...