COGW31 - Valorizzazione Produzioni Chiuse¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGW31 |
| Titolo | Valorizzazione produzione commesse chiuse |
| Posizione menu | Magazzino → Controllo Magazzino → Prezzo Medio → Valorizzazione produzioni |
| Posizione menu alternativa | Magazzino → Produzione → Produzione → Valorizzazione → Produzioni chiuse |
Scopo e logica generale¶
COGW31 elabora i lotti di lavorazione chiusi (flag cla-fl-cls = "C" in COGLAVOR) e calcola il valore reale di produzione per aggiornare il prezzo di carico del prodotto finito. Il valore viene ottenuto sommando:
- Costi delle materie prime consumate (valorizzate a costo FIFO)
- Costi di lavorazioni esterne
- Costi forfettari interni (righe di servizio su distinta base)
Il programma verifica la data di consolidato contabile (da COGTABEL tipo 57 record 1): i lotti con data di chiusura antecedente al consolidato vengono segnalati come non elaborabili.
La maschera e' con griglia paginata (GRIDADMN). Usa due file di transito nella tmp-dir: #$COGW31.<operatore> (cogtrans, lotti elaborati) e $#COGW31.<operatore> (cogtrans2, righe distinta base/movimenti).
Flusso principale¶
- Inizializzazione (
apri): apertura file, lettura lingua, divisa conto, creazione file transito (controllo utilizzo con stato "00"), costruzione maschera - Accept parametri:
a-tm-da-data: data inizio chiusura lotti (con calendario F8)a-tm-a-data: data fine chiusura lotti (con calendario F8)a-tm-lot-ann: anno lotto specifico (con COGS52)a-tm-lot-num: numero lotto (abilitato solo se anno != 0; con validazione rd-coglavor)a-tm-pf: prodotto finito (con COGS68W; con validazione rd-cogmerci)a-tm-no-ricalcolo: flag S/N per non ricalcolare lotti gia' valorizzati (con COGS95)- Elaborazione (
a-fine-dati): dopo conferma, chiamate a: leggi-consolidato: legge data consolidato da COGTABEL tipo 57 record 1ciclo-lavor: scansione COGLAVOR per lotti chiusi concla-fl-cls = "C", applicando tutti i filtri; per ogni lotto chiamatratta-lotto- Griglia (
a-grid): visualizzazione lotti elaborati paginati; F9 stampa; S-F4 GRIDADMN; S-F5 esporta Excel - Chiusura (
z-chiudi): chiusura file, eliminazione transiti,z-99-exit-program
File e tabelle acceduti¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| COGLAVOR | cla-rec | Input | Lotti di lavorazione (chiave9: fl-cls + anno + numero) |
| COGMERCI | mer-rec | Input | Anagrafica merci (validazione prodotto finito) |
| COGMOVDB | mdb-rec | Input | Movimenti distinta base (materie prime consumate) |
| COGMOMAG | mag-rec | Input | Movimenti di magazzino (carichi prodotto finito da aggiornare) |
| COGGENER | gnr-rec | I-O | Generica (da cogw31.select) |
| COGTABEL | euta-rec | Input | Tabelle (tipo 57 rec.1 = data consolidato) |
| FEURTAB | feurtab | Input | Tabella generica Eurosystem |
| FLSTA | riga | Output | File di stampa |
| COGTRANS | trs-rec | I-O | Transito lotti elaborati |
| COGTRANS2 | trs2-rec | I-O | Transito righe distinta/movimenti per ogni lotto |
Struttura COGTRANS (lotti)¶
trs-chia1:
trs-lotto:
trs-lot-ann pic 9(04)
trs-lot-num pic 9(08)
trs-dati:
trs-merce pic x(09) (gru+sot+cod)
trs-data-ini pic 9(08)
trs-data-fin pic 9(08)
trs-qta-ord pic 9(07)v9(03)
trs-qta-lav pic 9(07)v9(03)
trs-valore pic 9(12)v9(06) Valore calcolato
trs-nota pic x(100) Note/avvisi elaborazione
Struttura COGTRANS2 (dettaglio righe)¶
trs2-chia1:
trs2-lotto: (ann + num)
trs2-doc: pic x(100) - oppure redefines come trs2-mag-chiap (mag+ann+tip+bolla+prog)
trs2-tipo-doc: pic x(01) Tipo: "L"=lavorazione, "M"=movimento, ecc.
trs2-dati:
trs2-merce pic x(09)
trs2-qtamagaz pic 9(07)v9(03)
trs2-prezzo pic 9(12)v9(06)
trs2-valore pic 9(12)v9(06)
trs2-segno pic x(01)
trs2-classe pic x(01) Classe di costo
trs2-nota pic x(100)
Record griglia¶
grd-lotto (ann / num)
grd-merce pic x(09)
grd-qta-ord pic z.zzz.zzz,zzz
grd-qta-lav pic z.zzz.zzz,zzz
grd-valore pic x(15) (formattato da COGU10W)
grd-data-ini (gg/mm/aaaa)
grd-data-fin (gg/mm/aaaa)
grd-nota pic x(100)
Copybook inclusi¶
Screen Designer¶
| Copybook | Contenuto |
|---|---|
cogw31-01.scr |
Maschera principale (screen section) |
cogw31.select |
SELECT dei file |
cogw31.fd |
FD dei file |
cogw31.wrk |
Working storage maschera |
cogw31.decla |
Declaratives (include cogtrans, cogtrans2, flsta) |
Strutture dati¶
| Copybook | Contenuto |
|---|---|
cogfiles.cpy |
FD feurtab |
k-u10.cpy |
Costanti COGU10 |
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy |
Working storage comuni |
cogazien.cpy |
Dati azienda |
Utility e interfacce¶
| Copybook | Contenuto |
|---|---|
wgrid.cpy / utilgdad.cpy |
Gestione griglie |
utils52.cpy |
Interfaccia COGS52 (calendario) |
utils54.cpy |
Interfaccia COGS54 (gestione stampa) |
utils68.cpy |
Interfaccia COGS68W (ricerca merce) |
utilu10.cpy / utilu20.cpy |
Interfaccia COGU10W/U20 |
utils01f.cpy |
Interfaccia S01F (linkage) |
Linkage¶
| Copybook | Contenuto |
|---|---|
wcont.cpy / wcont1.cpy |
Stringhe comuni |
utils01f.cpy |
S01F (usato per lettura prezzi FIFO) |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COGU10W | Formattazione importi e divisa (operazioni: "Edita", "Arrotonda", "Cambio") |
| COGS52W | Calendario (date picker) per da-data, a-data, anno lotto |
| COGS68W | Ricerca merce per prodotto finito |
| COGS95 | Gestione campo SI/NO (flag non-ricalcolo) |
| GRIDADMN | Amministrazione griglie |
| RNEWCONF | Lettura configurazione |
Configurazione (RNEWCONF)¶
Il programma usa x99-src-cfg standard. Non sono documentate chiavi specifiche nel sorgente analizzato; la configurazione controlla principalmente il comportamento della griglia e la visualizzazione.
Logica di business¶
Data di consolidato¶
Il paragrafo leggi-consolidato legge da COGTABEL tipo 57 record 1 i campi euta-dc-aa-acc (anno) e euta-dc-mm-acc (mese). Se l'anno e' valorizzato ma il mese e' zero, il mese viene forzato a 1. I lotti con cla-data-fin antecedente o uguale al consolidato vengono scritti nel transito con nota "Chiusura lotto con data minore consolidato".
Filtro lotti (ciclo-lavor)¶
Il paragrafo ciclo-lavor scansiona COGLAVOR usando la chiave9 (START NOT LESS su cla-fl-cls = "C" + cla-anno + cla-numero). Filtri applicati:
- Solo cla-fl-cls = "C" (chiusi)
- Solo cla-fas = 1 e cla-pos = 1 (primo livello, prima posizione)
- Filtro tm-da-data / tm-a-data su cla-data-fin
- Filtro tm-lot-ann / tm-lot-num se specificati
- Filtro tm-pf su cla-merce se specificato
Flag non-ricalcolo¶
Se tm-no-ricalcolo = "S":
- Se cla-fl-fifo = "S" (gia' valorizzato): richiama carica-gener per leggere il valore precedente da COGGENER
- Altrimenti: nota "Lotto non valorizzato"
Se tm-no-ricalcolo = "N": viene chiamato tratta-lotto per il ricalcolo completo.
Struttura tratta-lotto¶
Il paragrafo tratta-lotto elabora un singolo lotto di primo livello:
1. Verifica data consolidato
2. Scansione di tutti i sotto-lotti collegati tramite cla-pf-ann + cla-pf-num
3. Per ogni sotto-lotto: lettura movimenti COGMOVDB di tipo "CL" per materie prime e servizi
4. Valorizzazione a costo FIFO tramite S01F (prezzo FIFO delle materie prime)
5. Accumulazione w-val-fifo con contributi da: materie prime FIFO, lavorazioni esterne, costi forfettari
6. Aggiornamento trs-valore con il totale calcolato; eventuale riscrittura movimento di carico in COGMOMAG
Variabili di stato principali¶
| Variabile | Descrizione |
|---|---|
tm-da-data / tm-a-data |
Intervallo date chiusura lotto (AAAAMMGG) |
tm-lot-ann / tm-lot-num |
Lotto specifico (0/0 = tutti) |
tm-pf |
Prodotto finito (filtro; spazi = tutti) |
tm-no-ricalcolo |
"S"/"N" = non ricalcolare |
dt-cons-aa / dt-cons-mm |
Data consolidato contabile |
dep-cla-anno / dep-cla-numero |
Lotto corrente durante elaborazione |
dep-mag |
Magazzino del lotto corrente |
dep-merce |
Merce del lotto corrente |
w-val-fifo |
Accumulatore valore FIFO calcolato |
n-m |
Numero record nella griglia |
fl-read |
Flag fine lettura transito |
fl-esc-agg |
Flag ESC durante elaborazione |