COGP48 - Stampa Fatturato per Fornitore / Cliente¶
Panoramica¶
Programma di stampa che produce il riepilogo del fatturato per fornitore o per cliente, con totalizzazione per mese, per anagrafica e generale. Supporta l'ordinamento per codice o per ragione sociale, la conversione multivaluta e l'esportazione in formato Excel (TSV).
Tipo: Report interattivo con selezione parametri, sort ed esportazione dati.
Posizioni nel menu¶
| Menu | Percorso |
|---|---|
| Contabilita' | Fatture Fornitori > Stampe > Situazione Fatturato |
| Vendite | Fatturazione > Stampe > Fatturato per cliente |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB (cogtabel) | Input | Tabella parametri generali (tipi fattura, reverse charge) |
| COGGEANA | Input | Anagrafica generale (clienti/fornitori) |
| COGFATTU | Input | Archivio fatture |
| COGARIVA | Input | Archivio registri IVA |
| COGEXPRT | Output | File di esportazione TSV per Excel |
| FLSTA | Output | File di stampa |
| FLSORT | Sort | File di appoggio per ordinamento record |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| cogp48.select | SELECT per i file del programma |
| cogp48.fd | File description per i file del programma |
| cogp48.wrk | Working storage generata da Screens |
| cogp48-01.scr | Screen section della maschera di selezione |
| cogp48.decla | Declaratives per gestione errori I/O |
| cogp48.prc | Procedure generate da Screens (apertura/chiusura file, I/O) |
| cogfiles.cpy | Descrizione record FEURTAB |
| flsta.fd / flsta.cpy | File di stampa |
| cogazien.cpy | Dati azienda corrente |
| utils52.cpy | Utility gestione date (COGS52W) |
| utils54.cpy | Utility gestione stampante (COGS54) |
| utils65.cpy | Utility selezione anagrafica (COGS65W) |
| utilu10.cpy / k-u10.cpy | Utility gestione importi e conversione valuta |
| k-personal.cpy | Costanti personalizzazione azienda |
| coggeana.k02 | Chiave secondaria k02 di COGGEANA |
| cogfattu.k02 | Chiave secondaria k02 di COGFATTU |
| GetDCont.cpy | Routine per ottenere la divisa del conto |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| COGS54 | Gestione stampante (apertura, chiusura, anteprima) |
| COGS52W | Gestione campo data con calendario |
| COGS65W | Selezione anagrafica con ricerca avanzata |
| COGU10W | Conversione importi tra divise e formattazione |
| GRIDTOXS | Esportazione dati in Excel (apertura file TSV) |
Logica di elaborazione¶
Maschera di selezione¶
Il programma determina se operare su fornitori o clienti dal primo carattere di wo-parametro:
- "F" (default): stampa fatturato fornitori.
- "C": stampa fatturato clienti.
Parametri richiesti:
- Da/A anagrafica (tm-cli-da, tm-cli-a): range di codici fornitore/cliente, con lookup tramite COGS65W.
- Da data / A data (tm-da-data, tm-a-data): periodo di riferimento, default anno corrente.
- Ordinamento (tm-ord): "N" per codice numerico (default), "A" per ragione sociale alfabetica.
Fase di elaborazione (elabora section)¶
-
Lettura tipi reverse charge: legge dalla tabella
ATi codici tipo per fatture reverse charge. -
Scansione fatture: scorre COGFATTU sulla chiave secondaria k02 (per tipo anagrafica + codice cliente) nel range selezionato.
-
Per ogni fattura:
- Determina la data di competenza: usa la data fattura (
fat-dafataa) se presente, altrimenti la data movimento. - Per aziende con personalizzazione
k-personal-bb-elettronica, cerca la data effettiva nel registro IVA (COGARIVA) tramitefind-iva. - Verifica che la data rientri nel range selezionato.
- Converte gli importi nella divisa del conto tramite COGU10W (
k-u10-cambio). - Calcola imponibile, IVA e totale. Per note di accredito (fornitori:
az-tipo-naf,az-tipo-ndi; clienti:az-tipo-nac,az-tipo-nci) imposta il segno negativo. -
Rilascia il record nel file di sort.
-
Ordinamento: il sort ordina per ragione sociale + data oppure per codice + data, a seconda della scelta dell'utente.
Fase di stampa (stampa section)¶
-
Preparazione export: apre il file TSV di esportazione e scrive l'intestazione con i nomi colonna.
-
Lettura sort e totalizzazione: scorre i record ordinati, gestendo rotture di livello su:
- Mese (
rot-mese): stampa totale mensile con nome mese (Gennaio...Dicembre). - Anagrafica (
rot-cli): stampa totale per fornitore/cliente. -
A fine elaborazione: stampa totale generale.
-
Formato stampa: per ogni riga stampa codice, ragione sociale, mese, imponibile, IVA e totale. Le note di credito vengono stampate con segno negativo.
-
Esportazione Excel: al termine chiede conferma per aprire il file TSV in Excel tramite il programma GRIDTOXS.
Formattazione importi¶
Tutti gli importi vengono formattati tramite COGU10W con operazione k-u10-edita e lunghezza 16 caratteri, nella divisa del conto corrente.
Note tecniche¶
- Il programma usa
SORT ... INPUT PROCEDURE ... OUTPUT PROCEDUREcon sezioni separate (elabora,stampa). - Il file di esportazione e' in formato TSV (separatore tab
x'09') con record a lunghezza variabile (max 8000 byte), generato in parallelo alla stampa. - La larghezza di stampa e'
k-chr-stampa = 109caratteri. - La chiave secondaria k02 di COGFATTU permette l'accesso per tipo anagrafica + codice cliente.
- La chiave secondaria k02 di COGGEANA viene usata per la ricerca anagrafica.
- Le righe marcate con
040321(21 marzo 2004) indicano l'aggiunta del supporto per stampa fatturato clienti (originariamente il programma gestiva solo fornitori).
Storico modifiche¶
Calcolo imponibile per AI/NDI semplificato (2026-05-22)¶
Per fatture di tipo Auto-fattura interna (az-tipo-ai) o Nota Debito Interna (az-tipo-ndi), il calcolo dell'imponibile in fase di stampa e' stato semplificato:
- Prima: somma dei primi 5 elementi
fat-impo (1..5)tramiteperform varying i from 1 by 1 until i > 5. - Dopo:
move s-totale to s-imponi(imponibile = totale documento).
Per gli altri tipi documento il calcolo resta s-imponi = s-totale - s-iva (invariato).