Vai al contenuto

COGB74 - Gestione costi personale per periodo (Contabilita' analitica)

Campo Valore
Sorgente cbl/cogb74.cbl
Tipo Programma interattivo (maschera con griglia)
Program-ID COGB74
Menu Non presente in prog.txt (programma in sviluppo)
Righe sorgente ~1.905

Descrizione

Maschera per la rilevazione e la ripartizione dei costi del personale per periodo nella contabilita' analitica. A partire da una commessa e da un intervallo di date, l'operatore imputa le ore di lavoro del personale e il programma le valorizza al costo orario, distinguendo tra attivita' finanziate (es. corsi finanziati) e attivita' libere, con quadratura rispetto al totale del movimento.

Il documento e' affiancato dall'utility una-tantum tempo812 che inizializza i nuovi campi cdc-ore (ore corso) e cdc-costo-orario su COGMOVCC, usati per memorizzare il dato analitico dei costi del personale.

Programma in sviluppo

Il programma non e' ancora collegato al menu applicativo. Il caricamento automatico della griglia dai movimenti (carica-dati) e il salvataggio del documento di contabilita' analitica (b-aggiorna) sono ora implementati (vedi Logica di elaborazione); il flusso dati e' funzionante ma soggetto a revisione fino al collegamento a menu.

File e tabelle

File/Tabella Tipo Descrizione
COGTABEL (feurtab) Input Tabella generica; tipo 18 = centri di costo acquisti (coan), tipo 16 = conto acquisti coge collegato alla merce
COGTESCM (tsc) Input Testate commessa (codice commessa, descrizione breve)
COGTCMAG (tsca) Input Collegamento commessa → articolo di magazzino
COGMERCI (mer) Input Anagrafica articoli
COGMERAP (map) Input Dati avanzati articolo (centro di costo map-cc)
COGCCOPR (cco) Input Piano dei conti centri di costo (livelli 1/2/3, descrizione, reparto)
COGLISFO (lfo) Input Listino fornitori: costo orario dell'articolo per fornitore interno e data
COGMOVCC (cdc) I-O Movimenti di contabilita' analitica: letti in caricamento (per periodo+commessa), scritti in fase di aggiornamento (documento Co.An.)
COGTRANS (trs) Transito File temporaneo (#$cogb74_<ora>.<oper> in dir temp) con i movimenti Co.An. della commessa, usato per generarne le contropartite
t-grid-det / exp-grid Transito Griglia di dettaglio (generata da Screens) ed export

Copybook principali

Copybook Descrizione
cogb74.wrk / .select / .fd / .tm / .scr / .prc / .decla Screen Designer: working, select, fd, dati maschera, screen, procedure, declaratives
cogb74.imppredf / .imppredf-wrk + utilimppredf.cpy Import di valori predefiniti nella maschera
utilu10.cpy / call-u35.cpy / utilu35w.cpy Interfacce conversione divisa (COGU10W) e utility U35
utils52.cpy / utils68.cpy Interfacce S52 / S68 (ricerca/selezione)
utilu20.cpy Interfaccia U20
utilgcol.cpy / utilgdad.cpy / wgrid.cpy Gestione colonne/griglia evoluta (GRIDADMN)
k-personal.cpy / k-tipi-cogtabel.cpy Costanti personalizzazioni e tipi tabella
feurtab.fd / cogfiles.cpy Tabella generica COGTABEL
mmmask.cpy + standard (wstato, wgrave, wnscr, wopenf, cogazien, utilncnf) Programma standalone

Chiamate a sottoprogrammi

Programma Scopo
COGU10W Recupero/conversione divisa di conto
COGS25 Numeratore documenti: numero del documento di contabilita' analitica (s25-i-cod = 44, per anno/mese)
GRIDADMN Amministrazione avanzata della griglia di dettaglio (export Excel, colonne)
W$MENU Menu pop-up contestuale sulla griglia

Logica di elaborazione

Validazione commessa (x-controlla-tm-tsc-cod)

Inserito il codice commessa (tm-tsc-cod), il programma risale alla catena commessa → articolo → centro di costo → costo orario:

  1. Legge la testata commessa su COGTESCM (descrizione breve in tm-tsc-des).
  2. Recupera l'articolo collegato alla commessa da COGTCMAG e ne verifica l'esistenza su COGMERCI.
  3. Dai dati avanzati articolo COGMERAP ricava il centro di costo (map-cc); se assente blocca con "Centro di costo Articolo inesistente".
  4. Dal centro di costo risale, via COGTABEL tipo 18 e COGCCOPR, al conto di acquisto del centro di costo (tm-conto-cc-acq, formato liv1/liv2/liv3 descrizione).
  5. Determina il costo orario (cerca-costo-orario).

Costo orario (cerca-costo-orario)

Legge il listino fornitori COGLISFO per l'articolo della commessa, fornitore interno (az-for-int) e data fine periodo (tm-data-fin), scorrendo all'indietro (rdprv) fino al primo prezzo non nullo, che diventa il costo orario (tm-costo-orario). Se non viene trovato, blocca con "Costo orario Articolo non trovato".

Scorre la griglia di dettaglio (t-grid-det) e somma ore e valori distinguendo le righe finanziate (t-gor-r-finanz = "S") da quelle libere:

  • ore finanziate / ore libere (tm-tot-ore-finan, tm-tot-ore-libero);
  • valore corsi finanziati / valore libero (tm-tot-corsi-fin, tm-tot-libero-merc);
  • totale generale (tm-totali).

La spesa personale (tm-tot-spe-pers) e' la differenza tra il totale movimento (tm-tot-movimento) e il totale dei valori. Se il totale dei valori eccede il totale movimento viene mostrato l'avviso "Totale Corsi maggiore di Totale Movimento" e l'aggiornamento e' inibito.

Caricamento movimenti (carica-dati)

Richiamato dalla creazione del file di transito della griglia (z-grid-det-crea-transito). Crea/azzera il file temporaneo COGTRANS (#$cogb74_<ora>.<oper>) e scorre COGMOVCC filtrando per intervallo date (tm-data-ini..tm-data-fin) e commessa (cdc-commessa = tm-tsc-cod), accumulando il totale movimento (tm-tot-movimento). I movimenti della commessa nel periodo vengono riversati nel transito e caricati in griglia come base per la ripartizione.

Salvataggio documento Co.An. (b-aggiorna)

Genera il documento di contabilita' analitica:

  1. Numero documento da COGS25 (s25-i-cod = 44, anno/mese del periodo) -> w-doc-num.
  2. Riga spese personale: se tm-tot-spe-pers <> 0 scrive un movimento COGMOVCC in Dare (cdc-segno = "D") sul conto coge spese (tm-cfg-coge-spese) e centro di costo coan (tm-cfg-coan-spese), con reparto da COGCCOPR e flag cdc-fl-solo-ca = "A".
  3. Contropartite: scorre il transito COGTRANS (movimenti Co.An. originali della commessa) e per ciascuno scrive un movimento con segno opposto (D<->A), stessi conto/centro di costo/importo.
  4. Righe ore: scorre la griglia (t-grid-det) e per le righe con ore valorizzate (t-gor-r-ore <> 0) scrive un movimento in Dare con il conto acquisti coge della merce (COGTABEL tipo 16 da mer-contr-for) e il conto/centro di costo coan (COGTABEL tipo 18 da map-cc), valorizzando cdc-ore e cdc-costo-orario.

Al termine notifica "Creato Documento CO.AN. : 99999999/".

Note

  • Il programma usa mmmask.cpy (standalone con gestione finestra propria).
  • I conti/centri di costo delle spese personale (tm-cfg-coge-spese, tm-cfg-coan-spese) sono parametri di configurazione caricati all'avvio.
  • Vedere anche tempo812 per l'inizializzazione dei campi cdc-ore / cdc-costo-orario su COGMOVCC.
  • I documenti generati si consultano con COGB78 (elenco per periodo) e COGB79 (dettaglio del singolo documento).

Storico modifiche

2026-06-26 -- Implementazione caricamento e salvataggio documento Co.An.

I paragrafi carica-dati e b-aggiorna, in precedenza ridotti a scheletro, sono stati implementati: carica-dati legge i movimenti COGMOVCC della commessa nel periodo (transito COGTRANS, totale movimento), b-aggiorna crea il documento di contabilita' analitica (numeratore COGS25 cod 44) scrivendo la riga spese personale, le contropartite a segno opposto dei movimenti originali e le righe ore valorizzate al costo orario. Aggiunti l'uso di COGMOVCC (I-O), del file di transito COGTRANS e di COGTABEL tipo 16.


Documentazione tecnica -- aggiornata 2026-06-26