Vai al contenuto

COGP08 - Stampa Listino Particolare

Sorgente: cbl/cogp08.cbl | Tipo: Programma a menu (stampa con maschera) | Program-ID: COGP08

Menu: Magazzino > Archivi & Tabelle > Stampe > Listini > Listino Particolare


Scopo

Genera la stampa di un listino prezzi personalizzato. Supporta tre modalita' di stampa:

  • Standard: listino classico per merce
  • Per Reparto (tm-tutti = "R"): listino raggruppato per reparto
  • Prestazioni Odontosoft (tm-tutti = "P"): modalita' specifica per laboratori odontotecnici, con raggruppamenti per linea prodotto e tipo dispositivo (accessori)

L'output puo' essere su stampante, Word (XML/WORDMDL) o PDF. Per la modalita' "Prestazioni" e' obbligatorio l'export su Word per gestire i raggruppamenti gerarchici.

File e Tabelle

File/Tabella Uso Descrizione
FEURTAB (cogfiles) Input Parametri generali
COGMERCI Input Anagrafica merci
COGMERAP Input Merce per appoggio
COGMERAR Input Raggruppamenti merce
COGMERA2 Input Anagrafica merci estensione (per sincro APP WMS)
COGMERA3 Input Anagrafica merci 3 (dati Modula, magazzino)
COGMERA4 Input Anagrafica merci 4 — campo ma4-ordine-stampa per l'ordinamento di stampa
COGLISNW Input Listino di vendita
COGTABEL Input Tabella generica (categorie, linee, reparti)
COGANRAG Input Anagrafica raggruppamenti gerarchici
COGGEANA Input Anagrafica cliente (intestazione)
FLSTA Output File stato per output stampa
T-RIGHE-STAMPA I-O (temp) File temporaneo per le righe di stampa, indicizzato con tre chiavi:
- primaria: trs-progressivo
- secondaria: trs-chia2 (linea, tipo-dsp, reparto, merce)
- terziaria trs-chia3 (linea, tipo-dsp, trs-ordine-stampa, mer-chia, reparto) — usata in modalita' "Prestazioni"

Working storage

  • trs-rec: tracciato file temporaneo
  • trs-linea PIC X(10) — codice linea prodotto
  • trs-tipo-dsp PIC X(10) — codice tipo dispositivo / "accessori"
  • trs-ordine-stampa PIC 9(05) — ordine di stampa derivato da ma4-ordine-stampa (default 99999 se zero)
  • w-rot-linea, w-rot-tipo-dsp PIC X(10) — rotture correnti per raggruppamento
  • a-raggr-n PIC 9(06), a-raggr-z/a-raggr-x — progressivo raggruppamento per generazione tag XML "ROTTURA-n"
  • tm-cfg-classe-categoria PIC X(02) — vecchia configurazione classe categoria (non piu' usata, sostituita da classe listino)
  • tm-cfg-classe-listino PIC X(02) — nuova configurazione fittizia, sempre = "L"

Copybook principali

  • File: feurtab.fd, cogp08.select, cogp08.fd, flsta.fd
  • Working: cogp08.wrk, cogazien, wgrave, wnscr, wopenf, wstato
  • Interfacce: utilncnf (RNEWCONF), utilwordmdl (WORDMDL), utilcogs65w (COGS65W), utilcogpa3 (COGPA3), utilcogsc1 (COGSC1), utilcogu10w (COGU10W), utilcogu06 (COGU06), utilgestring, utilgesdate
  • A fine procedure: stato, winmsg, grave, opengen, mmmask, cogp08.prc

Configurazioni RNEWCONF (gruppo "COGP08")

Indice Chiave Significato
1 LIBRI-NS-RIF Riferimento nostro
2 USO-CM-EAN Uso codice EAN
3 USO-CM-INTE Uso codice interno
4 USO-CM-AVAN Uso codice avanzato
5 CLASSE-CATEGORIA (obsoleto) classe categoria — non piu' verificata

Programmi chiamati

Programma Scopo
COGS54 Selezione stampante e gestione output
COGS65W Configurazione personalizzazione colonne
COGU10W Formattazione importi e valute
COGU06 Lettura descrizioni tabella
WORDMDL Generazione output Word (XML, tag, modello)
COGPA3 Lettura parametri stampa
COGSC1 Lettura configurazione stampe
RNEWCONF Lettura configurazioni

Logica di elaborazione

Flusso principale

  1. Apertura: lettura azienda, apertura file, lettura configurazioni RNEWCONF (x99-confi carica 5 chiavi; classe-listino forzato a "L").
  2. Maschera (a-pagina-01): l'utente seleziona intervallo merci, tipo stampa (Standard/Reparto/Prestazioni), formato output, data di riferimento, listino.
  3. Controlli pre-stampa:
  4. Per "Prestazioni Odontosoft": e' richiesto export su Word. Il check precedente sulla configurazione classe-categoria e' stato disabilitato (TASK-3434).
  5. Scansione merci: per ogni merce nell'intervallo:
  6. Lettura COGMERCI, COGMERAP, COGMERA3, COGMERA4, COGLISNW
  7. Determinazione di trs-linea, trs-tipo-dsp (per modalita' "P") tramite COGANRAG (classe = tm-cfg-classe-listino = "L", tipo "M" per merce, "R" per padre/raggruppamento risalendo l'albero)
  8. Determinazione di trs-ordine-stampa da ma4-ordine-stampa (default 99999 se zero) — TASK-4809
  9. Scrittura record nel file di transito T-RIGHE-STAMPA
  10. Stampa: scansione T-RIGHE-STAMPA per chiave trs-chia3 (linea, tipo-dsp, ordine-stampa, merce, reparto) in modalita' Prestazioni, oppure per trs-chia2 standard.
  11. Gestione raggruppamenti (modalita' Prestazioni):
  12. Apertura raggruppamento (x-apro-raggr): incrementa a-raggr-n, genera tag XML ROTTURA-{n} con wordmdl-fl-tag = "A"
  13. Chiusura raggruppamento (x-chiudo-raggr): aggiunge tag XML SALTO e chiude ROTTURA-{n} con wordmdl-fl-tag = "C"
  14. Rotture: su cambio trs-linea chiude il raggruppamento corrente e ne apre uno nuovo, scrivendo l'intestazione di linea (#Font1: {descrizione linea})
  15. Rotture su tipo dispositivo: scrive #Font1: Accessori come intestazione del sottogruppo

Chiave alternata trs-chia3

E' stata aggiunta una nuova chiave alternata per ordinare le righe della stampa "Prestazioni":

alternate record key is trs-chia3 = trs-linea,
                                    trs-tipo-dsp,
                                    trs-ordine-stampa,
                                    trs-mer-chia,
                                    trs-reparto

L'inclusione di trs-ordine-stampa nella chiave permette di ordinare le merci all'interno dello stesso raggruppamento per ordine personalizzato (anziche' per codice merce).

Note tecniche

  • I campi trs-linea e trs-tipo-dsp sono stati estesi da X(05) a X(10) per supportare codici raggruppamento piu' lunghi.
  • La modalita' "Prestazioni" non stampa piu' "Linea: {codice}" + "Tipo dispositivo: {codice}", ma solo "{descrizione linea}" e "Accessori" come separatori.
  • Per la generazione XML i raggruppamenti vengono numerati progressivamente (ROTTURA-1, ROTTURA-2, ...) e ciascuno e' un blocco indipendente nel documento Word esportato.
  • trs-ordine-stampa = 0 viene convertito a 99999 (in coda all'ordinamento) per le merci senza ordine esplicito su COGMERA4.

Storico modifiche

Build Descrizione
2026/0426 TASK-3434: sostituita configurazione classe-categoria con configurazione fittizia tm-cfg-classe-listino = "L" cablata nel codice. Disabilitato il controllo che richiedeva la configurazione classe-categoria per la modalita' Prestazioni Odontosoft. Aggiunti x-apro-raggr / x-chiudo-raggr con generazione tag XML ROTTURA-{n} numerati progressivamente. Stampa intestazione raggruppamento semplificata ("{descrizione linea}", "Accessori").
2026/0511 TASK-4809: aggiunto campo trs-ordine-stampa letto da COGMERA4 (ma4-ordine-stampa). Estese a X(10) le lunghezze di trs-linea e trs-tipo-dsp. Nuova chiave alternata trs-chia3 che include trs-ordine-stampa per ordinamento personalizzato delle merci all'interno del raggruppamento. Default trs-ordine-stampa = 99999 se ma4-ordine-stampa non impostato.