[ARCHIVE] Calcul de Facturation
Remplacé par Facturation Client à partir de la V5.01.00
Le calcul de facturation vise à automatiser la création de factures à partir des informations commerciales (commandes commerciales, retours clients) et logistiques (expéditions validées).
Il peut ĂȘtre lancĂ© :
automatiquement lors de la validation des expĂ©ditions si la mĂ©thode de facturation dĂ©finie sur le client rattachĂ© Ă lâĂ©vĂ©nement logistique est « 1 » (Facturation / BL expĂ©diĂ© automatiquement)
manuellement depuis la liste des factures Ă valider
manuellement depuis la liste des sociétés comptables
manuellement Ă partir de la liste des traitements non paramĂ©trĂ©s (traitement FAC-CAL) de lâexplorateur applicatif « Exploitation »
répétitivement en utilisant un traitement paramétré sur le traitement FAC-CAL
Remarque : Il est possible dâajouter une ligne de facture manuelle sur une facture calculĂ©e, lorsque celle-ci nâest pas validĂ©e.
Mécanisme de Calcul
Celui-ci est basĂ© sur une requĂȘte de type REB de sous-type FAC ; câest-Ă -dire qui utilise au moins une des listes liĂ©es aux factures (WfCDFaEn, WfCDFaLi, WfCDFaDe).
Le calcul de facturation doit aller rechercher les informations commerciales (lignes de commandes, quantitĂ©s, prixâŠ) afin de mettre Ă jour les listes standards qui dĂ©criront le contenu des factures et leur mode de gestion.
Listes standards
Une facture est modélisée par :
une entĂȘte qui prĂ©sente les informations gĂ©nĂ©rales de la facture ;
des lignes qui présentent le contenu particulier de la facture ;
un détail pour chaque ligne calculée qui décrit les entités commerciales et logistiques rattachées à la ligne.
WfCDFaEn : EntĂȘte de Facture
Variable | Type Var. | Désignation |
CdeFacRef | C | Référence Facture |
CdeFacTyp | C | Type Facture (FM ou autre) |
CdeFacRegMod | C | Mode RĂšglement |
GesUtilRef | C | Gestionnaire (défaut / 1Úre cde rattachée) |
CdeFacDes | C | Désignation Facture |
CliResRef | C | Réseau Client |
CliGenRef | C | Client associé à BL |
CdeNumCom | C | NumĂ©ro de Commande (Cas oĂč une seule Cde. par BL) |
CdeFacRegMod | C | Mode RĂšglement |
CdeFacCom | C | Commentaire Facture |
CdeFacDev | C | Devise Associée |
CdeFacTvaRef | C | Code TVA de la Facture |
CprCR1Ref | C | Référence du CritÚre Comptable 1 |
CprCR2Ref | C | Référence du CritÚre Comptable 2 |
CprCR3Ref | C | Référence du CritÚre Comptable 3 |
CdeFacPriLigHT | DE | Prix Total Ligne HT |
CdeFacPriLigTax | DE | Montant Taxes Lignes |
CdeFacPriLigTTC | DE | Montant TTC Lignes |
CdeFacPriEnt1 | DE | Montant Supplémentaire HT 1 |
CdeFacPriEnt2 | DE | Montant Supplémentaire HT 2 |
CdeFacPriEnt3 | DE | Montant Supplémentaire HT 3 |
CdeFacPriEnt4 | DE | Montant Supplémentaire HT 4 |
CdeFacPriEnt5 | DE | Montant Supplémentaire HT 5 |
CdeFacPriETT1 | DE | Montant Supplémentaire TTC 1 |
CdeFacPriETT2 | DE | Montant Supplémentaire TTC 2 |
CdeFacPriETT3 | DE | Montant Supplémentaire TTC 3 |
CdeFacPriETT4 | DE | Montant Supplémentaire TTC 4 |
CdeFacPriETT5 | DE | Montant Supplémentaire TTC 5 |
CdeFacPriEntHT | DE | Prix Total Facture HT |
CdeFacPriEntTax | DE | Montant Taxes Facture |
CdeFacPriEntTTC | DE | Montant TTC Facture |
CdeFacPriEntEsc | DE | Montant Escompte |
CdeFacPriEntAco | DE | Montant Acompte |
CdeFacPriRefAco | C | Liste des Factures dâAcompte RattachĂ©es |
CdeFacCalDat | DA | Date de Calcul Facture |
CdeFacEdtDat | DA | Date d'Edition Facture |
CdeFacRegDat | DA | Date de RĂšglement Facture |
CdeFacValSta | L | Indique si Facture Validée ou Non |
CdeFacAutVal | L | Facture Validée Autom. AprÚs Calcul ? |
CdeFacAutEdt | L | Facture Editée Autom. AprÚs Calcul ? |
WfCDFaLi : Ligne de Facture
Variable | Type Var. | Désignation |
CdeFacRef | C | Référence Facture |
CdeFacLig | C | Numéro de Ligne de Facture |
CdeFacLigRef | C | Article Rattaché à Ligne Facture |
CdeFacLigDes | C | Désignation Rattachée à Ligne Facture |
CdeFacLigUnMeQte | C | Unité de Mesure |
CdeFacLigTvaRef | C | Code TVA Associé à Ligne Facture |
CdeFacLigTyp | C | Type de Ligne Cette information peut contenir les valeurs LC (Ligne issue du calcul de facturation) ou LM (Ligne Manuelle). Lors de la crĂ©ation, elle peut ĂȘtre initialisĂ©e avec LM pour indiquer que cette ligne prend le comportement dâune ligne créée par la GFD (câest-Ă -dire quâaucune ligne dâexpĂ©dition ne lui est rattachĂ©e). Si cette information nâest pas renseignĂ©e dans la requĂȘte REB de calcul de facturation, elle prend la valeur LC. |
CptFamRef | C | Famille Comptable |
CptSFaRef | C | Sous-Famille Comptable |
CptCr1Ref | C | CritĂšre 1 Comptable |
CptCr2Ref | C | CritĂšre 2 Comptable |
CptCr3Ref | C | CritĂšre 3 Comptable |
CdeFacLigNbrBL | DE | Nombre de Lignes de BL Rattachées |
CdeFacLigQte | DE | Quantité Associée à Ligne Facture |
CdeFacPriLigTar | DE | Prix Unitaire Tarif Ligne HT |
CdeFacPriLigUn | DE | Prix Unitaire Ligne HT |
CdeFacPriLigHT | DE | Prix Total Ligne HT |
CdeFacPriLigTax | DE | Montant Taxes Ligne |
CdeFacPriLig1 | DE | Montant Supplémentaire HT 1 |
CdeFacPriLig2 | DE | Montant Supplémentaire HT 2 |
CdeFacPriLig3 | DE | Montant Supplémentaire HT 3 |
CdeFacPriLig4 | DE | Montant Supplémentaire HT 4 |
CdeFacPriLig5 | DE | Montant Supplémentaire HT 5 |
CdeFacPriETT1 | DE | Montant Supplémentaire TTC 1 |
CdeFacPriETT2 | DE | Montant Supplémentaire TTC 2 |
CdeFacPriETT3 | DE | Montant Supplémentaire TTC 3 |
CdeFacPriETT4 | DE | Montant Supplémentaire TTC 4 |
CdeFacPriETT5 | DE | Montant Supplémentaire TTC 5 |
CdeFacPriLigTTC | DE | Prix Total Ligne TTC |
WfCDFaDe : Détail Ligne de Facture
Variable | Type Var. | Désignation |
CdeFacRef | C | Référence Facture |
CdeFacLig | C | Numéro de Ligne de Facture |
CdeExpBLRef | C | Référence BL |
CdeExpRef | C | Référence Expédition pour une expédition ou « C » pour une ligne de commande non intégrable ou « R » pour une ligne de retour client. |
CdeNumCom | C | Numéro de Commande (CDPrLi) ou *A (additif) pour une expédition ou numéro de commande commerciale pour une ligne de commande non intégrable ou numéro de retour client |
CdeNumLig | C | Numéro de Ligne de Commande (CDPrLi) ou référence additif pour une expédition ou numéro de ligne de commande commerciale pour une ligne de commande non intégrable ou numéro de ligne de retour client |
CdeFacQteExp | DE | Quantité Rattachée à Ligne de Facture ; soit la quantité expédiée pour une expédition, soit la quantité commandée pour une ligne de commande non intégrable, soit la quantité retournée pour un retour client. |
RĂšgles Diverses
Contexte dâexĂ©cution de la requĂȘte
La variable « SCR.TypeDeCalcul » contient lâorigine de lancement du calcul :
NOR ou vide ou non défini : génération classique par traitement FAC-CAL (pas de contexte particulier)
LIS-BL : facturation automatique depuis la validation des Ă©vĂ©nements dâexpĂ©ditions (les variables « SCR.CliResRef » et « SCR.CliGenRef » contiennent les informations relatives Ă lâĂ©vĂ©nement dâexpĂ©dition Ă facturer et la variable « SCR.FacLisBL » contient la liste des BLs Ă facturer pour ce client)
SEL-DIALOG : SĂ©lection des lignes dâexpĂ©ditions via DIALOG en utilisant la fonction ENR-ACT-ENT (la liste standard WfCDFaDe est prĂ©-initialisĂ©e avec les BLs expĂ©diĂ©s sĂ©lectionnĂ©s par DIALOG)
SEL-INTER : SĂ©lection interactive depuis la liste des lignes dâexpĂ©ditions non facturĂ©es (la liste standard WfCDFaDe est prĂ©-initialisĂ©e avec les BLs expĂ©diĂ©s sĂ©lectionnĂ©s
Suppression de Facture
Il est possible d'indiquer, dans la requĂȘte, la rĂ©fĂ©rence des factures que l'on souhaite supprimer avant la gĂ©nĂ©ration des nouvelles factures.
Pour cela, pour chaque facture à supprimer, créer WfCDFaEn tel que :
WfCDFaEn.CdeFacTyp = « FS »
WfCDFaEn.CdeFacRef = RĂ©fĂ©rence_Facture_A_Supprimer (doit ĂȘtre une facture non validĂ©e)
Lors du traitement des listes standards gĂ©nĂ©rĂ©es par la requĂȘte, pour chaque dĂ©tail de ligne de facture (WfCDFaDe), si une facture non validĂ©e existe dĂ©jĂ pour celui-ci, cette facture est supprimĂ©e.
Escompte
Dans la requĂȘte de calcul de facturation, si lâescompte est gĂ©rĂ© sur le HT, il faut calculer le montant de TVA total de la facture en tenant compte de lâescompte :
TVA = Total TVA Lignes + ((Plus-ValuesHT â Escompte) * Taux de TVA)
Acompte
Dans la requĂȘte de calcul de facturation, il est possible de renseigner, pour les factures de produits, la liste des factures dâacompte (WfCDFaEn.CdeFacPriRefAco) et le montant dâacompte (WfCDFaEn.CdeFacPriEntAco). En sortie de la requĂȘte on vĂ©rifie que les factures dâacompte existent et sont de type correct (paramĂštre gĂ©nĂ©ral FAC-ACO-SEL) et si le montant dâacompte (WfCDFaEn.CdeFacPriEntAco) nâest pas renseignĂ©, il est initialisĂ© avec le cumul des montants TTC des factures dâacompte.
Type « Facture Manuelle »
Une facture manuelle gĂ©nĂ©rĂ©e par macro langage (WfCDFaEn.CdeFacTyp = « FM ») ne peut avoir de dĂ©tail dâĂ©vĂ©nement dâexpĂ©dition rattachĂ© (WfCDFaDe).
Lignes de Commandes non Intégrables
Il est possible de créer des détails de lignes de facture pour des lignes de commande commerciales non intégrables (portant sur un article ayant comme définition commerciale « 5 : article NON géré »). Pour cela, WfCDFaDe.CdeExpRef doit contenir « C », WfCDFaDe.CdeNumCom doit contenir le numéro de la commande commerciale et WfCDFaDe.CdeNumLig doit contenir le numéro de la ligne de commande commerciale.
Simulation de Facturation
Diapason permet de forcer le fait quâune ligne de gestion expĂ©diĂ©e nâest pas a prendre en compte dans le calcul de facturation, et quâelle ne doit plus lâĂȘtre. Exemple ne pas vouloir facturĂ©e une ligne de gestion dont le montant est a zĂ©ro ou de pas vouloir crĂ©er de facture pour des commandes de type SAVâŠ
Dans la requĂȘte de calcul de facturation, il faut, pour chaque ligne dâexpĂ©dition non facturable, crĂ©er un enregistrement dans la liste standard WfCDFaDe tel que :
WfCDFaDe.CdeFacRef = « *NF »
Contenant les informations de la ligne dâexpĂ©dition, Ă savoir :
WfCDFaDe.CdeExpRef : Evt_Expédition
WfCDFaDe.CdeNumCom : Besoin_de_Gestion
WfCDFaDe.CdeNumLig : Ligne_Besoin_de_Gestion
En sortie de requĂȘte de calcul de facturation, les enregistrements de WfCDFaDe tels que WfCDFaDe.CdeFacRef = « *NF » sont traitĂ©s avant la crĂ©ation des factures.
Pour chaque ligne non facturable trouvée :
le statut de facturation est forcé à « VRAI » ;
la quantité facturée est forcée avec la quantité expédiée ;
les quantités et montants facturés sont mis à jour sur la commande commerciale ;
les montants facturés sont mis à jour pour le client ;
un enregistrement est conservé dans le détail de facturation pour conservé la trace de ce traitement.
Dans les listes prĂ©sentant le dĂ©tail de facturation pour une ligne dâexpĂ©dition, la valeur â*NFâ dans le numĂ©ro de facture indique que la facturation a Ă©tĂ© forcĂ©e sur cette ligne et la colonne prĂ©sentant le numĂ©ro de BL donne la date Ă laquelle a Ă©tĂ© fait ce traitement.
Retour Client
Dans la requĂȘte de calcul de facturation, il est possible de crĂ©er des dĂ©tails de lignes de factures pour des lignes de retours clients. Pour cela, WfCDFaDe.CdeExpRef doit contenir « R », WfCDFaDe.CdeNumCom doit contenir le numĂ©ro du retour client et WfCDFaDe.CdeNumLig doit contenir le numĂ©ro de la ligne du retour client.
Remarque : Toutes les lignes dâun retour client doivent ĂȘtre facturĂ©es dans une mĂȘme facture.
Exemple de requĂȘte REB/FAC
Calcul de facture pour toutes les expĂ©ditions validĂ©es et non facturĂ©es (la mĂ©thode de facturation des clients doit ĂȘtre « MĂ©thode de Facturation = 2 : Facturation / Calcul de Facturation »).
VLO.NombreFactureCalculees = CLO.0
VLO.CoeffTaxe = CLO.19,6
POUR CHAQUE/SOC DTD CDExLi AVEC DTD CDExLi.CdeExpValSta = Yes ET DTD CDExLi.CdeExpFacSta = NO :
RECH TBD/SOC DTD CDExBL AVEC DTD CDExBL.CdeExpBLRef = DTD CDExLi.CdeExpBLRef :
RECH TBD/SOC DTD CDClient AVEC DTD CDClient.CliResRef = DTD CDExBL.CliResRef
ET DTD CDClient.CliGenRef = DTD CDExBL.CliGenRef :
RECH TBD/SOC DTD CDPrLi AVEC DTD CDPrLi.CdeNumCom = DTD CDExLi.CdeNumCom
ET DTD CDPrLi.CdeNumLig = DTD CDExLi.CdeNumLig :
VLO.NumFac = CLO.""
RECH PREM LST WfCDFaEn AVEC WfCDFaEn.CliResRef = DTD CDExBL.CliResRef
ET WfCDFaEn.CliGenRef = DTD CDExBL.CliGenRef :
VLO.NumFac = WfCDFaEn.CdeFacRef
FIN_BLOC
SI VLO.NumFac = CLO.""
VLO.NombreFactureCalculees = VLO.NombreFactureCalculees + CLO.1
VLO.NumFac = CHAINE( VLO.NombreFactureCalculees , E0/10 )
VLO.DateReg = DATEJOUR( )
VLO.DateReg = CAL-DATE( VLO.DateReg , CLO.30 , + )
CREATION Liste WfCDFaEn :
PRENDRE CdeFacRef = VLO.NumFac
PRENDRE CdeFacDes = CLO."Facture Client"
PRENDRE CliResRef = DTD CDExBL.CliResRef
PRENDRE CliGenRef = DTD CDExBL.CliGenRef
PRENDRE CdeFacCalDat = DATEJOUR( )
PRENDRE CdeFacRegDat = VLO.DateReg
PRENDRE CdeFacDev = DTD CDClient.CliDevPrix
FIN_BLOC
FIN_BLOC
VLO.NumeroLigne = CLO.1
POUR CHAQUE LST WfCDFaLi AVEC WfCDFaLi.CdeFacRef = VLO.NumFac :
VLO.NumeroLigne = VLO.NumeroLigne + CLO.1
FIN_BLOC
CREATION Liste WfCDFaLi :
PRENDRE CdeFacRef = VLO.NumFac
PRENDRE CdeFacLig = CHAINE( VLO.NumeroLigne , E0/3 )
PRENDRE CdeFacLigRef = DTD CDPrLi.CdeLigRefArt
PRENDRE CdeFacLigDes = DTD CDPrLi.CdeLigDesArt
PRENDRE CdeFacLigUnMeQte = DTD CDExLi.CdeExpUnMeQteExp
PRENDRE CdeFacLigNbrBL = CLO.1
PRENDRE CdeFacLigQte = DTD CDExLi.CdeExpQteExp
PRENDRE CdeFacPriLigTar = DTD CDPrLi.CdeLigPrPublic
PRENDRE CdeFacPriLigUn = DTD CDPrLi.CdeLigPrix
PRENDRE CdeFacPriLigHT = DTD CDPrLi.CdeLigPrix * DTD CDExLi.CdeExpQteExp
PRENDRE CdeFacPriLigTax = WfCDFaLi.CdeFacPriLigHT * VLO.CoeffTaxe / CLO.100
PRENDRE WfCDFaLi CdeFacPriLigTTC = WfCDFaLi.CdeFacPriLigHT + WfCDFaLi.CdeFacPriLigTax
FIN_BLOC
CREATION Liste WfCDFaDe :
PRENDRE CdeFacRef = VLO.NumFac
PRENDRE CdeFacLig = CHAINE( VLO.NumeroLigne , E0/3 )
PRENDRE CdeExpRef = DTD CDExLi.CdeExpRef
PRENDRE CdeNumCom = DTD CDExLi.CdeNumCom
PRENDRE CdeNumLig = DTD CDExLi.CdeNumLig
PRENDRE CdeExpBLRef = DTD CDExLi.CdeExpBLRef
PRENDRE CdeFacQteExp = DTD CDExLi.CdeExpQteExp
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
POUR CHAQUE LST WfCDFaEn :
VLO.MontantTTC = CLO.0
POUR CHAQUE LST WfCDFaLi AVEC WfCDFaLi.CdeFacRef = WfCDFaEn.CdeFacRef :
VLO.MontantTTC = VLO.MontantTTC + WfCDFaLi.CdeFacPriLigTTC
FIN_BLOC
PRENDRE WfCDFaEn CdeFacPriEntTTC = VLO.MontantTTC
FIN_BLOC
Lancement
Par Calcul de Facturation
Cette fonction peut-ĂȘtre lancĂ©e par lâaction dĂ©diĂ©e « Calcul Facturation » disponible Ă partir :
de la branche applicative « Factures à Valider »
du menu local lancé sur une « Société Comptable »
du « traitement non paramétré » de type FAC-CAL, dans le module « Exploitation ».
dâun job basĂ© sur un « traitement paramĂ©trĂ© » de type FAC-CAL, dans le module « Exploitation ». Ce job pourrait ĂȘtre lancĂ© pĂ©riodiquement.
Sur des EvĂ©nements dâExpĂ©ditions ValidĂ©s
Depuis la liste des lignes dâexpĂ©dition validĂ©es non facturĂ©es sur les explorateurs applicatifs « Logistique » et « Facturation Client »


Deux actions permettent de générer des factures :
Calcul Facturation
Lancement, aprĂšs un message de confirmation, du calcul de facture pour la sĂ©lection rĂ©alisĂ©e (ou pour la ligne courante si aucune sĂ©lection nâa Ă©tĂ© faite).
Calcul Facturation (Qté Partielle)
Lancement, aprĂšs saisie des quantitĂ©s Ă facturer dans un tableur, du calcul de facture pour la sĂ©lection rĂ©alisĂ©e (ou pour la ligne courante si aucune sĂ©lection nâa Ă©tĂ© faite)
(Voir documentation Logistique : Détail Evénements)
Validation dâEvĂ©nements dâExpĂ©dition
Le calcul de facturation par requĂȘte REB/FAC peut ĂȘtre lancĂ© automatiquement lors de la validation dâun Ă©vĂ©nement dâexpĂ©dition.
Cette fonction est activée si la « Méthode de facturation » (SCL.CliFacMet) renseignée sur le client est « 1 » (Facturation / BL Expédié Automatiquement).
Calcul de Facturation par ENR-ACT-ENT
Calcul
Il est possible dâutiliser la fonction DIALOG « ENR-ACT-ENT » pour lancer un calcul de facture pour une liste de lignes dâexpĂ©dition, pour une liste de lignes de retours clients ou pour une liste de lignes de commandes commerciales non intĂ©grĂ©es.
Lancement
Si le calcul de facturation est basĂ© sur une requĂȘte utilisant la fonction ENR-ACT-ENT pour gĂ©nĂ©rer les factures, le lancement du calcul peut-ĂȘtre effectuĂ© Ă partir de diffĂ©rents outils DIAPASON susceptibles dâutiliser ces requĂȘtes :
en sortie de tableur dynamique (via RCT) ;
au lancement dâun document (via REB)âŠ
(Voir documentation DIALOG : Calcul Facturation Client par ENR-ACT-ENT)