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¶
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.- Preparazione maschera — abilitazione tasti F1 (dettaglio stampa), F3 (conferma), F8 (aiuto), F9 (ricerca avanzata);
x-carica-lingua; preparazione controlli merce conCOGS68(Prepara); display mascheras-mm-1e costruzione controlli (z-costruisci-controlli, popolamento ordinamenti viaCOGU16Popola-ord). a4…a-tm-pre— sezione di accept dei parametri: stampa per reparto (tm-sxr), codice reparto (tm-rep, aiuto viasend-w80tip 85), ordinamento (tm-ord-merviaCOGU16), merce da/a (tm-da-merce/tm-a-merceviaCOGS68), stampa spaziata (tm-spa), bar-code (tm-bar), giacenze/prezzi reali (tm-pre). Ogni campo ha un paragrafox-controlla-*e la gestione mousex-test-mouse/ eccezioniz-99-exception-form.a-richiesta-conferma— validazione complessiva (x-imposta-conferma).a-cogs54— scelta stampante/anteprima viaCOGS54(numero colonne 116 o 131 se bar-code).- Ramo standard
st-10/a1-10-loop— setm-sxrnon e' "S": scansione merci pilotata daCOGU16(Set-Estremi,Leggi); per ogni merce estrae prezzi concerca-prmed(COGL61), compone la descrizione conCOGS50, l'IVA daCOGTABELtipo 67, i prezzi editati conCOGU10W, e scrive la riga dettaglio (rdxstandard ordx-dDentalabor). Gestione intestazione e salto pagina (intesta). - Ramo per reparto
rep-elabora— setm-sxr = 'S': prima faserep10-loopscandisceCOGMERCI, filtra per reparto (COGMERAP), scrive i record sutransito; seconda faserep90-looprilegge il transito ordinato e stampa con intestazione "STAMPA PRODOTTI X REPARTO" e salto pagina ad ogni cambio reparto. a900-end/z-chiudi— chiusura stampa (COGS54after-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 dedicatii3-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-preblocca la conferma per operatori non abilitati. - Il codice merce speciale
999999999viene saltato in stampa. - Codice legacy: uso diffuso di
GO TOper i loop di stampa (a1-10-loop,rep10-loop,rep90-loop) ePERFORM 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.