Cette REB est déclenchée à la validation du rapprochement des provisions, une fois que le numéro standard de facture est généré par DIAPASON, si elle est renseignée dans la désignation du paramètre général CPT-FFO-VAL et si les valeurs logiques de ce paramètre ET du paramètre CPT-FFO-TMP sont également cochées.
Cette REB de validation reçoit les variables critères standard suivantes :
-
SCR.EntAct (Action Exécutée) : contient « VAL »
-
SCR.PRONumFac (Numéro de Facture) : contient le numéro temporaire de la facture. Permet de se positionner sur la facture
-
SCR.PRONumFacVal (Numéro de Facture Validée) : contient le numéro de facture généré par DIAPASON
Elle doit renvoyer le nouveau numéro de facture dans la variable « SCR.PRONumFacVal ».
Lors de l’exécution de la requête :
-
si une instruction « LC-Erreur » a été rencontrée, l’erreur est affichée et la facture n’est pas validée
-
si une instruction « LC-WARNING » a été rencontrée, le message est affiché et la facture est validée
-
si une facture existe déjà avec le numéro donné, une erreur est affichée et la facture n’est pas validée.
-
les provisions sélectionnées sont soldées
-
d'éventuelles provisions d’écart sont générées
-
les écritures comptables à confirmer sont générées
Il n’est pas possible de valider un contrôle de facturation fournisseur, si des conditionnements non validés existent pour un des bordereaux de livraison de la facture, c’est-à-dire qu’une modification de réception par conditionnement est en cours.
Exemple de requête de validation :
L’exemple suivant permet de générer un numéro de facture à partir d’une racine renseignée dans une variable spécifique de la facture :
VLO.NumFac = SCR.PRONumFac
VLO.Fct = REC-VAR-SPE( TYPE-VARIABLE= O_ECtrF , TYPE= CARACTERE , NOM-VARIABLE= FacRac , CLE-1= VLO.NumFac , CLE-2= CLO."" , CLE-3= CLO."" , S:VALEUR= VLO.Racine )
SI VLO.Racine = CLO.""
LC-Warning = CLO."Racine vide : pas de génération de numéro"
FIN_BLOC
SINON
RECH TBD/SOC DTD PROFaEn AVEC DTD PROFaEn.ProNumFac = SCR.PRONumFac :
VLO.Compteur = CLO.0
VLO.LongRacine = LONGUEUR( CHAINE= VLO.Racine ) + CLO.1
VLO.CarCpt = CLO.""
RECH DER TBD/SOC DTD PROFaEn AVEC DTD PROFaEn.ProNumFac COMMENCE_PAR VLO.Racine :
VLO.NouFac = DTD PROFaEn.ProNumFac
VLO.CarCpt = SS-CHAINE( CHAINE= VLO.NouFac , DEBUT= VLO.LongRacine )
FIN_BLOC
VLO.Compteur = ENTIER( VALEUR= VLO.CarCpt ) + CLO.1
SI VLO.Compteur >= CLO.99999
LC-Erreur = CLO."Compteur Dépassé. Impossible de générer le numéro de facture"
FIN_BLOC
SINON
INIT SCR.PRONumFacVal = VLO.Racine + CHAINE( VALEUR= VLO.Compteur , FORMAT= E0/5 )
FIN_BLOC
FIN_BLOC
FIN_BLOC