Vai al contenuto

COGC53 — Cespiti: calcolo quote di ammortamento

Sorgente: cbl/cogc53.cbl | Tipo: interattivo con elaborazione batch | Program-ID: cogc53

Autore: Stefano Ruozzi - Eurosystem

Menu: Contabilita' > Cespiti > Calcolo quote ammortamento


Scopo

Calcola le quote di ammortamento dei cespiti per un anno di esercizio, generando i relativi movimenti storici (provvisori) sull'archivio movimenti cespiti COGCESMO. Per ogni cespite dell'anagrafica COGCESAN non ancora ammortizzato/sospeso/venduto/dismesso, il programma somma costi e ammortamenti gia' registrati, determina il residuo da ammortizzare e applica le percentuali (ordinaria, anticipata, ridotta, super-ammortamento) previste dai parametri aziendali (COGTABEL tipo 99, campi euta-ces-*), gestendo ratei per acquisti in corso d'anno, leasing e la quota indeducibile/non ammortizzabile.

Il tipo di calcolo e' scelto dall'operatore: normale (S), definitivo/D, azzeramento (Z/N), oppure cancellazione della contabilizzazione (C). Il periodo puo' essere annuale (A) o per giorni (G), con eventuale rateo per i cespiti nuovi (A intera / R a giorni). Il programma puo' anche essere invocato come sottoprogramma (operazioni amt-annuo da utilc53-oper, o COGC26), nel qual caso scrive su un file temporaneo cogbesmo anziche' sull'archivio definitivo, e limita il calcolo a un singolo cespite.

File e tabelle principali

File/Tabella Copybook Uso
COGTABEL (feurtab) cogfiles.cpy Parametri aziendali cespiti: euta-tipo 99, euta-ces-amm-n/euta-ces-amm-u (anni ammortamento nuovo/usato), euta-ces-rid, euta-ces-soglia, euta-ces-tipo (A/M/R/C), euta-ces-ini-mm/euta-ces-ini-gg (inizio esercizio)
COGCESAN (gestito da cogc53.fd) Anagrafica cespiti (csa-rec): csa-cod, csa-stato, csa-currency, csa-per-std/csa-per-ant/csa-per-na, csa-super-amm, csa-data-acq/csa-acq-aa/mm/gg, csa-data-ini-amm, csa-n-u, csa-leasing, csa-lea-2-*, csa-ammortamento, csa-tipo
COGCESMO (gestito da cogc53.fd + .k02/.k03/.k04) Movimenti storici cespiti (csm-rec): csm-cod, csm-anno, csm-data, csm-imp, csm-per, csm-currency, csm-fl-1 (tipo quota), csm-fl-3 (P provvisorio / D definitivo), csm-prog (progressivo da COGS25)
COGBESMO (gestito da cogc53.fd) File temporaneo movimenti (bsm-rec): usato quando il programma e' richiamato (w-dc-called)

Copybook di working/servizio: cogazien.cpy, utils25.cpy/utils52.cpy/utilu10.cpy (numerazione, date, cambi/arrotondamenti), utilgesdate.cpy. La struttura di interscambio col chiamante e' in utilc53.cpy (util-c53, parametro della procedure division).

Flusso principale

  1. apri — inizializzazioni, open-files; determina la modalita' richiamata leggendo utilc53-called/utilc53-oper (amt-annuow-dc-called, COGC26w-dc-chiamato); recupera la divisa di conto (COGU10W, GetDivisaConto). Se richiamato, valorizza i parametri da utilc53-* e salta direttamente a a11-init.
  2. a4 / accept parametri — imposta i default (calcolo S, periodo A, rateo A); accept di a-tm-anno (anno), a-tm-data-ope (data operazione, deve coincidere come anno), a-tm-calcolo (tipo calcolo), a-tm-periodo (annuale/giorni), a-tm-giorni e a-tm-data (solo se periodo G), a-tm-rateo (opzione cespiti nuovi). Date gestite via COGS52W, combo via S60.
  3. a-poscur — validazione complessiva (x-imposta-conferma) e conferma (acc-conf).
  4. a11-init / a12 — legge i parametri aziendali cespiti (COGTABEL tipo 99); calcola le date di inizio/fine esercizio (w-data-ini-ese/w-data-fin-ese) tramite DTPRG/PRGDT; carica le percentuali/soglie (ws-ces-*), convertendo la soglia in divisa se necessario. Controlla la compatibilita' del tipo ammortamento (ws-ces-tipo) con l'inizio esercizio.
  5. c-cancella-contab — se tm-calcolo = "C", ripristina i movimenti contabilizzati (csm-fl-3 da D a P) e riporta i cespiti a stato non ammortizzato, poi esce.
  6. del-store — cancella i movimenti provvisori (csm-fl-3 = "P") dell'anno prima di ricalcolare.
  7. agg-mov / agg-10 — scandisce COGCESAN; per ogni cespite ammissibile chiama find-mov (somma costi e ammortamenti pregressi da COGCESMO), calcola il residuo, applica quota ordinaria (w-per-std), anticipata (w-per-ant), ridotta, super-ammortamento e leasing (calc-leasing/calc-month), con eventuale ragguaglio a giorni (rateo). Ogni quota calcolata viene scritta con wri-mov (e la parte non-ammortizzabile csa-per-na con write-mov-bis), attribuendo il progressivo tramite COGS25 (codice 33).
  8. fine / z-chiudi — chiude cogtabel, cogcesan, cogcesmo, cogbesmo; se richiamato non chiude la finestra; exit program.

Sottoprogrammi chiamati

Programma Ruolo
COGS52W Editing/validazione date (anno, data operazione, data inizio esercizio)
COGS25 Attribuzione progressivo movimento cespite (numerazione, codice 33)
COGU10W Cambi divisa, arrotondamenti importi, recupero divisa di conto
DTPRG / PRGDT Conversione data <-> progressivo giorni (calcolo intervalli esercizio)

Note

  • Sorgente in stile legacy con uso estensivo di GO TO (cicli agg-10, del-10, find-10, a12, salti fra gli accept) e di PERFORM ... THRU (agg-mov thru ex-agg-mov, find-mov thru ex-find-mov, del-store thru ex-del-store, wri-mov thru ex-wri-mov, c-cancella-contab thru ex-c-cancella-contab). Da non replicare.
  • Il campo csm-fl-1 codifica la tipologia di quota: S/N/C/I/T/B ammortamenti ordinari, X/Y super-ammortamento, A/+/- variazioni di costo, V/D vendita/dismissione (bloccano il calcolo dell'anno). I movimenti prodotti nascono provvisori (csm-fl-3 = "P").
  • Il tipo ammortamento C (paragrafo commentato con marker pro) non e' previsto in calcolo e blocca con messaggio; il tipo A richiede inizio esercizio 01/01 o non impostato.
  • Diversi rami storici sono commentati nel sorgente (marker per data: 301116, 141119, 281118, ecc.); il calcolo delle date di competenza esercizio e' stato rivisto nel 2016 (301116) passando dal confronto per anno di acquisto al confronto per data esercizio (w-data-ini-ese/w-data-fin-ese).
  • Quando richiamato (w-dc-called = "S"), il calcolo e' limitato al cespite tm-cespite e i movimenti vengono scritti sul file temporaneo COGBESMO.