COGK80 - Polizze in Coassicurazione¶
Descrizione¶
Gestione dell'archivio delle polizze in coassicurazione (tabella COGCOASS). Il programma consente inserimento, modifica e cancellazione di polizze coassicurate, con gestione della testata (ramo, polizza, date, rateazione, contraente) e della lista delle compagnie coassicuratrici (codice, denominazione, percentuale di partecipazione, agente).
La delega e' fissa a k-deleg = 56 (costante hardcoded).
Può essere richiamato da altri programmi: in tal caso (w-dc-called = "S") opera in modalità selezione (F3 ritorna al chiamante con i dati della polizza selezionata).
Tabelle utilizzate¶
| Tabella | Accesso | Descrizione |
|---|---|---|
| COGCOASS | R/W (rd, rd-lk, wr, rwr, del) | Archivio polizze in coassicurazione |
| COGGEANA | R (rd) | Anagrafica generale — per risolvere il nome della compagnia e il codice agente |
| COGTABEL | R | Tabelle di decodifica |
| FEURTAB | R | Tabella files di sistema (path e nomi file) |
Flusso di elaborazione¶
- Inizializzazione: apertura files, lettura dati azienda (
rd-azi), impostazione tasti funzione, visualizzazione maschera. - Input testata: acquisizione ramo e polizza. F8 chiama COGK63 per ricerca interattiva.
- Lettura COGCOASS: se la polizza esiste, carica i dati esistenti (
carica-dati) incluse le compagnie coassicuratrici (loop sucoa-compagniacon risoluzione nome viard-coggeana); se non esiste, apre in inserimento. - Input dati testata: date inizio/fine contratto (via COGS52W), rateazione (combo A=Annuale/S=Semestrale), codice e nome contraente.
- Gestione griglia compagnie: loop di accept sulla griglia. Le operazioni disponibili sono:
- Ctrl+A: aggiunge riga — input codice compagnia (via COGS65W che risolve nome e agente da COGGEANA) e percentuale (proposta come complemento a 100).
- Invio: modifica riga selezionata — lock del record COGCOASS (
rd-cogcoass-lk). - Ctrl+E: elimina riga scalando le righe successive.
- F3: salva l'intera polizza (wr-cogcoass o rwr-cogcoass in base a
fl-ins-var). - F4: cancella la polizza (con conferma, poi
del-cogcoass). - Salvataggio: costruisce il record
coa-reca partire datab-maschera, iterando sulle righe non vuote della griglia (fino a 30 compagnie). Gestisce il caso polizza già presente con write-rewrite automatico.
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGK63 | Ricerca interattiva polizza per ramo/numero (F8 sull'header) |
| COGS52W | Gestione input e formattazione date |
| COGS65W | Ricerca anagrafica compagnia (codice + descrizione) |
| GRIDADMN | Gestione griglia (Prepara, Add-Record, Modify-Record, Svuota-Tutto, Shift+F4) |
Note implementative¶
- La costante
k-deleg = 56identifica la delega (hardcoded, non configurabile). - La griglia supporta fino a
k-max-ele-tab = 900righe, ma il loop di salvataggio itera solo fino a 30 compagnie (perform until i = 30) — limite funzionale del record COGCOASS. - Il flag
fl-ins-var("I" = inserimento, "V" = variazione) controlla il verbo di I/O sulla COGCOASS al salvataggio; in caso di conflitto (record già esistente in inserimento o scomparso in modifica) il programma effettua automaticamente il verbo alternativo. - Il flag
fl-vis-fata("S") gestisce il caso speciale del primo inserimento: propone automaticamente la compagnia delegataria (codice 88888) come prima riga. - La percentuale nel dettaglio riga viene proposta come
100 - tm-tot-perc(complemento rispetto alle percentuali già inserite). - File aperti con
open-coassic(paragrafo non mostrato, gestisce COGCOASS e COGGEANA). - Copybook di working-storage:
costanti,wgrave,wgrid,wnscr,wopenf,wstato,cogazien,utils52,utils65,utilgdad,utilk63. - Linkage:
wcont,wcont1. - Il titolo della maschera e' "Polizze in Coassicurazione".