COGK89 - Elenco polizze in coassicurazione¶
Panoramica¶
Programma di stampa (report tabulare a 132 colonne) del modulo Coassicurazioni. Produce l'elenco completo delle polizze in coassicurazione anagrafate in COGCOASS, senza filtri di data: per ogni polizza (ramo/numero) stampa ramo, numero polizza, contraente, data inizio e fine copertura, compagnia co-assicuratrice, agente e percentuale di riparto. A differenza di COGK86/COGK87/COGK90, lavora sull'anagrafica polizze (COGCOASS) e non sui movimenti (COASSMOV): non richiede intervallo di date ne' tipo di stampa, ma solo una conferma. Avviato da maschera GUI con conferma F3.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Contabilita' | Coassicurazioni > Stampe > Elenco Polizze in Coassicurazione |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file / percorsi) |
| COGCOASS | Input | Anagrafica polizze in coassicurazione: scandita integralmente per chiave primaria (deleg/ramo/npol/prog) |
| COGGEANA | Input | Anagrafica generale (compagnie tipo "C", agenti tipo "F"): descrizioni per la stampa |
| COASSMOV | Input | Movimenti di coassicurazione (aperto per omogeneita', non usato nell'estrazione) |
| LAVORO | I-O | File indicizzato temporaneo di transito (#$COGK89.<operatore>); riordina le polizze per ramo/npol/compagnia |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| coggeana.fd / coggeana.cpy | SELECT/FD e record anagrafica generale |
| cogcoass.fd / cogcoass.cpy | SELECT/FD e record polizze coassicurazione (coa-rec) |
| coassmov.fd / coassmov.cpy | SELECT/FD e record movimenti coassicurazione (csm-rec) |
| flsta.fd / flsta.cpy | File di stato/stampa standard |
| costanti.cpy | Costanti generali |
| wstato / wgrave / wopenf / wnscr | Stato I/O, errori gravi, apertura file, gestione video |
| cogazien.cpy | Dati azienda (intestazione stampa) |
| UTILS54 / UTILS52 / UTILS21 / UTILW06 / utils65 | Aree linkage subroutine di stampa (COGS54), data (COGS52W) e utility |
| WCONT.CPY / WCONT1.CPY | Aree di linkage standard (parametro stringhe) |
| stato / stato1 / winmsg / grave / open1 / mmmask | Routine di stato verbi, messaggi, errori gravi, apertura generica, maschera |
| coggeana.k01 / cogcoass.k01 / coassmov.k01 / coassmov.k03 | Routine di I/O per chiave |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| COGS52W | Edit/formattazione delle date di inizio e fine copertura per la stampa |
| COGS54 | Apertura sessione di stampa e chiusura post-stampa |
Logica di elaborazione¶
1. Inizializzazione (apri / a000)¶
Imposta il nome programma, verifica l'abilitazione (ctr-abil), inizializza il programma, legge i dati azienda, apre i file di sistema e i file di coassicurazione (open-coassic: COGCOASS e COASSMOV in input). Costruisce il nome del file di lavoro temporaneo (#$COGK89.<wo-oper>), abilita F3/F8, visualizza la maschera "Stampa Polizze Coassicurazioni" e crea/riapre in I-O il file LAVORO con controllo di uso esclusivo (segnalazione "Funzione gia` in uso").
2. Richiesta parametri (a4)¶
La maschera non contiene campi di input: i controlli data inizio/fine e tipo di stampa presenti in COGK86/COGK90 sono commentati nel sorgente. a4 inizializza la maschera e attiva F3. La conferma avviene in a-riga-fine tramite acc-conf-custom con messaggio "Confermi la Stampa?"; ESC esce.
3. Avvio stampa (a-riga-fine-ok)¶
Apre la finestra di appoggio e la sessione di stampa via COGS54, quindi esegue elabora (costruzione file di lavoro) e stampa (produzione report).
4. Elaborazione (elabora)¶
Si posiziona su COGCOASS con st-cogcoass-notmin e scorre l'intera anagrafica con rdnxt-cogcoass (nessun filtro di data). Per ogni polizza, e per ciascuna compagnia co-assicuratrice presente in coa-ele-assicura (fino a compagnia = zero), scrive un record nel file LAVORO con ramo, numero polizza, compagnia, agente, percentuale, data inizio, data fine, rateazione, codice e nome contraente. Chiave di LAVORO: ramo / npol / compagnia.
5. Stampa del report (stampa)¶
Scorre LAVORO in ordine di chiave. La rottura e' su ramo o numero polizza (tmp-ramo not = lav-ramo or tmp-polizza not = lav-npol):
- stampa tratto separatore, riga di intestazione colonne (i1: Ramo, Polizza, Contraente, Data Inizio, Data Fine, Compagnia, Agente, Perc.) e la prima riga dati completa (i2) con descrizione compagnia (COGGEANA tipo "C"), descrizione agente (COGGEANA tipo "F"), contraente, ramo, polizza, percentuale, date inizio/fine formattate via COGS52W;
- per le compagnie successive della stessa polizza stampa solo compagnia, agente e percentuale (contraente/date omessi, initialize i2).
Alla fine (a3-99-exit) stampa una riga vuota e il tratto di asterischi finale. L'intestazione di pagina (x5-intesta) riporta azienda, titolo "Stampa Polizze Coassicurazioni", data di stampa e numero pagina.
6. Chiusura (fine-sta / fine)¶
Chiude la sessione di stampa (COGS54 after-print), la finestra di appoggio, i file, elimina il file LAVORO ed esegue z-99-exit-program.
Note tecniche¶
- Sorgente sui dati anagrafici, non sui movimenti: e' l'unico dei quattro report di stampa coassicurazione che estrae da COGCOASS (anagrafica polizze) invece che da COASSMOV (movimenti). Di conseguenza non ha filtri di periodo ne' tipo Quietanze/Incassi/Non incassati, e non calcola importi/totali: elenca lo stato anagrafico delle coperture.
- Maschera senza parametri: i controlli data e combo tipo presenti nel modello COGK86/COGK90 sono lasciati come codice commentato; la maschera espone solo la conferma. Il file COASSMOV e' aperto ma non concorre all'estrazione.
- Espansione per compagnia: come negli altri report, ogni polizza COGCOASS genera una riga di LAVORO per ciascuna compagnia in
coa-ele-assicura(max 30), con agente e percentuale per-compagnia. - Rateazione: il campo
lav-rateaz(dacoa-rateaz: 1=annuale, 2=semestrale) e' trasferito nel file di lavoro ma non compare nelle righe di stampa attuali. - Programma non generato da Screens: scritto a mano (autore Claudio, 07/01/2004); non esistono i file
.select/.fd/.wrk/.prcincbl/screens/(solo.version). Screen section e I/O codificati nel sorgente, con navigazione aGO TO.