COGK82 - Stampa Merci Obsolete
Panoramica
COGK82 e' una stampa batch con maschera di parametri GUI che produce il tabulato
delle merci obsolete, cioe' le merci con giacenza a inventario in una certa data
ma non movimentate in uscita (verso cliente, con concorso alla fatturazione) nel
periodo indicato. L'utente compila la maschera dei filtri (range merce,
magazzino, data rimanenze, criterio di valutazione, reparto, periodo di
non-movimentazione); alla conferma (F3) il programma elabora e stampa. Viene
avviato da menu come sottoprogramma (procedure division using stringhe).
| Menu |
Percorso |
| Magazzino |
Inventario > Stampe > Merci Obsolete |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
feurtab |
Indexed |
File tabelle generali (cogfiles.cpy): merci (cogmerci), anagrafiche (cogmerap), magazzini (cogmagaz), inventario (coginven), movimenti (cogmomag), testate bolle (cogtesbo), tabelle codificate (cogtabel), consolidato magazzino (cogmemor) |
coginven |
Indexed (chiave coginven.k02) |
Giacenze di inventario per magazzino/merce (inv-mag, inv-merce, inv-qta) |
cogmomag |
Indexed (chiave cogmomag.k04) |
Movimenti di magazzino: usati per verificare la movimentazione in uscita nel periodo |
flsta |
- |
File di stato/lock standard |
Copybook principali
| Copybook |
Descrizione |
cogk82.select / cogk82.fd / cogk82.wrk / cogk82.prc / cogk82-01.scr / cogk82.decla |
Elementi generati da Screens |
coginven.k02, cogmomag.k04 |
Chiavi secondarie e routine di I/O (aggiunte manualmente) |
utilcogl61.cpy, utils49/50/52/54/68.cpy, utilu10/u16/u20.cpy, utilw36/w80.cpy |
Utility: prezzo medio COGL61, prezzo LIFO COGS49, descrizione merce COGS50, date COGS52, stampa COGS54, range merce COGS68, editing importi COGU10, ordinamento/estremi merce COGU16, aiuti tabellari W36/W80 |
cogazien.cpy, wstato/wopenf/wgrave/wnscr.cpy |
Dati azienda e stato file standard |
util021.cpy |
Interfaccia con COG021 (configurazione ordinamento) in linkage |
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
COGU16W |
Gestione ordinamento/estremi del range merce (operazioni "Popola-ord", "Set-Estremi", "St-Notmin", "Leggi", "Ctr-range") |
COGS54 |
Gestore di stampa (larghezza 132 caratteri) |
COGS49 |
Calcolo valore/prezzo a costo LIFO per anno |
COGS50 |
Formattazione della descrizione merce di riga |
COGL61 |
Calcolo prezzo medio acquisto (PMA) di una merce a una data |
COGU10W |
Editing/arrotondamento importi, valori e prezzi in divisa; conversione cambio |
COG021 |
Configurazione del criterio di ordinamento prodotti (aperto con F1) |
send-w36 / send-w80 |
Aiuti tabellari (magazzino, reparto) tramite gestori W36/W80 |
Chiamate a gestori tabella generati
x-controlla-* e z-carica-* usano le routine rd-cogmerci, rd-cogmerap,
rd-cogmagaz, rd-cogtabel, st-coginven-*, st-cogmomag-*: routine di accesso
generate/standard sui file indicizzati (non pagine a se').
Logica di elaborazione
apri / main: init (z-99-init-program), azienda, apertura file,
abilitazione tasti funzione, preparazione dei controlli range merce
(z-s68-tm-da-merce, z-s68-tm-a-merce) e delle combo (z-costruisci-s60,
Popola-ord via COGU16W).
a4: valori di default della maschera (data rimanenze = 31/12 anno
precedente, valutazione "U" ultimo, LIFO "M", ecc.).
- Sezione di accept (
a-tm-ord-mer, a-tm-da-merce, a-tm-a-merce,
a-tm-fl-mag, a-tm-mag, a-tm-data, a-tm-pre, a-tm-lif,
a-tm-anno-cons, a-tm-imp-iva, a-tm-conto-terzi, a-tm-estr, a-tm-rep,
a-tm-data-da, a-tm-data-a): raccolta parametri con controlli per campo. La
sequenza F7/F9/F6 in a-tm-data sblocca la pagina nascosta dei totali
(a-riga-totali) per forzare quantita'/valore totali.
a-fine-dati: validazione complessiva (x-controlla-dati), selezione
stampante (COGS54), lettura divisa conto (COGU10W "GetDivisaConto"), impostazione
estremi range (COGU16W "Set-Estremi").
- Elaborazione: se
tm-fl-mag = "S"/"U" (magazzino singolo o giacenza per
magazzino) esegue b-stampa (un magazzino alla volta, b1-stampa); altrimenti
("T"/"L", tutti i magazzini insieme) esegue c-stampa. In entrambi i casi
si scorrono le merci (COGU16W "Leggi"), si filtra per raggruppamento/reparto/tipo
estrazione, si somma la giacenza da coginven, e per ogni merce con giacenza si
chiama verifica-movimento.
verifica-movimento: scansiona cogmomag per la merce nel periodo
(tm-data-da..tm-data-a); se trova un movimento di uscita che, tramite la
causale bolla (cogtabel tipo 15 con euta-cb-cli-for cliente e
euta-cb-con-fat = "SI"), concorre alla fatturazione a cliente, marca la merce
come movimentata (ok-movimenti > 0) e quindi NON obsoleta. Solo le merci con
ok-movimenti = 0 vengono stampate (x1-wr-riga).
x1-wr-riga: calcola prezzo (medio COGL61 / ultimo da consolidato COGS49-cons /
LIFO COGS49), valore e valore ivato (cogtabel tipo 67 per aliquota),
formatta e stampa la riga (r1); intesta gestisce la testata pagina.
x3-totali: stampa la riga dei totali (quantita', valore, valore ivato),
eventualmente forzati dai campi totali della pagina nascosta.
fine / z-chiudi: chiusura file e cancel dei moduli chiamati, uscita.
Note tecniche
- Programma con
decimal-point is comma; stampa a 132 colonne.
- Criteri di valutazione (
tm-pre): "M" medio (COGL61), "U" ultimo da consolidato
magazzino (cogmemor, richiede anno consolidato), "L" LIFO (COGS49).
- Tipo estrazione merci (
tm-estr): "C" tutte, "D" solo padri
(mer-padre = "P"), "M" solo non-padri.
- I magazzini conto terzi (
magz-fl-tip = "T") sono esclusi se
tm-conto-terzi = "N".
- Personalizzazione azienda: se
az-personal = "SI" sono escluse le merci con
raggruppamento map-ragr-1 = "20" o "30".
- La definizione di "obsoleta" e' merce con giacenza a inventario ma senza
movimenti di uscita a cliente concorrenti alla fatturazione nel periodo: la
voce di menu "Merci Obsolete" e' coerente con la funzione reale.