Vai al contenuto

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

  1. Inizializzazione (apri): apertura file, lettura lingua, divisa conto, creazione file transito (controllo utilizzo con stato "00"), costruzione maschera
  2. Accept parametri:
  3. a-tm-da-data: data inizio chiusura lotti (con calendario F8)
  4. a-tm-a-data: data fine chiusura lotti (con calendario F8)
  5. a-tm-lot-ann: anno lotto specifico (con COGS52)
  6. a-tm-lot-num: numero lotto (abilitato solo se anno != 0; con validazione rd-coglavor)
  7. a-tm-pf: prodotto finito (con COGS68W; con validazione rd-cogmerci)
  8. a-tm-no-ricalcolo: flag S/N per non ricalcolare lotti gia' valorizzati (con COGS95)
  9. Elaborazione (a-fine-dati): dopo conferma, chiamate a:
  10. leggi-consolidato: legge data consolidato da COGTABEL tipo 57 record 1
  11. ciclo-lavor: scansione COGLAVOR per lotti chiusi con cla-fl-cls = "C", applicando tutti i filtri; per ogni lotto chiama tratta-lotto
  12. Griglia (a-grid): visualizzazione lotti elaborati paginati; F9 stampa; S-F4 GRIDADMN; S-F5 esporta Excel
  13. 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