Vai al contenuto

SWL003 -- Estrazione Movimenti Commessa e Commesse con Documento/Fattura per SW-ING

Sorgente: cbl/swl003.cbl | Tipo: Batch BI (interattivo + Aglancio) | Program-ID: SWL003


Scopo

Estrae verso il sottosistema BI SW-ING (laboratori):

  • Tabelle anagrafiche del modulo laboratori (azioni, pazienti, tipi dispositivo, analisi rischi, piani di controllo, tipi lavoro, stati commessa)
  • Commesse (testata + movimenti dettaglio)
  • (nuova 2026-06-04) Commesse con riferimento al documento/fattura associato

Complementare a SWL001/SWL002 nella catena BI laboratori. Puo' essere eseguito da menu (con maschera) o da Aglancio (called).


File e tabelle

Input (gestionale)

  • LODPRESC (commesse, chiave 3) -- ingresso principale
  • LODCMTES, LODCMAGG, LODCMA2, LODCMRIG, LODCMDET
  • LODAZION, LODPAZIE, LODTABEL, LODRISCH, LODDESCR, LODCONTR, LODRACCO
  • COGEVLOG, COGGEANA, COGTABEL, ...

Output BI (PostgreSQL)

Tabella BI Contenuto
BINAZION Azioni
BINPAZIE Pazienti
BINTDISP Tipi dispositivo
BINANRIS Analisi rischi
BINPCONT Piani di controllo
BINTILAV Tipi lavoro
BINSTCOM Stati commessa
BINCOMME Testate commessa (Fase 11)
BINLODMV Movimenti dettaglio commessa (Fase 11)
BINCOMFA (nuovo) Commesse con documento/fattura collegati (Fase 13)
ARPSTPRC Stato processi Aglancio

File transito locale

  • COGTRANS (bicomme_trs.arc) -- nuovo file ISAM locale per tracciare lo stato di esportazione (trs-num, trs-stato, trs-data) delle commesse evase, evitando rielaborazioni inutili tra esecuzioni.

Fasi di elaborazione

Fase Funzione
Fase 1-7 Scaricamento tabelle anagrafiche (azioni, pazienti, dispositivi, analisi rischi, piani, tipi lavoro, stati commessa)
Fase 11 Estrazione commesse (testate su BINCOMME + movimenti su BINLODMV)
Fase 13 (nuova) Estrazione commesse con documento/fattura su BINCOMFA

Fase 13: estrazione commesse con documento/fattura

Per ogni commessa con LPM-DATA >= tm-cfg-data-inizio-scarico e <= w-data-oggi:

  1. Verifica stato commessa: se lpm-stato = "E" (evasa), verifica su COGTRANS se la commessa e' gia' stata esportata come "E".
  2. Se gia' "E" su COGTRANS: salta la commessa.
  3. Se "X" su COGTRANS (in transito): promuove a "E" e prosegue.
  4. Scrive su BINCOMFA il record con dati testata, paziente, date consegna, riferimento documento/fattura.
  5. Se tm-cfg-vis-data-cons-effettiva = "S", recupera la data consegna effettiva da LODCMAG2 per la visualizzazione.

Init mode (parametro "Z")

Quando il programma viene chiamato con wo-parametro = "Z" (init):

  • File COGTRANS viene ricreato da zero (close + open output + close + open i-o).
  • Le tabelle BINCOMME, BINLODMV, BINCOMFA vengono troncate (sql-truncate-*).

Negli altri casi:

  • b2-pulisce rimuove dalle tabelle BIN le commesse che non esistono piu' su LODPRESC o che hanno cambiato stato rispetto a COGTRANS.
  • Cancella poi i record BIN con stato diverso da "E" (per consentire la riesportazione).

Configurazioni (RNEWCONF)

Gruppo Chiave Note
abilita bin-tipo A/C/D/P -- tipo backend BIN
... bin-azienda, bin-host, bin-port, ... Connessione DB BI
db db-log-level Log SQL
odonto numero-commessa-automatico Numerazione commessa
labpresc vis-consegna-effettiva (nuova) Se "S", legge ora consegna effettiva da LODCMAG2
BINT data-inizio-scarico-commesse (nuova) Data minima di partenza per la scansione LODPRESC (sostituisce w-data-anno-1)

Tabella stati commessa (fase 7)

Codice Descrizione
N Nuova
A In avanzamento
F Fatturata
C Commessa chiusa
E Commessa evasa (chiusa + op. accessorie)
B (nuovo) Bloccata
F (nuovo) Presso fornitore

Totale stati: 8 (era 6).


Storico modifiche

Build Descrizione
2026/0512 Aggiunta Fase 13: estrazione commesse con documento/fattura su BINCOMFA. Aggiunta configurazione labpresc/vis-consegna-effettiva per leggere ora consegna effettiva da LODCMAG2.
2026/0604 Introdotto file transito locale COGTRANS (bicomme_trs.arc) per tracciamento stato esportazione commesse evase. Aggiunta init mode wo-parametro = "Z" (truncate + ricreazione COGTRANS). Aggiunto pulisce differenziale b2-pulisce (cancellazione commesse scomparse o con stato cambiato). Sostituito w-data-anno-1 con configurazione BINT/data-inizio-scarico-commesse come data minima di partenza scan. Aggiunti due nuovi stati commessa: B (Bloccata) e F (Presso fornitore). Aggiunta close cogtrans a fine elaborazione (paragrafo b-90) per chiudere correttamente il file di transito prima del ritorno al chiamante. Affinato il blocco di logica "stato bloccato lab": ora lct-blocco-lab = "S" con lpm-stato = "A" forza lo stato a "B" non solo nella scrittura di BINCOMME ma anche nella scrittura di BINLODMV e BINCOMFA (fase13), in modo coerente fra le tre tabelle BI