COGK62 -- Gestione Incassi Coassicurazione¶
Sorgente: cbl/cogk62.cbl | Program-ID: COGK62 | Tipo: Interattivo (gestione tabella)
Menu: Contabilita' > Coassicurazioni > Gestione Incassi
Scopo¶
Gestione degli incassi in coassicurazione. Presenta una griglia con i movimenti di coassicurazione (COASSMOV) che hanno un importo lordo di incasso non nullo, filtrabili per periodo. Permette di modificare gli importi di incasso (lordo, netto, provvigione) e di eliminare incassi esistenti. Il dettaglio della quietanza e' consultabile tramite il programma COGK88.
La griglia mostra lo screen inline con i campi della sezione dettaglio definiti direttamente nel sorgente (non generati da Screens).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB (COGTABEL) | Indicizzato | Input | Tabella generica |
| COGTABEL | Indicizzato | Input | Tabelle di sistema (tipo 56 = deleghe coassicurazione) |
| COGCOASS | Indicizzato | Input | Coassicurazioni (polizze, compagnie) |
| COASSMOV | Indicizzato | I-O | Movimenti coassicurazione (quietanze, incassi) |
Struttura COASSMOV (campi principali utilizzati)¶
csm-rec:
csm-deleg Codice delega (k-deleg = 56)
csm-ramo Ramo assicurativo
csm-npol Numero polizza
csm-data-eff Data effetto
csm-data-incasso Data incasso
csm-importo-inca-lordo Importo incasso lordo
csm-importo-inca-netto Importo incasso netto
csm-provvigione Importo provvigione
csm-tipo-provvigione Tipo provvigione
csm-aggio-det-inca Flag dettaglio incasso gia' ripartito
csm-compagnia (k) Compagnie partecipanti (array)
csm-perc (k) Percentuali di ripartizione
csm-inca-lordo (k) Incasso lordo per compagnia
csm-inca-netto (k) Incasso netto per compagnia
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd | SELECT della tabella COGTABEL |
| cogtabel.fd / cogtabel.cpy | SELECT e record COGTABEL |
| cogcoass.fd / cogcoass.cpy | SELECT e record COGCOASS (coassicurazioni) |
| coassmov.fd / coassmov.cpy | SELECT e record COASSMOV (movimenti coassicurazione) |
| costanti.cpy | Costanti di sistema |
| wstato.cpy | Variabili di stato |
| wgrave.cpy | Variabili messaggi gravi |
| wgrid.cpy | Variabili gestione griglia |
| wopenf.cpy | Variabili apertura file |
| wnscr.cpy | Variabili screen |
| cogazien.cpy | Dati azienda corrente |
| utilgdad.cpy | Utility per GRIDADMN |
| utilu10.cpy | Utility conversione importi (COGU10W) |
| utilk88.cpy | Parametri per COGK88 (dettaglio quietanza) |
| k-u10.cpy | Costanti per COGU10W |
| utils52.cpy | Utility gestione date (COGS52W) |
| wcont.cpy / wcont1.cpy | Struttura linkage standard |
Struttura del programma¶
Screen inline¶
La screen section e' definita direttamente nel sorgente (non usa .scr generato da Screens). Contiene:
- Frame testata con campi Data Inizio (e-tm-daint-in) e Data Fine (e-tm-daint-fi)
- Frame dettaglio con campi: Ramo (e-tm-ramo), Polizza (e-tm-polizza), D.Incasso (e-tm-data), Incasso lordo (e-tm-lordo), Incasso Netto (e-tm-netto), P.N. check-box (e-tm-tipo-provvi), Provvigione (e-tm-provvi)
- Griglia (e-tm-tab) con colonne: ramo, polizza, data, lordo, netto, tipo_provvi, provvi, data_quie
Flusso principale¶
-
apri: inizializzazione, apertura file (open-files + open-coassic), lettura azienda. Configurazione tasti: invio, invio-modifica, f3-conferma, f8-aiuto, f8-dettaglio, Shift+F4, Ctrl+A (disattivato poi), Ctrl+E, F8-calendario.
-
a4: inizializzazione tm-tab.
-
Filtri:
a-tm-daint-in: data inizio (con COGS52W, verifica "Z" = ammette zero)-
a-tm-daint-fi: data fine (con COGS52W) -
a10 / a10-loop: caricamento incassi da COASSMOV. Scorre con st-coassmov-notmin-chia2, filtra:
- csm-importo-inca-lordo != zero
-
csm-data-incasso compresa tra tm-daint-in e tm-daint-fi (se indicati) Per ogni record carica: ramo, polizza, data-eff, data-incasso, lordo, netto, tipo-provvigione, provvigione. Edita importi con COGU10W. Se data incasso != zero, imposta tm-pagato = "P".
-
a30: se nessun incasso trovato, messaggio e ritorno a a4. Altrimenti costruisce griglia.
-
a-grid / a-accept-grid: ciclo griglia:
- Invio in modalita' Aggiornamento: modifica riga (a-riga-dettaglio)
- F3: alterna Selezione/Aggiornamento
- F8: dettaglio quietanza (chiama COGK88 con k88-ramo, k88-polizza, k88-data-eff, k88-tipo-dato = "I")
- Ctrl+E: cancellazione con conferma (c-cancella)
- Shift+F4: GRIDADMN
- Inserimento (Ctrl+A) e' commentato/disattivato
Dettaglio riga (a-riga-dettaglio)¶
Sequenza di accept:
- a-tm-ramo: codice ramo (abilitato solo in inserimento)
- a-tm-polizza: numero polizza
- a-tm-data: data incasso (con COGS52W)
- a-tm-lordo: importo lordo (con COGU10W accept)
- a-tm-netto: importo netto (con COGU10W accept)
Il campo provvigione e' calcolato automaticamente al salvataggio.
Salvataggio (a-riga-fine)¶
- Legge il record COASSMOV con rd-coassmov-lk
- Aggiorna: csm-data-incasso, csm-importo-inca-lordo, csm-importo-inca-netto
- Se tm-provvi != zero: usa il valore indicato; altrimenti calcola csm-provvigione = csm-importo-inca-netto * 7 / 100 (rounded)
- Se csm-aggio-det-inca != 1: ricalcola la ripartizione per compagnia proporzionalmente alle percentuali: csm-inca-lordo(k) = lordo * csm-perc(k) / 100, csm-inca-netto(k) = netto * csm-perc(k) / 100
- Esegue rwr-coassmov
Cancellazione (c-cancella)¶
- Legge il record COASSMOV con rd-coassmov-lk
- Azzera: csm-data-incasso, csm-importo-inca-lordo, csm-importo-inca-netto
- Azzera gli incassi per compagnia: csm-inca-lordo(k), csm-inca-netto(k)
- Azzera csm-aggio-det-inca
- Esegue rwr-coassmov (il record non viene cancellato, viene solo azzerato)
Chiamate esterne¶
| Programma | Modalita' | Scopo |
|---|---|---|
| COGS52W | CALL | Gestione date con calendario |
| COGU10W | CALL (via perform z-u10) | Accept/display/edita importi, conversione divisa |
| COGK88 | CALL | Dettaglio quietanza coassicurazione |
| GRIDADMN | CALL | Gestione avanzata griglia |
Variabili principali¶
| Variabile | Tipo | Descrizione |
|---|---|---|
| tab-maschera | 01 | Contiene: tm-dati-test (date filtro), tm-ele-sav (backup riga), tm-pnt (contatore), tm-tab (griglia fino a 900 righe) |
| tm-righe (i) | Riga griglia | tm-ramo, tm-polizza, tm-data, tm-data-edit, tm-lordo, tm-netto, tm-provvi, tm-pagato, tm-lordo-edit, tm-netto-edit, tm-provvi-edit, tm-tipo-provvi, tm-data-eff |
| grid-record | 01 | grd-ramo, grd-polizza, grd-data, grd-lordo, grd-netto, grd-tipo-provvi, grd-provvi, grd-data-quie |
| a-modalita | 77 | "S" = Selezione, "A" = Aggiornamento |
| a-operazione | 77 | "I" = Inserimento, "M" = Modifica |
| fl-f3-conferma | 77 | Flag conferma da F3 nella exception-form |
| k-deleg | 78 | 56 (codice delega coassicurazione) |
| k-euta-tipo | 78 | 56 (tipo tabella deleghe) |
| k-max-ele-tab | 78 | 900 (righe max griglia) |
Note¶
- La screen e' definita inline nel sorgente, non usa file .scr generati da Screens. Include frame, label, entry-field e griglia con layout-manager per il ridimensionamento.
- Il calcolo provvigione di default e' 7% del netto (csm-importo-inca-netto * 7 / 100, rounded).
- La cancellazione non elimina il record COASSMOV: azzera i campi di incasso mantenendo il movimento sottostante.
- La ripartizione per compagnia viene ricalcolata solo se csm-aggio-det-inca != 1 (il dettaglio non e' stato gia' immesso manualmente).
- L'inserimento di nuovi record (Ctrl+A) e' commentato nel sorgente, quindi non disponibile.
- Il programma gestisce il ridimensionamento della finestra (z-99-event-form con ntf-resized).