Vai al contenuto

COG004 - Gestione Centri di Costo

Intestazione

Campo Valore
Programma COG004
Titolo Gestione Centri di Costo
Autore Beppe (conversione Win)
Posizione menu Contabilita' > Archivi & Tabelle > Centri di Costo

Scopo e logica generale

COG004 e' un programma interattivo per la gestione dell'anagrafica centri di costo (inserimento, variazione, cancellazione). I centri di costo sono organizzati su 3 livelli gerarchici (liv1 = 2 cifre, liv2 = 2 cifre, liv3 = 5 cifre) memorizzati nella tabella COGCCOPR.


Flusso principale

  1. Inizializzazione (apri): controllo abilitazione, apertura file, lettura dati azienda, configurazione tasti funzione (F3=aggiorna, F4=cancella, F8=aiuto), costruzione controlli
  2. Accept chiave (a-tm-liv1 -> a-tm-liv1-des -> a-tm-liv2 -> a-tm-liv3): acquisizione dei tre livelli con validazione gerarchica
  3. Lettura record (a-inizio-dati): lettura su COGCCOPR con chiave composta liv1+liv2+liv3; imposta fl-ins-var a "V" (variazione) o "I" (inserimento)
  4. Accept dati (a-tm-des -> a-tm-tipo -> a-tm-merce): acquisizione descrizione e attributi
  5. Conferma (a-poscur): scelta tra F3 (aggiorna/inserisci) e F4 (cancella)
  6. Operazione (inserimento / variazione / cancella): esecuzione con aggiornamento COGCCOPR e chiamata a COGS48 per propagazione descrizione

File e tabelle acceduti

File logico Record Modalita' Uso
COGCCOPR cco-rec I-O Anagrafica centri di costo (chiave: cco-liv1 + cco-liv2 + cco-liv3)
FEURTAB feurtab Input Tabella generica Eurosystem

Copybook inclusi

Screen Designer

Copybook Contenuto
cog004-01.scr Maschera principale (screen section)
cog004.select SELECT dei file gestiti da Screens
cog004.fd FD dei file gestiti da Screens
cog004.wrk Working storage della maschera
cog004.prc Procedure division della maschera
cog004.decla Declaratives

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
cogazien.cpy Dati azienda
wgrave.cpy Working storage errori gravi
wnscr.cpy Working storage screen
wopenf.cpy Working storage apertura file
wstato.cpy Working storage stato file

Utility e interfacce

Copybook Contenuto
utils48.cpy Interfaccia COGS48 (propagazione descrizioni centri di costo)
utilk72.cpy Interfaccia WIN072 (ricerca centri di costo)
utilw70.cpy Interfaccia WIN070 (ricerca per descrizione)
utilf11.cpy Interfaccia COGF11 (ricerca/selezione reparto da tabella COGTABEL tipo 85)

Procedure incluse

Copybook Contenuto
stato1.cpy Gestione stato file (cstato)
stato.cpy Gestione stato
winmsg.cpy Gestione messaggi/box
grave.cpy Gestione errori gravi
opengen.cpy Apertura file generica
mmmask.cpy Gestione maschere
sendw72.cpy Chiamata WIN072 (ricerca centri di costo)

Programmi chiamati (CALL)

Programma Scopo
COGS48 Propagazione descrizioni centri di costo (aggiorna riferimenti collegati quando cambia la descrizione)
WIN070.COB Ricerca centri di costo per descrizione (campo tm-liv1-des)
WIN072 Ricerca centri di costo da elenco (tasto F8, via sendw72.cpy)
COGF11 Ricerca/selezione reparto su COGTABEL tipo 85 (tasto F8 dal campo Reparto)

Linkage section

Copybook Contenuto
wcont.cpy Struttura stringhe - contesto chiamante
wcont1.cpy Struttura contesto aggiuntivo

Logica di business

Gerarchia dei livelli

Il centro di costo e' identificato da una chiave composta a 3 livelli:

  • Livello 1 (2 cifre): obbligatorio per qualsiasi operazione
  • Livello 2 (2 cifre): richiede che il livello 1 esista su COGCCOPR
  • Livello 3 (5 cifre): richiede che livelli 1 e 2 esistano su COGCCOPR

Inserimento

  1. Verifica abilitazione (w-abi-ins)
  2. Inizializza cco-rec, trasferisce i livelli e la descrizione
  3. Gestisce campi opzionali cco-tipo e cco-merce (se abilitati)
  4. Esegue wr-cogccopr; se fallisce tenta rwr-cogccopr
  5. Chiama COGS48 con operazione "I" per registrare l'inserimento

Variazione

  1. Verifica abilitazione (w-abi-agg)
  2. Rilegge il record con rd-cogccopr per lock
  3. Aggiorna descrizione e campi opzionali
  4. Esegue rwr-cogccopr
  5. Se la descrizione e' cambiata, chiama COGS48 con operazione "V" passando vecchia e nuova descrizione

Cancellazione

  1. Verifica abilitazione (w-abi-del)
  2. Richiede doppia conferma (F3 + F3)
  3. Rilegge con lock (rd-cogccopr-lk)
  4. Esegue del-cogccopr
  5. Chiama COGS48 con operazione "C" per registrare la cancellazione

Campi opzionali

I campi tipo, merce, costo/ricavo, reparto e flag commessa obbligatoria sono condizionati dai flag x-enabled-tm-tipo, x-enabled-tm-merce, x-enabled-tm-costo-ricavo, x-enabled-tm-reparto e x-enabled-tm-fl-commessa (impostati nella costruzione controlli). Quando non abilitati, i campi sono saltati nel flusso di accept.

Campi costo/ricavo e reparto (2026-05-14)

Aggiunti due campi opzionali sul centro di costo:

  • tm-costo-ricavo / cco-costo-ricavo (PIC X(01)): tipologia di destinazione contabile del centro di costo (costo o ricavo). Il paragrafo di accept a-tm-costo-ricavo segue il flusso a-tm-merce -> a-tm-costo-ricavo -> a-tm-reparto.
  • tm-reparto / cco-reparto: codice reparto, validato contro la tabella generica COGTABEL tipo 85 tramite lettura rd-cogtabel con euta-tipo = 85. La descrizione del reparto viene caricata da euta-descr1 e mostrata in tm-repa-d. F8 sul campo apre il programma di ricerca COGF11 (interfaccia util-f11). Il controllo x-controlla-tm-reparto rifiuta codici non presenti su COGTABEL con il messaggio "reparto non codificato".

Entrambi i campi vengono valorizzati su COGCCOPR in inserimento e variazione. Se i flag di abilitazione non sono attivi, i campi vengono forzati a spazi sulla tabella.

Campo "Commessa obbligatoria" (2026-06-09)

Aggiunto un terzo campo opzionale, tm-fl-commessa / cco-fl-commessa (PIC X(01)): segnala che per il centro di costo e' obbligatorio specificare il riferimento alla commessa. Il paragrafo di accept a-tm-fl-commessa si inserisce dopo a-tm-reparto. Il default in inserimento e in lettura record vuoto e' "N".

Come per gli altri opzionali, il campo viene aggiornato su COGCCOPR in inserimento/variazione e forzato a spazi se il flag di abilitazione non e' attivo.


Variabili di stato principali

Variabile Descrizione
fl-ins-var Flag operazione: "I" = inserimento, "V" = variazione, spaces = in fase chiave
dep-des Descrizione originale (per confronto in variazione)
dep-tipoanagr Tipo anagrafica di appoggio
tab-maschera Record di interscambio con la screen (tm-liv1, tm-liv2, tm-liv3, tm-des, tm-tipo, tm-merce, tm-costo-ricavo, tm-reparto, tm-repa-d, tm-fl-commessa)
dep-cco-chia Chiave centro di costo scomposta (liv1+liv2+liv3)

Storico modifiche

2026-06-09: Nuovo campo "Commessa obbligatoria"

Aggiunto il campo opzionale tm-fl-commessa / cco-fl-commessa (PIC X(01)): nuovo paragrafo a-tm-fl-commessa nel flusso di accept dopo a-tm-reparto, controllo x-controlla-tm-fl-commessa, propagazione in inserimento/variazione (forzato a spazi se non abilitato).

2026-05-14: Nuovi campi Costo/Ricavo e Reparto

Aggiunti due campi opzionali al centro di costo:

  • Costo/Ricavo (tm-costo-ricavo / cco-costo-ricavo, PIC X(01)): nuovo controllo nel flusso di accept fra "Merce obbligatoria" e "Reparto". Paragrafo a-tm-costo-ricavo con controllo x-controlla-tm-costo-ricavo.
  • Reparto (tm-reparto / cco-reparto): nuovo campo con ricerca via tasto F8 sul programma COGF11. Validazione contro la tabella COGTABEL tipo 85. La descrizione viene caricata in tm-repa-d (PIC X(30)) e propagata anche in a-inizio-dati quando si legge un record esistente.

Aggiunta copybook utilf11.cpy e chiamata COGF11 (cancel dopo l'uso). I nuovi campi vengono scritti su COGCCOPR in inserimento e variazione (forzati a spazi se i flag di abilitazione non sono attivi).

Riorganizzazione minore: chiusura file via paragrafo dedicato z-close-files al posto della close cogccopr inline.