Récapitulatif Calcul Prix
Les différents éléments Prix de base et Plus-values composant le prix du contexte ou le prix final sont stockés dans les IT des Scénario commerciaux, et sont accessibles depuis la ligne de commande commerciales, avec l’action « consultation des informations techniques du scénario ».
![](../__attachments/89604951/image-20230913-073835.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Remarque : le champ Type Prix est constitué de la constante IScPrix_ suivi de la référence du type de tarif.
En sortie de chaque contexte la liste WfCfgPar (IT scénario pour le contexte courant) sera mise à jour de la façon suivante :
Type de Prix :Type IT : ITSTyp = “IScPrix_” + type de prix calculé
Détail du Prix : Sous Type IT : ITSTyp = « PrixBase » ou « PrixPV »
Prix Base ou PV :Code IT : ITSCod : Nature du code tarif lié
Les informations qui suivent sont stockées sous forme de liste chainée dans le champ ITSVal : valeur IT. Le séparateur est le CHR162 : |
Grille ou Nat PV : MOT(SEPARATEUR= VLO.CHR162, CHAINE= ITSVal, NUMERO= CLO.1 )
Grille de tarif si prix de base ou concaténation de FamillePV_Nature PV si plus-value avec un séparateur CHR165Détail PV : MOT(SEPARATEUR= VLO.CHR162 , CHAINE= ITSVal, NUMERO= CLO.2 ) : référence de la plus-value si PV ou vide si prix de base
Réseau : MOT(SEPARATEUR= VLO.CHR162, CHAINE= ITSVal, NUMERO= CLO.3 ). Référence du réseau – tarif trouvé. Vide si tarif public.
Client : MOT(SEPARATEUR= VLO.CHR162, CHAINE= ITSVal, NUMERO= CLO.4 ). Référence du Client tarif trouvé. Vide si tarif public.
N° Ordre PV: MOT(SEPARATEUR= VLO.CHR162, CHAINE= ITSVal, NUMERO= CLO.5 ). N° ordre lié à la nature de la PV.
ClePV1, 2 et 3 :MOT(SEPARATEUR= VLO.CHR162, CHAINE= ITSVal, NUMERO= CLO.6 ).
Les Clés de traçabilité détail Plus-Values 1, 2 et 3 sont concaténées avec le séparateur CHR165
Montant Net : Champ Numérique 1 ITSNu1 : Montant net ou montant PV calculé, ce montant est égal au montant Brut * Coeff Formule tarif.
Coefficient Tarif : Champ Numérique2 ITSNu2 : coefficient PV pris en compte dans le calcul.
Montant Brut : Champ Numérique2 ITSNu3 : montant brut de la Grille ou PV
N° Ordre : Ordre de génération dans le calcul prix : ITSNOr
Remarques :
La lecture des IT ainsi générées pourra être réalisée pour le contexte courant à partir de la liste WfCfgPar ou pour tous les contextes à partir de la liste WfCfgITSIni (IT scénario tous contextes) dont la structure est identique à la liste ci dessus à un champ prêt (CtxRef : référence du contexte sur lequel est rattaché l’IT).
WfCfgPar contient les IT en cours de génération pour le contexte courant.
WfCfgITSIni contient la totalité des ITs des contextes validés.
Lorsque la ligne de commande est enregistrée suite à une création ou une modification, les données de la liste WfCfgPar sont accessibles depuis la table CFITCont.
Exemple d’accès aux IT d’une ligne de commande.
VLO.CdeNumCom = SCR.CdeNumCom
VLO.CdeNumLig = SCR.CdeNumLig
VLO.SepValIT = CHR( VALEUR= CLO.162 )
VLO.CHR165 = CHR( VALEUR= CLO.165 )
POUR CHAQUE/SOC BDB CFITCont AVEC BDB CFITCont.DeRefApp = CLO."GCDL" ET BDB CFITCont.DeCleApp1 = VLO.CdeNumCom ET BDB CFITCont.DeCleApp2 = VLO.CdeNumLig :
SI BDB CFITCont.CfgCtxITSTyp COMMENCE_PAR CLO."IScPrix_"
VLO.GrillePV = MOT( SEPARATEUR= VLO.SepValIT , CHAINE= BDB CFITCont.CfgCtxITSVal , NUMERO= CLO.1 )
VLO.RefPV = MOT( SEPARATEUR= VLO.SepValIT , CHAINE= BDB CFITCont.CfgCtxITSVal , NUMERO= CLO.2 )
VLO.Reseau = MOT( SEPARATEUR= VLO.SepValIT , CHAINE= BDB CFITCont.CfgCtxITSVal , NUMERO= CLO.3 )
VLO.Client = MOT( SEPARATEUR= VLO.SepValIT , CHAINE= BDB CFITCont.CfgCtxITSVal , NUMERO= CLO.4 )
VLO.NumOrdPV = MOT( SEPARATEUR= VLO.SepValIT , CHAINE= BDB CFITCont.CfgCtxITSVal , NUMERO= CLO.5 )
VLO.ClePv = MOT( SEPARATEUR= VLO.SepValIT , CHAINE= BDB CFITCont.CfgCtxITSVal ,
NUMERO= CLO.6 )
VLO.Cle1DetPV = MOT( SEPARATEUR= VLO.CHR165 , CHAINE= VLO.ClePv , NUMERO=
CLO.1 )
VLO.Cle1DetPV = MOT( SEPARATEUR= VLO.CHR165 , CHAINE= VLO.ClePv , NUMERO=
CLO.2 )
VLO.Cle1DetPV = MOT( SEPARATEUR= VLO.CHR165 , CHAINE= VLO.ClePv , NUMERO=
CLO.3 )
VLO.NaturePV = CLO.""
OUVRIR TV IScCodDes AVEC IScCodDes.IScType = CLO."NatTarif" ET IScCodDes.IScRef =
BDB CFITCont.CfgCtxITSCod :
VLO.LibNature = IScCodDes.IScDes
FIN_BLOC
SI BDB CFITCont.CfgCtxITSSTy = CLO."PrixBase"
OUVRIR TV IScCodDes AVEC IScCodDes.IScType = CLO."CodeTarif" ET IScCodDes.IScRef =
VLO.GrillePV :
VLO.LibGrillePV = IScCodDes.IScDes
FIN_BLOC
FIN_BLOC
SINON
SI BDB CFITCont.CfgCtxITSSTy = CLO."PrixPV"
VLO.NaturePV = MOT( SEPARATEUR= VLO.CHR165 , CHAINE= VLO.GrillePV , NUMERO= CLO.2 )
VLO.GrillePV = MOT( SEPARATEUR= VLO.CHR165 , CHAINE= VLO.GrillePV , NUMERO= CLO.1 )
OUVRIR TV IScCodDes AVEC IScCodDes.IScType = CLO."FamPV" ET IScCodDes.IScRef = VLO.GrillePV :
VLO.LibGrillePV = IScCodDes.IScDes
FIN_BLOC
FIN_BLOC
FIN_BLOC
CREATION Liste LST.Sortie :
PRENDRE Sortie Contexte = BDB CFITCont.RefDiapContexte
PRENDRE Sortie Type = BDB CFITCont.CfgCtxITSTyp
PRENDRE Sortie SSType = BDB CFITCont.CfgCtxITSSTy
PRENDRE Sortie Code = BDB CFITCont.CfgCtxITSCod
PRENDRE Sortie LibNatTarif = VLO.LibNature
PRENDRE Sortie NumOrdre = BDB CFITCont.CfgCtxITSNOr
PRENDRE Sortie GrillePv = VLO.GrillePV
PRENDRE Sortie Designation = VLO.LibGrillePV
PRENDRE Sortie NaturePV = VLO.NaturePV
PRENDRE Sortie NumOrdrePV = VLO.NumOrdPV
PRENDRE Sortie RefPV = VLO.RefPV
PRENDRE Sortie Reseau = VLO.Reseau
PRENDRE Sortie Client = VLO.Client
PRENDRE Sortie MtNet = BDB CFITCont.CfgCtxITSNu1
PRENDRE Sortie MtBrut = BDB CFITCont.CfgCtxITSNu2
PRENDRE Sortie Coeff = BDB CFITCont.CfgCtxITSNu3
PRENDRE Sortie Cle1 = VLO.Cle1DetPV
PRENDRE Sortie Cle2 = VLO.Cle2DetPV
PRENDRE Sortie Cle3 = VLO.Cle3DetPV
FIN_BLOC
FIN_BLOC
FIN_BLOC