Vai al contenuto

COGK76 - Controllo Fatture Fornitori (Stampa)

Funzione

Programma di stampa per il controllo delle fatture fornitori. Scansiona COGFATTU per un dato tipo documento e anno, con filtri opzionali su intervallo date e numeri di protocollo, e produce una stampa di dettaglio con: dati fattura, scadenze da COGMOVPA, movimenti contabili da COGMOVCC, dettaglio IVA da COGARIVA, contabilita' analitica da COGMOVCC (tipo analitico).

La stampa viene gestita tramite il sottoprogramma COGS54 (utilita' di stampa standard).

  • Contabilita' > Fatture Fornitori > Stampe > Controllo fatture

Tabelle e file principali

Tabella Descrizione Accesso
COGFATTU Fatture (archivio principale) Input, scansione sequenziale per chiave2 (tipo+anno+numero)
COGGEANA Anagrafica generale (fornitori) Input, read by key
COGMOVCC Movimenti contabili per fattura Input, scansione sequenziale
COGARIVA Archivio IVA per fattura Input, scansione sequenziale
COGMOVPA Movimenti partite/scadenze Input, scansione sequenziale
COGTABEL Tabelle generiche Input, read by key (tipo 22 = modalita' pagamento, tipo 14 = tipo pagamento, tipo 68 = tipi fattura)
FEURTAB Tabella generica Eurosystem Input
FLSTA File di stampa sequenziale Output

Logica principale

Flusso

  1. Inizializzazione (apri): controllo abilitazione, init programma, lettura azienda, apertura file. Lettura preventiva di tutti i codici tipo fattura validi (flag clifotiva(1:1) = 'F') da COGTABEL tipo 68 per costruire la lista usata nella validazione del campo tipo.

  2. Selezione parametri (a4 - a-richiesta-conferma): accept dei filtri:

  3. a-tm-da-data / a-tm-a-data: date con calendario (COGS52).
  4. a-tm-tipo: tipo fattura (validato su COGTABEL tipo 68, solo quelli con clifotiva = 'F'); F8 → WIN067 (tipo 'F').
  5. a-tm-anno: anno protocollo (obbligatorio).
  6. a-tm-da-num / a-tm-a-num: numeri protocollo (facoltativi).

  7. Conferma stampa (a-richiesta-conferma): chiamata a COGS54 per selezione destinazione stampa (schermo/file/stampante, larghezza 132).

  8. Elaborazione (ela-00): loop principale su COGFATTU tramite st-cogfattu-notmin + loop rdnxt-cogfattu:

  9. Filtro per tipo, anno, intervallo numero e date.
  10. Lettura anagrafica fornitore (rd-coggeana).
  11. Lettura modalita' pagamento e tipo pagamento da COGTABEL (tipi 22 e 14).
  12. cerca-scadenze: scansione COGMOVPA per le scadenze della partita (struttura w-tab-mov, max 50 scadenze per fattura).
  13. stampa-r4: scansione COGMOVCC per i movimenti contabili (righe 1-38 = costi, riga 39 = speciale, riga 40 = totale fornitore).
  14. stampa-r5: scansione COGARIVA per il dettaglio IVA (aliquota, codice articolo esente, imponibile, IVA, totale).
  15. stampa-r4-c-analitica: movimenti contabilita' analitica.
  16. Accumulazione in w-tot-generale.

  17. Totale finale (ela-50): stampa del totale generale se diverso da zero.

  18. Chiusura: COGS54 after-print, chiusura file.

Struttura righe di stampa

Struttura Contenuto
r3 Riga principale fattura: protocollo, data movimento, codice+nome fornitore, numero+data fattura fornitore, pagamento, tipo pagamento, prima scadenza, importo
r4 Riga contabilita': conto (codice+descrizione), importo, segno, totale
r5 Riga IVA: aliquota, codice articolo esente, imponibile, IVA, totale
r6 Riga scadenze: fino a 4 scadenze per riga (data+importo in w-tab-mov)

Gestione scadenze (cerca-scadenze)

Legge COGMOVPA con posizionamento sulla chiave partita. Memorizza data valuta, sigla e importo in w-tab-mov (array di 50 elementi). Le scadenze vengono poi stampate in r6 a gruppi di 4 per riga. Il flag w-mov-paprogsca e il contatore w-mov-paprogrca gestiscono il progressivo delle scadenze.

Intestazione di pagina (st-intesta)

Stampa: nome azienda, titolo "Controllo fatture fornitore", data di sistema, numero pagina, poi filtri applicati (tipo, anno, intervallo date, intervallo numeri).

Validazione tipo fattura

All'avvio il programma costruisce w-tab-tipo (array di 20 elementi) con tutti i codici tipo COGTABEL tipo 68 con clifotiva(1:1) = 'F'. La validazione in x-controlla-tm-tipo usa questa lista per il messaggio "Valori validi: ...".

Copybook principali

Copybook Contenuto
cogk76.wrk Working storage maschera (Screen Designer)
cogk76-01.scr Screen section
cogk76.select SELECT file
cogk76.fd FD file
cogk76.decla Declaratives
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy WS comuni
cogazien.cpy Dati azienda
utils52.cpy Interfaccia COGS52W (calendario)
utils54.cpy Interfaccia COGS54 (stampa)
utils77.cpy Utility
k-u10.cpy / utilu10.cpy Gestione importi in divisa
utilw67.cpy Interfaccia WIN067 (selezione tipo documento)
wcont.cpy / wcont1.cpy Linkage section
flsta.cpy / flsta.fd File di stampa sequenziale

Programmi chiamati (CALL)

Programma Scopo
COGS52W Calendario (date picker) per i campi data
COGS54 Utility stampa: selezione destinazione e gestione pagine
WIN067 Selezione tipo documento (F8 sul campo tipo fattura)
COGU10W Formattazione importi in divisa

Note tecniche

  • La larghezza di stampa e' 132 colonne (k-chr-stampa = 132).
  • Il contatore righe ctr-riga e' inizializzato a 333 (valore speciale che forza la stampa dell'intestazione alla prima riga).
  • La stampa di contabilita' esclude la riga 39 se tutti i campi conto sono zero; la riga 40 (totale fornitore) viene sempre stampata separatamente.
  • Il flag flag-trovato-alitab indica la presenza di righe IVA; nel codice e' sempre impostato a 'S' poiche' la lettura avviene da COGARIVA e non dal vecchio campo fat-alitab.
  • Il totale IVA (stampa-r5) distingue imponibile (w-tot-1) da IVA (w-tot-2) e stampa il totale combinato solo se w-tot-3 > 0.
  • La divisa usata per la formattazione degli importi e' fat-currency (valuta della fattura) per i dettagli e w-currency-conto (divisa conto da get-divisa-conto) per il totale finale.