COGG53 — Stampa Commesse¶
Sorgente: cbl/cogg53.cbl | Program-ID: COGG53 | Tipo: Programma GUI (maschera + stampa)
Menu: Vendite > Commesse > Stampe > Anagrafica Commesse AND Vendite > Commesse > Stampe > Situazione per Data
Scopo¶
Stampa la situazione delle commesse. Supporta due modalita' di stampa (Anagrafica e Situazione per Data) e numerosi filtri: commessa specifica, cliente/fornitore, stato (Tutte/Aperte/Acquisite/Chiuse/Disabilitate), intervallo date, intervallo merci, classificazione ISO. Gestisce la suddivisione per sottocommessa e cantiere. Produce report con testata commessa, dettaglio movimenti, e totali costi/fatturato.
Struttura della maschera¶
Screen: cogg53-01.scr
| Campo | Variabile | Tipo | Note |
|---|---|---|---|
| Codice commessa | tm-tsc |
x(10) | Vuoto = tutte |
| Descrizione breve | tm-des-breve |
x(40) | Auto da COGTESCM |
| Stato | tm-stato |
x(01) | T=Tutte, A=Aperte, Q=Acquisite, C=Chiuse, D=Disabilitate |
| Tipo stampa | tm-tipo-stampa |
x(01) | A=Anagrafica, altro=Situazione |
| Suddividi x sottocommessa | tm-sottocommessa |
x(01) | S/N, default N |
| Suddividi x cantiere | tm-cantiere |
x(01) | S/N, default N |
| Ordinamento merce | tm-ord-mer |
x(01) | A=Cod.avanzato, D=Descrizione, default codice |
| Da merce | tm-da-merce (gru/sot/cod) |
x(02)+x(02)+9(05) | Filtro inizio |
| A merce | tm-a-merce (gru/sot/cod) |
x(02)+x(02)+9(05) | Filtro fine |
| Da merce descrizione | tm-da-merce-des |
x(40) | |
| A merce descrizione | tm-a-merce-des |
x(40) | |
| Data filtro | tm-data |
9(08) | Redefines: tm-data-d, tm-data-a, tm-data-q, tm-data-c |
| ISO classe | tm-iso-classe |
x(01) | Filtro classe ISO (tab A3) |
| ISO gruppo | tm-iso-gruppo |
x(02) | Filtro gruppo ISO (tab A4) |
| Da data | tm-da-data |
9(08) | Intervallo date movimenti |
| A data | tm-a-data |
9(08) | Default data odierna |
| Rif. cliente | tm-ana-cod-c |
9(05) | Codice cliente (tipo 'C') |
| Rif. fornitore | tm-ana-cod-f |
9(05) | Codice fornitore (tipo 'F') |
Logica di elaborazione¶
Inizializzazione (apri)¶
- Valuta se chiamato come subroutine (
g53-called = k-program-id): in tal caso, carica i parametri dalla linkageutil-g53(commessa, parametro stampa). - Crea due file di transito temporanei (cogtrans e cogtrans2) nella directory temp.
z-99-init-program,ctr-abil,rd-azi,open-files,u-tipidoc.- Legge la configurazione da RNEWCONF:
COMMESSE.CNF: tipo numerazione commesse/sottocommesse, margini stampa, formato stampa (PCL/PRESCRIBE).QUALITA.CNF: descrizione qualita'.- Inizializza COGU10W per la gestione valute/divise.
Modalita' di chiamata¶
- Da menu:
w-parametrovuoto, mostra la maschera completa. - Come subroutine (
lnk-g53-fun = "stampa"): precompila la commessa dalnk-g53-com-tsc, salta alla selezione tipo stampa. - Il parametro
w-parametropuo' forzare il formato di stampa.
Navigazione campi (accept)¶
Sequenza di accept: tm-tsc -> tm-ana-cod-c -> tm-ana-cod-f -> tm-stato -> tm-data-d -> tm-data-a -> tm-data-q -> tm-data-c -> tm-tipo-stampa -> tm-sottocommessa -> tm-cantiere -> tm-ord-mer -> tm-da-merce -> tm-a-merce -> tm-iso-classe -> tm-iso-gruppo -> tm-da-data -> tm-a-data -> conferma.
I campi sono attivati/disattivati dinamicamente in base ai valori degli altri campi (tramite z-cambia-controlli).
Ricerca commesse (load-ricerca)¶
- Prepara i file di transito (
prepara-transiti). - Se commessa specifica (
tm-tsc <> spaces): legge la singola commessa da COGTESCM e scrive nel transito. - Se tutte le commesse: esegue
start-testatacon la chiave appropriata in base ai filtri: - Per codice commessa (chiave 1)
- Per cliente/fornitore (chiave 3)
- Per stato aperte/chiuse con data (chiave 5 = data chiusura, chiave 7 = stato)
- Scorre tutte (chiave 1)
- Per ciascuna commessa,
bool-stop-read-testatavaluta se continuare la lettura.bool-commesse-statoverifica lo stato in funzione del filtro richiesto. - Per ogni commessa valida,
write-transito2scrive nel file transito 2.
Logica di filtro per stato (bool-commesse-*)¶
- Acquisite: verifica
tsc-stato = "Q"e, se richiesta una data, chetsc-data-acq < tm-data. - Aperte: verifica
tsc-stato = "A"e, se richiesta una data, chetm-data <= tsc-data-ape. - Chiuse: verifica
tsc-stato = "C"e, se richiesta una data, usa la chiave 5 sutsc-data-chi. - Disabilitate:
tsc-stato = "D".
Filtro merce (controlla-merce)¶
Controlla che la merce sia nell'intervallo richiesto:
- Per codice avanzato (tm-ord-mer = 'A'): confronta rcm-cod-ava con u16-cma-da/u16-cma-a.
- Per descrizione (tm-ord-mer = 'D'): confronta mer-descr con tm-da-merce-des/tm-a-merce-des.
- Per codice standard: confronta w-merce con tm-da-merce/tm-a-merce.
- Per ISO: verifica mer-iso-classe e mer-iso-gruppo.
Stampa (st-stampa)¶
Chiamata dopo load-ricerca se fl-ok-ricerca = k-yes. Legge i file di transito e produce il report tramite COGS54. La stampa include:
- Testata: testa1 (data/pagina), testa2 (codice commessa), testa3 (cantiere), testa3-det (sottocommessa+cantiere), testa4 (cliente), testa5 (date acquisizione/apertura/chiusura contratto), testa6 (giorni previsti/chiusura/importo preventivato), testa7 (responsabile), testa8 (capo squadra), testa9 (squadra/num.operai), testa-note.
- Corpo: testa-corpo (intestazione colonne), riga1 (data, merce, descrizione, UM, quantita', prezzo, totale costi, totale fatturato).
- Coda: coda1 (totali costi e fatturato per commessa).
Gli importi vengono gestiti tramite COGU10W per la conversione valute.
Formato stampa¶
Determinato da tm-cfg-formato-stampa:
- "B" = PRESCRIBE, 220 caratteri per riga, max 36 righe.
- Altro = PCL, 136 caratteri per riga, max 26 righe.
File utilizzati¶
| File logico | Chiave | Uso |
|---|---|---|
| FEURTAB (COGTABEL) | tipo + cod | Tabelle ISO (A3, A4) |
| COGTESCM | chiave 1 (tsc-cod), chiave 3 (tsc-ana), chiave 5 (tsc-data-chi), chiave 7 (tsc-stato) | Testate commesse |
| COGGEANA | ana-tipo + ana-cod | Anagrafica clienti/fornitori |
| COGMERCI | mer-chia | Anagrafica merci |
| COGRACMC | chiave 2 | Codici merce avanzati |
| LODTMDES | temp file | File temporaneo di transito per documenti |
| LODTRDES | temp file | File temporaneo di transito righe |
| COGTRANS | temp file | File transito 1 (dettaglio movimenti per commessa) |
| COGTRANS2 | temp file | File transito 2 (elenco commesse da stampare) |
| FLSTA | File stampa output |
Programmi chiamati¶
| Programma | Modalita' | Scopo |
|---|---|---|
| COGS54 | CALL | Gestione anteprima e stampa |
| COGS65W | CALL (via z-s65) | Ricerca/selezione cliente e fornitore |
| COGS68W | CALL (via z-s68) | Formattazione codice merce |
| COGU10W | CALL | Gestione valute/importi/conversioni |
| COGU35W | CALL (via call-u35) | Ricerca/selezione commessa |
| COGG32 | CALL (via call-g32-generic) | Gestione commesse |
| COGG56 | CALL (via call-g56-generic) | Gestione sottocantieri |
| WIN080 | CALL | Ricerca classi/gruppi ISO |
| RNEWCONF | CALL | Lettura configurazione |
| COGZDEW | CALL (via copy) | Gestione ZDE (documenti) |
Copybook principali¶
| Copybook | Contenuto |
|---|---|
k-personal.cpy |
Costanti personalizzazione |
utilu10.cpy / wrk-u10.cpy / k-u10.cpy |
Gestione valute COGU10W |
utilu16.cpy |
Gestione ordinamento/filtro merce |
utilu20.cpy |
Utility generiche |
utilu35w.cpy |
Ricerca commesse COGU35W |
utilu70.cpy |
Utility generiche |
utils52.cpy |
Subroutine calendario |
utils54.cpy |
Subroutine stampa COGS54 |
utils65.cpy |
Subroutine ricerca anagrafica |
utils68.cpy |
Subroutine formattazione merce |
utildlg.cpy |
Gestione dialoghi |
utilcogl61.cpy |
Utility COGL61 |
utilw80.cpy |
Ricerca ISO WIN080 |
utilncnf.cpy |
Lettura configurazione RNEWCONF |
utilzde.cpy |
Gestione ZDE |
utilg32.cpy |
Linkage COGG32 |
utilg53.cpy |
Linkage COGG53 (parametri di chiamata) |
utilg56.cpy |
Linkage COGG56 |
wtipidoc.cpy |
Tipi documento |
UTILWZ01.CPY |
Utility WZ01 |
u10-fun.cpy |
Funzioni supporto COGU10 |
lodtmdes.cpy / lodtrdes.cpy |
Record file temporanei |
Struttura linkage (link-g53)¶
| Campo | Pic | Descrizione |
|---|---|---|
| filler | x(338) | Area riservata |
lnk-g53-parametro |
x(01) | Parametro formato stampa |
lnk-g53-exception |
s9(05) comp-1 | Eccezione |
lnk-g53-fun |
x(13) | Funzione richiesta (es. "stampa") |
lnk-g53-caller |
x(13) | Programma chiamante |
lnk-g53-called |
x(13) | Programma chiamato |
lnk-g53-com-tsc |
x(10) | Codice commessa |
lnk-g53-com-sot |
x(10) | Codice sottocommessa |
Struttura file di transito (COGTRANS)¶
| Campo | Pic | Descrizione |
|---|---|---|
trs-com-tsc |
x(10) | Codice commessa |
trs-sot-cod |
x(10) | Codice sottocommessa |
trs-cantiere |
Cantiere (mgp-tip + mgp-cod) | |
trs-data |
9(08) | Data movimento |
trs-merce |
gru+sot+cod | Codice merce |
trs-doc |
tip+cod | Riferimento documento |
trs-des1 / trs-des2 |
x(40) | Descrizioni |
trs-um |
x(02) | Unita' di misura |
trs-currency |
x(02) | Divisa |
trs-qta |
9(07)v9(03) | Quantita' |
trs-pre |
s9(12)v9(06) | Prezzo unitario |
trs-val |
s9(12)v9(02) | Valore totale |
trs-fatt |
tip+ann+num | Riferimento fattura |
Configurazione RNEWCONF¶
| Percorso | Chiave | Uso |
|---|---|---|
COMMESSE.CNF |
TIPO-NUMERAZIONE-COMMESSE |
Numerazione alfanumerica/numerica |
COMMESSE.CNF |
MARGINE-V-STAMPA-DMT |
Margine verticale stampa |
COMMESSE.CNF |
MARGINE-H-STAMPA-DMT |
Margine orizzontale stampa |
COMMESSE.CNF |
FORMATO-STAMPA-COMMESSE |
Formato: B=PRESCRIBE, altro=PCL |
COMMESSE.CNF |
TIPO-NUMERAZIONE-SOTTOCOMMESSE |
Numerazione sottocommesse |
QUALITA.CNF |
(program-id) | Descrizione campo qualita' |