COGP58 — Stampa fatture R.D. per agente¶
Sorgente: cbl/cogp58.cbl | Tipo: Programma GUI standalone (stampa) | Program-ID: cogp58
Menu: Vendite > Fatturazione > Stampe [Fatture R.D. x Agente] ; Lab.Odont. > Fatturazione > Stampe [Fatture R.D. x Agente]
Scopo¶
Stampa le fatture a rimessa diretta (R.D.) di un determinato periodo, suddivise per agente. Per ciascun agente viene prodotta una pagina con l'elenco delle fatture e i totali; le fatture a contanti (giorni valuta della prima scadenza <= 1) sono raggruppate a parte con agente convenzionale 99999, e infine viene stampato un totale generale.
Vengono selezionate solo le fatture batch (italia) con condizione di pagamento a rimessa diretta (tes-rb = 'D') e la
cui prima bolla collegata conferma tale condizione. Ogni riga stampata rappresenta una scadenza della fattura (con
importo, data documento, data scadenza, pagamento).
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGFATTU | (gestore generato) | Fatture: sorgente dell'iterazione, filtro tipo batch e periodo |
| COGRACCO | (gestore generato) | Raccordo fattura-bolla: risalita alla prima bolla collegata (a1-src-bol) |
| COGTESBO | (gestore generato) | Testata bolla: condizione di pagamento (tes-rb, tes-pag1) da confrontare |
| COGGEANA | (gestore generato) | Anagrafica cliente (agente, nome, localita', provincia) e nome agente |
| COGTABEL | (gestore generato) | Condizione di pagamento (tipo 14): descrizione e giorni prima scadenza (euta-pg-gg-1r) |
| cogtrans (temporaneo) | FD inline in sorgente | File indicizzato temporaneo di transito, chiave agente/scadenza/cliente-des/fattura; ordina le fatture per agente e scadenza prima della stampa |
| flsta | flsta.fd, flsta.cpy |
File di stampa |
Il file cogtrans e' temporaneo (SELECT/FD dichiarati nel sorgente, nome #$cogp58.<oper> nella tmp-dir) e viene
cancellato in chiusura (delete file cogtrans).
Flusso principale¶
apri/main: init,open-files,rd-azi, composizione nome file temporaneo, lettura divisa conto (tm-divisa).a4: (ri)creazione del file temporaneo cogtrans (con lock "funzione gia' in uso"); preimpostazione del periodo di default (mese precedente: dal primo all'ultimo giorno del mese precedente, calcolato viaDTPRG/PRGDT).- Accept campi: data inizio (
a-tm-da-data) e data fine (a-tm-a-data), entrambi con calendario F8; validazione date (x-controlla-tm-*-data, con controllo inizio <= fine). a-richiesta-conferma: convalida, selezione stampante/anteprima (COGS54), poia-elaboraed-stampa.a-elabora: scorre COGFATTU (batch, dall'anno inizio)a-10-loop:- filtra tipo batch e periodo (
fat-damov*dentrotm-da-data..tm-a-data), aggiornando i contatori letti/nel periodo/collegati (tm-f-l,tm-f-p,tm-f-c); a1-src-bol: cerca via COGRACCO la prima bolla, ne verifica la condizione di pagamento (tes-rb = 'D') e, tramite COGTABEL tipo 14, distingue contanti (fl-ok = 'C') da rimessa diretta vera (fl-ok = 'S');- calcola le scadenze con COGS09 e scrive un record cogtrans per ogni scadenza con importo != 0 (agente reale, oppure 99999 se contanti), convertendo l'importo in divisa conto via COGU10.
d-stampa: legge cogtrans in ordine di chiave (agente/scadenza)d-10-loop, cambiando pagina/intestazione a ogni cambio agente (d3-testa), stampando le righe (rigel) e i totali per agente (d1-tot-age) e generale (d1-tot-tot).fine/z-chiudi: chiusura file,delete file cogtrans, uscita.
Filtri e prospetto prodotto¶
Filtri di selezione:
- Periodo: data inizio / data fine (
tm-da-data,tm-a-data); default = mese solare precedente. - Tipo fatture: solo fatture batch italia (
az-tipo-batch) con condizione di pagamento rimessa diretta ('D'), confermata dalla prima bolla collegata.
Intestazione " Fatture con Rimessa Diretta " con data stampa, azienda, divisa (Euro), periodo, e per ogni agente il nominativo. Colonne:
Cliente | Localita' | Pr. | Fattura | Data | Importo | Pagamento | Scadenza.
Le fatture senza agente sono raggruppate come "Fatture senza agente" (agente 0) e quelle a contanti come "Fatture contanti" (agente 99999). In coda a ogni agente il "Totale agente:" e, a fine stampa, il "Totale generale:".
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
COGU10W |
Conversione/edizione importi in divisa conto |
| COGS09 | Calcolo delle scadenze di pagamento della fattura |
| COGS54 | Selezione/gestione stampante e anteprima |
DTPRG / PRGDT |
Conversione data <-> progressivo giorni per il calcolo del periodo di default |
COGS60 |
Costruzione controlli maschera (z-costruisci-s60) |
Le letture rd-tab/rd-ana/rd-tes e le start/read su COGFATTU/COGRACCO sono effettuate con verbi COBOL diretti sui
file (non solo tramite gestori generati).
Configurazioni (RNEWCONF)¶
Nessuna configurazione RNEWCONF letta dal programma.
Note¶
- Il criterio "contanti" e' determinato dai giorni della prima scadenza della condizione di pagamento (COGTABEL tipo 14,
euta-pg-gg-1r= 0 o 1): tali fatture confluiscono nell'agente 99999 e in una pagina dedicata. - Il file cogtrans e' esclusivo per operatore: l'apertura in output fallisce con "Funzione gia' in uso" se un altro processo lo detiene; viene cancellato all'uscita.
- Ogni scadenza genera un record/riga separata: una fattura con piu' scadenze produce piu' righe (
a70-loop-scad). - Se la condizione di pagamento della fattura differisce da quella della bolla, viene mostrato un avviso ma l'elaborazione prosegue usando la condizione della bolla.