COGM76 — Modifica aliquota IVA su bolle/note¶
Sorgente: cbl/cogm76.cbl | Tipo: Programma GUI standalone (utility di aggiornamento massivo) | Program-ID: cogm76
Menu: Magazzino > Archivi & Tabelle > Varie [Modifica Al.Iva su Bolle] ; Sistema > Utility > Varie [Modif. Aliquota Iva su Bolle/NoteP.]
Scopo¶
Utility di manutenzione che sostituisce in modo massivo l'aliquota IVA sulle righe delle bolle/note di magazzino (movimenti COGMOMAG) e, se l'azienda gestisce il profilo servizi (az-prof = 'S'), anche sui contratti/righe servizi (COGCONTR) legati a bolle servizi.
Sono previste due modalita' di sostituzione, selezionate dal flag "Forzo Aliq. Merce" (tm-ali-mr):
- Forzatura da anagrafica merce (
tm-ali-mr = 'S'): per ogni riga l'aliquota viene riallineata a quella codificata sulla scheda articolo (mer-codivadiCOGMERCI). Non si indicano vecchia/nuova aliquota. - Sostituzione puntuale (
tm-ali-mr = 'N'): si indica una "Vecchia Aliquota" (tm-old-ali) e una "Nuova Aliquota" (tm-new-ali); vengono aggiornate solo le righe che portano l'aliquota vecchia.
L'elaborazione e' delimitata da un intervallo di date documento (tm-da-data / tm-a-data). Vengono escluse le bolle gia' fatturate e, per i resi, quelle il cui raccordo con la bolla d'uscita cade fuori periodo. A video mostra tre contatori: righe lette (tm-m-l), righe candidate (tm-m-c), righe effettivamente modificate (tm-m-m).
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGMOMAG | cogmomag.k01, cogmomag.k02 |
Movimenti di magazzino: scansione per chiave data (chia2) e riscrittura dell'aliquota (mag-alf) |
| COGTESBO | cogtesbo.k01, cogtesbo.k02 |
Testate bolle: controllo esistenza, data e stato fatturazione; scansione bolle servizi |
| COGCONTR | cogcontr.k01 |
Righe contratti/servizi: riscrittura aliquota (con-iva) per le bolle servizi |
| COGRACCO | cogracco.k01, cogracco.k02 |
Raccordi tra documenti: verifica legame a fattura e tipo immediato (az-tipo-imm) |
| COGRACBB | cogracbb.k01 |
Raccordi bolla-bolla (tipo RV): per i resi, risale alla bolla d'uscita di origine |
| COGMERCI | cogmerci.k01 |
Anagrafica articoli: aliquota di riferimento (mer-codiva) in modalita' "Forzo Aliq. Merce" |
| COGTABEL | cogtabel.k01 |
Tabella IVA (euta-tipo = 67): validazione codice aliquota e lettura valore percentuale (euta-ivali) |
Flusso principale¶
apri— inizializzazione GUI (z-99-init-program), apertura file, lettura anagrafica azienda (rd-azi), costruzione maschera; default periodo dal 1o del mese corrente a data odierna.a-tm-ali-mr/a-tm-old-ali/a-tm-new-ali— accept dei parametri di aliquota; F8 richiamaCOGE67per la scelta dell'aliquota da tabella. I campi vecchia/nuova aliquota sono abilitati solo setm-ali-mrnon e''S'.a-tm-da-data/a-tm-a-data— accept dell'intervallo date (gestite viaCOGS52, calendario su F8).x-controlla-tm-old-ali/x-controlla-tm-new-ali/x-controlla-tm-date— validazioni: aliquota obbligatoria, codificata (tipo 67), numerica, nuova diversa da vecchia, coerenza date.a-inizio-dati— su F3 di conferma avvia l'elaborazione.b-elabora— elaborazione bolle merci:st-cogmomag-notmin-chia2sull'intervallo, loopb-10-loopconrdnxt-cogmomag-lk. Per ogni riga controlla periodo, aliquota da sostituire, esclusione bolle fatturate/resi viacontrolli-su-resi-raccordi, quindi riscrivemag-alfconrwr-cogmomag.controlli-su-resi-raccordi— impostari-flag-skipa'S'se la riga va saltata: per i resi (tipob = 'R') risale viaCOGRACBBalla bolla d'uscita e ne verifica la data; verifica esistenza testata; se la bolla e' raccordata (COGRACCO) la esclude.c-elabora— eseguito solo seaz-prof = 'S': elabora le bolle servizi (tipob = 'S') gia' fatturate e raccordate con tipo immediato, aggiornando l'aliquota sulle righeCOGCONTR(con-iva).fine/z-chiudi— chiusura file e uscita.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGE67 | Aiuto/scelta aliquota IVA da tabella (richiamato su F8 nei campi aliquota) |
COGS52 (utils52.cpy) |
Gestore campo data con calendario (accept delle date via z-s52-*) |
COGS95 (utils95 tramite z-s95-*) |
Gestore controllo radio/check (flag "Forzo Aliq. Merce") |
I paragrafi st-…, rd-…, rwr-…, rdnxt-… sono le routine di I/O generate per le rispettive tabelle (gestori tabella generati, non linkati).
Note¶
- La scansione di
COGMOMAGavviene per chiave secondariachia2(data). Poiche' il magazzino e' "capotesta", se durante il loop si incontra una riga con data anteriore all'inizio periodo il programma riposiziona la start (b-start) sul magazzino corrente per ricominciare la lettura ordinata. - Le righe di bolle gia' fatturate o raccordate a fattura non vengono modificate: la fattura e' gia' emessa e non deve cambiare.
- In caso di riscrittura fallita (
w-verbo-invalidodoporwr) viene mostrato un box con la chiave del record non variato; il contatoretm-m-mconta solo le variazioni riuscite. - L'aggiornamento e' irreversibile e agisce direttamente sui movimenti/contratti: e' una utility da usare con cautela, tipicamente per correggere codifiche IVA errate a valle di variazioni normative.