COGQ76 - Lotti Aperti x Cliente / Riepilogo Costi per Lotto¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGQ76 |
| Titolo | Visualizzazione/Stampa Lotti Aperti x Cliente |
| Posizione menu | Magazzino → Produzione → Cicli di Lavorazione → Visualizzazioni → Lotti Aperti x Cliente |
| Posizione menu alternativa | Magazzino → Produzione → Cicli di Lavorazione → Stampe → Riepilogo Costi per Lotto |
Scopo e logica generale¶
COGQ76 e' un programma interattivo per la visualizzazione e la stampa dei lotti di lavorazione (cicli di produzione) filtrati per cliente, periodo e stato. Opera su archivi del sottosistema CLC (cicli di lavorazione): clccctes (testate cicli), clccccns (consuntivi), clcccrig (righe cicli), clcanama (anagrafica macchine/lavoranti), clclavor (lavorazioni).
Gestione a tre fasi principali:
1. a-accetta: raccolta parametri a video (maschera classica a caratteri)
2. b-elabora: costruzione file transito cogtrans con i lotti che rispettano i filtri
3. c-visualizza: visualizzazione a video del transito + possibilita' di stampa dettagliata costi
Il file transito #$COGQ76.<operatore> ha chiave alternativa trs-chia2 = (trs-sel, trs-chia1) per la selezione.
Flusso principale¶
- Inizializzazione (
screen-0): apertura file gestionale (open-files) e file CLC (open-files-cl), lettura azienda, creazione cogtrans, visualizzazione maschera - Ciclo principale (
a4): per ogni sessione: a-accetta(thru ex-a): raccolta parametrib-elabora(thru ex-b): costruzione transitoc-visualizza(thru ex-c): visualizzazione a video e stampa- Reset cogtrans per nuova sessione; GO TO a4
- Chiusura (
z-chiudi): chiusura tutti i file
Sezione a-accetta (parametri)¶
| Campo | Paragrafo | Note |
|---|---|---|
| Anno/numero lotto specifico | a-06 / a-08 |
Se anno = 0 salta a a-10 (non filtra per lotto) |
| Tipo estrazione | a-10 |
COGS60: "A" = Solo Aperti, "C" = Solo Chiusi |
| Periodo di occupazione | a-20 |
COGS21: "T"=Tutti, "S"=Si', "N"=No |
| Cliente | a-30 |
COGS65 tipo cliente; se 0 = tutti i clienti |
| Da data | a-40 |
COGS52; default 1° gennaio anno corrente |
| A data | a-50 |
COGS52; default 31 dicembre anno corrente; controllo da <= a |
| Conferma | a-90 |
acc-conf THRU; WESC/F2 tornano ad a-50 |
Sezione b-elabora (costruzione transito)¶
Il paragrafo b-elabora:
- Se tm-anno != 0: chiama b1-scrivi-transito direttamente per il lotto specifico
- Altrimenti: scansiona CLCCCTES con START NOT LESS su chiave6 (che considera cct-stato), filtrando per:
- cct-stato: "A" (aperto) o "C" (chiuso) in base a tm-elab
- tm-occ: verifica periodo occupazione tramite check-periodo-occ
- tm-ana-cod: filtro cliente
- cct-data-ini in range tm-da-data .. tm-a-data
- Per ogni lotto idoneo chiama b1-scrivi-transito
Struttura del record transito scritto¶
trs-chia1:
trs-cli-des pic x(30) Ragione sociale cliente (per ordinamento)
trs-cli pic 9(05) Codice cliente
trs-ann pic 9(04) Anno lotto
trs-num pic 9(08) Numero lotto
trs-stato pic x(01) Stato lotto
trs-dis pic x(10) Codice disegno
trs-merce pic x(09) Codice merce prodotto
trs-mer-des pic x(36) Descrizione merce
trs-qta pic 9(08)v999
trs-data-ini pic 9(08) Data apertura lotto
trs-sel pic x(01) Flag selezione (usato per chiave alternativa)
Sezione c-visualizza (visualizzazione e stampa)¶
Il paragrafo c-visualizza mostra a video i lotti dal transito con la struttura maschera mm-1 (21 righe x 80 colonne):
- Intestazione: filtri impostati (numero lotto, periodo occupazione, cliente, periodo date)
- Griglia lotti: lotto, cliente, disegno, quantita', data apertura, stato, flag selezione (*)
Azioni dalla visualizzazione:
- Scorrimento con pagina-su/giu'
- Selezione/deselezione lotti con tasto apposito
- Stampa elenco lotti (stampa rigel su flsta)
- Stampa costi per lotto (stampa-costi): attiva il flusso dettagliato di stampa costi
Stampa elenco lotti¶
Stampa tabulare con colonne: Lotto, Cliente, Disegno, Qta', Data, Stato. Usa rigel (record 76 car.). Intestazione su testa1 (data+pagina) e testa2 (azienda).
Stampa riepilogo costi¶
Per i lotti selezionati (trs-sel = "*") produce una stampa dettagliata (132/155 caratteri) con:
- rigelb: dati lotto (numero, cliente, disegno, merce, qta ord/classificata/scarti/lavorata/consegnata/resa, data, stato)
- Per ogni fase di clcccrig: rigelc con fase, macchina, lavorante, tempi preventivati ed effettivi
- rigeltotc: totale costi per lotto
- rigeld: riepilogo costi per categoria (su macchina, non su macchina, esterne, trasporto, varie, materiali, semilavorati, totale, totale a pezzo, margine)
- Per i materiali: rigelf con merce, UM, quantita', prezzo, valore (letto da COGMOVDB tramite utilcogw06.cpy)
Le costanti di tipo costo (k-rgc-val-prv, k-rgc-val-cns, ecc.) identificano i diversi aggregati da sommare.
File e tabelle acceduti¶
File gestionali¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| COGGEANA | ana-rec | Input | Anagrafica generale (ragione sociale cliente) |
| COGMERCI | mer-rec | Input | Anagrafica merci (descrizione prodotto) |
| FEURTAB | feurtab | Input | Tabella generica Eurosystem |
| FLSTA | riga | Output | File di stampa |
| COGTRANS | trs-rec | I-O | File transito lotti filtrati |
File CLC (cicli di lavorazione)¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| CLCTABEL | eut-rec | Input | Tabelle CLC |
| CLCDISEG | dis-rec | Input | Disegni |
| CLCCCTES | cct-rec | Input | Testate cicli di commessa |
| CLCCCCNS | ccn-rec | Input | Consuntivi cicli |
| CLCCCRIG | ccr-rec | Input | Righe cicli (fasi di lavorazione) |
| CLCLAVOR | clv-rec | Input | Lavorazioni (macchine/operatori) |
| CLCANAMA | cnm-rec | Input | Anagrafica macchine e lavoranti |
Copybook inclusi¶
Strutture dati¶
| Copybook | Contenuto |
|---|---|
k-personal.cpy |
Costanti personalizzazione |
k-u10.cpy / wrk-u10.cpy |
Costanti e working COGU10 |
wstato.cpy / wopenf.cpy / wgrave.cpy / wnscr.cpy |
Working storage comuni |
cogazien.cpy |
Dati azienda |
wdisp002.cpy |
Working display 002 |
coggeana.cpy / cogmerci.cpy |
Record anagrafiche |
clctabel.cpy / clcdiseg.cpy / clccctes.cpy / clccccns.cpy / clcccrig.cpy / clclavor.cpy / clcanama.cpy |
Record tabelle CLC |
cogfiles.cpy |
FD feurtab |
Utility e interfacce¶
| Copybook | Contenuto |
|---|---|
utilq40.cpy |
Interfaccia Q40 |
utilq65.cpy |
Interfaccia Q65 |
utilq81.cpy |
Interfaccia Q81 |
utils21.cpy |
Interfaccia COGS21 (selezione singola) |
utils52.cpy |
Interfaccia COGS52 (calendario) |
utils54.cpy |
Interfaccia COGS54 (stampa) |
utils60.cpy |
Interfaccia COGS60 (selezione tipo) |
utils65.cpy |
Interfaccia COGS65 (ricerca anagrafica) |
utils68.cpy |
Interfaccia COGS68 (ricerca merce) |
utilu10.cpy / utilu36.cpy |
Interfaccia COGU10/U36 |
Linkage¶
| Copybook | Contenuto |
|---|---|
wcont.cpy / wcont1.cpy |
Stringhe comuni |
utilq33.cpy |
Interfaccia Q33 (passaggio parametri da chiamante) |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COGS21 | Selezione singola campo (periodo occupazione T/S/N) |
| COGS52 | Calendario (date picker) per da-data e a-data |
| COGS54 | Selezione destinazione stampa |
| COGS60 | Selezione tipo estrazione (Aperti/Chiusi) |
| COGS65 | Ricerca e selezione anagrafica cliente |
Configurazione (RNEWCONF)¶
Il programma non usa RNEWCONF. Le costanti di dimensione stampa sono definite a livello 78:
- k-size-riga-costi = 155 (stampa costi dettagliata)
- k-size-riga-schede = 132 (stampa schede)
- k-size-riga-norm = 80 (stampa elenco)
- k-size-trs-merce = 32 (dimensione campo merce nel transito)
Logica di business¶
Calcolo periodo occupazione¶
Il paragrafo check-periodo-occ verifica se sul lotto esiste un periodo di occupazione macchina nelle righe clcccrig. Se tm-occ = "S" vengono inclusi solo i lotti con periodo; se "N" solo quelli senza; se "T" tutti.
Calcolo tempi e costi per fase¶
Per ogni riga di clcccrig vengono calcolati:
- Tempi preventivati: w-minuti-att, w-minuti-lav, w-minuti-dis in ore e minuti
- Tempi effettivi consuntivati: letti da clccccns collegati alla riga
- Costi: calcolati moltiplicando i tempi per i costi orari di macchina/lavorante (da clcanama e clclavor)
I costi vengono classificati nelle categorie: su macchina, non su macchina, esterne, trasporto, varie, materiali, semilavorati. Le costanti k-rgc-val-* identificano le colonne del riepilogo.
Margine¶
Il margine viene calcolato come differenza percentuale tra il prezzo di vendita a pezzo (w-pre-ven-a-pezzo) e il costo effettivo totale a pezzo (w-tot-uni).
Nota su COGMOVDB¶
I materiali consumati vengono letti tramite utilcogw06.cpy che accede a COGMOVDB. Il dettaglio e' disponibile sia a video che nella stampa costi.
Variabili di stato principali¶
| Variabile | Descrizione |
|---|---|
tm-anno / tm-num |
Lotto specifico (0/0 = tutti) |
tm-elab |
Tipo estrazione: "A"=aperti, "C"=chiusi |
tm-occ |
Periodo occupazione: "T"/"S"/"N" |
tm-ana-cod |
Codice cliente (0 = tutti) |
tm-da-data / tm-a-data |
Intervallo date (struttura gg/mm/aaaa) |
n-m |
Numero lotti in transito |
ricordante.ri-tot-uni-cns / ri-tot-cns |
Totali a pezzo e totale per riepilogo finale |
w-tot-prv / w-tot-cns |
Costo totale preventivato/consuntivato |
w-margine |
Margine percentuale |
fl-tempi |
"S" = gestione tempi in ore/minuti |
fl-ore-minuti |
"S" = visualizza in ore:minuti |