Vai al contenuto

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).

Posizione nel menu

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

  1. 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).
  2. a4: valori di default della maschera (data rimanenze = 31/12 anno precedente, valutazione "U" ultimo, LIFO "M", ecc.).
  3. 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.
  4. a-fine-dati: validazione complessiva (x-controlla-dati), selezione stampante (COGS54), lettura divisa conto (COGU10W "GetDivisaConto"), impostazione estremi range (COGU16W "Set-Estremi").
  5. 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.
  6. 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).
  7. 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.
  8. x3-totali: stampa la riga dei totali (quantita', valore, valore ivato), eventualmente forzati dai campi totali della pagina nascosta.
  9. 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.