Skip to main content
Skip table of contents

Calcul de Facturation


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)


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.