COGD64 -- Ristampa Assegnazione carico¶
Sorgente: cbl/cogd64.cbl | Tipo: Programma maschera con stampa (mmmask) | Program-ID: COGD64
Menu: Magazzino > Entrate > Stampe
Scopo¶
Ristampa il dettaglio di un documento di carico a magazzino, mostrando per ogni riga di entrata la quantita' del documento, la quantita' residua ancora da assegnare e il dettaglio delle assegnazioni (impegni carico) con lotti, ordini di lavorazione e distinte collegate.
File e tabelle¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | File tabelle di sistema (path file) |
| COGTESBO | Input | Testata bolle/documenti; chiave 3 = tm-documento (mag+anno+tipo+bolla) |
| COGMOMAG | Input | Movimenti di magazzino; chiave mag-testa = testata documento, filtro mag-entrusc = "E" (entrata) |
| COGIMPCA | Input | Impegni carico; chiave mpc-doc = chiave movimento (mag-chiap) |
| COGGENER | Input | Tabella generica; chiave secondaria 2, tipo "LP" = lotti produzione |
| COGLAVOR | Input | Ordini di lavorazione; chiave cla-anno + cla-numero |
| COGMERCI | Input | Anagrafica merci (per descrizione, via COGS68W) |
| FLSTA | Output | File stampa |
Copybook principali¶
cogd64.select,cogd64.fd,cogd64.wrk,cogd64.decla,cogd64.prc,cogd64-01.scr-- File screen-generatedcogfiles.cpy-- Record FD di FEURTABflsta.cpy-- File stampautils52.cpy-- Utility date (COGS52)utils54.cpy-- Utility stampa (COGS54)utils68.cpy-- Utility descrizione merce (COGS68W)coggener.k02-- Chiave secondaria 2 di COGGENER
Struttura del programma¶
main section
apri -- Init, open file, configurazione tasti
a4 -- Init maschera, display
a-tm-mag -- Accept magazzino
a-tm-anno -- Accept anno
a-tm-tip-doc -- Accept tipo documento (C/R)
a-tm-bolla -- Accept numero bolla
a-fine-intestazione -- Validazione e avvio stampa
fine / z-chiudi -- Chiusura e uscita
Stampa:
stampa-dati -- Configura stampante (COGS54), legge testata, loop movimenti
stampa-dati-loop -- Loop su COGMOMAG: filtra solo entrate, stampa riga + impegni
stampa-dati-fine -- Chiusura stampa
stampa-testa -- Intestazione pagina (azienda, data, documento, colonne)
stampa-riga -- Riga merce: descrizione (COGS68W), qta documento, qta residua
calcola-qta-modula -- Calcola qta residua: qta documento - somma impegni carico
stampa-impca -- Loop impegni carico per la riga corrente
cerca-altri-dati -- Per ogni impegno: cerca lotto (COGGENER tipo "LP"), ordine lavorazione (COGLAVOR), distinta
Validazione:
x-controlla-tm-mag -- Magazzino obbligatorio
x-controlla-tm-anno -- Controllo anno (sempre OK)
x-controlla-tm-tip-doc -- Tipo documento: solo "C" o "R"
x-controlla-tm-bolla -- Numero obbligatorio, verifica esistenza in COGTESBO
x-controlla-intestazione -- Validazione complessiva
Logica di elaborazione¶
-
Input: l'utente inserisce magazzino, anno, tipo documento (C=carico, R=reso) e numero bolla. Il sistema verifica l'esistenza del documento in COGTESBO.
-
Stampa dati (
stampa-dati): - Configura stampante via COGS54 (132 colonne).
- Legge testata documento (
tes-chia3 = tm-documento). - Posiziona su COGMOMAG con
mag-testa = tes-chia3. -
Loop su tutti i movimenti del documento; filtra solo quelli con
mag-entrusc = "E"(entrata). -
Per ogni riga di entrata (
stampa-riga): - Descrizione merce via COGS68W (con parametri funzione
COGD64S). - Quantita' documento:
mag-qtamagaz. -
Quantita' residua: calcolata come
mag-qtamagazmeno la somma dimpc-qtada COGIMPCA per lo stesso movimento (mag-chiap). -
Per ogni impegno carico (
stampa-impca): - Stampa tipo, riferimento documento, quantita'.
-
Cerca dati aggiuntivi in COGGENER (tipo "LP", chiave secondaria 2 =
mpc-rif-doc):- Se trovato: estrae anno/numero lotto.
- Da COGLAVOR: recupera ordine di lavorazione (
cla-ord-aa/cla-ord-num) e distinta (cla-gru/cla-sot/cla-cod).
-
Impaginazione: salto pagina automatico quando
num-rig > max-righe(calcolato comes54-stm-lin - 7). -
CALL chain:
COGS52(date),COGS54(stampa),COGS68W(descrizione merce).