COGF02 - Estrazione Provvigioni ad Incassato¶
Panoramica¶
Programma batch interattivo per il calcolo e l'aggiornamento delle provvigioni agenti basato sugli incassi effettivamente ricevuti. Accetta un intervallo di date, cancella i record dell'archivio COGPROVV per il periodo (preservando i record chiusi/sospesi), poi ricalcola le provvigioni scansionando le fatture di vendita e le scadenze pagate in quel periodo. Gestisce provvigioni semplici e multilevel (fino a 15 livelli, fino a 15 agenti per livello). Al termine aggiorna la data dell'ultima estrazione in COGTABEL. Usa file di transito COGTRANS e TRSPROVV per l'elaborazione.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Vendite | Provvigioni > Provvigioni ad incassato > Estrazione |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema |
| COGTABEL | I-O | Tabella generica (tipo 68: tipi fattura; tipo 70 chiave PASS/PROVVI: data ultima estrazione) |
| COGPROVV | I-O | Archivio provvigioni (scan per data fattura con chia2, cancellazione e scrittura) |
| COGGEANA | Input | Anagrafica clienti |
| COGTESBO | Input | Testata bolle/DDT/fatture |
| COGMOMAG | Input | Movimenti di magazzino |
| COGCONTA | Input | Contabilita' (partite) |
| COGTRANS (temp) | I-O | File transito provvigioni (chiave: agente+flag+dettaglio+fattura+dati; due chiavi secondarie) |
| TRSPROVV (temp) | I-O | File transito per record da ripristinare (record sospesi/chiusi del periodo) |
| COGERR (seq) | Output | File di log errori (cogerr.txt) |
Struttura record COGTRANS¶
Chiave primaria trs-chia1: agente (5) + flag-m-c (1) + dettaglio (10: merce o conto) + fattura (anno 4 + tipo 2 + num 6) + dati (currency 2 + prezzo 12v6 + tipo-prv 1 + ordine 13).
Chiave secondaria trs-chia2: agente + fattura + flag-m-c + dettaglio + dati (con duplicati).
Chiave secondaria trs-chia3: agente + cli + dettaglio (con duplicati).
Struttura record TRSPROVV¶
Chiave primaria: agente (5) + data-val (8) + fattura (10) + flag-mc (1) + dettaglio (10) + currency (2) + prezzo (12v6) + tipo-prv (1) + ordine (13). Dati: data fattura, cliente, quantita', importo, importo fatturato, partita, flag chiusura partita, aliquota, importo unitario, provvigione, valuta, flag sospeso, reparto.
Struttura tab-maschera¶
| Campo | Tipo | Descrizione |
|---|---|---|
| tm-data-par | 9(08) | Data partenza estrazione |
| tm-data-arr | 9(08) | Data arrivo estrazione |
| tm-data-del | 9(08) | Data fine cancellazione (= tm-data-arr) |
| tm-data-ult | 9(08) | Data dell'ultima estrazione (da COGTABEL) |
Tabelle provvigioni multilevel¶
tab-config.tm-cfg-td-dm-vendita-cli: tipo documento vendita cliente da RNEWCONF.
tm-tabella: fino a 15 livelli, per ogni livello fino a 15 percentuali (tm-perc).
tabella-agenti: fino a 15 livelli, per ogni livello: codice agente, percentuale, importo provvigione calcolato, valuta.
w-scomp-tab: 44 valori percentuale per scomposizione sconti.
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| cogf02.select | SELECT dei file |
| cogf02.fd | File Description |
| cogf02.wrk | Working storage generata |
| cogf02-01.scr | Screen section |
| k-personal.cpy | Personalizzazioni clienti |
| k-u10.cpy, wrk-u10.cpy | Costanti formattazione importi |
| wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy | Standard working storage |
| cogazien.cpy | Dati azienda |
| COGCONTA.CPY | Struttura contabilita' |
| utilncnf.cpy | Lettura configurazioni RNEWCONF |
| wtipidoc.cpy | Tipi documento |
| utilopenfile.cpy | Apertura file (OPENFILE) |
| utilu10.cpy, utils52.cpy, utils20.cpy, utils09.cpy, utilu09.cpy | Utilita' varie |
| utils52.cpy | Utilita' date |
| wcont.cpy, wcont1.cpy | Linkage section standard |
| cogf02.decla | Declaratives (error routine per cogerr, cogtrans, trsprovv) |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazioni (tm-cfg-td-dm-vendita-cli) |
| COGS20 | Utilita' sconti/calcolo provvigioni (cancel esplicito a fine) |
| OPENFILE | Apertura file log errori con visualizzatore |
| COGU10W | Formattazione importi |
Logica di elaborazione¶
Flusso principale¶
-
Inizializzazione (
apri): legge azienda, carica tipi documento (u-tipidoc), imposta file transito (w-trsprovv,name-trs,cog-err-01). Apre COGERR in output. Crea/apre COGTRANS. Apre/chiude TRSPROVV. Legge da COGTABEL tipo 70, chiave PASS/PROVVI la data dell'ultima estrazione (euta-c001-data→tm-data-ult). Legge configurazioni RNEWCONF (x999-src-cfg). -
Filtri (
a4): preimpostatm-data-ultnel campo data partenza. Accept dia-tm-data-parea-tm-data-arr. La data arrivo deve essere strettamente maggiore della data partenza. -
Elaborazione (
elaborazione thru ex-elaborazione): a-delete: cancella COGPROVV per il periodotm-data-par..tm-data-delusando scan su chia2 (ordinata per data fattura). I record conprv-par-close = '*'o azienda personalizzazione "GD" vengono salvati in TRSPROVV prima di essere cancellati (store-a).b-elabora/b-40: carica la tabella dei tipi documento da elaborare (riempi-tab) leggendo i tipi configurati in azienda (az-tipo-batch, az-tipo-nac, az-tipo-imm, az-tipo-ci, az-tipo-cid, az-tipo-nci, az-tipo-gior, az-tipo-extra, az-tipo-pa-fat, az-tipo-pa-nac, az-tipo-sps, az-tipo-sps-nac, az-tipo-sps-imm) e i tipi di tipo 68 con flag cliente. Per personalizzazione "DS" carica anche la tabella multilevel (load-tab).s-sconti thru ex-s: calcola e accumula gli sconti.c-creo thru ex-c: crea i record COGPROVV dal transito elaborato.-
d-restore: ripristina in COGPROVV i record salvati in TRSPROVV (record sospesi/chiusi). -
Aggiornamento data (
a999): se prima estrazione (tm-data-ult = 0) scrive nuovo record in COGTABEL tipo 70; altrimenti se la data arrivo e' maggiore dell'ultima, aggiorna il record esistente. -
Anomalie: se
fl-errnon e' blank, propone di visualizzare COGERR.TXT tramite OPENFILE.
Gestione personalizzazione "DS" (multilevel)¶
Quando az-personal = "DS", il programma carica la struttura tm-tabella con i livelli provvigionali. Se la tabella risulta vuota (max-lev = 0), mostra un messaggio di errore e chiude il programma.
Formati date¶
Tutte le date sono in formato AAAAMMGG come intero pic 9(08). datasis e' riempito con accept from century-date.
Note tecniche¶
- Il programma usa
PERFORM ... THRUin diversi punti (es.elaborazione thru ex-elaborazione,b-elabora thru ex-b,s-sconti thru ex-s,c-creo thru ex-c,riempi-tab thru ex-riempi-tab). Questa e' una caratteristica preesistente del sorgente legacy. - COGTRANS viene aperto in output (creazione), poi chiuso e riaperto in i-o.
- TRSPROVV usa il nome file basato sul program-id (
nome-file→open-trsprovv): viene aperto in output poi in i-o/update. - La cancellazione di COGERR.TXT avviene tramite OPENFILE con
openfile-fl-server = "S"(apertura lato server). - Alla chiusura viene eseguito
cancel 'COGS20'per liberare il modulo di calcolo sconti. - Il programma non ha griglia: e' un programma di elaborazione batch con sola schermata di input parametri.
- Configurazione
tab-config.tm-cfg-td-dm-vendita-cli: tipo documento di vendita a cliente aggiuntivo, letto da RNEWCONF tramitex999-src-cfg.