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¶
apri—z-99-init-program,ctr-abil,rd-azi,open-files; costruisce il percorso del logCOGF89.LOGe 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".a4— seaz-imballi not = "SI"mostra "Funzione utilizzabile solamente se si utilizza la gestione Cauzioni" e termina.a-tm-merce— accept della merce (opzionale) con aiuto COGS68W;x-controlla-tm-merceverifica suCOGMERCIche la merce esista. F3 →a-fine-dati.a-fine-dati— validazione finale e conferma (acc-conf). Poi:clean-saldi— chiama COGS91 con operazione"CLEAN-SALDI"e la merce indicata (o tutte), azzerando i saldi imballi preesistenti prima della ricostruzione.- imposta il messaggio "Ricostruzione Saldi Imballi in corso ..." e avvia la scansione.
b-00-loop(ricostruzione) — posizionaCOGMOMAGsulla chiave minima (st-cogmomag-notmin) e lo scandisce (rdnxt-cogmomag). Per ogni movimento:- se e' stata indicata una merce e
mag-merce3non coincide → salta; - legge l'anagrafica merce (
rd-cogmerci); scarta i movimenti la cui merce non e' un imballo (mer-vuoto not = "I"); - 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; - chiama
cogs91, che aggiorna il relativo saldo imballo. b-90/b-95/fine— a fine scansione mostra "Ricostruzione saldi imballi terminata"; se durante l'elaborazione COGS91 ha registrato errori (flagfl-log = "S") invita a consultareCOGF89.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.LOGfunge 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 TOfra paragrafi (a-tm-merce,b-00-loop,b-90,fine); accessi al file tramite le routine generate da Screens (st-cogmomag-notmin,rdnxt-cogmomag).