Vai al contenuto

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

  1. 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.

  2. a4: inizializzazione tm-tab.

  3. Filtri:

  4. a-tm-daint-in: data inizio (con COGS52W, verifica "Z" = ammette zero)
  5. a-tm-daint-fi: data fine (con COGS52W)

  6. a10 / a10-loop: caricamento incassi da COASSMOV. Scorre con st-coassmov-notmin-chia2, filtra:

  7. csm-importo-inca-lordo != zero
  8. 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".

  9. a30: se nessun incasso trovato, messaggio e ritorno a a4. Altrimenti costruisce griglia.

  10. a-grid / a-accept-grid: ciclo griglia:

  11. Invio in modalita' Aggiornamento: modifica riga (a-riga-dettaglio)
  12. F3: alterna Selezione/Aggiornamento
  13. F8: dettaglio quietanza (chiama COGK88 con k88-ramo, k88-polizza, k88-data-eff, k88-tipo-dato = "I")
  14. Ctrl+E: cancellazione con conferma (c-cancella)
  15. Shift+F4: GRIDADMN
  16. 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).