Vai al contenuto

COGF89 - Ricostruzione saldi imballi (ricreazione da movimenti)

Sorgente: cbl/cogf89.cbl | Tipo: interattivo GUI a maschera con elaborazione batch | Program-ID: COGF89

Menu: Sistema > Archivi > Ricostruzioni > Saldi Imballi


Scopo

COGF89 ricostruisce da zero i saldi degli imballi/vuoti (file saldi imballi COGSLIMB) riscandendo tutti i movimenti di magazzino (COGMOMAG) relativi agli articoli di tipo imballo. Serve a riallineare i saldi degli imballi resi/da rendere alle movimentazioni effettive, correggendo eventuali disallineamenti.

L'operatore puo' limitare la ricostruzione a una singola merce (tm-merce, gruppo/sottogruppo/codice); lasciandola vuota (valore k-merce-null) elabora tutti gli imballi. La funzione e' utilizzabile solo se e' attiva la gestione Cauzioni/imballi (az-imballi = "SI"), altrimenti termina con avviso.

L'azzeramento e l'aggiornamento dei saldi non avvengono direttamente in COGF89 ma sono delegati alla subroutine COGS91, canale unico di manutenzione dei saldi imballi.

File e tabelle principali

File/Tabella Copybook / definizione Uso
COGMOMAG record mag-recz (cogmomag.cpy) Movimenti di magazzino: scanditi integralmente in sequenza; sorgente dei movimenti imballo da risommare
COGMERCI mer-rec (cogmerci.cpy), chiave mer-chia Anagrafica merce: si elaborano solo gli articoli con mer-vuoto = "I" (tipo imballo/vuoto)
COGSLIMB (saldi imballi) simb-rec (aggiornato tramite COGS91) Saldi imballi di destinazione: azzerati (CLEAN-SALDI) e ricostruiti (UPD-SALDI) da COGS91
COGTABEL (feurtab) cogfiles.cpy / cogazien.cpy Parametri azienda: flag az-imballi (gestione cauzioni attiva)
logfil = COGF89.LOG record log-rec File di log (in ext-tmp-dir): traccia eventuali errori; aperto in output all'avvio (se gia' in uso → "Funzione gia' in uso!!")

Campi di mag-recz letti per la ricostruzione: mag-merce3 (codice merce interno gruppo/sottogruppo/codice), mag-mag1 (magazzino), mag-entrusc (segno entrata/uscita), mag-qtamagaz (quantita'), mag-da2 (data movimento), mag-valore, mag-currency, mag-tipocf (tipo cliente/fornitore) e, se cliente, mag-nonno/mag-padre/mag-figlio (chiave anagrafica a tre livelli).

Logica di elaborazione

  1. apriz-99-init-program, ctr-abil, rd-azi, open-files; costruisce il percorso del log COGF89.LOG e lo apre in output (fungendo anche da lock applicativo: se e' gia' aperto la funzione e' considerata "in uso"); prepara la maschera "Ricreazione Saldi Imballi".
  2. a4 — se az-imballi not = "SI" mostra "Funzione utilizzabile solamente se si utilizza la gestione Cauzioni" e termina.
  3. a-tm-merce — accept della merce (opzionale) con aiuto COGS68W; x-controlla-tm-merce verifica su COGMERCI che la merce esista. F3 → a-fine-dati.
  4. a-fine-dati — validazione finale e conferma (acc-conf). Poi:
  5. clean-saldi — chiama COGS91 con operazione "CLEAN-SALDI" e la merce indicata (o tutte), azzerando i saldi imballi preesistenti prima della ricostruzione.
  6. imposta il messaggio "Ricostruzione Saldi Imballi in corso ..." e avvia la scansione.
  7. b-00-loop (ricostruzione) — posiziona COGMOMAG sulla chiave minima (st-cogmomag-notmin) e lo scandisce (rdnxt-cogmomag). Per ogni movimento:
  8. se e' stata indicata una merce e mag-merce3 non coincide → salta;
  9. legge l'anagrafica merce (rd-cogmerci); scarta i movimenti la cui merce non e' un imballo (mer-vuoto not = "I");
  10. prepara la chiamata a COGS91 operazione "UPD-SALDI" valorizzando merce, magazzino (mag-mag1), segno (mag-entrusc), quantita' (mag-qtamagaz), data (mag-da2), valore e valuta; se il movimento e' verso un cliente (mag-tipocf = k-ana-tipo-cli) passa anche la chiave anagrafica nonno/padre/figlio, altrimenti la azzera;
  11. chiama cogs91, che aggiorna il relativo saldo imballo.
  12. b-90/b-95 / fine — a fine scansione mostra "Ricostruzione saldi imballi terminata"; se durante l'elaborazione COGS91 ha registrato errori (flag fl-log = "S") invita a consultare COGF89.LOG. Chiude il log e termina.

Sottoprogrammi chiamati

Programma Ruolo
COGS91 Manutenzione saldi imballi (COGSLIMB): operazione "CLEAN-SALDI" (azzeramento) e "UPD-SALDI" (aggiornamento saldo per movimento) via linkage util-s91
COGS68W Accept/aiuto merce (utils68, z-s68-tm-merce)
COGS52W / COGS93 / COGS95 / COGU10 Gestori ausiliari di maschera/valori (z-carica-vari)

Note e avvertenze operative

  • Da eseguire in esclusiva: azzera e ricostruisce i saldi imballi tramite COGS91; deve girare senza altri accessi in corso sui saldi imballi o sui movimenti di magazzino. Il file di log COGF89.LOG funge da lock: se gia' aperto la funzione segnala "gia' in uso".
  • Prerequisito gestione Cauzioni: la funzione opera solo con az-imballi = "SI"; in assenza della gestione imballi/cauzioni non fa nulla.
  • Ricostruzione totale, non incrementale: i saldi imballi vengono prima completamente azzerati (CLEAN-SALDI) e poi ricalcolati risommando i movimenti; l'ambito dell'azzeramento e del ricalcolo segue la selezione merce (singola merce o tutti gli imballi).
  • Canale unico saldi: COGF89 non riscrive direttamente COGSLIMB; ogni azzeramento/aggiornamento passa da COGS91, coerentemente con la gestione centralizzata dei saldi imballi.
  • Log errori: eventuali anomalie riscontrate durante l'elaborazione vengono segnalate a fine funzione con rimando all'archivio COGF89.LOG.
  • Sorgente legacy convertito a GUI: elaborazione governata da GO TO fra paragrafi (a-tm-merce, b-00-loop, b-90, fine); accessi al file tramite le routine generate da Screens (st-cogmomag-notmin, rdnxt-cogmomag).