PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → comment programer un generateur de N° de facture automatique
comment programer un generateur de N° de facture automatique
Iniciado por jouaou007, 22,may. 2006 22:41 - 12 respuestas
Publicado el 22,mayo 2006 - 22:41
salut tres cheres ;
je souhaite savoir comment programer un N° de facture automatique sous windev ,
merci d'avance a tous qui prendrons le soin de me repondre
Publicado el 23,mayo 2006 - 10:46
Salut,

Cela dépend de ton format pour le numéro de facture voici le mien qui est basé sur l'année en cours:

//Début de code
lResultat est une Source de Données
ldate est une Date = DateDuJour()

HExécuteRequêteSQL(lResultat,"select max(NumDevis) as MaxNumDevis from Devis")

HLitPremier(lResultat)

SI lResultat.MaxNumDevis = "" ALORS
MoiMême = "DE" + NumériqueVersChaine(Droite(ldate..Année,1))+"00001"
SINON
MoiMême = "DE"
SI Droite(lResultat.MaxNumDevis,1) < NumériqueVersChaine(Droite(ldate..Année,1)) ALORS
MoiMême += NumériqueVersChaine(Droite(ldate..Année,1))+"00001"
SINON
MoiMême += NumériqueVersChaine(Val(Milieu(lResultat.MaxNumDevis,3,6))+1)
FIN
FIN
//Fin de code

Bon dev,

Philippe

jouaou simohamed a écrit :
salut tres cheres ;
je souhaite savoir comment programer un N° de facture automatique sous windev ,
merci d'avance a tous qui prendrons le soin de me repondre
Publicado el 23,mayo 2006 - 10:47
si tu met un identifiant automatique, cela génèrera un numéro automatique ou alors avec un comtpeur tout simplement

Bon Dev

Bootbois
Publicado el 23,mayo 2006 - 10:47
peux tu en dire plus, car c super flou comme question.

pourquoi pas un N° du genre
AAAAMMXXXXXX
ex: 200605123456

comme ca c pas compliqué à l'incrémenter
Publicado el 23,mayo 2006 - 10:49
Voici une procédure permettant de générer des références au format "AAAA/9999":
PROCEDURE DeterminerRefSuivante(NouvelleRef)
DerniereRef est un entier
Zeros est une chaîne
HLitDernier(Facture,RefFacture)
SI HEnDehors(Facture)ALORS
-// Toute première facture
-NouvelleRef=Gauche(DateSys(),4)+"/0001"
SINON
-SI Gauche(Facture.RefFacture,4)<>Gauche(DateSys(),4)ALORS
--// Une nouvelle année est commencée
--NouvelleRef=Gauche(DateSys(),4)+"/0001"
-SINON
--// Incrémentation de la numérotation
--DerniereRef=Val(Droite(Facture.RefFacture,4))
--DerniereRef++
--SELON Taille(NumériqueVersChaîne(DerniereRef))
---CAS 1: Zeros="000"
---CAS 2: Zeros="00"
---CAS 3: Zeros="0"
---CAS 4: Zeros=""
--FIN
--NouvelleRef=Gauche(DateSys(),4)+"/"+Zeros+NumériqueVersChaîne(DerniereRef)
-FIN
FIN
Publicado el 23,mayo 2006 - 10:50
Tu peux mettre un identifiant automatique dans ton fichier ou lire ledernier
enregistrement de ton fichier récupérer le numéro de facture et ajouter 1

--
Meilleures salutations

Brigitte Moinot - Viti's
Publicado el 23,mayo 2006 - 11:14
Dans un message Bootbois disait :

si tu met un identifiant automatique, cela génèrera un numéro automatique
ou alors avec un comtpeur tout simplement

Bon Dev

Bootbois


Pas forcement valide, carcette solution peut crééer des trous de
numérotation ( et le fisc n'aime pas cela...) dûs aux suppressions (
changement d'avis de l'utilisateur) des factures non encores validées.
Ma sol perso : blocage fichier facture , requete du plus grans numero, ++
, ecriture entete avec ce numero, deblocage fichier facture. Sachant que les
factures non encore validées ont un numéro négatif qui lui peut avoir des
trous ( meme procédure moins on cherche le plus petit, -- , etc...


A+
--
Michel HERRSCHER CONSULTANT
Président WINDASSO - Association des utilisateurs WxxDEV(c)
Tel : +33450870912 Fax:+33450871741
http://www.windasso.org
Publicado el 23,mayo 2006 - 11:40
Tu peux utiliser un fichier INI où tu garde en mémoire le numéro de la dernière facture.

Tu récupère ce numéro, que tu acrémente de 1

Tu modifie ton numéro dans le fichier INI.

Logiquement, tu n'auras aucun trou !!!!

Sauf si tu supprime une facture....

A ce moment là tu peux peut être faire une procédure te recherchant ces trous avant de chercher un nouveau numéro !!
Publicado el 23,mayo 2006 - 12:08
"Aurélien MACHAEBRT" <43@gauthiersa.fr> a écrit dans le message de news:
4472bbb9$1@news.pcsoft.fr...


Tu peux utiliser un fichier INI où tu garde en mémoire le numéro de la
dernière facture.

Tu récupère ce numéro, que tu acrémente de 1

Tu modifie ton numéro dans le fichier INI.

Logiquement, tu n'auras aucun trou !!!!


pour éviter le trous j'autorise la suppression que sur la dernière facture.
Que pensez-vous de cette solution ?
cordialement JCP



Sauf si tu supprime une facture....

A ce moment là tu peux peut être faire une procédure te recherchant ces
trous avant de chercher un nouveau numéro !!



Attention à la chronologie des dates par rapport aux numéros
cordialement JCP
Publicado el 23,mayo 2006 - 12:36
Aurélien MACHAEBRT a écrit :
Tu peux utiliser un fichier INI où tu garde en mémoire le numéro de la dernière facture.

Tu récupère ce numéro, que tu acrémente de 1

Tu modifie ton numéro dans le fichier INI.

Logiquement, tu n'auras aucun trou !!!!

Sauf si tu supprime une facture....

A ce moment là tu peux peut être faire une procédure te recherchant ces trous avant de chercher un nouveau numéro !!



aiee ! Le fisc va adorer. En effet, le fait de recycler un No de facture
effacé est possible, mais dans ce cas, c'est l'ordre chronologique qui
est rompu.
Ils peuvent t'accuser de "truander" le fisc en supprimant des factures.
Et c'est à toi de prouver que tu ne fraudes pas.
ça s'appelle l'inversion de la preuve.

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de spam.trepp@free.fr
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
Publicado el 23,mayo 2006 - 12:55
Bonjour,
La numérotation des factures a toujours été compliquée. En effet,
certains clients veulent une numérotation pas forcément chronologique,
du style : Année/Mois/N° d'ordre, soit pour ce mois ci :
2006/05/0001,
2006/05/0002,
etc...
Pour pallier à ces problèmes,voilà comment je procède.
Dans la table 'Paramètres Généraux', j'indique le prochain N° de facture
que veut le client (2006/05/0003)
dans ma table factures, j'ai un identifiant automatique
je crée ma facture en prenant le prochain N° "client" +1 et j'enregistre
dans les paramètres généraux.
si je valide la facture j'enregistre dans mon fichier factures avec un
identifiant auto (ou séquence en pgsql).
si je n'enregistre pas la facture, j'enregistre le N° "client" en cours
dans une table des N° en attente. Ce N° est recherché en priorité dans
cette table. si la table est vide, on va chercher dans les paramètres
généraux.

En principe, toute facture validée ne peut pas être supprimée. Elle peut
être annulée par un avoir qui porte aussi un N° de facture.

Toute autre manipulation de facture ne peut être que frauduleuse.


--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de spam.trepp@free.fr
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
Publicado el 23,mayo 2006 - 13:19
attention par un fichier ini tu n'assures pas l'unicite et/ou la continuite
si plusieurs postes actifs

--
Michel HERRSCHER CONSULTANT
Président WINDASSO - Association des utilisateurs WxxDEV(c)
Tel : +33450870912 Fax:+33450871741
http://www.windasso.org
"Aurélien MACHAEBRT" <43@gauthiersa.fr> a écrit dans le message de news:
4472bbb9$1@news.pcsoft.fr...


Tu peux utiliser un fichier INI où tu garde en mémoire le numéro de la
dernière facture.

Tu récupère ce numéro, que tu acrémente de 1

Tu modifie ton numéro dans le fichier INI.

Logiquement, tu n'auras aucun trou !!!!

Sauf si tu supprime une facture....

A ce moment là tu peux peut être faire une procédure te recherchant ces
trous avant de chercher un nouveau numéro !!

Publicado el 23,mayo 2006 - 14:38
Je suis du même avis que Michel. De plus, qu'y a t-il de plus simple a modifier qu'un fichier INI???

Aurélien MACHAEBRT a écrit :
Tu peux utiliser un fichier INI où tu garde en mémoire le numéro de la dernière facture.

Tu récupère ce numéro, que tu acrémente de 1

Tu modifie ton numéro dans le fichier INI.

Logiquement, tu n'auras aucun trou !!!!

Sauf si tu supprime une facture....

A ce moment là tu peux peut être faire une procédure te recherchant ces trous avant de chercher un nouveau numéro !!