Vai al contenuto

COGV09 — Stampa Rubrica Merci

Sorgente: cbl/cogv09.cbl | Tipo: stampa (interattivo a maschera per i parametri) | Program-ID: cogv09

Menu: Magazzino > Archivi & Tabelle > Stampe > Merci > Rubrica


Scopo

Produce la stampa della rubrica prodotti (merci) con codice, descrizione, unita' di misura, aliquota IVA e prezzi (prezzo unitario acquisto, prezzo medio acquisto, prezzo medio vendita), con eventuale codice a barre. La stampa puo' essere ordinata secondo i criteri di scansione merci gestiti da COGU16 oppure organizzata "per reparto" (raggruppamento per reparto anagrafico da COGMERAP, letto in un file di transito temporaneo e poi stampato con salto pagina per reparto).

Il layout ha due varianti: quella standard e quella "Dentalabor" (attiva quando az-sta-fat = 'NO'), che aggiunge la colonna "TEMPO LAVORAZIONE" (da mer-confezione) al posto del codice a barre. I prezzi vengono estratti tramite COGL61 e formattati/convertiti in divisa via COGU10W. La visibilita' dei prezzi acquisto/vendita e' subordinata alle abilitazioni operatore (w-abi-val-acq, w-abi-val).

File e tabelle principali

File/Tabella Copybook Uso
COGMERCI (via cogv09.select/cogv09.fd), st-cogmerci-notmin/rdnxt-cogmerci Anagrafica merci: scansione in modalita' "per reparto"
COGMERAP (via cogv09.fd), rd-cogmerap Anagrafica merci-appendice: reparto (map-reparto) per il raggruppamento
COGTABEL (via cogv09.fd), rd-cogtabel Aliquote IVA (tipo 67, euta-ivali/euta-ivaes) e descrizione reparto (tipo 85)
transito (FD inline trs-rec) File indicizzato temporaneo #$COGV09.<oper> per la stampa per reparto (chiave reparto+merce)
flsta flsta.cpy File di stampa (riga)
feurtab cogfiles.cpy Tabella file di sistema

Flusso principale

  1. a000 / open-files — inizializzazione programma, ctr-abil, rd-azi, get-divisa-conto. Apertura (e reset in output poi in i-o) del file di transito per l'operatore; se gia' in uso dallo stesso operatore, messaggio ed uscita.
  2. Preparazione maschera — abilitazione tasti F1 (dettaglio stampa), F3 (conferma), F8 (aiuto), F9 (ricerca avanzata); x-carica-lingua; preparazione controlli merce con COGS68 (Prepara); display maschera s-mm-1 e costruzione controlli (z-costruisci-controlli, popolamento ordinamenti via COGU16 Popola-ord).
  3. a4a-tm-pre — sezione di accept dei parametri: stampa per reparto (tm-sxr), codice reparto (tm-rep, aiuto via send-w80 tip 85), ordinamento (tm-ord-mer via COGU16), merce da/a (tm-da-merce/tm-a-merce via COGS68), stampa spaziata (tm-spa), bar-code (tm-bar), giacenze/prezzi reali (tm-pre). Ogni campo ha un paragrafo x-controlla-* e la gestione mouse x-test-mouse / eccezioni z-99-exception-form.
  4. a-richiesta-conferma — validazione complessiva (x-imposta-conferma).
  5. a-cogs54 — scelta stampante/anteprima via COGS54 (numero colonne 116 o 131 se bar-code).
  6. Ramo standard st-10 / a1-10-loop — se tm-sxr non e' "S": scansione merci pilotata da COGU16 (Set-Estremi, Leggi); per ogni merce estrae prezzi con cerca-prmed (COGL61), compone la descrizione con COGS50, l'IVA da COGTABEL tipo 67, i prezzi editati con COGU10W, e scrive la riga dettaglio (rdx standard o rdx-d Dentalabor). Gestione intestazione e salto pagina (intesta).
  7. Ramo per reparto rep-elabora — se tm-sxr = 'S': prima fase rep10-loop scandisce COGMERCI, filtra per reparto (COGMERAP), scrive i record su transito; seconda fase rep90-loop rilegge il transito ordinato e stampa con intestazione "STAMPA PRODOTTI X REPARTO" e salto pagina ad ogni cambio reparto.
  8. a900-end / z-chiudi — chiusura stampa (COGS54 after-print), chiusura file e transito, uscita.

Sottoprogrammi chiamati

Programma Ruolo
COGU16 / COGU16W Scansione/ordinamento merci con estremi (Set-Estremi, Leggi, Popola-ord, Ctr-range)
COGL61 Estrazione prezzi merce (prez. acquisto, PMA, PMV) alla data (cerca-prmed)
COGU10 / COGU10W Edit/conversione in divisa dei prezzi
COGS50 Composizione stringa descrittiva della merce
COGS54 Selezione stampante / gestione stampa (colonne, after-print)
COGS68 / COGS68W Gestione controllo merce (da/a) sulla maschera
COG021 Dettaglio stampa (F1) sul campo "stampa per reparto"
COG021 (via sendw80) Aiuto reparto (F8, w80-tip=85)

Configurazioni (RNEWCONF)

Nessuna chiave RNEWCONF utilizzata. Il comportamento e' pilotato da az-sta-fat (variante Dentalabor) e dalle abilitazioni operatore.

Note

  • La variante "Dentalabor" (az-sta-fat = 'NO') sostituisce il codice a barre con la colonna "TEMPO LAVORAZIONE" e usa layout dedicati i3-d/i4-d/i5-d/rdx-d.
  • La stampa dei prezzi e' condizionata: tm-pre = 'U' stampa solo il prezzo unitario acquisto; tm-pre = 'S' stampa anche PMA/PMV, ma solo se l'operatore e' abilitato (w-abi-val-acq, w-abi-val); x-controlla-tm-pre blocca la conferma per operatori non abilitati.
  • Il codice merce speciale 999999999 viene saltato in stampa.
  • Codice legacy: uso diffuso di GO TO per i loop di stampa (a1-10-loop, rep10-loop, rep90-loop) e PERFORM intesta THRU ex-intesta; il file di transito e' per-operatore (#$COGV09.<oper>).
  • Diverse copybook di utilita' incluse: utils21, utils22, utils54, utilu10, utilu16, utils50, utils68, utilw80, utilcogl61.