Points d'entrée > Module Achats > Script standard TRTACHMGT1 

PECBESOINS : Modification des quantités prise en compte

Ce point d'entrée situé dans le traitement TRTACHMGT1 prise en compte des besoins à partir des plans de travail (planning global, plan de travail et regroupement), génère une action "PECBESOINS".

Le but de cette action est de donner la possibilité de convertir en unité physique la quantité du besoin pris en compte.

Ceci se fait  en fonction du titre par défaut de l’article mais seulement pour les besoins non issus d’un document achat.

Contexte et mode de fonctionnement

Transaction

Il n’y a pas de transaction en cours.

Fichier trace

Il y a un fichier trace ouvert.

Différents cas d’appel

L'appel se fait pour chaque ligne de besoin pris en compte dans les plans de travail.

Variables et masques disponibles

Les variables suivantes sont chargées lors de l'appel de l'action "PECBESOINS".

TRAIT

Type de traitement des besoins pris en compte :

-          4 = Pour création de demandes d’achat

-          5 = Pour création de commandes classiques

-          6 = Pour création de demandes de livraison (commandes ouvertes)

ABREV

Abréviation du masque écran utilisé ("PMG")

Le masque écran [M:PMG] est utilisable, la variable I indique la ligne du tableau en cours de traitement

[M:PMG]WIPTYP(I)

Type d’ordre :

-          2 = « PO » Commande fournisseur

-          4 = « SC » Service sous-traitance

-          7 = « TR » Transfert réapprovisionnement

[M:PMG]WIPSTA(I)

Statut de l’ordre :

-          1 = « F » Ferme

-          2 = « P » Plannifié

-          7 = « S » Suggéré

Les variables et classes précédentes ne doivent pas être modifiées.

La variable suivante doit être modifiée pour influencer le traitement de la prise en compte des besoins.

RMNQTY

Quantité du besoin pris en compte exprimée en :

-          unité de stock physique si le besoin est issu d’un document d’achat (« POP », « POF », « TRP », « TRF »

-                    ou en unité de stock active si le besoin n’est pas issu d’un document d’achat (« POS », « TRS », « SCF » … etc …)

-                     

Exemple d’un traitement spécifique activé par le point d’entrée PECBESOINS :

$ACTION

Case ACTION

  When "PECBESOINS" : Gosub PECBESOINS

  When "ORDLEC" : Gosub ORDLEC

  When "ORDMAJ" : Gosub ORDMAJ

Endcase

Return

#----- Conversion de la quantité du besoin pris en compte en unité physique -----#

$PECBESOINS

If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)

  If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)

    Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat  Raz [F:ITM] : Endif

  Endif

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

    [L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT

    Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV

 Endif

Endif

Return

#----- Conversion des quantités en unité physique après lecture [F:ORD] -----#

$ORDLEC

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

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

Endif

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

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

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

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

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

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

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

Endif

Return

#----- Conversion des quantités en unité active si besoins issus des achats -----#

$ORDMAJ

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

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

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

  Endif

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

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

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

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

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

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

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

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

Non

Encours

ITMMASTER

Non

Articles

ITMBPS

Non

Articles – Fournisseurs

PREQUIS

Si TRAIT = 4

Demandes d’achat entêtes

PREQUISD

Si TRAIT = 4

Demandes d’achat lignes

PORDER

Si TRAIT = 5 ou 6

Commandes d’achat entêtes

PORDERC

Si TRAIT = 6

Lignes articles contrats

PORDERP

Si TRAIT = 5 ou 6

Lignes commandes d’achat prix

PORDERQ

Si TRAIT = 5 ou 6

Lignes commandes d’achat quantité

Remarques diverses

Ce point d’entrée doit être utilisé obligatoirement avec deux autres points d’entrée ORDMAJ et ORDLEC afin de traiter convenablement le problème des articles titrés (quantités en unités actives pour les encours et en unités physiques pour les documents achats).

 

ORDLEC : Modification des quantités après lecture de l'encours

Ce point d'entrée situé dans le traitement TRTACHMGT1 prise en compte des besoins à partir des plans de travail (planning global, plan de travail et regroupement), génère une action "ORDLEC".

Le but de cette action est de donner la possibilité de convertir en unité physique les quantités de l’encours qui vient d’être lu.

Ceci se fait  en fonction du titre par défaut de l’article, les quantités de l’encours étant toujours exprimées en unité active.

Contexte et mode de fonctionnement

Différents cas d’appel

L'appel se fait après la lecture d’un enregistrement de la table ORDERS dans les traitements du module achats.

Variables et masques disponibles

La classe [F :ORD] est chargée lors de l'appel de l'action "ORDLEC".

Les quantités suivantes doivent être converties en unité physique si l’article est « titré » :

[F :ORD]EXTQTY

Quantité prévue

[F :ORD]CPLQTY

Quantité réalisée

[F :ORD]RMNEXTQTY

Quantité restante

Exemple d’un traitement spécifique activé par le point d’entrée ORDLEC :

$ACTION

Case ACTION

  When "PECBESOINS" : Gosub PECBESOINS

  When "ORDLEC" : Gosub ORDLEC

  When "ORDMAJ" : Gosub ORDMAJ

Endcase

Return

#----- Conversion de la quantité du besoin pris en compte en unité physique -----#

$PECBESOINS

If find(TRAIT,4,5,6) & ABREV="PMG" & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)

  If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)

    Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat  Raz [F:ITM] : Endif

  Endif

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

    [L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT

    Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV

 Endif

Endif

Return

#----- Conversion des quantités en unité physique après lecture [F:ORD] -----#

$ORDLEC

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

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

Endif

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

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

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

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

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

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

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

Endif

Return

#----- Conversion des quantités en unité active si besoins issus des achats -----#

$ORDMAJ

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

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

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

  Endif

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

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

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

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

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

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

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

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

Encours

ITMMASTER

Non

Articles

Remarques diverses

Ce point d’entrée doit être utilisé obligatoirement avec deux autres points d’entrée PECBESOINS et ORDMAJ afin de traiter convenablement le problème des articles titrés (quantités en unités actives pour les encours et en unités physiques pour les documents achats).