Points d'entrée > Module Données de base > Script standard TRTWIP 

MAJITMMVT : Mise à jour complémentaire de fichiers suite à mise à jour d'encours

Présentation

Ce point d'entrée concerne la gestion des en cours de stock.

Il permet de faire des mises à jour complémentaires de fichiers après chaque opération sur un en cours de stock.

Contexte et mode de fonctionnement

Transaction

Il y a une transaction en cours. La variable GOK est positionnée à 1.

Différents cas d’appel

Ce point d'entrée est appelé dans le traitement TRTWIP qui est lui même appelé depuis chaque traitement (Stock, Achat, Vente, Production) permettant la création, modification ou suppression d’un en cours de stock.

 

Variables significatives

WMAJCOD contient :         " C " si on écrit un enregistrement ORDERS

         " M " si on réécrit un enregistrement ORDERS

         " A " si on supprime un enregistrement ORDERS

Si WMAJCOD = « M »

               WRMNEXTQTY contient la quantité restante avant réécriture de l’En cours avec sa nouvelle quantité.

               WOLDWIPSTA contient l’ancien statut de l’en cours (1 = « Ferme », 2 = « Planifié », 3= « Suggéré », 4 = « Clos »).

 

 
Tables ouvertes

Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte (la livraison courante est chargée… mais les lignes).

Table

Contenu significatif

Intitulé Table

ORDERS

OUI

En cours de stock [F:ORDW]

 

 

 

 

Ecrans ouverts

Ecran

Contenu significatif

Intitulé Ecran

ORDK

OUI

Paramètres en cours de stock

 

 

 

 
Cas particulier

Pour alimenter un cumul besoin (BESSTO par exemple) dans la table Cumuls articles-sites (ITMMVT), il faut procéder de la façon suivante :

Pour les ordres

- SOF          (Commande vente)                ( [M:ORDK]WIPTYP=1 et [M:ORDK]WIPSTA=1 )

- MWF         (Matières fabrication)             ( [M:ORDK]WIPTYP=6 et [M:ORDK]WIPSTA=1 )

- TPF           (Demande inter-site)              ( [M:ORDK]WIPTYP=8 et [M:ORDK]WIPSTA=1 )

Si WMAJCOD = " C "

[F :ITV]BESSTO += [F:ORDW]RMNEXTQTY

Si WMAJCOD = " M "

               Si WOLSWIPSTA = 2 ou WOLDWIPSTA = 3 et [F :ORD]WIPSTA = 1 (on passe de « Planifié/Suggéré » à « Ferme)

                                [F :ITV]BESSTO += [F :ORDW]RMNEXTQTY

               Sinon

                               [F :ITV]BESSTO += [F:ORDW]RMNEXTQTY - WRMNEXTQTY

Si WMAJCOD = " A "

[F :ITV]BESSTO -= [F:ORDW]EXTQTY – [F :ORDW]CPLQTY

ORDMAJ : Mise à jour de zones spécifiques du fichier encours ORDERS

Ce point d'entrée concerne la gestion des en cours de stock.

Il permet de prendre la main juste avant  la création ou la modification de l’enregistrement encours  (ceci permettant, par exemple, d’initialiser des zones spécifiques ou de recalculer les quantités en unité active).

Contexte et mode de fonctionnement

Transaction

Il y a une transaction en cours. La variable GOK est positionnée à 1.

Différents cas d’appel

Ce point d'entrée est appelé en création et modification dans le traitement TRTWIP qui est lui même appelé depuis chaque traitement (Stock, Achat, Vente, Production) permettant la création d’un encours de stock.

Il conviendra donc de tester éventuellement les variables GFONCTION et WMAJCOD afin de connaître le contexte d’appel.

 

Variables significatives

WMAJCOD contient :

         " C " si on écrit un enregistrement ORDERS

         " M " si on réécrit un enregistrement ORDERS

A noter que pour le recalcul des quantités en unité active, seules les ordres issus des achats sont concernés.

Ci dessous, un exemple de traitement spécifique pour gérer ce besoin :

$ACTION

Case ACTION

  When "ORDMAJ" :  Gosub ORDMAJ

  When Default

Endcase

Return

 

#-----------------------------------#

# Conversion qtés en unité active   #

# pour les ordres issus des achats  # 

#   - [F:ORDW]RMNEXTQTY              #

#   - [F:ORDW]CPLQTY                 #

#   - [F:ORDW]EXTQTY                 #

#-----------------------------------#

$ORDMAJ

If find([F:ORDW]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)="P"

    If [F:ITM]ITMREF<>[F:ORDW]ITMREF

       Read [ITM] ITM0=[F:ORDW]ITMREF : If fstat  Raz [F:ITM] : Endif

    Endif

    If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0

       [F:ORDW]RMNEXTQTY=[F:ORDW]RMNEXTQTY*[F:ITM]DEFPOT/100

       Call QTEARR ([F:ORDW]RMNEXTQTY,[F:ITM]STU) From TRTDIV

       If [F:ORDW]CPLQTY <> 0

           [F:ORDW]CPLQTY=[F:ORDW]CPLQTY*[F:ITM]DEFPOT/100

           Call QTEARR ([F:ORDW]CPLQTY,[F:ITM]STU) From TRTDIV

       Endif

       If [F:ORDW]EXTQTY <> 0

           [F:ORDW]EXTQTY=[F:ORDW]EXTQTY*[F:ITM]DEFPOT/100

           Call QTEARR ([F:ORDW]EXTQTY,[F:ITM]STU) From TRTDIV

       Endif

    Endif

Endif

Return

 

 

 

Tables ouvertes

Dans le tableau ci-dessous, le flag contenu significatif signifie que le contenu est en phase avec le contexte.

Table

Contenu significatif

Intitulé Table

ORDERS

OUI

En cours de stock

 

 

 

 

Ecrans ouverts

Ecran

Contenu significatif

Intitulé Ecran

ORDK

OUI

Paramètres en cours de stock