Vai al contenuto

COGK90 - Stampa coassicurazioni raggruppata per polizza

Panoramica

Programma di stampa (report tabulare a 132 colonne) del modulo Coassicurazioni. Su richiesta di un intervallo di date e di un tipo di stampa (Quietanze / Incassi / Non incassati), estrae i movimenti di coassicurazione (COASSMOV), li appoggia in un file di lavoro indicizzato temporaneo e produce un elenco raggruppato per ramo/polizza: per ogni polizza stampa una sezione con intestazione di colonne e le righe di quietanza/incasso, con totali parziali per polizza e un totale generale finale. Variante di COGK86, con la stessa logica di estrazione ma rottura sul ramo/numero-polizza anziche' sulla compagnia. Avviato da maschera GUI con conferma F3.

Posizione nel menu

Menu Percorso
Contabilita' Coassicurazioni > Stampe > Elenchi raggruppati per polizza

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema (nomi file / percorsi)
COASSMOV Input Movimenti di coassicurazione; scanditi per chiave primaria (data-eff) o secondaria csm-chia2 (data-incasso)
COGCOASS Input Anagrafica polizze in coassicurazione (contraente, compagnie, agenti, percentuali)
COGGEANA Input Anagrafica generale (compagnie tipo "C") per la descrizione compagnia in stampa
COGAPPOG Input Dati di appoggio bancari (aperto ma non usato nel report per polizza)
COGBNCA Input Anagrafica banche (aperto ma non usato nel report per polizza)
LAVORO I-O File indicizzato temporaneo di transito (#$COGK90.<operatore>); riordina i movimenti per ramo/polizza/date

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)
cogappog.fd / cogappog.cpy SELECT/FD e record dati di appoggio bancari
cogbnca.fd / cogbnca.cpy SELECT/FD e record anagrafica banche
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), combo (COGS60W) 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 / cogappog.k01 / cogbnca.k01 Routine di I/O per chiave (k03 = chiave secondaria coassmov per data-incasso)

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGS52W Edit del campo data (input date maschera, formattazione data per la stampa)
COGS60W Gestione del combo-box "Tipo di stampa" (Quietanze / Incassi / Non incassati)
COGS54 Apertura sessione di stampa e chiusura post-stampa

Logica di elaborazione

1. Inizializzazione (apri / a000)

Come COGK86: nome programma, ctr-abil, z-99-init-program, rd-azi, apertura file di sistema e di coassicurazione, nome file di lavoro (#$COGK90.<wo-oper>), abilitazione F3/F8, maschera "Stampa Polizze Di Controllo", creazione/riapertura in I-O del file LAVORO con controllo di uso esclusivo.

2. Richiesta parametri (a4 - a-tm-tipo)

Identica a COGK86: Data Inizio (obbligatoria), Data Fine (obbligatoria, >= inizio), Tipo di stampa (combo Q / I / N, default "Q"). Navigazione a GO TO con supporto mouse, ESC e F2.

3. Avvio stampa (a-riga-fine / a-riga-fine-ok)

Conferma parametri, apertura sessione COGS54. Per tipo "I" esegue elabora2 (scan per data-incasso), altrimenti elabora (scan per data-eff), poi stampa.

4. Elaborazione (elabora / elabora2)

Logica identica a COGK86 nella lettura dei movimenti (filtro sull'intervallo date, lettura polizza COGCOASS, espansione per compagnia in csm-ele-assicura). La differenza e' nel tracciato del file LAVORO: la chiave primaria e' ramo / npol / data-eff / data-inca / compagnia (il ramo/polizza precede la compagnia), cosi' da ordinare i movimenti per polizza.

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): - emette il totale parziale (i3) della polizza precedente; - stampa il tratto separatore e la riga di intestazione colonne (i1): Ramo, Polizza, Contraente, Data, Compagnia, Perc., Pr. Lordo, Pr. Netto, Q/P, Provvig., Rit. Acc.

Per ogni riga di dettaglio (i2) stampa ramo, polizza, contraente, data, descrizione compagnia (da COGGEANA tipo "C"), percentuale, importi, tipo Q/P, provvigione, ritenuta, accumulando totali parziali e generali. Come in COGK86 il contenuto dipende dal tipo (Q usa premio+data-eff, N il premio solo se incasso a zero, I l'incasso solo se valorizzato). Per le righe successive della stessa polizza (ramo dei restanti campi via initialize i2) omette ramo/polizza/contraente/data ripetuti. Alla fine (a3-99-exit) stampa l'ultimo totale parziale (i3), il tratto di asterischi e il totale generale (i4).

6. Chiusura (fine-sta / fine)

Come COGK86: chiusura sessione stampa, finestra di appoggio, file, cancellazione file LAVORO, z-99-exit-program.

Note tecniche

  • Variante per polizza di COGK86: condivide con COGK86 lo stesso schema (stessi file, stesso combo tipo, stesse subroutine, stessa logica di estrazione dei movimenti). L'unica differenza sostanziale e' l'ordine della chiave del file LAVORO (ramo/polizza in testa) che produce la rottura per polizza anziche' per compagnia, e il layout righe di stampa (i1/i2/i3/i4 con la colonna Compagnia interna alla riga).
  • File COGAPPOG / COGBNCA aperti ma non usati: le sezioni bancarie presenti in COGK86 (c/c, ABI/CAB, agenzia) non sono replicate nel report per polizza; i due file restano aperti per omogeneita' con il modello ma non alimentano righe di stampa.
  • Espansione per compagnia: come in COGK86, ogni movimento COASSMOV genera una riga di LAVORO per ciascuna compagnia in csm-ele-assicura (max 30).
  • Doppio percorso di scansione: quietanze/non incassati per data-eff (chiave primaria), incassi per data-incasso (chiave secondaria csm-chia2). La ritenuta d'acconto e' presa da csm-impo-ritac senza ricalcolo.
  • Discrepanza commento/titolo: il titolo maschera e' "Stampa Polizze Di Controllo"; la funzione di menu e' "Elenchi raggruppati per polizza". Il raggruppamento effettivo del report e' per ramo/polizza (rottura su lav-ramo/lav-npol).
  • Programma non generato da Screens: scritto a mano (autore Claudio, 10/01/2004); non esistono i file .select/.fd/.wrk/.prc in cbl/screens/ (solo .version). Screen section, richiesta parametri e I/O sono codificati nel sorgente, con navigazione a GO TO.