COGP65 — Controllo Documenti non Quadrati¶
Sorgente: cbl/cogp65.cbl | Program-ID: COGP65 | Tipo: Programma di controllo interattivo con griglia
Menu: Contabilita' > Prima Nota > Stampe > Controllo Doc. non Quadrati
Scopo¶
Analizza i documenti di Prima Nota per individuare anomalie contabili: squadrature dare/avere, date non omogenee, conti inesistenti o a zero, importi a zero, partite mancanti, disallineamenti tra Prima Nota e centri di costo, e importi con piu' di 2 decimali.
Struttura della maschera¶
Selezione archivi¶
L'operatore seleziona uno o piu' dei tre archivi contabili. I nomi degli archivi sono recuperati da COGTABEL (tipo 66, record configurazione contabilita'):
| Campo | Variabile | Descrizione |
|---|---|---|
| Archivio 1 | TM-SEL(01) |
Prima Nota non contabilizzata (dep-nome-arc(1) = nf-name-14) |
| Archivio 2 | TM-SEL(02) |
Anno attuale (aperto con open-pn-contabilizzata "ATT") |
| Archivio 3 | TM-SEL(03) |
Anno precedente (aperto con open-pn-contabilizzata "PRE") |
Opzioni di controllo¶
| Campo | Variabile | Descrizione |
|---|---|---|
| Documenti importo a zero | TM-IMPO-ZERO |
"S" = segnala movimenti a importo zero |
| Squadratura Coge/Coan | TM-FL-SQUAD-GA |
"S" = verifica quadratura con centri di costo |
| Esercizio contabile | TM-ESER-CONT |
Formato AAAA/AAAA (F8 per help con WIN157) |
| Forzatura conti Coge in Coan | TM-FORZA-CONTI |
"S" = forza allineamento conti (richiede conferma) |
| Creazione Coan se mancante | TM-CREA-COAN |
"S" = crea automaticamente COGMOVCC mancanti |
| Documenti provvisori | TM-FL-PROV |
"N" = esclude documenti con PNO-FL-PRO not = spaces |
Logica di elaborazione¶
Flusso principale¶
- Apertura archivi: apre COGPNONC con il nome file corrispondente all'archivio selezionato
- Scansione sequenziale:
st-cogpnonc-notmin→ looprdnxt-cogpnonc - Per ogni archivio selezionato (
l= 1, 2, 3), esegueb-src-arc→b-rd-arc - Risultati: le anomalie vengono scritte su COGTRANS (file temporaneo in
ext-tmp-dir) - Griglia: dopo l'elaborazione, COGTRANS viene riletto e caricato in griglia (
tm-tab, max 9990 elementi)
Controlli eseguiti per ogni movimento¶
| Controllo | Paragrafo | Condizione segnalazione |
|---|---|---|
| Importo con + di 2 decimali | inline (b-10-loop) | w-pno-importo-dec4 not = zero (TASK-4518) |
| Dare <> Avere | ctr-imp |
s-dare not = s-avere o s-neut not = zero al cambio documento |
| Data non omogenea | ctr-data |
pno-datamov not = mem-datamov nello stesso documento |
| Conto non codificato | ctr-pno |
rd-cogpncon o rd-coggeana fallisce |
| Conto a zero | ctr-conto-zero |
pno-mastro = 0 o pno-conto = 0 o pno-sconto = 0 |
| Importo a zero | importozero |
pno-importo = zero (solo se tm-impo-zero = "S") |
| Partita mancante | src-mov |
rd-cogparti fallisce per il movimento collegato |
| No quadr. Pno/mov.Partita | src-mov-100 |
saldo-con - saldo <> 0 tra PNO e movimenti partita |
| No quadr. Pno/CdC | sgn-movc |
COGMOVCC assente o importo disallineato (solo se tm-fl-squad-ga = "S") |
| Data CdC diversa | sgn-movc-data |
cdc-datamov not = pno-datamov |
| Conto CdC diverso | sgn-movc-conto |
cdc-mastro/conto/sconto <> pno-mastro/conto/sconto |
Creazione automatica COAN (TASK-1158)¶
Se TM-CREA-COAN = "S" e il movimento non ha COGMOVCC:
- Crea un record COGMOVCC con i dati del movimento PNO
- Cerca percentuali in COGPERCC per il conto
- Se ci sono percentuali, distribuisce l'importo sui livelli CdC configurati, arrotondando con COGU10
- Corregge eventuali differenze di arrotondamento sull'ultimo record
Controllo decimali (TASK-4518, modifica 03/04/2026)¶
Per ogni movimento, l'importo viene decomposto tramite REDEFINES:
w-pno-importo PIC 9(12)V999999
├── w-pno-importo-int PIC 9(12) (parte intera)
├── w-pno-importo-dec2 PIC 9(02) (primi 2 decimali)
└── w-pno-importo-dec4 PIC 9(04) (decimali dal 3° al 6°)
Se w-pno-importo-dec4 not = zero, scrive una segnalazione "Importo con + di 2 decimali" con l'importo formattato nel campo trs-squad.
File utilizzati¶
| File | Accesso | Scopo |
|---|---|---|
| COGPNONC | I-O | Movimenti Prima Nota contabile (archivio variabile) |
| COGMOVPA | Input | Movimenti partite aperte |
| COGTABEL | Lettura | Tabelle (tipo 66: config contabilita', tipo 45: conti partite) |
| COGPNCON | Lettura | Piano dei conti (verifica esistenza, tipo anagrafica) |
| COGGEANA | Lettura | Anagrafica generale (clienti/fornitori) |
| COGPARTI | Lettura | Partite aperte |
| COGMOVCC | I-O | Movimenti centri di costo (verifica + creazione automatica) |
| COGPERCC | Lettura | Percentuali centri di costo per conto |
| COGCOATT | — | Contabilita' anno attuale (dichiarato, apertura gestita da open-pn-contabilizzata) |
| COGCOPRE | — | Contabilita' anno precedente |
| COGTRAN2 | Lettura | Movimenti partite (accesso per chiave 4: anno/docum/pno-pro/pro) |
| COGTRANS3 | Lettura | Verifica duplicati (solo per az-personal = "WI") |
| COGTRANS | I-O | File temporaneo segnalazioni (in ext-tmp-dir) |
| FLSTA | Output | File spool stampa |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| WIN157 | Help selezione esercizio contabile (F8) |
| GRIDADMN | Gestione griglia evoluta (prepara, svuota, aggiunge record, personalizzazione SF4) |
| COGU10W | Formattazione importi con divisa |
| COGS54 | Gestione stampa/spooler |
Copybook principali¶
cogp65.wrk, cogp65.select, cogp65.fd, cogp65.decla, cogp65-01.scr, k-u10.cpy, cogconta.cpy, wcont.cpy, wcont1.cpy, cogazien.cpy, utilncnf.cpy, utilgdad.cpy, utils54.cpy, utilu10.cpy
Note¶
- Il file COGTRANS e' un file temporaneo per operatore, creato in
ext-tmp-dircon nome#$trs_cogp65.{operatore}. Viene svuotato ad ogni elaborazione. - Per l'installazione "WI" (Wilocs) e' attiva una verifica aggiuntiva di duplicazione fatture tramite COGTRANS3 (
verifica-doppia-des).
Storico modifiche¶
| Data | Descrizione |
|---|---|
| 2026-04-03 | TASK-4518: aggiunto controllo "Importo con + di 2 decimali" per ogni movimento. L'importo viene decomposto via REDEFINES e se i decimali dal 3° al 6° non sono zero, viene scritta una segnalazione su COGTRANS. |
| 2026-04-12 | TASK-4523: consolidamento del controllo decimali. Le variabili working storage per la decomposizione dell'importo (w-pno-importo, w-pno-importo-r REDEFINES, zeta12v6) e la logica di scrittura su COGTRANS (con archivio trs-arc = N/A/P/I in base all'indice l) sono ora integrate nel flusso principale b-10-loop. L'importo formattato viene mostrato nel campo trs-squad. |
| 2026-04-19 | TASK-4518: le variabili di decomposizione importo (w-pno-importo, w-pno-importo-r REDEFINES, zeta12v6) e la logica di segnalazione decimali >2 in b-10-loop erano gia' documentate nelle build precedenti. La modifica attuale aggiunge la scrittura su COGTRANS con log per audit: ogni movimento con decimali dal 3° al 6° non zero genera una riga di segnalazione con importo formattato in trs-squad. |
- I documenti di chiusura contabile (caricati in ik-tab dal paragrafo carica-ik) sono esclusi dal controllo centri di costo. |
|
- La configurazione tm-cfg-ca-data-inizio-gestione definisce la data minima a partire dalla quale vengono verificati i centri di costo. |