Vai al contenuto

COGU64 -- Creazione Elenco Clienti Fornitori

Sorgente: cbl/cogu64.cbl | Tipo: Programma interattivo | Program-ID: COGU64

Menu: Contabilita' > Bilancio > Nuovi elenchi clienti fornitori > Creazione elenco clienti fornitori


Scopo

Raccoglie i dati del contribuente per la comunicazione annuale IVA (elenchi clienti/fornitori) e richiama COGU63 per l'elaborazione effettiva. Il programma carica automaticamente i dati anagrafici dall'archivio clienti interni (COGGEANA), verifica la completezza e la correttezza formale, quindi passa il controllo a COGU63 con i parametri compilati.


File e Tabelle

File/Tabella Copybook Uso
COGTABEL feurtab.fd, cogfiles.cpy Tabella generica contabilita'
COGGEANA cogu64.select, cogu64.fd Anagrafica generale -- lettura dati contribuente
COGCNDCF cogu64.select Condizioni clienti/fornitori -- persona fisica (NA/NB/NC)

Interfaccia utente

Maschera (tab-maschera)

Campo Tipo Descrizione
tm-contribuente x(40) Denominazione o cognome+nome del contribuente
tm-piva-contribuente 9(11) Partita IVA
tm-cfis x(16) Codice fiscale
tm-anno 9(04) Anno di elaborazione
tm-comune x(40) Comune (o comune di nascita per persone fisiche)
tm-prov x(02) Provincia
tm-datanas 9(08) Data di nascita (solo per persone fisiche)
tm-sesso x(01) Sesso (solo per persone fisiche)
tm-cfis-obbligato x(16) C.F. soggetto obbligato (se diverso dal contribuente)
tm-cfis-caf x(16) C.F. del CAF
tm-n-caf-albo 9(05) Numero iscrizione CAF all'albo
tm-telematica x(01) Flag trasmissione telematica (default "1")
tm-data-imp 9(08) Data impegno trasmissione

Validazioni attive

Campo Regola Messaggio
tm-anno Deve essere > 2005 "Anno elaborazione non valido!"
tm-comune Non deve essere vuoto "Comune obbligatorio!"
tm-cfis-obbligato Se valorizzato, deve essere formalmente corretto (COGE05) "Codice fiscale formalmente errato!"
tm-cfis-caf Se valorizzato, deve essere formalmente corretto (COGE05) "Codice fiscale formalmente errato!"

Struttura del programma

Flusso principale

  1. Inizializzazione (a000): controllo abilitazione, lettura azienda, apertura file, configurazione tasti (F3-conferma, SF4-griglia, F8-calendario, SF5-esporta-excel), lettura data sistema, lettura divisa conto (get-divisa-conto)
  2. Caricamento dati contribuente (a4):
  3. Legge COGGEANA con ana-tipo = 'C' e ana-cod = az-cli-int
  4. Se l'anagrafica non viene trovata: messaggio e uscita
  5. Se trovata: copia nome, P.IVA, comune, provincia, C.F., sesso in tab-maschera
  6. Verifica presenza P.IVA o C.F.: se entrambi mancano, blocca con messaggio
  7. Per persone fisiche (ana-natgiur = 'P'): legge condizioni "NA" (provincia nascita), "NB" (nome), "NC" (cognome) da COGCNDCF; compone tm-contribuente come "Cognome Nome"; verifica che tutti i dati siano presenti
  8. Verifica formale codice fiscale tramite COGE05 (se valorizzato)
  9. Input parametri: a-tm-comune, a-tm-anno, a-tm-cfis-obbligato, a-tm-cfis-caf, a-tm-n-caf-albo, a-tm-telematica, a-tm-data-imp
  10. Conferma (a-richiesta-conferma): validazione globale (x-imposta-conferma), conferma utente
  11. Chiamata COGU63: inizializzazione util-u64, copia parametri da tab-maschera in util-u64, call 'COGU63', cancel 'COGU63'
  12. Ritorno a a4 per una nuova elaborazione, oppure uscita tramite fine

Logica persona fisica

Quando ana-natgiur = 'P': - COGCNDCF con condizione "NA" -> cnd-prov-n (provincia nascita) e cnd-loca-n (comune nascita) -> tm-prov, tm-comune - COGCNDCF con condizione "NB" -> cnd-nome-n -> w-nome - COGCNDCF con condizione "NC" -> cnd-cognome-n - tm-contribuente = cnd-cognome-n + " " + w-nome

Se uno qualsiasi di questi elementi manca, il programma mostra un avviso (non bloccante tranne per i campi obbligatori) e imposta flag-ok-esci. Se ok-esci, l'elaborazione viene interrotta con "Elaborazione interrotta".

Interfaccia con COGU63 (util-u64, utilu64.cpy)

Campo util-u64 Sorgente
u64-called "COGU64"
u64-contribuente tm-contribuente
u64-piva-contribuente tm-piva-contribuente
u64-cfis-contribuente tm-cfis
u64-anno tm-anno
u64-comune tm-comune
u64-cfis-obbligato tm-cfis-obbligato
u64-cfis-caf tm-cfis-caf
u64-n-caf-albo tm-n-caf-albo
u64-telematica tm-telematica
u64-data-imp tm-data-imp

Programmi chiamati (CALL)

Programma Scopo
COGU63 Elaborazione effettiva elenco clienti/fornitori
COGE05 Verifica formale codice fiscale
COGU10W Gestione divisa conto (tramite get-divisa-conto)
COGS52W Calendario (F8 sui campi data, tramite utils52.cpy)

Copybook utilizzate

Copybook Contenuto
cogu64.select SELECT dei file
cogu64.fd FD dei file
cogu64.wrk Working storage maschera
cogu64.decla Declaratives
cogu64.prc Procedure copybook
cogu64-01.scr Maschera principale
cogfiles.cpy Record FD feurtab
cogazien.cpy Dati azienda
cogconta.cpy Struttura conti contabilita'
k-u10.cpy Costanti COGU10W
utils52.cpy Interfaccia COGS52W (calendario)
utilu10.cpy Interfaccia COGU10W
utilw52.cpy Working storage COGS52W
utilu64.cpy Interfaccia COGU63 (struttura util-u64)
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy Working storage comuni
wcont.cpy, wcont1.cpy Linkage section

Note tecniche

  • La variabile w-az-cli-int (pic 9(5)) contiene il codice cliente interno dell'azienda, letto da az-cli-int (da cogazien.cpy). E' il punto di partenza per la ricerca dei dati del contribuente.
  • Il campo passaggio (pic x(16) + 9(04)) viene usato come buffer per la chiamata a COGE05: codice (x(16)) riceve il C.F. da verificare, staer0 (9(04)) riceve il risultato (0 = corretto, != 0 = errore formale).
  • flag-ok-esci / ok-esci (88 = 'S') gestisce l'interruzione dell'elaborazione per persona fisica con dati incompleti. Il programma mostra tutti gli avvisi prima di decidere se interrompere.
  • Il campo k-colid-prov (78 = 9) indica l'ID della colonna provincia nella griglia (personalizzazione).
  • Il titolo maschera e' impostato a "Elenchi annuali iva " (con spazio finale): questo stringa compare nel titolo della finestra.
  • tm-telematica viene inizializzato a '1' prima del ciclo accept (valore predefinito = trasmissione telematica attiva).

Documentazione tecnica -- 2026-04-26