COGK87 - Estratto Conto coassicurazione per compagnia¶
Panoramica¶
Programma di stampa (report a 118 colonne) del modulo Coassicurazioni che produce l'estratto conto verso le compagnie co-assicuratrici, in forma di lettera/documento per compagnia (intestazione con anagrafica, coordinate bancarie e agente; corpo con dettaglio quietanze del periodo; totali con saldo, ritenute d'acconto e totale da pagare). Su richiesta di una data estratto conto, di un periodo di competenza e della scelta "tutte le compagnie" oppure di una singola compagnia (per codice o ragione sociale), estrae gli incassi da COASSMOV nel periodo, li appoggia in un file di lavoro e stampa un estratto conto per ogni compagnia. Opzionalmente, con il flag "Contabilizzo", genera le scritture di prima nota contabile (COGPNONC). Avviato da maschera GUI con conferma F3.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Contabilita' | Coassicurazioni > Stampe > Estratto Conto per Compagnia |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file / percorsi) |
| COGTABEL | Input | Tabella generica: descrizione ramo (tipo "A8" per euta-codr = ramo) e progressivo numero documento contabile (tipo 66) |
| COASSMOV | I-O | Movimenti di coassicurazione; scanditi per chiave secondaria csm-chia2 (data-incasso) e riscritti quando si ricalcola la ritenuta d'acconto |
| COGCOASS | Input | Anagrafica polizze in coassicurazione (contraente) |
| COGGEANA | Input | Anagrafica generale (compagnie tipo "C", agenti tipo "F"): nome, indirizzo, CAP, localita', provincia, riferimenti contabili mastro/conto/sottoconto |
| COGAPPOG | Input | Dati di appoggio bancari (ABI, CAB, c/c, IBAN-CIN) per compagnia |
| COGBNCA | Input | Anagrafica banche/agenzie (descrizione per ABI e CAB) |
| COGPNONC | I-O | Prima nota contabile (non contabilizzata): destinazione delle scritture generate se "Contabilizzo" = "S" |
| LAVORO | I-O | File indicizzato temporaneo di transito (#$COGK87.<operatore>); riordina gli incassi per compagnia/ramo/polizza/date |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| cogtabel.fd / cogtabel.cpy | SELECT/FD e record tabella generica COGTABEL |
| coggeana.fd / coggeana.cpy | SELECT/FD e record anagrafica generale |
| cogcoass.fd / cogcoass.cpy | SELECT/FD e record polizze coassicurazione |
| 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 |
| cogpnonc.fd / cogpnonc.cpy | SELECT/FD e record prima nota contabile (pno-rec) |
| flsta.fd / flsta.cpy | File di stato/stampa standard |
| cogconta.cpy | Area conta-rec (anno contabile, dati contabilizzazione) |
| costanti.cpy | Costanti generali |
| wstato / wgrave / wopenf / wnscr | Stato I/O, errori gravi, apertura file, gestione video |
| cogazien.cpy | Dati azienda |
| UTILS54 / UTILS52 / UTILS25 / UTILS21 / UTILW06 / utils65 | Aree linkage subroutine di stampa (COGS54), data (COGS52W), numeratore documento (COGS25) e utility |
| sendw06.cpy | Routine send-w06 per ricerca cliente per ragione sociale (COGW06) |
| 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 |
| cogtabel.k01 / coggeana.k01 / cogcoass.k01 / coassmov.k01 / coassmov.k03 / cogappog.k01 / cogbnca.k01 / cogpnonc.k01 | Routine di I/O per chiave |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| COGS52W | Edit/formattazione delle date (data estratto conto, periodo di competenza, date movimento) |
| COGS95 | Gestione dei check-box "Contabilizzo?" e "Tutte le Compagnie" |
| COGS54 | Apertura sessione di stampa e chiusura post-stampa |
| COGS25 | Assegnazione del numero progressivo documento di prima nota (per magazzino/codice/anno/mese) |
| COGW06 | Ricerca cliente/compagnia per ragione sociale (via send-w06), restituisce il codice |
Logica di elaborazione¶
1. Inizializzazione (apri / a000)¶
Nome programma, ctr-abil, z-99-init-program, rd-azi, apertura file di sistema e di coassicurazione (open-coassic: COGCOASS in input, COASSMOV in I-O). Nome file di lavoro (#$COGK87.<wo-oper>), abilitazione F3/F8, maschera "Estratto Conto" (dimensione 53x10), creazione/riapertura in I-O del file LAVORO con controllo di uso esclusivo.
2. Richiesta parametri (a4 - a-tm-rag)¶
Default: "Tutte le Compagnie" = "S", "Contabilizzo" = "N", data estratto conto = data odierna. Richiede in sequenza:
- Contabilizzo? (a-tm-contabilizzo): check-box; se "S" chiede conferma esplicita (acc-conf);
- Data Estratto Conto (a-tm-daint-es): obbligatoria;
- Da Data / A Data (a-tm-daint-in / a-tm-daint-fi): periodo di competenza, entrambe obbligatorie con controllo inizio <= fine;
- Tutte le Compagnie (a-tm-tipo): check-box "S"/"N";
- Codice / Ragione Sociale (a-tm-cod / a-tm-rag): abilitati solo se "Tutte le Compagnie" = "N" (gestione x-enabled-tm-cod / x-enabled-tm-rag in z-cambia-controlli). La ragione sociale attiva la ricerca COGW06 che restituisce il codice; il codice viene validato su COGGEANA (tipo "C").
Navigazione a GO TO con supporto mouse, ESC, F2 e conferma F3.
3. Avvio stampa (a-riga-fine / a-riga-fine-ok)¶
Verifica finale (x-imposta-conferma), conferma acc-conf, apertura sessione COGS54, quindi elabora (costruzione file di lavoro) e stampa (produzione estratti conto).
4. Elaborazione (elabora)¶
Si posiziona su COASSMOV con st-coassmov-notmin-chia2 (chiave secondaria csm-chia2 = data-incasso) e scorre con rdnxt-coassmov, filtrando su csm-data-incasso nell'intervallo [Da Data, A Data]. Per ogni movimento legge la polizza (rd-cogcoass) e, per ciascuna compagnia in csm-ele-assicura:
- se "Tutte le Compagnie" = "N" (tm-cod valorizzato) considera solo la compagnia = tm-cod, saltando le altre;
- ricalcola la ritenuta d'acconto se la provvigione e' valorizzata ma la ritenuta e' zero: csm-impo-ritac = (csm-impo-provv / 5) * 23 / 100, e riscrive il movimento su COASSMOV (rwr-coassmov);
- legge la descrizione ramo da COGTABEL (tipo "A8", euta-codr = ramo);
- scrive il record nel file LAVORO (escludendo la compagnia 88888) con date, importi, provvigione, ritenuta, contraente, descrizione ramo. Chiave di LAVORO: compagnia / ramo / npol / data-eff / data-inca.
5. Stampa dell'estratto conto (stampa)¶
Scorre LAVORO in ordine di chiave. Alla rottura di compagnia (tmp-compagnia not = lav-compagnia), se non e' la prima, chiude l'estratto conto della compagnia precedente:
- riga 12 (totali lordo/netto/provvigioni), riga 15 (saldo = totale lordo - provvigioni), riga 17 (totale ritenute d'acconto), riga 19 (totale euro = saldo + ritenute), riga 21 ("Agenzia di Parma"), poi salto pagina;
- accumula nel totale finale (w-totfin) ed esegue contabilizzazione (scrittura prima nota per la compagnia chiusa).
Quindi apre il nuovo estratto conto: intestazione con anagrafica compagnia (nome, indirizzo, CAP/localita'/provincia da COGGEANA tipo "C"), testo di cortesia per l'accredito, dati bancari (ABI/banca e CAB/agenzia da COGBNCA, c/c e CIN da COGAPPOG), agente (COGGEANA tipo "F") e intestazioni di colonna. Per ogni riga di dettaglio (i10) stampa ramo, polizza, data incasso, contraente, premio lordo/netto, tipo Q/P (con "7%" per le quietanze), provvigione, accumulando i totali di compagnia (w-tot*). Alla fine (a3-99-exit) chiude l'ultimo estratto conto ed esegue contabilizzazione e, se "Contabilizzo" = "S", scri-controp (scrittura contropartita).
6. Contabilizzazione (contabilizzazione / scri-contab / scri-controp / prendi-num)¶
Attiva solo se "Contabilizzo" = "S" e la compagnia non e' 88888. prendi-num recupera l'anno contabile e il numero documento progressivo via COGTABEL (tipo 66) e COGS25. scri-contab scrive su COGPNONC la riga del conto ricavi (mastro/conto/sottoconto della compagnia da COGGEANA), con segno determinato dal segno del totale lordo, importo = totale lordo, descrizione "Quietanze: MM/AAAA". scri-controp scrive la contropartita sul conto debito CAP (mastro 01, conto 22, sottoconto 18) con l'importo accumulato (w-debito-cap). A fine stampa (fine-sta) segnala l'intervallo di documenti di prima nota creati.
7. Chiusura (fine-sta / fine)¶
Chiude la sessione di stampa (COGS54 after-print), la finestra di appoggio, i file (inclusa COGTABEL), elimina il file LAVORO ed esegue z-99-exit-program.
Note tecniche¶
- Estratto conto in forma di lettera: a differenza degli elenchi COGK86/COGK90 (report tabulari), COGK87 produce un documento per compagnia (larghezza 118 colonne) con intestazione anagrafica/bancaria, corpo quietanze e sezione totali/saldo, pensato per essere inviato alla compagnia co-assicuratrice. Contiene testo fisso "Agenzia di Parma" e "Parma," nell'intestazione data.
- Ricalcolo e riscrittura della ritenuta d'acconto: in fase di elaborazione, se la provvigione e' presente ma la ritenuta e' zero, la ritenuta viene calcolata come 4,6% della provvigione (
(provv/5)*23/100) e il movimento COASSMOV viene riscritto (per questo COASSMOV e' aperto in I-O). Questa e' l'unica differenza operativa rilevante rispetto a COGK86/COGK90 che leggono la ritenuta senza modificarla. - Contabilizzazione automatica (COGPNONC): con il flag "Contabilizzo", il programma genera scritture di prima nota (conto ricavi per compagnia + contropartita debito CAP), numerate via COGS25 e con anno da COGTABEL tipo 66. La compagnia 88888 e' esclusa dalla contabilizzazione (compagnia convenzionale/appoggio).
- Selezione singola compagnia: se "Tutte le Compagnie" = "N", il report e' limitato alla compagnia scelta per codice o ragione sociale; la ricerca per ragione sociale usa COGW06 (
send-w06) e ritorna il codice. - COGTABEL tipo "A8" e tipo 66: la descrizione ramo e' letta da COGTABEL con tipo "A8" (chiave euta-codr = ramo); il progressivo del documento contabile usa COGTABEL tipo 66.
- Chiave polizza a 13 cifre: il tracciato del file di lavoro (
lav-npol pic 9(13)) e il record COGCOASS/COASSMOV usano numero polizza a 13 cifre, coerente concoa-npol/csm-npol. - Programma non generato da Screens: scritto a mano (autore Claudio, 05/01/2005); non esistono i file
.select/.fd/.wrk/.prcincbl/screens/(solo.version). Screen section (con check-box gestiti da COGS95), richiesta parametri e I/O sono codificati nel sorgente, con navigazione aGO TO.