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¶
apri— inizializzazioni,open-files; determina la modalita' richiamata leggendoutilc53-called/utilc53-oper(amt-annuo→w-dc-called,COGC26→w-dc-chiamato); recupera la divisa di conto (COGU10W,GetDivisaConto). Se richiamato, valorizza i parametri dautilc53-*e salta direttamente aa11-init.a4/ accept parametri — imposta i default (calcoloS, periodoA, rateoA); accept dia-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-giorniea-tm-data(solo se periodoG),a-tm-rateo(opzione cespiti nuovi). Date gestite viaCOGS52W, combo via S60.a-poscur— validazione complessiva (x-imposta-conferma) e conferma (acc-conf).a11-init/a12— legge i parametri aziendali cespiti (COGTABELtipo 99); calcola le date di inizio/fine esercizio (w-data-ini-ese/w-data-fin-ese) tramiteDTPRG/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.c-cancella-contab— setm-calcolo = "C", ripristina i movimenti contabilizzati (csm-fl-3daDaP) e riporta i cespiti a stato non ammortizzato, poi esce.del-store— cancella i movimenti provvisori (csm-fl-3 = "P") dell'anno prima di ricalcolare.agg-mov/agg-10— scandisceCOGCESAN; per ogni cespite ammissibile chiamafind-mov(somma costi e ammortamenti pregressi daCOGCESMO), 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 conwri-mov(e la parte non-ammortizzabilecsa-per-naconwrite-mov-bis), attribuendo il progressivo tramiteCOGS25(codice 33).fine/z-chiudi— chiudecogtabel,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(cicliagg-10,del-10,find-10,a12, salti fra gli accept) e diPERFORM ... 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-1codifica la tipologia di quota:S/N/C/I/T/Bammortamenti ordinari,X/Ysuper-ammortamento,A/+/-variazioni di costo,V/Dvendita/dismissione (bloccano il calcolo dell'anno). I movimenti prodotti nascono provvisori (csm-fl-3 = "P"). - Il tipo ammortamento
C(paragrafo commentato con markerpro) non e' previsto in calcolo e blocca con messaggio; il tipoArichiede 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 cespitetm-cespitee i movimenti vengono scritti sul file temporaneoCOGBESMO.