Vai al contenuto

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

  1. Apertura archivi: apre COGPNONC con il nome file corrispondente all'archivio selezionato
  2. Scansione sequenziale: st-cogpnonc-notmin → loop rdnxt-cogpnonc
  3. Per ogni archivio selezionato (l = 1, 2, 3), esegue b-src-arcb-rd-arc
  4. Risultati: le anomalie vengono scritte su COGTRANS (file temporaneo in ext-tmp-dir)
  5. 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:

  1. Crea un record COGMOVCC con i dati del movimento PNO
  2. Cerca percentuali in COGPERCC per il conto
  3. Se ci sono percentuali, distribuisce l'importo sui livelli CdC configurati, arrotondando con COGU10
  4. 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-dir con 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.