Vai al contenuto

COGO74 — Elenco Fabbisogni

Sorgente: cbl/cogo74.cbl | Program-ID: COGO74 | Tipo: Programma GUI (maschera + stampa)

Menu: Ordini > Clienti > Stampe > Elenco Fabbisogni


Scopo

Stampa l'elenco dei fabbisogni di materiali derivanti da un ordine cliente. Per ciascuna riga dell'ordine, esplode le distinte base (attraverso consegne e movimenti DB) e produce un riepilogo consolidato dei componenti necessari con quantita' totali, raggruppati per codice merce. Utilizza un file di transito indicizzato per l'aggregazione.


Struttura della maschera

Screen: cogo74-01.scr

Campo Variabile Tipo Note
Anno ordine tm-anno 9(04) Obbligatorio
Numero ordine tm-numero 9(07) Obbligatorio
Progressivo tm-progr 9(01) Facoltativo

Logica di elaborazione

Inizializzazione (apri)

  1. z-99-init-program, ctr-abil, rd-azi, open-files.
  2. Crea un file di transito indicizzato temporaneo (#$cogo74.<operatore>) nella directory temp. Se gia' esistente, segnala "Funzione gia' in uso".
  3. Legge la configurazione stampa da RNEWCONF (percorso PRNTORDN00): formato pagina, data consegna, intestazione, FAX, descrizione aggiuntiva, numero colli, codice merce cliente.

Modalita' di chiamata

  • Da menu: mostra la maschera per l'input dei parametri.
  • Come subroutine (lku-nome = 'COGO74'): i dati arrivano dalla linkage (lku-anno, lku-numero, lku-progr), salta direttamente alla stampa.

Validazione (a-richiesta-conferma / x-imposta-conferma)

Verifica che anno/numero siano compilati e che l'ordine esista su COGTESOR (tipo 'C').

Creazione archivio di transito (s3-wr-trs)

Per ogni riga ordine (COGRIGOR):

  1. Legge la merce (COGMERCI) per determinarne il tipo distinta.
  2. Merce semplice (mer-padre <> "P" e mer-tipo-distinta <> "V"): scrive/aggiorna direttamente il record transito con la merce e la quantita' ordinata.
  3. Distinta base padre (mer-padre = "P"): esplode le consegne (COGCONOR), per ciascuna legge i movimenti di distinta base (COGMOVDB, tipo "CC") e somma le quantita' dei componenti nel transito.
  4. Distinta base virtuale (mer-tipo-distinta = "V"): legge i movimenti di distinta base (COGMOVDB, tipo "VO") e calcola mdb-qta * ror-qtaord per i componenti.
  5. Per ogni merce, legge il codice avanzato da COGRACMC.

Stampa (sta-20-loop)

Legge sequenzialmente il file di transito e produce una riga per componente con:

  • Codice merce formattato (via COGS68W)
  • Unita' di misura
  • Quantita' totale

L'intestazione include: data, azienda, numero pagina, dati cliente, riferimenti ordine, note. In coda stampa una tabella per annotazioni manuali (6 righe).

La stampa e' gestita tramite COGS54 (anteprima/conferma).

Chiusura (fine)

Chiude e cancella il file di transito temporaneo.


File utilizzati

File logico Variabile/Select Chiave Uso
FEURTAB (COGTABEL) feurtab euta-tipo + euta-cod Configurazione stampa
COGTESOR via cogo74.select tor-chia1 Testata ordini clienti
COGRIGOR via cogo74.select ror-chia1 Righe ordini
COGCONOR via cogo74.select cor-chia5 Consegne ordini (per distinte base)
COGMOVDB via cogo74.select mdb-chia1 (start notmin) Movimenti distinta base
COGMERCI via cogo74.select mer-chia Anagrafica merci
COGGEANA via cogo74.select ana-tipo + ana-cod Anagrafica clienti
COGRACMC cogracmc.k02 chiave 2 Codici merce avanzati
COGTRANS cogtrans (temp) trs-chia1 (= merce) File di transito (aggregazione fabbisogni)
FLSTA flsta.fd File stampa output

Programmi chiamati

Programma Modalita' Scopo
COGS54 CALL Gestione anteprima e stampa
COGS68W CALL (via z-s68) Formattazione codice merce
READCONF / RNEWCONF CALL Lettura configurazione da RNEWCONF

Copybook principali

Copybook Contenuto
utils52.cpy Subroutine calendario
utils54.cpy Subroutine stampa COGS54
utils68.cpy Subroutine formattazione merce COGS68
utilm96.cpy Utility per riferimenti ordine (m96-riga-ordine)
utilrcnf.cpy Lettura configurazione READCONF/RNEWCONF
cogracmc.k02 Chiave secondaria COGRACMC
cogazien.cpy Dati azienda

Struttura file di transito

Il file temporaneo cogtrans ha la seguente struttura:

Campo Pic Descrizione
trs-chia1 (= trs-merce) Chiave primaria = codice merce
trs-gru x(02) Gruppo merce
trs-sot x(02) Sottogruppo merce
trs-cod 9(05) Codice merce
trs-desc x(40) Descrizione merce
trs-um x(02) Unita' di misura
trs-codava x(20) Codice avanzato
trs-qta 9(06)v999 Quantita' totale aggregata