COGZC3 — Statistica Commesse/Movimenti Vendita Laboratori¶
Sorgente: cbl/cogzc3.cbl | Program-ID: cogzc3 | Tipo: Programma interattivo a griglia con filtri (2 pagine: Filtri + Risultati)
Menu: Lab.Odont. > Statistiche > Commesse/Movimenti Vendita
Scopo¶
Estrae e visualizza in griglia i movimenti di vendita (movimenti di magazzino delle bolle/DDT) collegati alle commesse di laboratorio, arricchendoli con i dati della commessa (paziente, dottore, prescrizione, reparto, tecnico), i dati commerciali (prezzi di listino standard/particolare, sconti, margini, provvigioni) e i riferimenti a fattura e bollettini. I dati estratti vengono scritti su un file di transito indicizzato (cogtrans) e presentati in una list-box paginata (paged grid), con ordinamento e tipo statistica selezionabili. La griglia e' esportabile in Excel (S-F5) e personalizzabile nelle colonne (S-F4 via GRIDADMN).
Il programma gestisce diverse personalizzazioni aziendali (az-personal): Wilocs ("WI"), Lorilabors ("LO"), con logiche specifiche di ricerca agente e di gestione dei documenti "R" (resi) e dei raccordi COGRACBB non trovati.
Struttura della maschera¶
Form a tab-control a due pagine:
- Pagina 1 — Filtri: parametri di selezione; F7 avvia l'elaborazione.
- Pagina 2 — Risultati: griglia paginata
e-tm-tabcon i movimenti estratti dacogtrans.
Filtri di selezione¶
| Campo | Variabile | Descrizione |
|---|---|---|
| Data inizio / fine | tm-data-ini / tm-data-fin |
Periodo di scansione delle testate bolla |
| Non fatturato / Fatturato | tm-non-fatturato / tm-fatturato |
Include i documenti non ancora fatturati e/o gia' fatturati |
| Codice cliente | tm-cod-cli |
Filtro cliente (nonno bolla) |
| Codice agente | tm-cod-age |
Filtro agente (da documento o da anagrafica, secondo config) |
| Tipologia cliente | tm-tip-stt |
Da COGAPPOG (app-tip-stt), help COGF10 |
| Codice tecnico | tm-cod-tec |
Tecnico multistudio (LODCMAGG), help COGD88 |
| Reparto | tm-rep |
Reparto commessa (LODCMTES), help W80 tipo 85 |
| Tipo dispositivo | tm-cod-dsp |
Da LODPRESC (lpm-tip-dsp), help COGZ93 |
| Merce da / a | tm-art-ini / tm-art-fin |
Range articoli (per codice interno o avanzato, via COGS68) |
| Ordinamento | tm-ordina |
Agente/Cliente/Data/Merce/margine (L)/sconto (S)/prezzo (P)/costo (U) |
| Tipo statistica | tm-tipo-stat |
Tutto / Quantita' (Q) / Valore (V) — filtro su ma2-tipo-stat |
Programmi chiamati (CALL)¶
| Programma | Condizione | Scopo |
|---|---|---|
| RNEWCONF | x999-src-cfg |
Lettura 9 parametri di configurazione |
| COGE35 | F8 su agente | Selezione agente |
| COGF10 | F8 su tipologia | Selezione tipologia cliente |
| COGD88 | F8 su tecnico | Selezione tecnico multistudio |
| COGZ93 | F8 su dispositivo | Selezione tipo dispositivo |
| WINZ03 / COGF01 | help | (via send-w80, W80) selezione reparto |
| COGS01 | fill-transito |
Verifica listino: prezzo listino particolare e standard, sconti |
| COGS20 | fill-transito |
Calcolo base e valore provvigione agente |
| COGL61 | fill-transito |
Prezzo ultimo acquisto (PUA) |
| COGZS6 | fill-transito |
Dati commessa da raccordo note accredito (raccordo NAC) |
| COGS94W | call-s94 |
Lettura record paziente (data nascita) |
| CRMS06 | x-riempi-grid-record |
Raggruppamento statistico CRM del cliente |
| COGU10W | varie z-u10-* |
Edit/cambio/arrotondamento importi in divisa conto |
| COGS65W | accept cli/age/tec | Ricerca anagrafica con toolbar |
| COGS52W / COGS68W / COGS60 / COGS95 | accept campi | Gestione controlli data/merce/combo/check |
| GRIDADMN | griglia | Preparazione, riempimento, personalizzazione, export colonne griglia |
File e tabelle principali¶
| File | Accesso | Scopo |
|---|---|---|
| COGTESBO | Lettura sequenziale per data (chia2) |
Testate bolla — sorgente della scansione |
| COGMOMAG | Lettura sequenziale (chia/k04) |
Movimenti di magazzino della bolla |
| COGRACCO | Lettura (chia2) |
Raccordi bolla→fattura (stato fatturazione) |
| COGRACBB | Lettura sequenziale (chia2) |
Raccordo bolla→commessa laboratorio (tipo "CD") |
| COGRACMC | Lettura (chia2) |
Codice merce avanzato/interno |
| COGTABEL | Lettura | Causali bolla (tipo 15), agente (21), conto contabile (16) |
| COGGEANA | Lettura | Anagrafica cliente/agente/tecnico |
| COGAPPOG | Lettura | Tipologia cliente, tipo USL (Wilocs) |
| COGANAAG | Lettura | Verifica tecnico (Wilocs) |
| COGMERCI / COGMERAP / COGMERA2 / COGMERCL | Lettura | Anagrafica merci, appendici, tipo statistica, merce/cliente |
| COGMOAGG | Lettura | Dati agg. movimento (val. FIFO, sede multisede) |
| CRMANAGR | Lettura sequenziale (chia3) |
Tipo CRM cliente |
| LODCMTES / LODCMAGG / LODPRESC / LODINFCC | Lettura | Testata/aggiuntivi commessa, prescrizione, bollettini (k02,k04) |
| cogtrans | I/O indicizzato temporaneo | File di transito con i record estratti (chiavi k01/k02 su trs-ordina) |
Copybook incluse¶
k-personal.cpy, cogzc3.wrk, k-u10.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utils20.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utilu10.cpy, utile35.cpy, utilcogl61.cpy, utilcrms06.cpy, utilzs6.cpy, utilncnf.cpy, utilf10.cpy, utild88.cpy, utilw80.cpy, utilz93.cpy, utils94.cpy, wtipidoc.cpy; linkage wcont.cpy, utils01.cpy, wcont1.cpy; procedure dtab.cpy, fscrol2.cpy, getdcont.cpy, utilpggr.cpy, cogzc3.prc e le chiavi cogtrans.k01/.k02, cogtesbo.k02, cogmomag.k04, cogracco.k02, cogracmc.k02, cogracbb.k02, lodpresc.k04, lodinfcc.k02, crmanagr.k03, sendw80.cpy.
Parametri di configurazione (RNEWCONF)¶
Caricati in x999-src-cfg (9 chiavi):
| Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|
gestbuonip |
causale-contanti-1 / -2 |
tm-cau-con-1/2 |
Causali contanti |
ricegenera |
uso-cm / uso-cma |
tm-uso-cminte/cmavan |
Determina se usare codice merce interno ("I") o avanzato ("A") |
consdir |
magazzino-cons-dir |
tm-cfg-mag-cons-dir |
Magazzino consegna diretta |
statstpara |
provenienza-agente |
tm-cfg-prov-agente |
"DOCUMENTO" = agente dalla bolla; altrimenti da anagrafica cliente |
CONTABIL |
tipo-doc-iva-docmag-vendita |
tm-cfg-td-dm-vendita-cli |
Tipo raccordo bolla contabilizzata (vendita) |
CONTABIL |
tipo-doc-iva-docmag-resi-cli |
tm-cfg-td-dm-resi-cli |
Tipo raccordo bolla contabilizzata (resi) |
clienti |
inf-raggr-statistico |
tm-cfg-info-inf-raggr-statistico |
Info CRM per raggruppamento statistico (0 = disabilitato) |
Logica di elaborazione¶
- Apertura (
apri): apre i file, crea il transitocogtrans(#$cogzc3.oper), carica config e prepara griglia. - Filtri (
a-pagina-01→ accept vari): raccolta e validazione parametri. F7 (inizio-ela) avvia l'elaborazione. - Scansione (
inizio-ela→a10-loop): scandisce COGTESBO per data; per ogni bolla verifica la causale fatturabile (COGTABEL tipo 15,euta-cb-con-fat = "SI"), lo stato di fatturazione tramite COGRACCO (confrontato con i tipi raccordo config vendita/resi) applicando i filtri "fatturato"/"non fatturato", il tipo CF ("C"), cliente, agente, tipologia, tecnico, reparto, dispositivo, e il raccordo commessa COGRACBB (tipo "CD"). Per i documenti "R" (resi) senza raccordo commessa procede contm-num = 0. - Movimenti (
momag-loop): legge i movimenti COGMOMAG della bolla; filtra su tipo statistica (COGMERA2) e range articoli (per codice avanzato COGRACMC o interno). - Fill transito (
fill-transito): compone il recordtrs-reccon dati cliente/agente/merce/quantita', calcola prezzi netti, margini, sconti (COGS01), provvigioni (COGS20), PUA (COGL61), conto contabile, dati commessa/prescrizione, bollettini (LODINFCC), dati fatturazione/anagrafici.carica-ordinavalorizzatrs-ordinain base all'ordinamento scelto. Scrive/riscrive sucogtrans. - Visualizzazione (
a-pagina-02→vis-tabella-ini/vis-tabella-disp): aprecogtransin input e alimenta la list-box paginata leggendo per la chiavechia2(ordinata). Gestione paginazione (PgUp/PgDn), export Excel (S-F5), personalizzazione colonne (S-F4). - Chiusura (
fine/z-chiudi): chiude e cancellacogtrans, cancella i sottoprogrammi (COGS01, COGZS6, COGZ94).
Paragrafi chiave¶
| Paragrafo | Scopo |
|---|---|
apri / a4 |
Inizializzazione e reset filtri (default periodo mese corrente, ordinamento "D") |
inizio-ela |
Preparazione e avvio elaborazione (crea transito i-o) |
a10-loop |
Scansione testate bolla con tutti i filtri di selezione |
cerca-age-wi |
Ricerca agente per personalizzazione Wilocs (agente da anagrafica o tecnico da prescrizione) |
momag-loop |
Scansione movimenti di magazzino della bolla |
fill-transito |
Composizione del record di transito (prezzi, margini, provvigioni, dati commessa) |
dati-cliente / rag-agente / pr-lifo / read-cogracco / chiama-cogracmc |
Recupero dati accessori |
carica-ordina |
Valorizzazione chiave di ordinamento trs-ordina |
vis-tabella-ini / vis-tabella-disp |
Riempimento e gestione della griglia paginata |
x-spaginamento-start / rn-* / rp-* / sn-read / sp-read |
Motore di paginazione (utilpggr) |
rd1-ft-go |
Copia record transito → tabella interna della pagina |
x-riempi-grid-record |
Composizione riga griglia (edit importi, CRM, reparto merce, figlio bolla) |
x999-src-cfg |
Lettura configurazioni RNEWCONF |
Note¶
- La
fill-transitoe' il cuore del calcolo commerciale: replica la logica di COGU21 per l'arrotondamento del netto (valore < 1 centesimo portato a 1 centesimo) e gestisce le note di credito con margini negativi. - Personalizzazioni: Wilocs ("WI") esclude le bolle senza raccordo COGRACBB; le altre aziende (es. Lorilabors) proseguono comunque estraendo gli altri dati. Lorilabors ("LO") ha logica specifica sui non fatturati con
rac-dafa > tm-data-fin. - Il file
cogtransnon e'EXTERNAL(a differenza di COGP88): e' un temporaneo per operatore.