Transaction
Il n'y a pas de transaction en cours lorsque le point d’entrée est appelé depuis la saisie d’une ligne (devis, commande, livraison, facture, avoir).
Il y a une transaction en cours lorsque le point d’entrée est appelé depuis :
. Le bouton livraison depuis la gestion commande, le bouton validation depuis la gestion livraison
. Les fonctions génération livraison commande, livraison des bons préparation,validation automatique des livraisons
. Le bouton facture depuis la gestion commande, le bouton validation depuis la gestion facture
. Les fonctions facturation automatique des commandes, validation automatique des factures.
. La gestion des contrats.
. La création d'une ligne d'avoir avec mouvement de stock.
. La fenêtre de modification des sorties de stock en gestion des livraisons
. La fonction de régularisation des prix
. La fonction de régularisation des stocks manquants
Fichier traceIl n'y a pas de fichier trace ouvert lorsque le point d’entrée est appelé depuis la saisie d’une ligne (devis, commande, livraison, facture, avoir), la création d'une ligne d'avoir avec mouvement de stock, la fenêtre de modification des sorties de stock en gestion des livraisons.
Il y a un fichier trace ouvert lorsque l’on est dans les fonctions de livraison ou facturation automatique des commandes, validation automatique des livraisons ou des factures, régularisation des prix.
Différents cas d’appel - Variables et masques disponiblesUne variable globale ‘GCALPFM’ permet d’identifier ces différents cas d’appels.
GCALPFM = 0 Saisie ligne devis, commande, livraison, facture, avoir
GCALPFM = 1 Bouton ‘livraison’ ou fonction 'génération livraison commande' ou fonction ‘livraison des bons préparation’
GCALPFM = 2 Bouton ‘validation livraison’ ou fonction ‘validation des livraisons’
GCALPFM = 3 Bouton ‘facture’ (depuis une commande) ou fonction ‘facturation automatique des commandes ‘
GCALPFM = 4 Bouton ‘validation facture’ ou fonction ‘validation des factures’
GCALPFM = 5 Saisie des contrats
GCALPFM = 6 Création d'une ligne d'avoir avec mouvement de stock
GCALPFM = 7 Fenêtre de modification des sorties de stock en gestion des livraisons
GCALPFM = 8 Fonction de régularisation des prix
GCALPFM = 9 Fonction de régularisation des stocks manquants
Il pourra donc être nécessaire de tester cette variable pour utiliser le bon contexte.
Ce point d’entrée est appelé :
. Dans le sous-programme de calcul de la marge ( GCALPFM=0 )
Ce sous-programme est un sous-programme commun à toutes les fonctions de vente. Il est appelé à chaque saisie d'une ligne (devis, commande, livraison, facture, avoir), chaque fois qu'il est nécessaire de recalculer la marge :
· Après saisie de la quantité
On effectue la recherche tarif dont on récupère le prix brut. On calcule ensuite le prix net et donc la marge.
· Après modification du prix brut ou d'une colonne frais/remise. Une telle modification engendre un recalcul du prix net et par conséquent un recalcul de la marge.
· Après validation de la ligne
La classe écran liée à l'objet traité est chargée ([M:SQH], [M:SOH], [M:SDH], [M:SIH]). On se trouve à l'intérieur du sous-programme CALPFM.
Les variables suivantes sont les variables passées en paramètre du sous-programme :
· MSK : Classe écran (Si non renseigné, MSK est chargé avec [M])
· NLIG : Indice de la ligne dans le tableau.
· PRI : Prix net de la ligne
· VAT : Tableau des 3 codes taxes de la ligne (VAT(0), VAT(1), VAT(2))
· PRITYP : Type de prix du document
· SIT : Site de stock
· LITM : Référence article
· CHGTYP : Type de cours
· DAT : Date du document
· CUR : Devise du document
· COEF : Coefficient de conversion unité de cde/unité de stock de la ligne
· INICPRPRI : Flag init du prix de revient (0=Pas d'init,1=Init sans raz,2=Init avec raz)
· XSTOMGTCOD : Flag mise à jour des stock
Les variables suivantes sont des variables de travail calculées par le sous-pro :
· PHTNET : Prix net servant au calcul de la marge (prix HT)
· WQTY : Quantité en unité de stock
· COUTHT : Prix de revient calculé
Les variables suivantes sont les variables calculées et renvoyées par le sous-pro :
· XPFM : Marge
· XCPRPRI : Prix de revient
Le calcul de la marge et donc le point d'entrée sont appelés uniquement lorsque la variable INICPRPRI est égal à 1 ou 2.
. Lors de la livraison d’une commande par bouton ou par la fonction de livraison automatique ( GCALPFM=1 )
Le recalcul de la marge s’effectue lors de l’alimentation de la ligne détail livraison à partir de la ligne détail commande au moment de la création d’une ligne de livraison. On se situe juste avant l’écriture de la ligne détail livraison.
Les buffers [F :SOH], [F :SOQ], [F :SOP] sont chargés avec la commande à livrer. [F :SDH], [F :SDD] sont chargés avec la livraison en cours de création. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de la validation d’une livraison par bouton ou par la fonction validation automatique des livraisons ( GCALPFM=2 )
Le recalcul de la marge s’effectue pour les articles gérés en stock, avant la mise à jour des stocks.
Les buffers [F :SDH], [F :SDD] sont chargés ainsi que les buffers [F :ITM], [F :ITS].
. Lors de la facturation d’une commande par bouton ou par la fonction de facturation automatique des commandes ( GCALPFM=3 )
Le calcul de la marge s’effectue lors de l’alimentation de la ligne détail facture à partir de la ligne détail commande au moment de la création d’une ligne de facture. On se situe juste avant l’écriture de la ligne détail livraison.
Les buffers [F :SOH], [F :SOP], [F :SOQ] sont chargés avec la commande à facturer. [F :SIH], [F :SIV], [F :SID] sont chargés avec la facture en cours de création. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de la validation d’une facture par bouton ou par la fonction validation automatique des factures ( GCALPFM=4 )
Le recalcul de la marge s’effectue pour les factures de commandes, pour les articles gérés en stock, et ceci avant la mise à jour des stocks.
Les buffers [F :SIH], [F :SIV], [F :SDD] sont chargés ainsi que les buffers [F :ITM], [F :ITS].
. Dans la gestion des contrats (GCALPFM=5)
Le recalcul de la marge s’effectue lors de la modification d’un contrat si le régime de taxe a été modifié. En effet, il est nécessaire, pour chaque ligne article, de refaire la recherche des codes taxes. Si des lignes de prix ont été saisies pour cette ligne article, il faut également recalculer les prix HT et TTC et la marge.
Ce traitement s’effectue lors de l’enregistrement de la modification, dans la transaction de mise à jour du contrat, au niveau de l’action AVANT_MODFIC.
Les buffers [F :SOH], [F :SOC], [F :SOP] sont chargés avec le contrat, la ligne article et la ligne de prix. La classe écran [M:SOR1] est également chargée avec le contrat. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de création d'une ligne d'avoir avec mouvement de stock pour un article dont la base de calcul de marge est le prix moyen lot ( GCALPFM=6 )
Le calcul de la marge est réeffectué lors de la création de la ligne. A ce niveau, le contexte n'est pas le même que lors de la saisie de la ligne. Le calcul s’effectue dans l'action INICRE_LIG de l'objet, lors de l’alimentation de la ligne détail facture [F:SID] à partir de l'écran [M:SIH4]. La variable NOL (nolign-1) contient l'indice de la ligne en cours de création dans le tableau des lignes [M:SIH4].
Les buffers [F :SIH], [F :SIV], [F :SID] sont chargés avec l'avoir en cours de création. Les écrans de l'objet facture sont chargés avec l'avoir en cours de création. On se situe juste avant l'écriture de l'enr [F:SID]. Les enregistrements [F :SIH], [F :SIV] sont écrits. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de la modification des sorties de stocks sur une livraison validée depuis le click droit sur les lignes "Modification des sorties" en gestion des livraisons ( GCALPFM=7 )
La modification des sorties peut entrainer un recalcul du prix de revient dans le cas où l'on modifie le lot et où la base de calcul de marge est le prix moyen lot. Le calcul s’effectue dans l'action ENR de l'action SAISTOSORM lors des mises à jour complémentaires effectuées après enregistrement des modifications dans les stocks.
Les buffers [F :SDH], [F :SDD] sont chargés avec la livraison. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article. La classe écran [M:SOM] (écran de modification des sorties) est en ligne.
. Lors de la régularisation des prix depuis la fonction régularisation des prix ( GCALPFM=8 )pouvant mettre à jour la valeur des mouvements de stock liés à une livraison
Cette fonction peut mettre à jour la valeur des mouvements de stocks liés à une livraison. Elle recalcule le PMP ansi que les marges.
Les buffers [F :SDH], [F :SDD] sont chargés avec la livraison. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de la régularisation des prix depuis la fonction régularisation des stocks manquants ( GCALPFM=9)pour des livraisons validées ayant des mouvements en attente.Cette fonction entraine le recalcul du prix de revientet de la marge.
Les buffers [F :SDH], [F :SDD] sont chargés avec la livraison ainsi que les buffers [F :ITM], [F :ITS].
Dans tous les cas :
La variable COUTHT contient le prix de revient calculé.
Le point d'entrée se situe juste après l'appel au sous-programme de calcul du prix de revient et juste avant le calcul de la marge. Les variables suivantes sont utilisées :
· WPOINT_COUT (local decimal) :
Elle est déclarée avant l'appel du point d'entrée. C'est le coût supplémentaire à impacter sur la marge. Le point d'entrée doit l'alimenter.
· WPOINT_RET (local integer) :
Elle est initialisée à 0 avant l'appel du point d'entrée. C'est la variable de statut de retour. Le point d'entrée doit la positionner à 1 pour que WPOINT_COUT soit utilisé.
Le point d'entrée doit donc positionner ces 2 variables.
A la sortie du point d'entrée, si WPOINT_RET vaut 1, le nouveau prix de revient est calculé :
COUTHT= COUTHT+WPOINT_COUT
La marge est calculée :
PFM=PHTNET-COUTHT
Notes importantes :
Le prix de revient X3 est calculé dans la devise de la société (donné par la variable globale GLOCALDEV). Il est converti dans la devise du document si cette devise est différente de GLOCALDEV.
Il faut donc que WPOINT_COUT soit renvoyé dans la devise du document.
Le prix de revient X3 est calculé en unité de stock. Il est converti en unité de commande. (On le multiplie par la variable COEF qui est le coefficient de conversion UV-US).
Il faut donc que WPOINT_COUT soit envoyé en unité de commande.
Le sous-programme de calcul de marge étant commun à toutes les fonctions, il est nécessaire de connaître le contexte, il faudra utiliser la variable GCALPFM telle qu’indiqué précédemment.
Ce point d’entrée concerne le calcul du prix de revient et de la marge dans les ventes.
Il permet d'intervenir directement sur le prix de revient calculé et la marge afin de les modifier.
Il est appelé dans chaque traitement effectuant un calcul de marge.
Transaction
Il n'y a pas de transaction en cours lorsque le point d’entrée est appelé depuis la saisie d’une ligne (devis, commande, livraison, facture, avoir).
Il y a une transaction en cours lorsque le point d’entrée est appelé depuis :
. Le bouton livraison depuis la gestion commande, le bouton validation depuis la gestion livraison
. Les fonctions génération livraison commande, livraison des bons préparation,validation automatique des livraisons
. Le bouton facture depuis la gestion commande, le bouton validation depuis la gestion facture
. Les fonctions facturation automatique des commandes, validation automatique des factures.
. La gestion des contrats.
. La création d'une ligne d'avoir avec mouvement de stock.
. La fenêtre de modification des sorties de stock en gestion des livraisons
. La fonction de régularisation des prix
. La fonction de régularisation des stocks manquants
Fichier traceIl n'y a pas de fichier trace ouvert lorsque le point d’entrée est appelé depuis la saisie d’une ligne (devis, commande, livraison, facture, avoir), la création d'une ligne d'avoir avec mouvement de stock, la fenêtre de modification des sorties de stock en gestion des livraisons.
Il y a un fichier trace ouvert lorsque l’on est dans les fonctions de livraison ou facturation automatique des commandes, validation automatique des livraisons ou des factures, régularisation des prix
Différents cas d’appel - Variables et masques disponiblesUne variable globale ‘GCALPFM’ permet d’identifier ces différents cas d’appels.
GCALPFM = 0 Saisie ligne devis, commande, livraison, facture, avoir
GCALPFM = 1 Bouton ‘livraison’ ou fonction ‘génération livraison commande’ ou fonction 'livraison des bons préparation'
GCALPFM = 2 Bouton ‘validation livraison’ ou fonction ‘validation des livraisons’
GCALPFM = 3 Bouton ‘facture’ (depuis une commande) ou fonction ‘facturation automatique des commandes ‘
GCALPFM = 4 Bouton ‘validation facture’ ou fonction ‘validation des factures’
GCALPFM = 5 Saisie des contrats
GCALPFM = 6 Création d'une ligne d'avoir avec mouvement de stock
GCALPFM = 7 Fenêtre de modification des sorties en gestion des livraisons
GCALPFM = 8 Fonction de régularisation des prix
GCALPFM = 9 Fonction de régularisation des stocks manquants
Il pourra donc être nécessaire de tester cette variable pour utiliser le bon contexte.
Ce point d’entrée est appelé :
. Dans le sous-programme de calcul de la marge ( GCALPFM=0 )
Ce sous-programme est un sous-programme commun à toutes les fonctions de vente. Il est appelé à chaque saisie d'une ligne (devis, commande, livraison, facture, avoir), chaque fois qu'il est nécessaire de recalculer la marge :
· Après saisie de la quantité
On effectue la recherche tarif dont on récupère le prix brut. On calcule ensuite le prix net et donc la marge.
· Après modification du prix brut ou d'une colonne frais/remise. Une telle modification engendre un recalcul du prix net et par conséquent un recalcul de la marge.
· Après validation de la ligne
La classe écran liée à l'OBJet traité est chargée ([M:SQH], [M:SOH], [M:SDH], [M:SIH]). On se trouve à l'intérieur du sous-programme CALPFM.
Les variables suivantes sont les variables passées en paramètre du sous-programme :
· MSK : Classe écran (Si non renseigné, MSK est chargé avec [M])
· NLIG : Indice de la ligne dans le tableau.
· PRI : Prix net de la ligne
· VAT : Tableau des 3 codes taxes de la ligne (VAT(0), VAT(1), VAT(2))
· PRITYP : Type de prix du document
· SIT : Site de stock
· LITM : Référence article
· CHGTYP : Type de cours
· DAT : Date du document
· CUR : Devise du document
· COEF : Coefficient de conversion unité de cde/unité de stock de la ligne
· INICPRPRI : Flag init du prix de revient (0=Pas d'init,1=Init sans raz,2=Init avec raz)
· XSTOMGTCOD : Flag mise à jour des stock
Les variables suivantes sont des variables de travail calculées par le sous-pro :
· PHTNET : Prix net servant au calcul de la marge (prix HT)
· WQTY : Quantité en unité de stock
· COUTHT : Prix de revient calculé
Les variables suivantes sont les variables calculées et renvoyées par le sous-pro :
· XPFM : Marge
· XCPRPRI : Prix de revient
Le point d'entrée est appelé quelquesoit la valeur de la variable INICPRPRI.
. Lors de la livraison d’une commande par bouton ou par la fonction de livraison automatique ( GCALPFM=1 )
Le recalcul de la marge s’effectue lors de l’alimentation de la ligne détail livraison à partir de la ligne détail commande au moment de la création d’une ligne de livraison. On se situe juste avant l’écriture de la ligne détail livraison.
Les buffers [F :SOH], [F :SOQ], [F :SOP] sont chargés avec la commande à livrer. [F :SDH], [F :SDD] sont chargés avec la livraison en cours de création. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de la validation d’une livraison par bouton ou par la fonction validation automatique des livraisons ( GCALPFM=2 )
Le recalcul de la marge s’effectue pour les articles gérés en stock, avant la mise à jour des stocks.
Les buffers [F :SDH], [F :SDD] sont chargés ainsi que les buffers [F :ITM], [F :ITS].
. Lors de la facturation d’une commande par bouton ou par la fonction de facturation automatique des commandes ( GCALPFM=3 )
Le calcul de la marge s’effectue lors de l’alimentation de la ligne détail facture à partir de la ligne détail commande au moment de la création d’une ligne de facture. On se situe juste avant l’écriture de la ligne détail livraison.
Les buffers [F :SOH], [F :SOP], [F :SOQ] sont chargés avec la commande à facturer. [F :SIH], [F :SIV], [F :SID] sont chargés avec la facture en cours de création. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de la validation d’une facture par bouton ou par la fonction validation automatique des factures ( GCALPFM=4 )
Le recalcul de la marge s’effectue pour les factures de commandes, pour les articles gérés en stock, et ceci avant la mise à jour des stocks.
Les buffers [F :SIH], [F :SIV], [F :SDD] sont chargés ainsi que les buffers [F :ITM], [F :ITS].
. Dans la gestion des contrats (GCALPFM=5)
Le recalcul de la marge s’effectue lors de la modification d’un contrat si le régime de taxe a été modifié. En effet, il est nécessaire, pour chaque ligne article, de refaire la recherche des codes taxes. Si des lignes de prix ont été saisies pour cette ligne article, il faut également recalculer les prix HT et TTC et la marge.
Ce traitement s’effectue lors de l’enregistrement de la modification, dans la transaction de mise à jour du contrat, au niveau de l’action AVANT_MODFIC.
Les buffers [F :SOH], [F :SOC], [F :SOP] sont chargés avec le contrat, la ligne article et la ligne de prix. La classe écran [M:SOR1] est également chargée avec le contrat. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de création d'une ligne d'avoir avec mouvement de stock pour un article dont la base de calcul de marge est le prix moyen lot ( GCALPFM=6 )
Le calcul de la marge est réeffectué lors de la création de la ligne. A ce niveau, le contexte n'est pas le même que lors de la saisie de la ligne. Le calcul s’effectue dans l'action INICRE_LIG de l'objet, lors de l’alimentation de la ligne détail facture [F:SID] à partir de l'écran [M:SIH4]. La variable NOL (nolign-1) contient l'indice de la ligne en cours de création dans le tableau des lignes [M:SIH4].
Les buffers [F :SIH], [F :SIV], [F :SID] sont chargés avec l'avoir en cours de création. Les écrans de l'objet facture sont chargés avec l'avoir en cours de création. On se situe juste avant l'écriture de l'enr [F:SID]. Les enregistrements [F :SIH], [F :SIV] sont écrits. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article.
. Lors de la modification des sorties de stocks sur une livraison validée depuis le click droit sur les lignes "Modification des sorties" en gestion des livraisons ( GCALPFM=7 )
La modification des sorties peut entrainer un recalcul du prix de revient dans le cas où l'on modifie le lot et où la base de calcul de marge est le prix moyen lot. Le calcul s’effectue dans l'action ENR de l'action SAISTOSORM lors des mises à jour complémentaires effectuées après enregistrement des modifications dans les stocks.
Les buffers [F :SDH], [F :SDD] sont chargés avec la livraisons. Les buffers [F :ITM], [F :ITS] sont chargés avec l'article. La classe écran [M:SOM] (écran de modification des sorties) est en ligne.
. Lors de la régularisation des prix depuis la fonction régularisation des prix ( GCALPFM=8 )pouvant mettre à jour la valeur des mouvements de stock liés à une livraison
Cette fonction peut mettre à jour la valeur des mouvements de stocks liés à une livraison. Elle recalcule le PMP ansi que les marges.
Les buffers [F :SDH], [F :SDD] sont chargés avec la livraison ainsi que les buffers [F :ITM], [F :ITS].
. Lors de la régularisation des prix depuis la fonction régularisation des stocks manquants ( GCALPFM=9)pour des livraisons validées ayant des mouvements en attente.Cette fonction entraine le recalcul du prix de revientet de la marge.
Les buffers [F :SDH], [F :SDD] sont chargés avec la livraison ainsi que les buffers [F :ITM], [F :ITS].
Dans tous les cas :
Le point d'entrée se situe après l'appel au sous-programme de calcul du prix de revient, et après calcul de la marge.
La variable XPFM contient la marge calculée
La variable XCPRPRI contient le prix de revient calculé.
Le point d'entrée permet donc d'intervenir sur ces 2 variables.
Notes importantes :
Le prix de revient XCPRPRI et la marge XPFM sont calculés pour une unité de vente et dans la devise du document.
Ces 2 valeurs doivent être arrondies en fonction du nombre de décimales du prix GDECPRI
Le sous-programme de calcul de marge étant commun à toutes les fonctions, il est nécessaire de connaître le contexte, il faudra utiliser la variable GCALPFM telle qu’indiqué précédemment.
Ce point d’entrée concerne le contrôle de la marge dans les ventes.
Il permet d’intervenir lors de l’affichage du message avertissant l’utilisateur que la marge est inférieure à la marge mini définie dans l’article vente. Il permet soit de le modifier soit de ne plus faire le contrôle.
Il est appelé lors de chaque contrôle du calcul de marge.
Il n'y a pas de transaction en cours.
Il n'y a pas de fichier trace ouvert.
Le PE est appelé dans le sous-programme CTLPFM de contrôle de la marge.
Ce sous-programme est appelé lors de la saisie de lignes de devis, commandes, contrat-article, livraisons, factures, en fin de ligne et à chaque fois que l’on modifie un élément entrant dans le calcul de la marge (après chaque recherche tarif, après modification du site d’expédition, des frais/remises, du prix de revient). Ce sous-programme est commun à toutes les fonctions de vente.
La classe écran liée à l'objet traité est chargée ([M:SQH], [M:SOH], [M:SDH], [M:SIH], [M:SOI]). On se trouve à l'intérieur du sous-programme CTLPFM.
Les variables suivantes sont les variables passées en paramètre du sous-programme :
· CUR : Devise du document
· XCPRPRI : Prix de revient de la ligne
· NLIG : Indice de la ligne dans le tableau. Non renseigné et non significatif si contrat-article.
Les variables suivantes sont chargées :
· WITMREF : Référence article
· WSAU : Unité de vente
· PFMRAT : % de marge calculé.
Lorsque le PE est appelé, le calcul du % de marge a été réalisé, ce % est inférieur au % mini défini dans l’article-vente.
GMESSAGE est chargé avec le message à afficher.
Le PE permet de modifier ce message. Pour cela, il faut modifier la variable GMESSAGE. Si GMESSAGE est remis à blanc, aucun message ne sera affiché et le contrôle ne sera pas actif (pas d’avertissement ou pas de blocage).
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMSALES | Oui | Article-vente |
Ce point d’entrée concerne le contrôle du prix net dans les ventes.
Il permet d’intervenir lors de l’affichage du message avertissant l’utilisateur que le prix net est inférieur au prix plancher défini dans l’article vente. Il permet soit de le modifier soit de ne plus faire le contrôle.
Il est appelé lors de chaque contrôle du calcul du prix net.
Il n'y a pas de transaction en cours.
Il n'y a pas de fichier trace ouvert.
Le PE est appelé dans le sous-programme CTLNETPRI de contrôle du prix net.
Ce sous-programme est appelé lors de la saisie de lignes de devis, commandes, contrat-article, livraisons, factures, en fin de ligne et à chaque fois que l’on modifie un élément entrant dans le calcul du prix net (après chaque recherche tarif, après modification du coefficient de conversion UV-US, des frais/remises). Ce sous-programme est commun à toutes les fonctions de vente.
La classe écran liée à l'objet traité est chargée ([M:SQH], [M:SOH], [M:SDH], [M:SIH], [M:SOI]). On se trouve à l'intérieur du sous-programme CTLNETPRI.
Les variables suivantes sont les variables passées en paramètre du sous-programme :
· BPC : Client
· CHGTYP : Type de prix
· DAT : Date
· CUR : Devise
· NLIG : Indice de la ligne dans le tableau. Non renseigné et non significatif si contrat-article.
Les variables suivantes sont chargées :
· WITMREF : Référence article
· WSAU : Unité de vente
· WNETPRINOT : Prix net HT
· MONT : Prix plancher calculé (converti dans la bonne unité et la bonne devise).
Lorsque le PE est appelé, le calcul du prix net HT a été réalisé, ce prix net HT est inférieur au prix plancher défini dans l’article-vente.
GMESSAGE est chargé avec le message à afficher.
Le PE permet de modifier ce message. Pour cela, il faut modifier la variable GMESSAGE. Si GMESSAGE est remis à blanc, aucun message ne sera affiché et le contrôle ne sera pas actif (pas d’avertissement ou pas de blocage).
Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…).
Table | Contenu significatif | Intitulé Table |
ITMSALES | Oui | Article-vente |
ITMMASTER | Oui | Article |
Ce point d’entrée concerne le calcul du prix net HT et TTC et de la marge dans les ventes.
Il permet d'intervenir avant le calcul de la marge lors du calcul du prix net HT et du prix net TTC.
Il est appelé lors de la saisie d'une ligne de document vente (devis, commande, livraison, facture, avoir)
Il n'y a pas de transaction en cours.
Il n'y a pas de fichier trace ouvert.
Une variable WABREV permet d’identifier le contexte et plus particulièrement le document traité :
WABREV= SQH2 Saisie ligne devis
WABREV= SOH4 Saisie ligne commande
WABREV= SDH1 Saisie ligne livraison
WABREV= SIH4 Saisie ligne facture
Ce point d’entrée est appelé dans le sous-programme de calcul de la marge. Ce sous-programme est un sous-programme commun à toutes les fonctions de vente. Il est appelé à chaque saisie d'une ligne (devis, commande, livraison, facture, avoir), chaque fois qu'il est nécessaire de recalculer la marge :
· Après saisie de la quantité
On effectue la recherche tarif dont on récupère le prix brut. On calcule ensuite le prix net et la marge.
· Après modification du prix brut ou d'une colonne frais/remise. Une telle modification engendre un recalcul du prix net et de la marge.
· Après validation de la ligne
La classe écran liée à l'OBJet traité est chargée ([M:SQH], [M:SOH], [M:SDH], [M:SIH]). On se trouve à l'intérieur du sous-programme CALPFM.
Les variables suivantes sont les variables passées en paramètre du sous-programme :
· MSK : Classe écran (Si non renseigné, MSK est chargé avec [M])
· NLIG : Indice de la ligne dans le tableau.
· PRI : Prix net de la ligne
· VAT : Tableau des 3 codes taxes de la ligne (VAT(0), VAT(1), VAT(2))
· PRITYP : Type de prix du document
· SIT : Site de stock
· LITM : Référence article
· CHGTYP : Type de cours
· DAT : Date du document
· CUR : Devise du document
· COEF : Coefficient de conversion unité de cde/unité de stock de la ligne
· INICPRPRI : Flag init du prix de revient (0=Pas d'init,1=Init sans raz,2=Init avec raz)
· XSTOMGTCOD : Flag mise à jour des stock
Les variables suivantes sont des variables de travail calculées par le sous-pro :
. LQTY : Quantité en unité de vente
. WITMREF : Référence article
. LCLCAMT1 : Montant de base de calcul de taxe1
. LCLCAMT2 : Montant de base de calcul de taxe2
Le point d'entrée se situe avant l'appel au sous-programme de calcul du prix net TTC en fonction du prix net HT dans le cas d'un document en HT, ou du prix net HT en fonction du prix net TTC dans le cas d'un document TTC.
Le sous-programme de calcul de marge étant commun à toutes les fonctions, s'il est nécessaire de connaître le contexte, il faudra utiliser la variable WABREV telle qu’indiqué précédemment.