Posizione nel menu
Programma non a menu
Linkage section
Tipo |
Dato |
Formato |
Contenuto |
INPUT |
D53-OPE |
x(20) |
Operazione da eseguire (vedi oltre) |
|
D53-DOCUMENTO |
tes-chia3 |
Documento da elaborare (dipende dalla operazione) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OUTPUT |
|
|
|
|
|
|
|
Logica generale
Questo programma centralizza le operazioni di invio di una lista di versamento/prelievo a Modula, a fronte dell'aggiornamento di un documento di magazzino.
Configurazioni
Gruppo |
Parametro |
Note |
|
|
|
Elaborazione
L'elaborazione cambia a seconda dell'operazione richiesta.
Nuova logica di funzionamento
In tutti i casi di aggiornamento di un documento (inserimento/variazione/cancellazione), se previsto è necessario inviare una lista di prelievo/versamento a Modula. quando ci sono variazioni rispetto al documento precedente.
In sintesi, a seconda del segno del movimento e della variazione effettuata, si dovrà effettuare la seguente operazione, a parità di merce:
Documento precedente |
Documento attuale |
Operazione |
Effetto su Modula |
Regola |
Documenti di entrata |
Si calcola la differenza tra precedente e attuale •0 -> Non si fa nulla •>0 -> Versamento (E) •<0 -> Prelievo (U) |
|||
" " |
E(1) |
Inserimento entrata di 1 |
Lista di versamento di 1 (1 - 0) |
|
E(1) |
E(1) |
Documento variato senza nessuna modifica |
Nessuna lista |
|
E(1) |
E(3) |
L'entrata viene variata e portata a 3 |
Lista di versamento di 2 (3 - 1) |
|
E(3) |
E(2) |
L'entrata viene variata e portata a 2 |
Lista di prelievo di 1 (2 - 3) |
|
E(2) |
" " |
L'entrata viene cancellata |
Lista di prelievo di 2 (0 - 2) |
|
Documenti di uscita |
Si calcola la differenza tra precedente e attuale •0 -> Non si fa nulla •>0 -> Prelievo (U) •<0 -> Versamento (U) |
|||
" " |
U(1) |
Inserimento uscita di 1 |
Lista di prelievo di 1 (1 - 0) |
|
U(1) |
U(1) |
Documento variato senza nessuna modifica |
Nessuna lista |
|
U(1) |
U(3) |
L'uscita viene variata e portata a 3 |
Lista di prelievo di 2 (3 - 1) |
|
U(3) |
U(2) |
L'uscita viene variata e portata a 2 |
Lista di versamento di 1 (2 - 3) |
|
U(2) |
" " |
L'uscita viene cancellata |
Lista di versamento di 2 (0 - 2) |
Questa elaborazione sarà effettuata tramite 3 chiamate successive a COGD53 da parte di un programma chiamante:
|
|
DOC-PRECEDENTE |
|
||
Sequenza |
Operazione |
Inserimento? |
Variazione |
Cancellazione? |
Modalità |
1 |
DOC-PRECEDENTE |
" " |
"12018I000100" |
"12018I000100" |
Si effettua la chiamata passando il documento prima della modifica o cancellazione del documento Inserirà nel file di transito il contenuto precedente del documento In caso di Inserimento, D53-DOCUMENTO sarà vuoto |
2 |
DOC-ATTUALE |
"12018I000100" |
"12018I000100" |
" " |
Si effettua la chiamata passando il riferimento al documento dopo la modifica Aggiornerà il file di transito con il contenuto attuale del documento (vedi schema precedente) Questa chiamata non viene effettuata in caso di cancellazione |
3 |
DOC-ESEGUI |
" " |
" " |
" " |
Scorre quello che rimane del file di transito, a parità di segno, riempe l'area D53-RIGHE ed esegue l'operazione standard per la creazione della lista di prelievo |
File di transito
Il programma usa un file di transito per alcune operazioni spiegate successivamente, strutturato come segue:
FILE-CONTROL
select cogtrans4 assign to random w-trs4-name
organization is indexed
access is dynamic
record key is trs4-chia1
alternate record key is trs4-chia2 = trs4-entrusc,
trs4-chia1
file status stato.
FILE SECTION
fd cogtrans4
label record standard.
01 trs4-rec.
02 trs4-chia1.
03 trs4-chiap.
04 trs4-testa.
05 trs4-mag1 pic x(01).
05 trs4-anno pic 9(04).
05 trs4-tipob1 pic x(01).
05 trs4-bolla1 pic 9(06).
04 trs4-prog pic 9(04).
* serve solo per evitare la chiave doppia
03 trs4-tipo pic x(01).
02 trs4-dati.
03 trs4-merce.
04 trs4-gru pic x(02).
04 trs4-sot pic x(02).
04 trs4-cod pic 9(05).
03 trs4-entrusc pic x(01).
03 trs4-qtamagaz pic 9(07)v9(03).
03 trs4-riga-canc pic x(01).
03 trs4-fl-var pic x(01).