*PRO-CTR : Contrôle de Facturation Fournisseur ( ENR-ACT-ENT )
Le but de cette fonction est de pouvoir effectuer un contrôle de facturation fournisseur en renseignant les provisions, les frais annexes et les écarts constatés par ligne comme dans l’application intéractive de rapprochement de facture fournisseur.
Les actions disponibles sont :
VAL : Validation du contrôle de facturation, seulement si le solde entre le montant HT de la facture et le montant des lignes sélectionnées et corrigées est nul
SAU : Pré-enregistrement du contrôle de facturation, toujours possible
On utilise les listes standards de la fonction qui sont WfEntAct et WfEntVar.
Liste WfEntAct : (T : type de la variable; O : indique si obligatoire (valeur o) ou non)
Nom | T | Désignation | O | Commentaire |
Action | C | Action à exécuter | o | VAL : validation du contrôle de facturation OU SAU : sauvegarde et pré-enregistrement du contrôle de facturation |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntVar |
Liste WfEntVar : (T : type de la variable; O : indique si obligatoire (valeur o) ou non)
Données générales de la facture :
Numéro interne de la facture (obligatoire si le fournisseur et le numéro de facture fournisseur ne sont pas renseignés)
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PRONumFac |
EntVaC | C | Valeur Alphanumérique | o | Numéro interne de la facture |
Fournisseur de la facture (obligatoire si le numéro interne de la facture n’est pas renseigné)
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir AppRefFour |
EntVaC | C | Valeur Alphanumérique | o | Fournisseur de la facture |
Numéro de facture fournisseur (obligatoire si le numéro interne de la facture n’est pas renseigné)
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PRONumFacFour |
EntVaC | C | Valeur Alphanumérique | o | Numéro de facture fournisseur |
Montant maximum de l’écart restant accepté entre le montant des provisions facturées et le montant HT de la facture (facultatif). Si non renseigné, on considère que l’écart accepté est nul.
Si l’action à exécuter (WfEntAct.Action) est « VAL », le rapprochement de facture n’est possible que si l’écart entre le montant de la facture et le total des provisions facturées est inférieur à l’écart accepté
Si l’action à exécuter (WfEntAct.Action) est « SAU », la facture est quand même pré-enregistrée quel que soit l’écart entre le montant de la facture et le total des provisions facturées
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROMaxEcart |
EntVaN | N | Valeur Numérique | o | Montant Maximum de l’écart restant accepté entre le montant de la facture et le total des provisions facturées |
Méthode de répartition de l’écart éventuel restant entre le montant des provisions facturées et le montant HT de la facture (facultatif). Si non renseignée, la répartition « Montant / Ligne » est appliqué.
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROMetRep |
EntVaC | C | Valeur Alphanumérique | o | Méthode de répartition de l’écart restant entre la montant de la facture et le total des provisions facturées. Les valeurs possibles sont : 0 = Montant / Ligne 1 = Quantité / Ligne |
Pour chaque provision de matière facturée :
Référence de la Provision
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir PRO |
EntVar | C | Variable | o | Doit contenir PRONumIdProv |
EntVaC | C | Valeur Alphanumérique | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
Le lien entre la provision et les valeurs des variables qui s’y rapportent est fait par WfEntVar.EntCl1 et WfEntVar.EntCl2 tels que :
WfEntVar.EntCl1 contient PRO
WfEntVar.EntCl2 contient le numéro interne de la provision ou la liste chaînée du numéro de commande, du numéro de BL et du numéro de ligne de commande (même valeur que WfEntVar.EntVaC pour WfEntVar.EntVar = PRONumIdProv).
Remarque : Si aucun élément de WfEntVar n’existe pour cette provision, on considère que le montant de la provision dans DIAPASON correspond au montant facturé.
Pour une provision de matière, la quantité, le prix unitaire et/ou le montant de la provision peuvent être différents entre DIAPASON et la facture fournisseur. Il faut donc renseigner les nouvelles valeurs dans WfEntAct tel que :
Quantité facturée : à renseigner si différente entre la provision et la facture
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROFacQte |
EntVaN | N | Valeur Numérique | o | Nouvelle quantité facturée |
Prix unitaire de la facture : à renseigner si différent entre la provision et la facture
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROFacPrix |
EntVaN | N | Valeur Numérique | o | Nouveau prix unitaire facturé |
Montant de la ligne de facture : à renseigner si différent entre la provision et la facture
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROFacMontant |
EntVaN | N | Valeur Numérique | o | Nouveau montant facturé |
NOTE : Il n’est pas nécessaire de renseigner les deux variables PROFacPrix et PROFacMontant. L’un des deux suffit pour recalculer l’autre.
Si le montant facturé est différent du montant initial de la provision, il est possible de définir des provisions d’écarts :
Provision d’écart sur Quantité : possible si la quantité initiale de la provision et la quantité facturée sont différentes
Gestion provision d’écart sur quantité :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROEcaQtGes |
EntVaL | L | Valeur Logique | o | Doit contenir Vrai pour être pris en compte |
Dans ce cas, une provision d’écart est générée automatiquement avec :
Comme quantité : la différence entre la quantité initiale de la provision et la quantité facturée
Comme prix unitaire : le prix unitaire initial de la provision
Provision d’écart sur Prix : toujours possible
Gestion provision d’écart sur prix :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROEcaPrGes |
EntVaL | L | Valeur Logique | o | Doit contenir Vrai pour être pris en compte |
Provision d’écart de type « Avoir » :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROEcaPrAvo |
EntVaL | L | Valeur Logique | o | Doit contenir Vrai pour être pris en compte |
Quantité nouvelle provision d’écart :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROEcaPrQte |
EntVaN | N | Valeur Numérique | o | Quantité de la provision d’écart |
Prix unitaire nouvelle provision d’écart :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROEcaPrPrix |
EntVaN | N | Valeur Numérique | o | Prix unitaire de la provision d’écart |
Montant nouvelle provision d’écart :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir PRO |
EntCl2 | C | Clé 2 provision | o | Doit contenir : Soit le numéro interne de la provision Soit une liste chaînée contenant le numéro de commande fournisseur, le numéro de BL fournisseur et le numéro de ligne de commande fournisseur séparés par une « , » |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROEcaPrMontant |
EntVaN | N | Valeur Numérique | o | Montant de la provision d’écart |
NOTE : Il n’est pas nécessaire de renseigner les deux variables PROEcaPrPrix et PROEcaPrMontant. L’un des deux suffit pour recalculer l’autre.
Pour chaque frais annexe sélectionné :
Référence du Frais Annexe
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir FRA |
EntVar | C | Variable | o | Doit contenir PRONumFrais |
EntVaC | C | Valeur Alphanumérique | o | Numéro du frais annexe |
Le lien entre le frais annexe et les valeurs des variables qui s’y rapportent est fait par WfEntVar.EntCl1 et WfEntVar.EntCl2 tels que :
WfEntVar.EntCl1 contient FRA
WfEntVar.EntCl2 contient le numéro du frais annexe.
Pour un frais annexe, seul le montant du frais peut être différent entre le frais initial et la facture fournisseur. Si c’est le cas, il faut renseigner le nouveau montant du frais dans WfEntAct tel que :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntCl1 | C | Clé 1 provision | O | Doit contenir FRA |
EntCl2 | C | Clé 2 provision | o | Numéro du frais annexe |
EntTVa | C | Type de Variable | o | Doit contenir INI |
EntVar | C | Variable | o | Doit contenir PROFacMontant |
EntVaN | N | Valeur Numérique | o | Nouveau montant facturé |
Remarque : Si cet élément de WfEntVar n’existe pas, on considère que le montant du frais initial correspond à celui de la facture.
En résultat de la fonction :
WfEntAct est mis à jour tel que WfEntAct.ActRes contient « *ERR » si une erreur est constatée et dans ce cas WfEntAct.ActErr contient le libellé de cette erreur. Si la fonction s’est bien déroulée, WfEntAct.ActRes contient le numéro interne de la facture traitée et WfEntAct.ActErr est vide.
Si la fonction s’est bien déroulée, le montant total des provisions et des frais annexes sélectionnés est renseigné dans WfEntVar tel que :
Nom | T | Désignation | O | Commentaire |
EntTEn | C | Entité | o | Doit contenir *PRO-CTR |
ActCle | C | Clé | o | Clé pour lien avec WfEntAct |
EntTVa | C | Type de Variable | o | Doit contenir RES |
EntVar | C | Variable | o | Doit contenir PROMontant |
EntVaN | N | Valeur Numérique | o | Montant total des provisions et frais annexes sélectionnés |
EntVaC | C | Valeur Alphanumérique | o | Devise dans laquelle est exprimé ce montant |
Exemple : Lecture de fichiers contenant le détail des factures fournisseurs avec les écarts éventuels. Cette requête permet :
de créer la facture si elle n’existe pas
de créer les frais annexes
de pré enregistrer le contrôle de facturation
de valider le contrôle de facturation si l’écart entre le montant HT de la facture et le montant total des provisions et frais annexes sélectionnés est inférieur à un écart maximum accepté.
COMMENTAIRE : "Récupération des Fichiers contenant les Factures à enregistrer dans Diapason. Chaque fichier contient :"
COMMENTAIRE : "- une première ligne contenant les informations générales de la facture"
COMMENTAIRE : "- les lignes suivantes contenant le détail des BLs et des frais facturés"
VLO.LisFic = EXE-CDE-SYS( CDE-SYS= CLO."ls /tmp/facfou/ff*.txt" , SEPARATEUR= CLO."," , REMP-SEPARATEUR=
CLO."#" )
SI VLO.LisFic <> CLO."*CDE-PB"
VLO.NbFic = NB-MOT( SEPARATEUR= CLO."," , CHAINE= VLO.LisFic )
BOUCLE VLO.Boucle DE 1 A VLO.NbFic :
VLO.NomFic = MOT( SEPARATEUR= CLO."," , CHAINE= VLO.LisFic , NUMERO= VLO.Boucle )
COMMENTAIRE : "Lecture du Fichier"
EFFACER Liste WFFicContenu
EFFACER Liste WfEntAct
EFFACER Liste WfEntVar
VLO.Res = FICHIER( NOM-FICHIER= VLO.NomFic , CDE-SYS-OK= CLO."" , CDE-SYS-PB= CLO."" )
SI VLO.Res = CLO.""
COMMENTAIRE : "Récupération Entête de Facture"
RECH PREM LST WFFicContenu AVEC WFFicContenu.NomFichier = VLO.NomFic ET WFFicContenu.ContenuLigne
COMMENCE_PAR CLO."FAC" :
VLO.DevFou = CLO."EUR"
VLO.GesUti = CLO."ISIA"
VLO.Payer = CGL.OUI
VLO.EcaMax = CLO.5
VLO.EcaMaxNeg = CLO.-1 * VLO.EcaMax
VLO.RefFou = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.4 , LONGUEUR= CLO.15 )
VLO.RefFou = SUP-BLANC( CHAINE= VLO.RefFou )
VLO.FacFou = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.19 , LONGUEUR= CLO.10 )
VLO.FacFou = SUP-BLANC( CHAINE= VLO.FacFou )
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.29 , LONGUEUR= CLO.2 )
VLO.Jour = ENTIER( VALEUR= VLO.Val )
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.31 , LONGUEUR= CLO.2 )
VLO.Mois = ENTIER( VALEUR= VLO.Val )
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.33 , LONGUEUR= CLO.2 )
VLO.An = ENTIER( VALEUR= VLO.Val )
VLO.DatFac = DATE( JOUR= VLO.Jour , MOIS= VLO.Mois , ANNEE= VLO.An )
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.35 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.HTNeg = CGL.OUI
FIN_BLOC
SINON
VLO.HTNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.36 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.HTFac = DECIMAL( VALEUR= VLO.Val )
SI VLO.HTNeg VRAI
VLO.HTFac = CLO.-1 * VLO.HTFac
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.47 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.TTCNeg = CGL.OUI
FIN_BLOC
SINON
VLO.TTCNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.48 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.TTCFac = DECIMAL( VALEUR= VLO.Val )
SI VLO.TTCNeg VRAI
VLO.TTCFac = CLO.-1 * VLO.TTCFac
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.59 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.TVANeg = CGL.OUI
FIN_BLOC
SINON
VLO.TVANeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.60 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.TVAFac = DECIMAL( VALEUR= VLO.Val )
SI VLO.TVANeg VRAI
VLO.TVAFac = CLO.-1 * VLO.TVAFac
FIN_BLOC
COMMENTAIRE : "Création Entête de Facture"
COMMENTAIRE : "Recherche si la facture est déjà enregistrée"
VLO.FacDia = CLO.""
RECH PREM TBD/SOC DTD PROFaEn AVEC DTD PROFaEn.ProNbTransCompta = CLO.0 ET
DTD PROFaEn.ProNumFacFour = VLO.FacFou ET DTD PROFaEn.AppRefFour = VLO.RefFou ET
DTD PROFaEn.ProFacSta = CLO."P" :
VLO.FacDia = DTD PROFaEn.ProNumFac
FIN_BLOC
EFFACER Liste WfEntAct
EFFACER Liste WfEntVar
SI VLO.FacDia = CLO.""
CREATION Liste WfEntAct :
PRENDRE WfEntAct Action = CLO."CRE"
PRENDRE WfEntAct ActCle = VLO.FacFou
PRENDRE WfEntAct ActRes = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct EntTEn = CLO."E-FACFOUR"
PRENDRE WfEntAct EntCl1 = CLO."&1"
FIN_BLOC
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."GesUtiRef" , E: VLO.GesUti , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."AppRefFour" , E: VLO.RefFou , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."PRONonAPayer" , E: CLO."" , E: CLO.0 , E: CGL.DATEVIDE , E: VLO.Payer )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."ProDateRecFact" , E: CLO."" , E: CLO.0 , E: VLO.DatFac , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."ProDevFacture" , E: VLO.DevFou , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."ProNumFacFour" , E: VLO.FacFou , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."ProDevMontFacHT" , E: CLO."" , E: VLO.HTFac , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."ProDevMontFacTTC" , E: CLO."" , E: VLO.TTCFac , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."ProDevMontFacTVA" , E: CLO."" , E: VLO.TVAFac , E: CGL.DATEVIDE , E: CGL.NON )
VLO.Res = ENR-ACT-ENT( )
RECH PREM LST WfEntAct AVEC WfEntAct.ActCle = VLO.FacFou :
VLO.Res = WfEntAct.ActErr
CREATION Liste LST.Res :
PRENDRE Res Cle = WfEntAct.ActCle
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Res = WfEntAct.ActRes
PRENDRE Res Err = WfEntAct.ActErr
FIN_BLOC
COMMENTAIRE : "Récupération du numéro de facture créée"
SI WfEntAct.ActErr = CLO.""
VLO.FacDia = WfEntAct.ActRes
FIN_BLOC
FIN_BLOC
FIN_BLOC
SINON
VLO.Res = CLO.""
CREATION Liste LST.Res :
PRENDRE Res Cle = VLO.FacFou
PRENDRE Res Act = CLO."FAC"
PRENDRE Res Res = VLO.FacDia
PRENDRE Res Err = CLO."Existe Déjà"
FIN_BLOC
FIN_BLOC
FIN_BLOC
SINON
VLO.Res = CLO."*PBFIC"
CREATION Liste LST.Res :
PRENDRE Res Cle = VLO.NomFic
PRENDRE Res Act = CLO."FIC"
PRENDRE Res Res = VLO.Res
PRENDRE Res Err = CLO."Pas de ligne pour l'entête de facture"
FIN_BLOC
FIN_BLOC
COMMENTAIRE : "Si la création de facture s'est bien déroulée, on récupère les lignes de la Facture"
SI VLO.Res = CLO.""
EFFACER Liste WfEntAct
EFFACER Liste WfEntVar
EFFACER Liste LigFac
EFFACER Liste FraisFac
COMMENTAIRE : "Lignes de Commandes"
POUR CHAQUE LST WFFicContenu AVEC WFFicContenu.NomFichier = VLO.NomFic
ET WFFicContenu.ContenuLigne COMMENCE_PAR CLO."LIG" :
VLO.LongLigne = LONGUEUR( CHAINE= WFFicContenu.ContenuLigne )
VLO.Cde = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.4 , LONGUEUR= CLO.10 )
VLO.Cde = SUP-BLANC( CHAINE= VLO.Cde )
VLO.Lig = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.14 , LONGUEUR= CLO.5 )
VLO.Lig = SUP-BLANC( CHAINE= VLO.Lig )
VLO.BL = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.19 , LONGUEUR= CLO.10 )
VLO.BL = SUP-BLANC( CHAINE= VLO.BL )
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.29 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.QteNeg = CGL.OUI
FIN_BLOC
SINON
VLO.QteNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.30 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.Qte = DECIMAL( VALEUR= VLO.Val )
SI VLO.QteNeg VRAI
VLO.Qte = CLO.-1 * VLO.Qte
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.41 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.PrixNeg = CGL.OUI
FIN_BLOC
SINON
VLO.PrixNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.42 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.Prix = DECIMAL( VALEUR= VLO.Val )
SI VLO.PrixNeg VRAI
VLO.Prix = CLO.-1 * VLO.Prix
FIN_BLOC
COMMENTAIRE : "Récupération des Provisions d'Ecarts"
VLO.EcaQte = CGL.NON
VLO.EcaPrix = CGL.NON
VLO.Avoir = CGL.NON
VLO.QteEca = CLO.0
VLO.PrixEca = CLO.0
SI VLO.LongLigne > CLO.52
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.53 , LONGUEUR= CLO.3 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
SI VLO.Val = CLO."ECQ"
VLO.EcaQte = CGL.OUI
FIN_BLOC
FIN_BLOC
SI VLO.LongLigne > CLO.55
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.56 , LONGUEUR= CLO.3 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
SI VLO.Val = CLO."ECP"
VLO.EcaPrix = CGL.OUI
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.59 , LONGUEUR= CLO.1 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
SI VLO.Val = CLO."A"
VLO.Avoir = CGL.OUI
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.60 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.QteEcaNeg = CGL.OUI
FIN_BLOC
SINON
VLO.QteEcaNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.61 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.QteEca = DECIMAL( VALEUR= VLO.Val )
SI VLO.QteEcaNeg VRAI
VLO.QteEca = CLO.-1 * VLO.QteEca
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.72 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.PrixEcaNeg = CGL.OUI
FIN_BLOC
SINON
VLO.PrixEcaNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.73 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.PrixEca = DECIMAL( VALEUR= VLO.Val )
SI VLO.PrixEcaNeg VRAI
VLO.PrixEca = CLO.-1 * VLO.PrixEca
FIN_BLOC
FIN_BLOC
FIN_BLOC
SI VLO.Cde EXISTE ET <> ""
CREATION Liste LST.LigFac :
PRENDRE LigFac Cde = VLO.Cde
PRENDRE LigFac Lig = VLO.Lig
PRENDRE LigFac BL = VLO.BL
PRENDRE LigFac Qte = VLO.Qte
PRENDRE LigFac Prix = VLO.Prix
PRENDRE LigFac EcaQte = VLO.EcaQte
PRENDRE LigFac EcaPrix = VLO.EcaPrix
PRENDRE LigFac Avoir = VLO.Avoir
PRENDRE LigFac QteEca = VLO.QteEca
PRENDRE LigFac PrixEca = VLO.PrixEca
FIN_BLOC
FIN_BLOC
FIN_BLOC
COMMENTAIRE : "Frais Annexes existant déjà dans Diapason"
POUR CHAQUE LST WFFicContenu AVEC WFFicContenu.NomFichier = VLO.NomFic
ET WFFicContenu.ContenuLigne COMMENCE_PAR CLO."FRA" :
VLO.Frais = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.4 , LONGUEUR= CLO.10 )
VLO.Frais = SUP-BLANC( CHAINE= VLO.Frais )
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.14 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.MontNeg = CGL.OUI
FIN_BLOC
SINON
VLO.MontNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.15 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.Mont = DECIMAL( VALEUR= VLO.Val )
SI VLO.MontNeg VRAI
VLO.Mont = CLO.-1 * VLO.Mont
FIN_BLOC
SI VLO.Frais EXISTE ET <> ""
CREATION Liste LST.FraisFac :
PRENDRE FraisFac Frais = VLO.Frais
PRENDRE FraisFac Mont = VLO.Mont
FIN_BLOC
FIN_BLOC
FIN_BLOC
COMMENTAIRE : "Frais Annexes à Créer"
VLO.PbCreFrais = CGL.NON
POUR CHAQUE LST WFFicContenu AVEC WFFicContenu.NomFichier = VLO.NomFic
ET WFFicContenu.ContenuLigne COMMENCE_PAR CLO."FRC" :
VLO.Cde = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.4 , LONGUEUR= CLO.10 )
VLO.Cde = SUP-BLANC( CHAINE= VLO.Cde )
VLO.BL = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.14 , LONGUEUR= CLO.10 )
VLO.BL = SUP-BLANC( CHAINE= VLO.BL )
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.24 , LONGUEUR= CLO.1 )
SI VLO.Val = CLO."-"
VLO.MontNeg = CGL.OUI
FIN_BLOC
SINON
VLO.MontNeg = CGL.NON
FIN_BLOC
VLO.Val = SS-CHAINE( CHAINE= WFFicContenu.ContenuLigne , DEBUT= CLO.25 , LONGUEUR= CLO.11 )
VLO.Val = SUP-BLANC( CHAINE= VLO.Val )
VLO.Mont = DECIMAL( VALEUR= VLO.Val )
SI VLO.MontNeg VRAI
VLO.Mont = CLO.-1 * VLO.Mont
FIN_BLOC
SI VLO.Mont EXISTE ET <> 0
CREATION Liste WfEntAct :
PRENDRE WfEntAct Action = CLO."CRE"
PRENDRE WfEntAct ActCle = CLO."FRC"
PRENDRE WfEntAct ActRes = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct EntTEn = CLO."*FRA-ANN"
PRENDRE WfEntAct EntCl1 = CLO.""
FIN_BLOC
EXE-PROC REB CreEntVar ( E: CLO."FRC" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."ENT" ,
E: CLO."GesUtiRef" , E: VLO.GesUti , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: CLO."FRC" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."ENT" ,
E: CLO."AppRefFour" , E: VLO.RefFou , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: CLO."FRC" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."ENT" ,
E: CLO."ProDateFraisAnnexe" , E: CLO."" , E: CLO.0 , E: VLO.DatFac , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: CLO."FRC" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."ENT" ,
E: CLO."ProMontantDevFrais" , E: CLO."" , E: VLO.Mont , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: CLO."FRC" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."ENT" ,
E: CLO."ProDevFraisAnnexe" , E: VLO.DevFou , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: CLO."FRC" , E: CLO."" , E: VLO.Cde , E: CLO."" , E: CLO."" , E: CLO."DET" ,
E: CLO."AppNumCom" , E: VLO.Cde , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: CLO."FRC" , E: CLO."" , E: VLO.Cde , E: CLO."" , E: CLO."" , E: CLO."DET" ,
E: CLO."AppNumBL" , E: VLO.BL , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
VLO.Res = ENR-ACT-ENT( )
RECH PREM LST WfEntAct :
CREATION Liste LST.Res :
PRENDRE Res Cle = WfEntAct.ActCle + " " + VLO.Cde + CLO."/" + VLO.BL
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Res = WfEntAct.ActRes
PRENDRE Res Err = WfEntAct.ActErr
FIN_BLOC
SI WfEntAct.ActErr = CLO.""
VLO.Frais = WfEntAct.ActRes
FIN_BLOC
SINON
VLO.Frais = CLO.""
FIN_BLOC
FIN_BLOC
EFFACER Liste WfEntAct
EFFACER Liste WfEntVar
SI VLO.Frais EXISTE ET <> ""
CREATION Liste LST.FraisFac :
PRENDRE FraisFac Frais = VLO.Frais
PRENDRE FraisFac Mont = VLO.Mont
FIN_BLOC
FIN_BLOC
FIN_BLOC
SI VLO.PbCreFrais VRAI
QUITTER
FIN_BLOC
FIN_BLOC
COMMENTAIRE : "Pré-Enregistrement de la Facture"
SI VLO.PbCreFrais FAUX
CREATION Liste WfEntAct :
PRENDRE WfEntAct Action = CLO."SAU"
PRENDRE WfEntAct ActCle = VLO.FacFou
PRENDRE WfEntAct ActRes = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
PRENDRE WfEntAct EntTEn = CLO."*PRO-CTR"
FIN_BLOC
COMMENTAIRE : "Données Générales Facture"
SI VLO.FacDia EXISTE ET <> ""
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."INI",
E: CLO."ProNumFac" , E: VLO.FacDia , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
FIN_BLOC
SINON
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."INI",
E: CLO."AppRefFour" , E: VLO.RefFou , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."" , E: CLO."" , E: CLO."" , E: CLO."INI",
E: CLO."ProNumFacFour" , E: VLO.FacFou , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
FIN_BLOC
COMMENTAIRE : "Lignes de Commandes"
VLO.TotLig = CLO.0
POUR CHAQUE LST LigFac :
VLO.ClePro = LigFac.Cde + CLO."," + LigFac.BL + CLO."," + LigFac.Lig
VLO.Qte = LigFac.Qte
VLO.Prix = LigFac.Prix
VLO.EcaQte = LigFac.EcaQte
VLO.EcaPrix = LigFac.EcaPrix
VLO.Avoir = LigFac.Avoir
VLO.QteEca = LigFac.QteEca
VLO.PrixEca = LigFac.PrixEca
VLO.TotLig = VLO.TotLig + ( VLO.Qte * VLO.Prix )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."PRO" , E: CLO."ProNumIdProv" , E: VLO.ClePro , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."PRO" , E: VLO.ClePro , E: CLO."" ,
E: CLO."INI" , E: CLO."PROFacQte" , E: CLO."" , E: VLO.Qte , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."PRO" , E: VLO.ClePro , E: CLO."" ,
E: CLO."INI" , E: CLO."PROFacPrix" , E: CLO."" , E: VLO.Prix , E: CGL.DATEVIDE , E: CGL.NON )
SI VLO.EcaQte VRAI
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."PRO" , E: VLO.ClePro , E: CLO."" ,
E: CLO."INI" , E: CLO."PROEcaQtGes" , E: CLO."" , E: CLO.0 , E: CGL.DATEVIDE , E: VLO.EcaQte )
FIN_BLOC
SI VLO.EcaPrix VRAI
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."PRO" , E: VLO.ClePro , E: CLO."" ,
E: CLO."INI" , E: CLO."PROEcaPrGes" , E: CLO."" , E: CLO.0 , E: CGL.DATEVIDE , E: VLO.EcaPrix )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."PRO" , E: VLO.ClePro , E: CLO."" ,
E: CLO."INI" , E: CLO."PROEcaPrAvo" , E: CLO."" , E: CLO.0 , E: CGL.DATEVIDE , E: VLO.Avoir )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."PRO" , E: VLO.ClePro , E: CLO."" ,
E: CLO."INI" , E: CLO."PROEcaPrQte" , E: CLO."" , E: VLO.QteEca , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."PRO" , E: VLO.ClePro , E: CLO."" ,
E: CLO."INI" , E: CLO."PROEcaPrPrix" , E: CLO."" , E: VLO.PrixEca , E: CGL.DATEVIDE , E: CGL.NON )
FIN_BLOC
FIN_BLOC
COMMENTAIRE : "Frais Annexes"
POUR CHAQUE LST FraisFac :
VLO.Frais = FraisFac.Frais
VLO.Mont = FraisFac.Mont
VLO.TotLig = VLO.TotLig + VLO.Mont
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."FRA" , E: CLO."ProNumFrais" , E: VLO.Frais , E: CLO.0 , E: CGL.DATEVIDE , E: CGL.NON )
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."FRA" , E: VLO.Frais , E: CLO."" ,
E: CLO."INI" , E: CLO."ProFacMontant" , E: CLO."" , E: VLO.Mont , E: CGL.DATEVIDE , E: CGL.NON )
FIN_BLOC
VLO.Res = ENR-ACT-ENT( )
RECH PREM LST WfEntAct AVEC WfEntAct.ActCle = VLO.FacFou :
VLO.Res = WfEntAct.ActErr
CREATION Liste LST.Res :
PRENDRE Res Cle = WfEntAct.ActCle
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Res = WfEntAct.ActRes
PRENDRE Res Err = WfEntAct.ActErr
FIN_BLOC
FIN_BLOC
COMMENTAIRE : "Si l'écart entre le montant HT de la facture et le montant total des lignes sélectionnées est
inférieur à l'écart maximum souhaité, on valide le contrôle de facturation en répartissant l'écart."
SI VLO.Res = CLO.""
VLO.EcaFac = VLO.HTFac - VLO.TotLig
SI VLO.EcaMaxNeg <= VLO.EcaFac ET VLO.EcaFac <= VLO.EcaMax
RECH PREM LST WfEntAct AVEC WfEntAct.ActCle = VLO.FacFou :
PRENDRE WfEntAct Action = CLO."VAL"
PRENDRE WfEntAct ActRes = CLO.""
PRENDRE WfEntAct ActErr = CLO.""
FIN_BLOC
EXE-PROC REB CreEntVar ( E: VLO.FacFou , E: CLO."*PRO-CTR" , E: CLO."" , E: CLO."" , E: CLO."" ,
E: CLO."INI" , E: CLO."ProMaxEcart" , E: CLO."" , E: VLO.EcaMax , E: CGL.DATEVIDE , E: CGL.NON )
VLO.Res = ENR-ACT-ENT( )
RECH PREM LST WfEntAct AVEC WfEntAct.ActCle = VLO.FacFou :
VLO.Res = WfEntAct.ActErr
CREATION Liste LST.Res :
PRENDRE Res Cle = WfEntAct.ActCle
PRENDRE Res Act = WfEntAct.Action
PRENDRE Res Res = WfEntAct.ActRes
PRENDRE Res Err = WfEntAct.ActErr
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
FIN_BLOC
La requête procédure « Cre_EntVar » contient :

Dans cet exemple, les fichiers contenant les factures à enregistrer sont de la forme :
FACFOU0001 FF20150188150115 00001750.00 00002100.00 00000350.00
LIG50100001 0001 FOU_BL005 00000010.00 00000001.10ECQ
LIG50100001 0002 FOU_BL005 00000020.00 00000001.75
LIG50100001 0003 FOU_BL005 00000030.00 00000056.00 ECPA 00000030.00 00000002.00
FRC50100001 FOU_BL005 00000024.00