COGE52 - Contabilizzazione Bolle Vendita al Dettaglio (Corrispettivi)¶
Sorgente: cbl/coge52.cbl | Tipo: Programma batch a caratteri (contabilizzazione) | Program-ID: COGE52
Menu:
- Magazzino > Uscite > Bolle Accompagnatorie > Dettaglio > Caric. in Co/Ge
- Vendite > Bolle Vendita > Dettaglio > Caric. in Co/Ge
Scopo¶
Contabilizzazione in prima nota delle bolle di vendita al dettaglio (corrispettivi) per soci e clienti. Il commento di testata lo dichiara: "Contabilizzazione bolle vendita al dettaglio x soci e clienti - Programma apposito x CANTINA".
Il programma legge le bolle di una data specifica, per ognuna scandisce movimenti merci e cauzioni, valorizza una serie di tabelle interne (IVA, vendite, dare) e con queste costruisce il movimento di prima nota contabile (COGPNONC) e il registro IVA (COGARIVA) per il corrispettivo. Le bolle contabilizzate vengono marcate come fatturate (flag tes-flagfat = "*").
E' un programma nato per la Cantina di Limidi e contiene logiche personalizzate specifiche (k-personal-cant-limidi): contropartite ricavi diverse per magazzino Rolo, gestione del cliente POS, conto cassa dedicato.
Struttura del programma¶
Richiesta parametri (a4 - a120)¶
Maschera a caratteri (mm-1) con:
a10- Data da considerare (tm-data-c): data delle bolle da contabilizzare, richiesta via COGS52.a45- Data movimento (tm-data-m): data di registrazione contabile, richiesta via COGS52; usata anche per determinare la divisa di contabilizzazione tramite COGU10 (operazioneGetDivisaConto), memorizzata intm-divisa.a120- Conferma (acc-conf, F3).
Elaborazione bolle (ela-00 - ela-90-end)¶
Si posiziona sulla prima bolla della data per il magazzino (chiave secondaria data st-cogtesbo-notmin-chia2) e scandisce (rdnxt-cogtesbo) fino a fine data. Per ogni testata:
- conta bolle lette / del periodo / considerate / contabilizzate (contatori
ctr-b-*mostrati a video); - considera solo le bolle di tipo
"D"(dettaglio); - filtro fatturazione: scarta le bolle gia' fatturate (
tes-flagfat = "*"); per i clienti considera solo il cliente corrispettivi (k-cliente-corrisp = 283), il cliente corrispettivi POS (k-limidi-cliente-pos = 583) o i clienti che non vogliono la fattura (tes-co-noir = "N"); - causale bolla: cerca la causale in COGTABEL tipo 15 e la considera valida solo se e' di uscita (
euta-cb-fl-eu = "U") e da contabilizzare (euta-cb-con-fat = "SI"); - legge il cliente da COGGEANA.
Per ogni bolla valida:
ela-20-loop- scandisce i movimenti merci della bolla in COGMOMAG (start sumag-chiap), applica l'IVA direttamente sull'importo (aliquota da COGTABEL tipo 67,euta-ivali) arrotondando (COGU10), converte in divisa di conto se necessario (COGU10 "Cambio"), determina la contropartita ricavi (mag-coge, con override Rolo per Limidi) e aggiorna la tabella vendite (agg-tv);ela-50-loop- scandisce le cauzioni della bolla in COGCAUZI (start sucauz-chia), converte in divisa se necessario, somma/sottrae al totale bolla secondocauz-entrusc, e le imputa a una contropartita convenzionale1000(cauzioni);ela-90- aggiorna la tabella dare (td-*) accumulando il totale bolla sul conto cliente/socio;ela-90-end- marca la bolla come fatturata (tes-flagfat = "*", rewrite COGTESBO).
Costruzione prima nota e IVA (ela-100 - agg-50-end)¶
Terminata la scansione delle bolle:
ela-100- legge l'anno contabile da COGTABEL tipo 66 (inconta-rec), e il tipo documento IVA per corrispettivi da COGTABEL tipo 68 codice"CO"(conti IVA, contropartita, corrispettivi, registro).ela-210/ela-250- calcola la tabella IVA dalla tabella vendite: scorpora l'imponibile dall'importo per ogni aliquota (arrotondamento COGU10), somma per codice aliquota.agg-00/agg-05- ottiene la numerazione del movimento contabile (COGS25 cod. 5) e la numerazione corrispettivi (COGS25 cod. 9, tipo doc"CO").agg-05(write) - crea il movimento IVA testa in COGPNONC (importo IVA totale).agg-10-loop- crea i movimenti merci (contropartite ricavi) leggendo la contropartita da COGTABEL tipo 16; se contropartita = 1000 usa il conto cauzioni da COGAZIEN.agg-30-loop- crea i movimenti clienti/soci dalla tabella dare; per il cliente corrispettivi usa il conto corrispettivi, per il cliente POS Limidi il conto cassa dedicato; gestisce le partite aperte cercando in COGTABEL tipo 45 (euta-p-mas/euta-p-con) se il conto e' da gestire a partite aperte.agg-50-loop- crea i movimenti del registro IVA in COGARIVA, uno per aliquota.
Tabelle e file¶
| File logico | Tabella | Accesso | Descrizione |
|---|---|---|---|
| FEURTAB | FEURTAB | Input | Tabella di sistema |
| COGTABEL | COGTABEL | Input | Tabelle generiche: causali (tipo 15), aliquote IVA (tipo 67), esercizio contabile (tipo 66), tipo documento IVA corrispettivi (tipo 68 "CO"), contropartite ricavi (tipo 16), conti a partite aperte (tipo 45) |
| COGMERCI | COGMERCI | Input | Anagrafica merci (codice IVA, articolo esenzione) |
| COGGEANA | COGGEANA | Input | Anagrafica clienti/soci (conto di riferimento mastro/conto/sottoconto) |
| COGMAGAZ (COGMAGA2) | COGMAGAZ | Input | Anagrafica magazzini |
| COGPNCON | COGPNCON | Input | Piano dei conti |
| COGTESBO | COGTESBO | I-O | Testate bolle (scansione per data via chiave secondaria .k02; rewrite del flag fatturazione) |
| COGMOMAG | COGMOMAG | Input | Movimenti di magazzino (righe bolla) |
| COGPNONC | COGPNONC | I-O | Prima nota contabile (scrittura movimenti generati) |
| COGARIVA | COGARIVA | I-O | Registro IVA (scrittura movimenti IVA generati) |
| COGCAUZI | COGCAUZI | Input | Cauzioni delle bolle (vuoti a rendere) |
Tabelle interne (working-storage)¶
| Tabella | Descrizione |
|---|---|
| tab-iva | Fino a 10 aliquote IVA con imponibile e imposta scorporati |
| tab-vendite | Fino a 50 contropartite ricavi, ognuna con fino a 5 aliquote IVA |
| tab-dare | Fino a 500 conti clienti/soci con relativo totale bolla |
COPY incluse¶
File Section¶
feurtab.fd, cogtabel.fd, cogmerci.fd, coggeana.fd, cogmaga2.fd, cogpncon.fd, cogtesbo.fd, cogmomag.fd, cogpnonc.fd, cogariva.fd, cogcauzi.fd (con relativi .cpy di record)
Working-Storage¶
k-personal.cpy, wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, lnke51.cpy, cogconta.cpy (esercizio contabile), cogazien.cpy, utils25.cpy (COGS25), utils52.cpy (COGS52), utilu10.cpy (COGU10)
Linkage¶
wcont.cpy, wcont1.cpy
Procedure Division¶
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, open1.cpy, mmmask.cpy, cogtesbo.k01, cogtabel.k01, cogtesbo.k02 (chiave secondaria per data)
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGS52 | Accept data (data da considerare / data movimento) |
| COGU10 | Determinazione divisa di conto (GetDivisaConto), cambio divisa, arrotondamento |
| COGS25 | Numerazione documenti contabili (movimento contabile e corrispettivi) |
Note tecniche¶
- Personalizzazione Cantina di Limidi (
az-personal = k-personal-cant-limidi): per il magazzino Rolo (k-limidi-rolo-mag = 2) usa una contropartita ricavi diversa (k-limidi-rolo-corrisp = 3); per il cliente POS (k-limidi-cliente-pos = 583) genera un movimento su conto cassa 1/5/583; questi movimenti non vengono gestiti a partite aperte. - Cauzioni: sono imputate a una contropartita convenzionale
1000; in fase di scrittura prima nota il conto cauzioni viene preso da COGAZIEN (az-mas-ca/az-con-ca/az-sco-ca). - Marcatura bolle: le bolle contabilizzate vengono flaggate con
tes-flagfat = "*"per evitarne la ri-contabilizzazione. - Il programma usa lo stile legacy a caratteri con
GO TOePERFORM ... THRUdiffusi (codice storico, non conforme alle convenzioni per i nuovi sviluppi). - Il titolo di menu ("Caric. in Co/Ge") corrisponde alla funzione reale (carico/contabilizzazione in Contabilita' Generale), specializzato per la vendita al dettaglio a corrispettivi.