Vai al contenuto

COGK83 - Importazione Incassi Coassicurazione da File

Descrizione

Programma di importazione batch degli incassi delle quietanze di coassicurazione da un file esterno (diari di cassa). Il titolo maschera e' "Caricamento statistiche da diari di cassa".

L'utente seleziona un file delimitato (CSV con ; o ,, oppure .xls), il programma lo legge riga per riga, cerca la polizza corrispondente in COGCOASS, poi scansiona COASSMOV per trovare quietanze non ancora pagate compatibili con la data di incasso letta dal file, e aggiorna la data di incasso e gli importi incassati per compagnia.

Origine storica: sviluppato per il CAP Piacenza ("caricamento nuova produzione").

Tabelle utilizzate

Tabella Accesso Descrizione
COGCOASS R (st-notmin, rdnxt) Archivio polizze — ricerca per numero polizza
COASSMOV R/W (st-notmin, rdnxt, rwr) Movimenti quietanze — aggiornamento incasso
FEURTAB R Tabella files di sistema
FILSEQ R (line sequential) File di input da elaborare
FILELOG W (line sequential) File di log errori

Flusso di elaborazione

  1. Inizializzazione: apertura files, lettura configurazione (x99-load-config), lettura dati azienda, acquisizione divisa (get-divisa-conto).
  2. Acquisizione parametri: l'utente indica il percorso del file di input. F5 apre la finestra di sistema C$OPENSAVEBOX per la selezione grafica. Il file viene validato tramite COPIAF (fileinfo).
  3. Conferma (F3): validazione definitiva. Su thin client, COPIAF (copy) trasferisce il file dal client al server prima dell'elaborazione. Se il file e' .xls, ESTRXLS lo converte in testo.
  4. Apertura log: crea il file di log in ext-tmp-dir con nome $logcogk83.<oper>.
  5. Elaborazione (tratta-file):
  6. Legge il file sequenziale riga per riga.
  7. Ogni riga viene decodificata da b1-carica-delimitato (parser di campi delimitati, gestisce sia ; che "," con apici).
  8. I valori alfanumerici sono assegnati a w-in-aw-in-bz (78 campi); quelli numerici convertiti con FUNCTION NUMVAL in w-in-a-9w-in-bz-9.
  9. Le prime 7 righe vengono saltate (intestazione).
  10. Le righe con colonna AK (indice 37) negativa vengono saltate.
  11. La data di incasso e' estratta dalla colonna U (w-in-u) in formato gg/mm/aaaa.
  12. Il numero polizza e' in colonna A (w-in-a-9), usato per cercare la corrispondenza in COGCOASS (scan notmin su coa-deleg=0).
  13. Se trovata, chiama agg-csm per aggiornare COASSMOV.
  14. agg-csm: scansiona COASSMOV per la polizza trovata; aggiorna la quietanza che soddisfa tutte queste condizioni:
  15. Anno di scadenza uguale all'anno corrente o all'anno precedente.
  16. csm-data-incasso = 0 (non ancora pagata).
  17. Se l'anno di scadenza e' l'anno corrente: mese di scadenza < mese incasso + 3 (evita semestrali future).
  18. Imposta csm-data-incasso, copia lordo/netto incassato per compagnia, imposta csm-tipo-ins = "A", esegue rwr-coassmov.
  19. Fine: chiude il file di input, lo elimina (DELETE FILE filseq), mostra riepilogo (record letti, scritti). Se ci sono stati errori, indica il percorso del file di log.

Chiamate a sottoprogrammi

Programma Scopo
COPIAF Verifica esistenza file (fileinfo) e copia da client a server (copy) su thin client
ESTRXLS Conversione file Excel (.xls) in testo delimitato
C$OPENSAVEBOX Finestra di selezione file del sistema operativo (F5)

Note implementative

  • Il parser b1-carica-delimitato gestisce sia il formato ; (senza apici) sia il formato "campo", (con apici e , come separatore). Il rilevamento e' automatico in base al primo carattere del campo.
  • Il campo tm-cfg-delimiter viene letto da configurazione RNEWCONF (via x99-load-config); se il file e' .xls il delimitatore viene forzato a ;.
  • Il programma usa cogk83.select, cogk83.fd, cogk83.wrk, cogk83.prc, cogk83-01.scr (screen section esterna).
  • Copybook aggiuntivi: k-u10, l-copiaf, capazien, utilncnf, UTILu10, utilw92, utilestrxls, opensave.def.
  • Linkage: wcont, u-copiaf, wcont1.
  • Contatori visualizzati in maschera durante l'elaborazione: e-tm-letti, e-tm-scritti (definiti in cogk83.wrk).
  • Il titolo della maschera e' "Caricamento statistiche da diari di cassa".