Vai al contenuto

COGL64 — Invio dati fatture al Sistema Tessera Sanitaria (STS)

Sorgente: cbl/cogl64.cbl | Program-ID: cogl64 | Tipo: interattivo a griglia (filtri + griglia paginata)

Menu: Lab.Odont. > Fatturazione > Invio dati a STS


Scopo

Gestisce l'invio telematico dei dati delle spese sanitarie al Sistema Tessera Sanitaria (STS) dell'Agenzia delle Entrate, per i laboratori odontotecnici. Il programma precarica dalle fatture i documenti da comunicare, li accumula in una tabella di stato dedicata (COGSTSTS), permette di visualizzarne lo stato di invio in griglia e di inviarli — singolarmente o in blocco — verso il web service STS tramite la subroutine COGL64S. Ogni comunicazione (inserimento, variazione, cancellazione, rimborso) viene tracciata in COGSTSDT. Gestisce il consenso/opposizione del cittadino, la cifratura del codice fiscale e il ritorno delle ricevute PDF.


File e tabelle

File Copybook Accesso Scopo
COGSTSTS cogststs.cpy Lettura/scrittura, chiavi k02/k03 Stato invio STS per documento: stato invio, ultimo esito, protocollo, importo, consenso, dispositivo, doc rimborsato
COGSTSDT (in cogl64.fd/select) Scrittura Storico dettagliato delle chiamate al servizio (operazione, data/ora, esito, protocollo, errore)
COGGEANA coggeana.cpy Lettura Anagrafica: dati proprietario (fornitore tm-cfg-sts-pro-cod-for), P.IVA, codice fiscale
COGAPPOG (via st-cogappog) Lettura sequenziale Anagrafica appoggio clienti (filtro app-tipo-usl = "P" nel precaricamento)
COGFATTU (via st-cogfattu, chiave k09) Lettura sequenziale per cliente/data Fatture da comunicare
COGRACCO cogracco.cpy (rinominata wac-), chiave k02 Lettura Raccordi fattura↔bolla per risalire alla commessa
COGRACBB cogracbb.cpy, chiave k02 Lettura sequenziale Raccordi bolle (tipo CD commessa, RV reso) per commessa e note di accredito
LODCMAGG (via rd-lodcmagg) Lettura Dati fatturazione commessa laboratorio: codice fiscale, nome/cognome, consenso STS
outfil / inpfil (in select) I/O binario sequenziale File di scambio per cifratura CF (input/output openssl)
impcli impcli-rec Lettura line sequential Import CSV codici fiscali cliente (impcli.csv, funzione "Carica IMPCLI")

Programmi chiamati (CALL)

Programma Scopo
COGL64S Subroutine di dialogo col web service STS (inserimento/variazione/cancellazione/rimborso/ricevutapdf). All'avvio viene testata la presenza con cogl64s-ope = "test"
COGL65 Dettaglio documento STS (F8 sulla griglia): passa doc, commessa, CF, nome cliente
RNEWCONF Lettura parametri di configurazione (gruppo fatturaz)
COPIAF Copia file client↔server (per cifratura CF e ricevute PDF)
C$SYSTEM Lancio sincrono comandi/batch di cifratura (openssl, base64, decode-to-pdf.bat)
DIALOGS Menu a tasti funzione (invio singola voce, modifica stato)
GRIDADMN Gestione/personalizzazione colonne griglia
COGU10W / COGU20W Formattazione ed editing importi

Copybook incluse

Working storage: feurtab.fd, cogfiles.cpy, cogl64.fd, cogl64.wrk, k-u10.cpy, acucobol.def/iscobol.def, k-personal.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, l-copiaf.cpy, utildlg.cpy, cogracco.cpy (leading wac-), cogststs.cpy (leading wrkts-/wr2ts-), wgrid.cpy, utilncnf.cpy, utilgdad.cpy, utils52.cpy, utils65.cpy, utils88.cpy, utilu10.cpy, utilu20.cpy, utilcogl64s.cpy, utilcogl65.cpy

Linkage: wcont.cpy, u-copiaf.cpy, wcont1.cpy

Procedure division: grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogl64.prc, dtab.cpy, fscrol2.cpy, utilpggr.cpy, chiavi cogststs.k02, cogststs.k03, cogfattu.k09, cogracbb.k02, cogracco.k02


Logica di elaborazione

  1. Avvio (apri): apre i file, carica la configurazione (x99-config), verifica la presenza della subroutine COGL64S con una chiamata di test. Se sts-attivo = "N" esce con "Sistema Non Attivo".
  2. Filtri (a4, a-tm-*): l'operatore imposta stato invio (I/N/O/T=tutti), intervallo date documento e il flag "Precarico i dati?".
  3. Precaricamento (precarica-dati, se richiesto): scorre COGAPPOG (clienti tipo USL "P"), poi le loro COGFATTU nell'intervallo date. Per ogni fattura risale alla commessa via COGRACCO/COGRACBB, legge LODCMAGG e crea/aggiorna il record COGSTSTS, impostando stato invio, importo, consenso, codice fiscale (cifrato), gestione note di accredito/rimborsi.
  4. Griglia (a-grid-inizio, a-grid): carica in griglia paginata i record COGSTSTS per la chiave selezionata (stato/data), mostrando stato invio, stato doc, ultimo invio/esito, protocollo, importo, cliente.
  5. Azioni da griglia:
  6. F5 — invio singola voce con menu DIALOGS (inserimento / cancellazione / variazione / rimborso).
  7. F1 — modifica manuale dello stato di una voce (imposta Inviato/Non inviato/Opposizione/Opposizione rimborsato; F9 carica IMPCLI).
  8. F9 — invio di massa di tutti i non inviati (esegui-invia-tutti), con logica per stato-doc (I/M/C/R) e gestione rimborsi.
  9. F4 (solo operatore 888) — cancellazione e pulizia dati mostrati (esegui-cancella-tutti).
  10. F8 — dettaglio documento (COGL65).
  11. Cifratura CF (get-encrypted-cf): produce il codice fiscale cifrato+base64 richiesto da STS, tramite comando openssl o batch, con scambio file client/server via COPIAF.

Paragrafi chiave

Paragrafo Scopo
apri Inizializzazione, config, test presenza COGL64S, costruzione griglia
x99-config Carica i 12 parametri STS del gruppo fatturaz via RNEWCONF
carica-dati-proprietario Legge il proprietario (fornitore) e ne cifra il CF; legge il pincode da env STS-PINCODE
precarica-dati Scansione fatture → creazione/aggiornamento record COGSTSTS
cerca-commessa Risale alla commessa dalla bolla raccordata (COGRACBB tipo CD)
set-stato-invio-sub-i Imposta forzatamente lo stato invio di una voce (F1)
prepare-cogl64s-sub-i Prepara ed esegue la chiamata singola a COGL64S con box di esito
call-cogl64s-sub-ststs Chiamata effettiva a COGL64S, scrittura COGSTSDT e aggiornamento COGSTSTS
esegui-invia-tutti Invio di massa dei documenti non inviati
esegui-cancella-tutti Cancellazione/pulizia di massa (operatore 888)
get-encrypted-cf Cifratura del codice fiscale (openssl/batch + base64)
decode-ricevuta-pdf Decodifica e copia della ricevuta PDF di STS
parse-impcli Import CSV impcli.csv per aggiornare i CF dei clienti

Parametri di configurazione (RNEWCONF, gruppo fatturaz)

Chiave Variabile Scopo
sts-attivo tm-cfg-sts-attivo "N" disattiva il programma
sts-proprietario-cod-for tm-cfg-sts-pro-cod-for Codice fornitore proprietario (titolare invio)
sts-prg-crypt tm-cfg-sts-prg-crypt Programma/batch di cifratura CF (openssl)
sts-key-crypt tm-cfg-sts-key-crypt Certificato/chiave di cifratura
sts-tipologia-di-spesa tm-cfg-sts-tipologia-spesa Tipologia spesa di default
sts-id-dispositivo tm-cfg-sts-id-dispositivo ID dispositivo di default
sts-folder-crypted tm-cfg-sts-folder-crypted Cartella file cifrati (server)
sts-pro-cod-reg / sts-pro-cod-asl / sts-pro-cod-ssa tm-cfg-sts-pro-cod-* Codici regione/ASL/SSA del proprietario
sts-tipo-url tm-cfg-sts-tipo-url Tipo URL del servizio (produzione/collaudo)
sts-tipo-nac tm-cfg-sts-tipo-nac Tipo documento "nota di accredito" (per gestione rimborsi)

Note

  • Lo stato invio in COGSTSTS assume i valori I (inviato), N (non inviato), O (opposizione); lo stato doc I/M/C/R (inserito/modificato/cancellato/rimborso) guida l'operazione da inviare.
  • La gestione note di accredito / rimborsi collega la nota (fat-tip = tm-cfg-sts-tipo-nac) al documento rimborsato (ststs-doc-rimborsato): se hanno lo stesso importo non vengono trasmesse (impostate in opposizione), secondo indicazioni operative storiche annotate nel sorgente.
  • La funzione F4 di pulizia è riservata all'operatore 888.
  • La sezione io-error-rout è dichiarata vuota (exit).