Inserimento/Gestione Prima Nota e Documenti IVA (COGE77W / COGE77N)¶
Identificazione¶
- Programma: COGE77W (wrapper) → COGE77N (versione grafica corrente)
- Autore: Andrea Parmeggiani - Eurosystem2000
- Area: Contabilita' / Prima Nota
- Descrizione: Inserimento e modifica di documenti di prima nota, fatture e documenti IVA
- Righe: 212 (wrapper) + 22.460 (COGE77N)
- Voci menu: 9 (piu' usato dell'intera contabilita')
Architettura wrapper (COGE77W)¶
COGE77W legge la configurazione CONTABIL/versione-programmi-doc tramite RNEWCONF e smista a programmi diversi:
| Parametro | Versione GRAFICA (→ COGE77N) | Versione carattere |
|---|---|---|
| IIN | Inserimento nuovo | → COGE77 (7.378 righe) |
| IIA | Inserimento con modifica | → COGE77 |
| GI | Gestione IVA | → COGE78 (1.926 righe) |
| IPN | Inserimento Prima Nota | → COGE74 (3.778 righe) |
| IPM | Inserimento Prima Nota multipla | → COGE54 (2.515 righe) |
| IPP | Inserimento provvisorio | → COGE74 con param "PROVVISO" |
| IPMP | Inserimento provvisorio multiplo | → COGE54 con param "PROVVISO" |
| GP | Gestione Prima Nota | → COGE75 (3.970 righe) |
La documentazione che segue si riferisce a COGE77N, la versione grafica corrente.
Funzionalita' principale¶
COGE77N e' il programma centrale della contabilita'. Gestisce l'intero ciclo di vita dei documenti contabili:
- Inserimento di documenti IVA (fatture, note credito) e prima nota (movimenti contabili)
- Modifica di documenti esistenti non ancora archiviati
- Cancellazione di documenti con controlli di sicurezza
- Duplicazione di documenti esistenti
Modalita' operative¶
| Modo | Parametro | Sottotipi |
|---|---|---|
| Inserimento (I) | wo-parametro = "II" o "IP" | IVA: Agricolo (A), Generico (N); P.Nota: Normale (N), Provvisorio (P) |
| Gestione (G) | wo-parametro = "GI" o "GP" | Modifica documento esistente |
| Duplicazione (D) | via e77-called | Copia da documento esistente |
Interfaccia a 4 pagine (tab)¶
| Pagina | Costante | Contenuto |
|---|---|---|
| 1 (k-pagina-iva) | IVA | Dati fattura, tipo documento, anagrafica, divisa, pagamento |
| 2 (k-pagina-rit) | Ritenute | Ritenuta d'acconto, previdenziale, SSN |
| 3 (k-pagina-pno) | Prima Nota | Movimenti dare/avere con conto, importo, descrizione |
| 4 (k-pagina-com) | Commesse | Centri di costo/progetto (visibile solo se abilitato) |
Flusso operativo¶
1. Inizializzazione (A000)¶
z-99-init-program: Inizializzazione variabili di sistemactr-abil: Verifica permessi operatorerd-azi: Lettura dati azienda- Gestione chiamate esterne:
e77-called = "COGE77-CALLED": Richiamo documento specificocogub6-caller = "COGUB6": Chiamata da cruscotto documentie77-caller = "CAP078": Chiamata da fatture CEx99-confi: Caricamento configurazione (20+ parametri da RNEWCONF)open-files: Apertura di tutti i file- Verifica fatture da ricevere automatiche (se configurato)
verifica-contropartite-configurate: Controllo setup contropartitex-carica-lingua: Caricamento lingua interfaccia- Creazione pulsanti custom (F7, F6, F9, Shift-F9)
rd-msk-pop: Visualizzazione form principale
2. Preparazione dati (A4)¶
- Inizializzazione working storage e flag
- Accettazione data sistema
- Configurazione tab control (4 pagine)
- Costruzione griglie (IVA, Prima Nota, Commesse)
- Lettura permessi operatore
- Caricamento codici contropartita
x99-cfg: Lettura configurazioni specifiche
3. Event loop principale (Z-99-EVENT-FORM-1)¶
Il programma entra in un ciclo eventi guidato dall'interfaccia grafica:
- cmd-tabchanged: Cambio pagina/tab
- ntf-resized: Ridimensionamento finestra
- Accettazione campi singoli con validazione
- Gestione tasti funzione
4. Pagina 1: Dati IVA/Fattura¶
Acquisizione dati principali:
- Tipo documento IVA (tm-doc-iva-tdo): Validato su COGTABEL tipo 68
- Numero/Anno documento: Con numerazione automatica via COGS25
- Anagrafica (tm-ana-cod): Cliente o fornitore da COGGEANA/COGANAPP
- Data registrazione (tm-data-reg): Con validazione calendario fiscale
- Divisa e cambio: Gestione multi-valuta via COGU10W
- Codice pagamento (tm-pag-cod): Da COGTABEL tipo 16
- Protocollo IVA: Con forzatura possibile via F9
Griglia IVA (max 9 elementi — k-max-iva-ele)¶
- Codice IVA con aliquota e articolo esenzione
- Imponibile e imposta
- Percentuale non deducibile
- IVA complementare (per reverse charge)
- Gestione via COGS85 e COGU95
5. Pagina 2: Ritenute d'acconto¶
- Tipo ritenuta e aliquota
- Importo soggetto a ritenuta
- Valore ritenuta calcolato
- Ritenuta previdenziale (quote sociali/collaboratore)
- Ritenuta SSN (aliquote contributive)
6. Pagina 3: Prima Nota (max 100 righe — k-max-pno-ele)¶
Griglia movimenti contabili:
- Conto (mastro/conto/sottoconto): Validato su COGPNCON
- Segno: Dare (D) o Avere (A)
- Importo: In valuta locale o estera
- Descrizione: Libera o da modello
- Data valuta: Per competenza temporale
- Centro di costo: Se abilitato
- Selezione conto via COGU48 (F8)
7. Pagina 4: Commesse¶
- Visibile solo se
tm-cfg-commesse-anche-da-pno = "S" - Assegnazione progetto/centro di costo
- Allocazione costi
8. Salvataggio (C-AGGIORNA)¶
8.1 Numerazione (COGS25)¶
- Generazione numero progressivo IVA
- Generazione numero prima nota
8.2 Calcolo movimenti (B-CALCOLA-PNO)¶
- Costruzione record transazione da dati form
- Chiusura/riapertura file COGTRANS per pulizia
- Generazione descrizioni movimenti
- Creazione record prima nota in COGTRANS
- Creazione partite aperte (se applicabile)
8.3 Scrittura Prima Nota (C1-PRIMA-NOTA / C6-PRIMA-NOTA)¶
- Scrittura movimenti su COGPNONC
- Inserimento partite via COGU48
- Allocazione centri di costo via COGS85
- Validazione date competenza
8.4 Scrittura IVA (C2-IVA / C3-FATTURA)¶
- Scrittura registro IVA su COGARIVA
- Scrittura fattura su COGFATTU / COGFATT2
- Gestione reverse charge intracomunitario
8.5 Operazioni aggiuntive¶
- Scrittura ritenute (COGRITAC)
- Scrittura raccordo (COGRACCO)
- Gestione cespiti (COGK74, se collegamento attivo)
- Gestione e-fatture (COGUB1)
- Event logging (GESEVLOG)
9. Cancellazione (E-CANCELLA)¶
Controlli pre-cancellazione:
- Flag
w-fl-ammin: Solo amministratori (setm-cfg-canc-solo-ammattivo) w-partita-storicizzata: Blocco se partita storicizzataw-documento-intoccabile: Blocco se conto protetto- Verifica IVA per cassa: Periodo non chiuso
- Verifica e-fattura: Chiamata COGUB1
Conferma utente (F3), poi E1-CANCELLA:
- Cancellazione COGTRANS
- Cancellazione COGPNONC
- Cancellazione COGARIVA
- Cancellazione COGFATTU / COGFATT2
- Cancellazione COGMOVPA (movimenti partite)
- Cancellazione COGRITAC
- Cancellazione COGRACCO
- Cancellazione assegnazioni commesse
File principali¶
| File | Prefisso | Operazioni | Descrizione |
|---|---|---|---|
| COGTRANS | trs- | Open/Write/Read/Delete | Transazioni temporanee (file di lavoro) |
| COGPNONC | pno- | Write/Read/Rewrite/Delete | Movimenti prima nota (record definitivi) |
| COGFATTU | fat- | Write/Read/Delete | Fatture (testata) |
| COGFATT2 | fa2- | Write/Read/Delete | Fatture dettaglio/archivio |
| COGARIVA | ari- | Write/Read/Delete | Registro IVA |
| COGMOVPA | mpa- | Write/Delete | Movimenti partite aperte |
| COGPARTI | par- | Read/Write | Partite aperte (master) |
| COGRITAC | rit- | Write/Delete | Ritenute d'acconto |
| COGRACCO | rac- | Write/Rewrite/Delete | Raccordo fatture-bolle |
| COGCNDCF | cnf- | Write | Condizioni/configurazioni |
| COGGEANA | ana- | Read | Anagrafica generale (clienti/fornitori) |
| COGANAPP | app- | Read | Approfondimento anagrafica |
| COGPNCON | pco- | Read | Piano dei conti |
| COGTABEL | euta- | Read | Tabelle di sistema |
| COGPNMOD | mod- | Read | Modelli prima nota |
| COGSLPCO | slp- | Read | Saldi piano dei conti |
| COGMOVCC | mcc- | Write | Movimenti centri di costo |
| FEURTAB | eur- | Read | Tabella cambi valute |
| LODTMDES | lod- | Write | Log transazioni/audit |
| FILEINP | - | Read | Import da file esterno |
| FILEJDOC | - | Write | Cache documenti (archiviazione) |
Costanti e limiti¶
| Costante | Valore | Descrizione |
|---|---|---|
| k-max-iva-ele | 9 | Max righe IVA |
| k-max-pno-ele | 100 | Max righe prima nota |
| k-max-scd-ele | 38 | Max scadenze |
| k-pagina-iva | 1 | Tab: IVA |
| k-pagina-rit | 2 | Tab: Ritenute |
| k-pagina-pno | 3 | Tab: Prima Nota |
| k-pagina-com | 4 | Tab: Commesse |
Pulsanti custom¶
| ID | Tasto | Costante | Funzione |
|---|---|---|---|
| 1 | F7 | k-f7-apri-modello | Apri modello prima nota |
| 2 | F6 | k-f6-contropartite | Contropartite |
| 3 | F9 | k-f9-forzo-protocollo | Forza numero protocollo IVA |
| 4 | F9 | k-f9-messa-in-arrivo | Messa in arrivo documento |
| 5 | F7 | k-f7-apri-file | Apri file esterno |
| 6 | Shift-F9 | k-sf9-duplica-riga | Duplica riga prima nota |
Catena di chiamata¶
Programmi piu' frequenti¶
| Programma | Chiamate | Righe | Funzione |
|---|---|---|---|
| COGU48 | 18 | 3.608 | Selezione conti/anagrafiche (F8) |
| GRIDADMN | 15+ | 3.142 | Amministrazione griglie dati |
| COGS25 | 15 | 692 | Numerazione progressiva documenti |
| COGS77 | 6 | 1.749 | Operazioni partite aperte |
| COGS85 | 4 | 1.390 | Allocazione centri di costo |
Tutti i programmi chiamati (49 con sorgente)¶
| Programma | Righe | Funzione |
|---|---|---|
| AZVALIDA | 56 | Validazione date |
| CANIVA | 1.279 | Cancellazione operazioni IVA |
| COGC55 | 882 | Analisi conto |
| COGC57 | 3.421 | Reporting conti |
| COGE22 | 1.156 | Selezione divisa/valuta (F8) |
| COGE40 | 11.527 | Riepilogo/totali documento |
| COGE67 | 1.273 | Lookup tipo documento |
| COGE69 | 1.903 | Dettaglio documento |
| COGE100 | 1.009 | Calcolo provvigioni |
| COGG48 | 1.422 | Selezione gruppo conti |
| COGH20 | 1.451 | Dati testata |
| COGK74 | 820 | Gestione acquisizione cespiti |
| COGP57 | 2.088 | Selezione progetto/reparto |
| COGS09 | 1.002 | Registro contabile |
| COGS25 | 692 | Numerazione progressiva |
| COGS51 | 401 | Simulazione scritture contabili |
| COGS52W | 837 | Gestione provvigioni (finestra) |
| COGS65W | 1.031 | Riepilogo IVA (finestra) |
| COGS77 | 1.749 | Operazioni partite aperte |
| COGS79 | 632 | Gestione banche ABI/CAB |
| COGS85 | 1.390 | Allocazione centri di costo |
| COGS99W | 409 | Analisi costi (finestra) |
| COGU06 | 9.586 | Selezione contropartita |
| COGU10 | 1.110 | Lookup divisa/prezzo |
| COGU10W | 1.193 | Lookup divisa (finestra) |
| COGU18 | 1.138 | Dettaglio conto |
| COGU48 | 3.608 | Selezione conto/anagrafica |
| COGU95 | 2.783 | Selezione codice IVA |
| COGUB1 | 2.173 | Operazioni e-fattura |
| COGUB9 | 1.398 | Fatture in testata esterna (FTE) |
| COGZDEW | 2.449 | Reverse charge UE |
| COPIAF | 1.898 | Copia/duplicazione fattura |
| DIALOGS | 330 | Visualizzazione dialoghi |
| DTPRG | 62 | Data → numero progressivo |
| ESTRXLS | 411 | Esportazione Excel |
| GESEVLOG | 192 | Event logging |
| GESSTR | 238 | Gestione stringhe evento |
| GRSM12 | 450 | Sincronizzazione griglia |
| PRGDT | 74 | Numero progressivo → data |
| RNEWCONF | 620 | Lettura configurazione |
| WIN066 | 1.113 | Finestra selezione (F8) |
| WIN067 | 501 | Selezione tipo documento IVA (F8) |
| WIN094 | 832 | Ricerca avanzata cliente |
| WIN129 | 1.598 | Finestra selezione |
| WIN200 | 997 | Visualizzazione dati |
Programmi senza sorgente: cap342, capt41, wca325 (probabilmente moduli esterni o obsoleti).
Runtime AcuCOBOL: C$OPENSAVEBOX (dialogo file), W$TEXTSIZE (dimensioni testo).
Modalita' di chiamata¶
Il programma puo' essere invocato:
- Da menu (autonomo): Tramite wrapper COGE77W
- Da COGUB6 (cruscotto documenti):
cogub6-caller = "COGUB6" - Da CAP078 (fatture CE):
e77-caller = "CAP078" - Richiamo documento:
e77-called = "COGE77-CALLED"cone77-documee77-anno - Operazione speciale:
e77-operazione = "IMS"(messa in arrivo)
Parametri in linkage:
stringhe(wcont.cpy): Contesto di sistemautilcoge77.cpy: Strutture specifiche (e77-caller, e77-docum, e77-anno, e77-nfat, e77-operazione)wcont1.cpy: Dati aggiuntivi di contesto
Configurazioni richieste¶
Via RNEWCONF (gruppo "CONTABIL")¶
| Chiave | Effetto |
|---|---|
| versione-programmi-doc | GRAFICA / carattere (determina dispatch nel wrapper) |
| canc-solo-amm | Cancellazione riservata ad amministratori |
| gestione-partite | Abilita gestione partite aperte |
| commesse-anche-da-pno | Mostra tab commesse |
| gest-auto-fatt-da-ricevere | Fatture da ricevere automatiche |
| fatt-da-ricev-nr-giorni | Giorni per fatture da ricevere |
| desc-digitata-fissa | Descrizione fissa in prima nota |
| collegamento-cespiti-coge | Collegamento con gestione cespiti |
Tabelle di sistema (COGTABEL)¶
| Tipo | Contenuto |
|---|---|
| 16 | Condizioni di pagamento |
| 50 | Codici IVA |
| 66 | Anno contabile corrente |
| 68 | Tipi documento con contropartite IVA |
Note tecniche¶
Copybook principali¶
coge77n.wrk: Working storage principalecoge77n.decla: Declaratives (gestione errori I/O per 60+ file)coge77n.select: SELECT file aggiuntivicoge77n-01.scr: Definizione screen/formutilcoge77.cpy: Struttura linkage specifica
Strutture dati chiave¶
tab-maschera(tm-): Dati form principale con flag di statotm-dati-permanenti: Dati persistenti tra operazioni (date, tipi)w-screen-status: Stato interfacciaw-dati-called: Dati passati da/verso programmi chiamanti
Pattern di gestione errori¶
perform rd-cogpnonc
if w-verbo-invalido
string "messaggio errore" delimited size into wb-msg
perform vbx-msg-error
go to exit-paragraph
end-if
Dialoghi: vbx-msg-error (errore), vbx-msg-warning (avviso), vbx-msg-info (info), acc-conf (conferma F3), box-msg (messaggio OK).
Diagramma di flusso¶
COGE77W (wrapper)
│
┌─────────┴─────────┐
│ cfg=GRAFICA │ cfg=altro
▼ ▼
COGE77N COGE77/74/75/78/54
│ (versioni carattere)
▼
A000 (init)
│
A4 (preparazione)
│
DISPLAY form 4 tab
│
Z-99-EVENT-FORM-1 ◄──────────┐
(event loop) │
│ │
┌────┼────┐ │
│ │ │ │
Tab Campo Tasto │
chg valid funz. │
│ │ │ │
│ │ ├── F3 Conferma ──┐ │
│ │ ├── F4 Cancella ──┤ │
│ │ ├── F7 Modello │ │
│ │ ├── F8 Selezione │ │
│ │ └── ESC Esci ─────┤ │
│ │ │ │
│ └──────────────────────┘ │
│ │ │
└──────────────────────────┘ │
│ │
┌──────────┴──┐ │
│ │ │
C-AGGIORNA E-CANCELLA
(salva) (elimina)
│ │
┌─────┴─────┐ │
│ │ │
B-CALCOLA C1/C3/C6 E1-CANCELLA
-PNO (scrivi) (cancella tutti
│ │ i record)
COGTRANS COGPNONC │
(temp) COGFATTU │
COGARIVA │
COGMOVPA │
COGRITAC │
│ │
└────┬────┘
│
Ritorno a ───────┘
event loop
Riferimenti nel codice¶
Paragrafi principali¶
A000: Inizializzazione e aperturaA4: Preparazione dati e display formZ-99-EVENT-FORM-1: Event loop principaleA6-CARICA-DOCUMENTO: Caricamento documento per modificaA61-CARICA-IVA: Caricamento dati IVAA62-CARICA-PNO: Caricamento movimenti prima notaA63-CARICA-RIT: Caricamento ritenuteB-CALCOLA-PNO: Calcolo movimenti da dati formB2-SCRIVI-COGTRANS: Scrittura transazione temporaneaC-AGGIORNA: Salvataggio documentoC1-PRIMA-NOTA: Scrittura prima notaC3-FATTURA: Scrittura fatturaC6-PRIMA-NOTA: Scrittura prima nota (archivio)E-CANCELLA: Controlli pre-cancellazioneE1-CANCELLA: Cancellazione effettivax99-confi: Lettura configurazione inizialex99-cfg: Lettura configurazioni specificheFINE: Cleanup e uscita
Posizioni chiave¶
- Riga 1: Identification division
- Riga ~1234: Procedure division / main section
- Riga ~7638: A6-CARICA-DOCUMENTO
- Riga ~8289: B-CALCOLA-PNO
- Riga ~9155: C-AGGIORNA
- Riga ~11712: E-CANCELLA
- Riga ~13618: Z-99-EVENT-FORM-1