Vai al contenuto

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

  1. 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-datatm-data-ult). Legge configurazioni RNEWCONF (x999-src-cfg).

  2. Filtri (a4): preimposta tm-data-ult nel campo data partenza. Accept di a-tm-data-par e a-tm-data-arr. La data arrivo deve essere strettamente maggiore della data partenza.

  3. Elaborazione (elaborazione thru ex-elaborazione):

  4. a-delete: cancella COGPROVV per il periodo tm-data-par..tm-data-del usando scan su chia2 (ordinata per data fattura). I record con prv-par-close = '*' o azienda personalizzazione "GD" vengono salvati in TRSPROVV prima di essere cancellati (store-a).
  5. 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).
  6. s-sconti thru ex-s: calcola e accumula gli sconti.
  7. c-creo thru ex-c: crea i record COGPROVV dal transito elaborato.
  8. d-restore: ripristina in COGPROVV i record salvati in TRSPROVV (record sospesi/chiusi).

  9. 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.

  10. Anomalie: se fl-err non 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 ... THRU in 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-fileopen-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 tramite x999-src-cfg.