Vai al contenuto

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

  1. apri / main: init, open-files, rd-azi, composizione nome file temporaneo, lettura divisa conto (tm-divisa).
  2. 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 via DTPRG/PRGDT).
  3. 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).
  4. a-richiesta-conferma: convalida, selezione stampante/anteprima (COGS54), poi a-elabora e d-stampa.
  5. a-elabora: scorre COGFATTU (batch, dall'anno inizio) a-10-loop:
  6. filtra tipo batch e periodo (fat-damov* dentro tm-da-data..tm-a-data), aggiornando i contatori letti/nel periodo/collegati (tm-f-l, tm-f-p, tm-f-c);
  7. 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');
  8. 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.
  9. 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).
  10. 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.