Entry Points > Modulo Acquisti > Script standard TRTACHMGT1 

PECBESOINS: Modifica delle quantità considerate

Questo entry point situato nel programma TRTACHMGT1 presa in considerazione dei fabbisogni partendo dai piani di lavoro (planning globale, piano di lavoro e raggruppamento), genera un'azione "PECBESOINS".

Lo scopo di tale azione è dare la possibilità di convertire in unità fisica la quantità del fabbisogno preso in considerazione.

Ciò avviene in funzione della denominazione di default dell'articolo ma solo per i fabbisogni non generati da un documento di acquisto.

Contesto e modalità di funzionamento

Transazione

Non c'è transazione in corso.

File traccia

C'è un file traccia aperto.

Diversi casi di chiamata

La chiamata si effettua per ciascuna riga di fabbisogno considerato nel piano di lavoro.

Variabili e videate disponibili

Le variabili seguenti sono caricate al momento della chiamata dell'azione "PECBESOINS".

TRAIT

Tipo di elaborazione dei fabbisogni considerata:

- 4 = Per creazione di richieste di acquisto

- 5 = Per creazione di ordini classici

- 6 = Per creazione di richieste di consegna (ordini aperti)

ABREV

Abbreviazione della videata utilizzata ("PMG")

La videata [M:PMG] è utilizzabile, la variabile I indica la riga del riquadro in corso di elaborazione

[M:PMG]WIPTYP(I)

Tipo d'ordine:

- 2 = « PO » Ordine fornitore

- 4 = « SC » Servizio conto lavoro

- 7 = « TR » Trasferimento riapprovvigionamento

[M:PMG]WIPSTA(I)

Stato dell'ordine:

- 1 = « F » Confermato

- 2 = « P » Pianificato

- 7 = « S » Suggerito

Le variabili e classi precedenti non devono essere modificate.

La seguente variabile deve essere modificata per influenzare il programma della presa in considerazione dei fabbisogni.

RMNQTY

Quantità del fabbisogno considerato espressa in:

- unità di magazzino fisica se il fabbisogno proviene da un documento di acquisto (« POP », « POF », « TRP », « TRF »

-o in unità di magazzino attiva se il fabbisogno non proviene da un documento di acquisto (« POS », « TRS », « SCF » … ecc …)

-

Esempio di un programma specifico attivato dall'entry point PECBESOINS:

$ACTION

Case ACTION

When "PECBESOINS" : Gosub PECBESOINS

When "ORDLEC" : Gosub ORDLEC

When "ORDMAJ" : Gosub ORDMAJ

Endcase

Return

#----- Conversione della quantità del fabbisogno considerato in unità fisica -----#

$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

#----- Conversione delle quantità in unità fisica dopo lettura [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

#----- Conversione delle quantità in unità attiva se fabbisogni generati dagli acquisti -----#

$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

Tabelle aperte

Nel riquadro qui sotto, il flag contenuto significativo significa che il contenuto è allineato con il contesto.

Tabella

Contenuto significativo

Descrizione Tabella

ORDERS

No

Incorso

ITMMASTER

No

Articoli

ITMBPS

No

Articoli - Fornitori

PREQUIS

Se TRAIT = 4

Richieste d'acquisto testate

PREQUISD

Se TRAIT = 4

Richieste d'acquisto righe

PORDER

Se TRAIT = 5 o 6

Ordini d'acquisto testate

PORDERC

Se TRAIT = 6

Righe articoli contratti

PORDERP

Se TRAIT = 5 o 6

Righe ordini d'acquisto prezzo

PORDERQ

Se TRAIT = 5 o 6

Righe ordini d'acquisto quantità

Osservazioni diverse

Questo entry point deve essere utilizzato obbligatoriamente con altri due entry point ORDMAJ e ORDLEC al fine di elaborare opportunamente il problema degli articoli denominati (quantità in unità attive per gli incorso e in unità fisiche per i documenti acquisto).

ORDLEC: Modifica delle quantità dopo lettura dell'incorso

Questo entry point situato nel programma TRTACHMGT1 presa in considerazione dei fabbisogni partendo dai piani di lavoro (planning globale, piano di lavoro e raggruppamento), genera un'azione "ORDLEC".

Lo scopo di tale azione è dare la possibilità di convertire in unità fisica le quantità dell'incorso appena letto.

Ciò avviene in funzione della denominazione di default dell'articolo, essendo le quantità dell'incorso sempre espresse in unità attiva.

Contesto e modalità di funzionamento

Diversi casi di chiamata

La chiamata si effettua dopo la lettura di un record della tabella ORDERS nei programmi del modulo acquisti.

Variabili e videate disponibili

La classe [F :ORD] è caricata al momento della chiamata dell'azione "ORDLEC".

Le seguenti quantità devono essere convertite in unità fisica se l'articolo è « denominato »:

[F :ORD]EXTQTY

Quantità prevista

[F :ORD]CPLQTY

Quantità realizzata

[F :ORD]RMNEXTQTY

Quantità restante

Esempio di un programma specifico attivato dall'entry point ORDLEC:

$ACTION

Case ACTION

When "PECBESOINS" : Gosub PECBESOINS

When "ORDLEC" : Gosub ORDLEC

When "ORDMAJ" : Gosub ORDMAJ

Endcase

Return

#----- Conversione della quantità del fabbisogno considerato in unità fisica -----#

$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

#----- Conversione delle quantità in unità fisica dopo lettura [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

#----- Conversione delle quantità in unità attiva se fabbisogno generato dagli acquisti -----#

$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

Tabelle aperte

Nel riquadro qui sotto, il flag contenuto significativo significa che il contenuto è allineato con il contesto.

Tabella

Contenuto significativo

Descrizione Tabella

ORDERS

Sì 

Incorso

ITMMASTER

No

Articoli

Osservazioni diverse

Questo entry point deve essere utilizzato obbligatoriamente con altri due entry point PECBESOINS e ORDMAJ al fine di elaborare opportunamente il problema degli articoli denominati (quantità in unità attive per gli incorso e in unità fisiche per i documenti acquisto).