Vai al contenuto

COGU85 -- Fatturazione Partite Anticipate

Sorgente: cbl/cogu85.cbl | Tipo: Programma con interfaccia grafica | Program-ID: COGU85

Menu: Contabilita' > Clienti a Part.Aperte > Incassi su Fattura > Fatturazione partite anticipate


Scopo

Genera automaticamente le fatture per le partite anticipate dei clienti. Scorre COGPADOC per individuare le partite anticipate non ancora fatturate, raggruppa per cliente e lancia COGU81 per la generazione della singola fattura. Al termine, consente la stampa delle fatture e degli allegati creati.


File e Tabelle

File/Tabella Copybook Uso
COGTABEL feurtab.fd, cogfiles.cpy Tabella generica contabilita'
COGGEANA (da cogu85.select) Anagrafica clienti -- lettura nome
COGPADOC (da cogu85.select) Partite per documento -- scansione partite anticipate
COGTESBO (da cogu85.select) Testata bolle -- lettura per stampa allegati
COGRACCO (da cogu85.select) Raccordo bolle-fatture -- collegamento per allegati
COGRACBB (da cogu85.select) Raccordo bolle-bolle -- collegamento per allegati
LODCMTES (da cogu85.select) Testata commesse laboratorio -- per allegati

Struttura del programma

Flusso principale

  1. Inizializzazione (apri): legge configurazione via x99-confi, imposta maschera
  2. Input parametri (a-tm-data-fat, a-tm-cli): data fattura e codice cliente (0 = tutti)
  3. Scansione partite (a-100-07): scorre COGPADOC per cliente tipo "C", filtra partite non fatturate
  4. Generazione fatture (lancio-cogu81): per ogni cliente, lancia COGU81
  5. Riepilogo (wind4): mostra le fatture create e offre opzioni di stampa
  6. Stampa (a2-stampa, x7-stampa-allegati): stampa fatture e allegati

Scansione partite (a-100-07)

Scorre COGPADOC con start su pdc-patipcli = "C" e pdc-paclie = tm-cli. Filtri:

  • pdc-rif-fat-tipo not = spaces: salta (gia' fatturata)
  • pdc-minuti-commessa = "15" or "45": salta (commesse speciali)
  • Se wtm-cli not = zero e pdc-paclie cambia: lancia fatturazione e termina
  • Se wtm-cli = zero e il cliente cambia: lancia fatturazione per il cliente precedente, poi continua

Lancio COGU81 (lancio-cogu81)

Prepara la struttura u81-call con:

  • u81-called = "COGU85" -- identifica il chiamante
  • u81-tipo = "C" -- tipo cliente
  • u81-codice -- codice cliente
  • u81-data-fat -- data fattura

Chiama cogu81 che esegue la fatturazione vera e propria. Al ritorno, u81-panpart contiene il numero della fattura creata (0 se nessuna).

Per ogni fattura creata, aggiorna i contatori:

  • tm-numfat: contatore fatture
  • tm-dafat/tm-afat: intervallo numeri fatture (tipo/anno/numero)
  • tm-ele-num: contatore elementi
  • tm-r-patipo/panno/panum(n): array con riferimenti fatture create

Riepilogo (wind4)

Mostra un dialogo tramite DIALOGS con:

  • Messaggio di fatturazione eseguita e numeri fatture
  • Indicazione della contabilizzazione e conciliazione partite
  • Pulsanti per stampa fatture (F9), stampa allegati (F5/F7)

Stampa fatture (a2-stampa)

Chiama COGP41 passando l'intervallo fatture:

  • p41-tip = "T" -- tipo stampa
  • p41-fd-tip/ann/num: prima fattura
  • p41-fa-tip/ann/num: ultima fattura

Stampa allegati (x7-stampa-allegati)

Per ogni fattura creata:

  1. Scorre COGRACCO per trovare le bolle collegate alla fattura
  2. Per ogni bolla, legge COGTESBO e verifica data >= 20090101
  3. Cerca il raccordo COGRACBB per ottenere il riferimento documento
  4. Legge la commessa laboratorio da LODCMTES
  5. Se w-fl-stampa = "S" e l'allegato e' gia' stampato (lct-fl-all = "S"), salta
  6. Lancia COGZ82WI per la stampa dell'allegato con i dati di studio, paziente e progressivo

Al termine, esegue una chiamata finale a COGZ82WI con z82-esegui-mdl = "S" per eseguire effettivamente la stampa batch.


Chiamate esterne

Programma Scopo
COGU81 Generazione singola fattura da partite anticipate
COGP41 Stampa fatture
COGZ82WI Stampa allegati (modello documento)
COGU10W Formattazione importi
COGS52 Gestione input date
COGS54 Gestione stampante
COGS65 Ricerca anagrafica
COGU01 Utility generica
COGU02 Utility
COGU35W Utility
COGW02 Finestra utility
COGZDE Utility
DIALOGS Finestre di dialogo
RNEWCONF Lettura configurazioni

Copybook utilizzate

  • cogu85.select, cogu85.fd, cogu85.wrk, cogu85.prc, cogu85.decla, cogu85-01.scr -- Definizioni generate da Screens
  • cogfiles.cpy -- Record tabella generica
  • cogazien.cpy -- Dati azienda
  • utilz82.cpy -- Interfaccia COGZ82WI (linkage)
  • utilp41.cpy -- Interfaccia COGP41
  • utils52.cpy -- Interfaccia COGS52
  • utils54.cpy -- Interfaccia COGS54
  • utils65.cpy -- Interfaccia COGS65
  • utilu01.cpy, utilu02.cpy, utilu10.cpy, utilu35w.cpy -- Interfacce utility
  • utilw02.cpy -- Interfaccia COGW02
  • utilzde.cpy -- Interfaccia COGZDE
  • utildlg.cpy -- Interfaccia DIALOGS
  • utilncnf.cpy -- Interfaccia RNEWCONF
  • k-u10.cpy -- Costanti COGU10W
  • wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy -- Copybook standard

Configurazione (x99-confi)

Il programma legge numerosi parametri RNEWCONF nei gruppi:

  • fatturaz: proforma da BDP
  • fattdescbo: parametri descrizione bolla (affogo resi, tipo, integrazione, stampa OK)
  • fattbatch: importo zero, raggruppamento righe, raggruppamento merce
  • commesse: tipo numerazione commesse
  • partanticip: configurazione specifica partite anticipate (descrizioni acconto/detrazione, conti, codice IVA, articolo esente, causale, soglia abbuono, tipo documento vendita)

Campi principali nella configurazione (tab-config):

Campo Descrizione
tm-cfg-imp-zero Gestione importi a zero
tm-cfg-rgr Raggruppamento righe
tm-cfg-rgr-merce Merce per raggruppamento
tm-cfg-affogo-resi Affogamento resi
tm-cfg-proforma-da-bdp Proforma da BDP
tm-cfg-des1-acc/des2-acc Descrizioni acconto
tm-cfg-cp-acconto/cc-acconto Conti acconto
tm-cfg-iva Codice IVA
tm-cfg-art-ese Articolo esente
tm-cfg-cau-acconto Causale acconto
tm-cfg-abbuono Soglia abbuono
tm-cfg-td-dm-vendita-cli Tipo documento vendita

Note tecniche

  • La costante k-max-ele-tab = 900 e' definita come condizione 88 anziche' come 78, il che e' un'anomalia stilistica rispetto agli altri programmi.
  • Il file COGV60NO viene usato per la gestione fatturazione batch (trs-v60-name).
  • La variabile w-char-fine-parola contiene un carattere speciale (non ASCII) usato come delimitatore.
  • Il programma non ha griglia interattiva nel senso tradizionale: la maschera principale richiede solo data e cliente, poi la fatturazione procede in automatico.

Documentazione tecnica -- 2026-04-16