Points d'entrée > Module Ventes > Script standard SUBSDHA 

CALPORT : Calcul spécifique du port

Ce point d’entrée concerne la gestion des transporteurs.

Il permet de faire un calcul spécifique du port. Il remplace le calcul standard effectué par la recherche des tarifs transporteurs.

Il est appelé dans le traitement de gestion des livraisons SUBSDHA lors de la création ou de la modification d'une livraison. Il est également appelé après la saisie de la fenêtre adresse livraison.

Contexte et mode de fonctionnement

Transaction

Il n'y a pas de transaction en cours lorsque le point d'entrée est appelé au moment de la création, modification d'une livraison.

Il y a une transaction en cours lorsqu'il est appelé après saisie de la fenêtre adresse livraison. (Transaction de mise à jour de l'adresse et du montant port dans le fichier entête livraison).

Fichier trace

Il n'y a pas de fichier trace ouvert.

Différents cas d’appel - Variables et masques disponibles

Ce point d’entrée est appelé dans la gestion des livraisons :

·               Au moment de la création ou de la modification d'une livraison, lors de la recherche du tarif transporteur.

La recherche du tarif transporteur se situe dans les actions VERIF_CRE (lors d'une création de livraison) et VERIF_MOD (lors d'une modification de livraison). Ces actions sont exécutées avant le début de la transaction d'écriture ou de réécriture. La variable OK est égale à 1. On peut la positionner à 0 si on ne désire pas effectuer la transaction.

La classe écran [M:SDH] liée à l'OBJet livraison est chargée, le buffer [F:SDH] n'est pas encore chargé.

·               Lorsque l'on modifie l'adresse livraison par l'option adresse livraison du menu (Si l'on est pas en phase de création, duplication ou si l'on a pas encore effectué de modification).

Si les zones pays, ville ou code postal ont été modifiées et si l'utilisateur demande à effectuer une nouvelle recherche du tarif transporteur.

La classe écran [M:SDH] liée à l'OBJet livraison est chargée. Le buffer [F:SDH] est bien chargé car l'enregistrement a été lu avec lock.

 

Les variables suivantes sont utilisées :

·               WDACDLV (local integer) est chargé avec le n° de l'élément de facturation du port donné par le paramêtre FRENUM.

·               WCRY (local char)

WCTY (local char)

WPOSCOD (local char)    :

Si rien n'a été saisi dans la fenêtre adresse livraison, ces variables sont chargées avec le code pays, la ville et le code postal du client livré (par lecture de l'adresse du client livré dans la tables des adresses) sinon elles sont chargées avec les codes saisis dans la fenêtre adresse livraison.

·              WPOINT_ENTREE (local integer)    :

Elle est initialisée à 0. Positionnée à 1, elle permet d'inhiber la recherche standard du tarif transporteur.

·         LAMTFRE (local decimal)        :

Montant du port calculé.

·         STAT (local integer)      :

Statut de retour. Positionnée à 0, elle permet le chargement du montant de port calculé dans le tableau des éléments de facturation de la livraison et son affichage.

La recherche du tarif transporteur est effectuée si le paramètre FRENUM correspondant au n° d'élément de facturation du port est différent de 0 et si la lecture de cet élément de facturation dans la table des éléments s'est bien passée (WDACDLV chargée).

C'est ici qu'est appelé le point d'entrée CALPORT.

Ensuite s'effectue la recherche standard du tarif transporteur si WPOINT_ENTREE vaut 0.

Ensuite s'effectue le chargement du montant de port calculé dans le tableau des éléments de facturation et l'affichage si STAT = 0.

Le point d'entrée CALPORT doit donc :

.        Positionner WPOINT_ENTREE à 1.

.        Positionner LAMTFRE avec le montant de port calculé.

.        Positionner STAT à 0 pour que la prise en compte de ce montant soit effectuée.

.        Positionner OK à 0 s'il ne faut pas effectuer la transaction de création/modification (dans le cas d'appel en VERIF_CRE et VERIF_MOD).

 

Tables ouvertes

Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…). Traditionnellement, c’est le cas pour le fichier qui contient l’en-tête et pas pour celui qui contient les lignes…

Table

Contenu significatif

Intitulé Table

SDELIVERY

Non

Oui (si depuis menu

Adresse livraison)

Livraisons entête

SDELIVERYD

Non

Livraisons ligne

SORDER

Non

Commandes entête

SORDERQ

Non

Commandes ligne quantité

SORDERP

Non

Commandes ligne prix

SORDERC

Non

Commandes article / client (cdes ouvertes)

BPARTNER

Non

Tiers

BPCUSTOMER

Non

Clients

BPDLVCUST

Non

Clients livrés

BPCUSTMVT

Non

Mouvements clients

SALESREP

Non

Représentants

STOALL

Non

Allocations

ITMMASTER

Non

Articles

ITMSALES

Non

Articles vente

ITMBPC

Non

Articles clients

ITMFACILIT

Non

Articles sites

ITMMVT

Non

Mouvements articles

TABCUR

Non

Devises

FACILITY

Non

Sites

SPRICLINK

Non

Recherche tarif vente (link)

PRICSTRUCT

Non

Structure tarif

SFOOTINV

Oui

Eléments de facturation

BPADDRESS

Oui (ssi fenetre adresse livraison vide)

Adresses

 

UPDCFMSDD : Maj fichiers spécifiques avant maj d'une ligne de livraison validée

Ce point d’entrée intervient lors de la modification d’une ligne de livraison validée.

Il permet de prendre la main juste avant la mise à jour de la ligne de livraison pour mettre à jour des tables spécifiques.

Il est appelé dans la gestion des livraisons, lors de l’utilisation du click droit « Modification sorties» disponible sur une ligne de livraison validée (c’est le seul moyen permettant de modifier une ligne de livraison validée, la modification correspond uniquement à la modification des mouvements de stock et donc à la quantité livrée).

Contexte et mode de fonctionnement

Transaction

Il y a une transaction en cours. C’est la transaction de maj des mouvements de stock et de maj de la livraison.

Pour annuler la transaction s’il y a un problème, il faut positionner la variable GOK à 0.

Fichier trace

Il n’y a pas de fichier trace ouvert.

Contexte d’appel

Le PE se situe au niveau de la fenêtre de modification des sorties, après avoir saisi la modification et appliqué le bouton « Enregistrer ».

Il est appelé dans l’action ENR de l’action SAISTOSOM.

On se trouve dans la transaction de maj des mouvements de sortie. La maj des mouvements de sortie a été réalisée.

On se trouve au niveau des mises à jour complémentaires ce qui correspond dans ce cas précis à la mise à jour de la ligne de livraison après lecture de la ligne et avant sa maj ou sa suppression (si la nouvelle qté livrée est à 0).

Variables et masques disponibles

La classe écran [M :SOM] est en ligne :

                     [M :SOM]NBLIG contient le nombre de ligne de stock traité

                     [M :SOM]SORQTY contient la quantité US qui était à sortir

                     [M :SOM]SORQTYACT contient la quantité en UA qui était à sortir

                     [M :SOM]PECQTY contient la quantité US sortie

                     [M :SOM]PECQTYACT contient la quantité en UA sortie

                     [M :SOM]SHTQTY contient la quantité manquante

Un readlock a été réalisé sur l’enregistrement détail livraison ([F:SDD] chargé)

Les écrans [M :SDH0], [M :SDH1], [M :SDH2], [M :SDH3] sont en ligne et chargés avec les données de la livraison.

LNOL contient l’indice de la ligne de livraison que l’on est entrain de traiter dans le tableau des lignes de livraisons.

La variable LQTYSTU contient la nouvelle quantité livrée en US. Elle correspond à : [M:SOM]PECQTY+[M:SOM]SHTQTY.

La variable LQTY contient la nouvelle quantité livrée en UV.

La variable DELTAQTYSTU contient la différence en US entre la nouvelle et l’ancienne qté livrée.

La variable DELTAQTY contient la différence en UV entre la nouvelle et l’ancienne qté livrée.

Tables ouvertes

Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (le client courant est chargé…). Traditionnellement, c’est le cas pour le fichier qui contient l’en-tête et pas pour celui qui contient les lignes…

Table

Contenu Significatif

Intitulé Table

ITMCATEG

Oui

Catégorie articles

ITMMASTER

Oui

Articles

ITMFACILIT

Oui

Article-site

ITMMVT

Oui

Mouvements articles

TABALLRUL

Non

Règles d’allocations/sortie

TABSTORUL

Non

Règles de gestion des stock

STOLOT

Non

Numéros de lot

STOCK

Non

Stocks

STOSER

Non

Numéro de série

STOWIPW

Non

Stocks en cours de traitement

STOJOU

Non

Journal des stocks

ITMSALES

Oui

Article-vente

ITMBPC

Oui

Article-client

SDELIVERY

Non

Entête livraison

SDELIVERYD

Oui

Détail livraison

 

MAJ_COLISAGE : Permet de court-circuiter la mise à jour des données colisage

Ce point d’entrée intervient lors de l'enregistrement de la livraison .

Il permet de court-circuiter la mise à jour des données colisage de la table SDELIVERY (Entête livraison)

Contexte et mode de fonctionnement

Transaction

Il y a une transaction en cours. Pour annuler la transaction s’il y a un problème, il faut positionner la variable GOK à 0.

Fichier trace

Il n’y a pas de fichier trace ouvert.

Contexte d’appel

Le PE se situe dans l étiquette MODIF du traitement SUBSDHA.

Il permet de court-circuiter la mise à jour des données colisage de la table SDELIVERY (Entête livraison) en positionnant la variable GPE à 1.  La mise à jour des données colisage (appel de l étiquette COLISAGE_ORIGINE du traitement FUNPKD) est déclanchée si un colisage existe. Un colisage existe si le nombre de colis ([F:SDH]PACNBR) est > 0  et qu'au moins un détail colis existe (variable WSPD est > 0)

Données concernées : [F:SDH]PACFLG : Colisage réalisé

                                  [F:SDH]PACNBR : Nombre colis

                                  [F:SDH]NETWEI : Poids net

                                  [F:SDH]GROWEI : Poids brut

                                  [F:SDH]VOL : Volume

                                  [F:SDH]VOU : Unité volume

Variables et masques disponibles

Les écrans [M :SDH0], [M :SDH1], [M :SDH2], [M :SDH3] sont en ligne et chargés avec les données de la livraison.

Variable  GPE initialiée à 0

Variable WSPD à 1 si au moins un détail colisage existe

Tables ouvertes

Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte Traditionnellement, c’est le cas pour le fichier qui contient l’en-tête et pas pour celui qui contient les lignes…

Table

Contenu Significatif

Intitulé Table

ITMCATEG

Non

Catégorie articles

ITMMASTER

Non

Articles

ITMFACILIT

Non

Article-site

ITMMVT

Non

Mouvements articles

TABALLRUL

Non

Règles d’allocations/sortie

TABSTORUL

Non

Règles de gestion des stock

STOLOT

Non

Numéros de lot

STOCK

Non

Stocks

STOSER

Non

Numéro de série

STOWIPW

Non

Stocks en cours de traitement

STOJOU

Non

Journal des stocks

ITMSALES

Non

Article-vente

ITMBPC

Non

Article-client

SDELIVERY

Oui

Entête livraison

SDELIVERYD

Non

Détail livraison