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¶
- 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) - Caricamento dati contribuente (
a4): - Legge COGGEANA con
ana-tipo = 'C'eana-cod = az-cli-int - Se l'anagrafica non viene trovata: messaggio e uscita
- Se trovata: copia nome, P.IVA, comune, provincia, C.F., sesso in
tab-maschera - Verifica presenza P.IVA o C.F.: se entrambi mancano, blocca con messaggio
- Per persone fisiche (
ana-natgiur = 'P'): legge condizioni "NA" (provincia nascita), "NB" (nome), "NC" (cognome) da COGCNDCF; componetm-contribuentecome "Cognome Nome"; verifica che tutti i dati siano presenti - Verifica formale codice fiscale tramite COGE05 (se valorizzato)
- 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 - Conferma (
a-richiesta-conferma): validazione globale (x-imposta-conferma), conferma utente - Chiamata COGU63: inizializzazione
util-u64, copia parametri datab-mascherainutil-u64,call 'COGU63',cancel 'COGU63' - Ritorno a
a4per una nuova elaborazione, oppure uscita tramitefine
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 daaz-cli-int(dacogazien.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-telematicaviene inizializzato a '1' prima del ciclo accept (valore predefinito = trasmissione telematica attiva).
Documentazione tecnica -- 2026-04-26