SWL002 - Scaricamento Movimenti Vendita Laboratori per SW-ING¶
Sorgente: cbl/swl002.cbl | Program-ID: SWL002 | Tipo: Batch BI (interattivo + Aglancio)
Menu: Statistiche > Estrazione dati vs B.I.Swing > Laboratori > Movimenti vendita
Scopo¶
Estrae le righe di vendita laboratorio (movimenti di magazzino di tipo bolla cliente collegati a commesse laboratorio via COGRACBB) per il periodo specificato e le scarica nella tabella BI BINVENLA.
File e tabelle¶
Input (gestionale)¶
| File | Tipo | Modalita' | Uso |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri |
| COGTESBO | ISAM | Input | Testate bolle (chiave2: data; loop principale st-cogtesbo-notmin-chia2) |
| COGMOMAG | ISAM | Input | Righe movimenti magazzino |
| COGTABEL | ISAM | Input | Tipo 15: causali bolla (filtro euta-cb-con-fat = 'SI') |
| COGGEANA | ISAM | Input | Anagrafica clienti (per agente) |
| COGAPPOG | ISAM | Input | Appoggio anagrafica |
| COGRACBB | ISAM | Input | Raccordo bolle (chiave2: bolla -> buono) per legare bolla -> commessa via tm-num |
| LODCMAGG | ISAM | Input | Aggregati commessa (lookup su tm-num) |
| LODCMTES | ISAM | Input | Testate commessa (lookup su tm-num) |
| LODPRESC | ISAM | Input | Prescrizioni (chiave4 su lpm-num = tm-num) |
| LOGFILE | line seq | Output | Log (#$logswl002.txt opzionale) |
Output BI (SQL via PostgreSQL)¶
| Tabella BI | Record | Modalita' | Contenuto |
|---|---|---|---|
| BINVENLA | bvel-rec | I-O | Righe vendita laboratorio nel periodo |
| ARPSTPRC | a-stpr-rec | I-O | Stato processi Aglancio |
Copybook utilizzate¶
Screen Designer¶
| Copybook | Contenuto |
|---|---|
swl002.select, swl002.fd, swl002.wrk, swl002-01.scr, swl002.decla, swl002.prc |
Screen Designer |
Strutture dati¶
| Copybook | Contenuto |
|---|---|
binvenla.cpy, binvenla-sql-ws.cpy, binvenla-sql-prc.cpy |
Tabella BI |
arpstprc.cpy, arpstprc-sql-ws.cpy |
Stato processi |
sql-decla-ws.cpy |
Working storage SQL |
cogazien.cpy |
Dati azienda |
logfile.cpy |
Log opzionale |
k-u10.cpy, k-personal.cpy |
Costanti |
Utility¶
| Copybook | Contenuto |
|---|---|
utilncnf.cpy, utilgesdebug.cpy, utilswgets.cpy, utilagprg.cpy |
Utility standard SWC/SWL |
wstato, wgrave, wopenf, wnscr |
Working storage standard |
Logica di elaborazione¶
Apertura¶
- Test linkage
util-agprg(C$NARG,C$PARAMSIZE). ctr-abil,x-carica-lingua,z-99-init-program,rd-azi,open-files.x99-src-cfg(BI standard).x99-src-cfg-agl(Aglancio).- Determinazione modalita' batch.
init-bin-sub-tm-cfg-bin-tipo.x99-confi: configurazione specifica SWL002 (nr-mesi, provenienza agente, tipo doc IVA, ecc.).
Calcolo date (modalita' batch)¶
In batch: tm-daint-fi = datasis; tm-daint-in = datasis - nr-mesi*30 giorni (via DTPRG/PRGDT).
In interattivo: accept tm-daint-in e tm-daint-fi con calendario F8.
Elaborazione (b-elabora -> fase1)¶
- Cancellazione (
fase11-cancella): DELETE su BINVENLA per il periodo + azienda (SQL diretto consql-prepare-id-binvenla+ parametri data e azienda). - Loop COGTESBO (start su
tes-data = tm-daint-in, loop fino ates-data > tm-daint-fi): - Filtro causale: COGTABEL tipo 15,
euta-cb-con-fat = 'SI'. - Filtro tipo CF: solo clienti (
tes-tipocf = "C"). - Agente: secondo
tm-cfg-prov-agente("DOCUMENTO" ->tes-agente; altrimenti daana-agente). - Lettura COGAPPOG per dati cliente.
- Ricerca commessa via COGRACBB (chiave2 su bolla): scan record con
rbb-tip = "CD"per recuperarerbb-a-bol = tm-num(il numero della commessa). - Se
tm-num = 0(nessuna commessa): skip riga. - Lookup LODCMAGG, LODCMTES, LODPRESC (chiave4) con
tm-num. - Loop COGMOMAG (
fase1-30e seguenti): per ogni riga del documento valorizzabvel-reccon dati vendita + dati commessa e scrive BINVENLA.
Chiusura¶
cancel "COGS01", close-bin-sub-tm-cfg-bin-tipo; modalita' batch aggiorna ARPSTPRC.
Chiamate esterne (CALL)¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Configurazione (3 chiamate: BI, Aglancio, parametri SWL002) |
| SWGETS | Conn-string AreaGate |
| COGS01 | Lookup listino prezzo (annullato in chiusura) |
| DTPRG / PRGDT | Conversione data <-> progressivo (calcolo periodo automatico) |
| C$NARG, C$PARAMSIZE | Runtime AcuCOBOL |
Configurazioni (RNEWCONF)¶
BI (x99-src-cfg, gruppo abilita)¶
Standard: bin-tipo, bin-db-path, bin-db-conn-string (1-3), bin-db-log-level.
Aglancio (x99-src-cfg-agl, gruppo areaapp)¶
cod-azienda, db-log-level, AGLANCIO-ATTIVO.
Parametri SWL002 (x99-confi)¶
| # | Gruppo | Chiave | Descrizione |
|---|---|---|---|
| 01 | BINT | nr-mesi-bi2013 | Numero mesi indietro per periodo automatico (tm-cfg-nr-mesi) |
| 02 | statstpara | provenienza-agente | "DOCUMENTO" o "ANAGRAFICA" (tm-cfg-prov-agente) |
| 03 | CONTABIL | tipo-doc-iva-docmag-vendita | Tipo doc IVA per vendite |
| 04 | CONTABIL | tipo-doc-iva-docmag-resi-cli | Tipo doc IVA per resi cliente |
Schedulazione (Aglancio)¶
k-id-processo = 50031, k-tabella-statosyn = "SWL002". Lanciato con util-agprg. In batch usa periodo calcolato automaticamente da nr-mesi-bi2013. Aggiorna ARPSTPRC in chiusura.
Note¶
- Lab Wilocs (
az-personal = "WI"): se l'agente non e' trovato sul cliente, viene riletto COGGEANA (codice fallback hardcodedk-personal-lab-wilocs). - La cancellazione iniziale e' eseguita con DELETE SQL diretto (non TRUNCATE) per cancellare solo il periodo + azienda.
- Per le bolle con
tes-tipob = "R"(resi) viene chiamatocerca-buonoper risolvere il riferimento bolla originale prima di cercare la commessa. - Source-computer/object-computer dichiarato come
pc-sperry.