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¶
- Inizializzazione (
apri): controllo abilitazione, apertura file, lettura dati azienda, configurazione tasti funzione (F3=aggiorna, F4=cancella, F8=aiuto), costruzione controlli - Accept chiave (
a-tm-liv1->a-tm-liv1-des->a-tm-liv2->a-tm-liv3): acquisizione dei tre livelli con validazione gerarchica - Lettura record (
a-inizio-dati): lettura su COGCCOPR con chiave composta liv1+liv2+liv3; impostafl-ins-vara "V" (variazione) o "I" (inserimento) - Accept dati (
a-tm-des->a-tm-tipo->a-tm-merce): acquisizione descrizione e attributi - Conferma (
a-poscur): scelta tra F3 (aggiorna/inserisci) e F4 (cancella) - 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¶
- Verifica abilitazione (
w-abi-ins) - Inizializza
cco-rec, trasferisce i livelli e la descrizione - Gestisce campi opzionali
cco-tipoecco-merce(se abilitati) - Esegue
wr-cogccopr; se fallisce tentarwr-cogccopr - Chiama COGS48 con operazione "I" per registrare l'inserimento
Variazione¶
- Verifica abilitazione (
w-abi-agg) - Rilegge il record con
rd-cogccoprper lock - Aggiorna descrizione e campi opzionali
- Esegue
rwr-cogccopr - Se la descrizione e' cambiata, chiama COGS48 con operazione "V" passando vecchia e nuova descrizione
Cancellazione¶
- Verifica abilitazione (
w-abi-del) - Richiede doppia conferma (F3 + F3)
- Rilegge con lock (
rd-cogccopr-lk) - Esegue
del-cogccopr - 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 accepta-tm-costo-ricavosegue il flussoa-tm-merce -> a-tm-costo-ricavo -> a-tm-reparto.tm-reparto/cco-reparto: codice reparto, validato contro la tabella genericaCOGTABELtipo 85 tramite letturard-cogtabelconeuta-tipo = 85. La descrizione del reparto viene caricata daeuta-descr1e mostrata intm-repa-d. F8 sul campo apre il programma di ricercaCOGF11(interfacciautil-f11). Il controllox-controlla-tm-repartorifiuta codici non presenti suCOGTABELcon 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". Paragrafoa-tm-costo-ricavocon controllox-controlla-tm-costo-ricavo. - Reparto (
tm-reparto/cco-reparto): nuovo campo con ricerca via tasto F8 sul programmaCOGF11. Validazione contro la tabellaCOGTABELtipo 85. La descrizione viene caricata intm-repa-d(PIC X(30)) e propagata anche ina-inizio-datiquando 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.