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¶
- Inizializzazione: apertura files, lettura configurazione (
x99-load-config), lettura dati azienda, acquisizione divisa (get-divisa-conto). - Acquisizione parametri: l'utente indica il percorso del file di input. F5 apre la finestra di sistema
C$OPENSAVEBOXper la selezione grafica. Il file viene validato tramite COPIAF (fileinfo). - 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. - Apertura log: crea il file di log in
ext-tmp-dircon nome$logcogk83.<oper>. - Elaborazione (
tratta-file): - Legge il file sequenziale riga per riga.
- Ogni riga viene decodificata da
b1-carica-delimitato(parser di campi delimitati, gestisce sia;che","con apici). - I valori alfanumerici sono assegnati a
w-in-a…w-in-bz(78 campi); quelli numerici convertiti conFUNCTION NUMVALinw-in-a-9…w-in-bz-9. - Le prime 7 righe vengono saltate (intestazione).
- Le righe con colonna AK (indice 37) negativa vengono saltate.
- La data di incasso e' estratta dalla colonna U (
w-in-u) in formatogg/mm/aaaa. - Il numero polizza e' in colonna A (
w-in-a-9), usato per cercare la corrispondenza in COGCOASS (scan notmin su coa-deleg=0). - Se trovata, chiama
agg-csmper aggiornare COASSMOV. agg-csm: scansiona COASSMOV per la polizza trovata; aggiorna la quietanza che soddisfa tutte queste condizioni:- Anno di scadenza uguale all'anno corrente o all'anno precedente.
csm-data-incasso = 0(non ancora pagata).- Se l'anno di scadenza e' l'anno corrente: mese di scadenza < mese incasso + 3 (evita semestrali future).
- Imposta
csm-data-incasso, copia lordo/netto incassato per compagnia, impostacsm-tipo-ins = "A", eseguerwr-coassmov. - 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-delimitatogestisce 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-delimiterviene letto da configurazione RNEWCONF (viax99-load-config); se il file e'.xlsil 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 incogk83.wrk). - Il titolo della maschera e' "Caricamento statistiche da diari di cassa".