Vai al contenuto

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-codiva di COGMERCI). 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

  1. 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.
  2. a-tm-ali-mr / a-tm-old-ali / a-tm-new-ali — accept dei parametri di aliquota; F8 richiama COGE67 per la scelta dell'aliquota da tabella. I campi vecchia/nuova aliquota sono abilitati solo se tm-ali-mr non e' 'S'.
  3. a-tm-da-data / a-tm-a-data — accept dell'intervallo date (gestite via COGS52, calendario su F8).
  4. 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.
  5. a-inizio-dati — su F3 di conferma avvia l'elaborazione.
  6. b-elabora — elaborazione bolle merci: st-cogmomag-notmin-chia2 sull'intervallo, loop b-10-loop con rdnxt-cogmomag-lk. Per ogni riga controlla periodo, aliquota da sostituire, esclusione bolle fatturate/resi via controlli-su-resi-raccordi, quindi riscrive mag-alf con rwr-cogmomag.
  7. controlli-su-resi-raccordi — imposta ri-flag-skip a 'S' se la riga va saltata: per i resi (tipob = 'R') risale via COGRACBB alla bolla d'uscita e ne verifica la data; verifica esistenza testata; se la bolla e' raccordata (COGRACCO) la esclude.
  8. c-elabora — eseguito solo se az-prof = 'S': elabora le bolle servizi (tipob = 'S') gia' fatturate e raccordate con tipo immediato, aggiornando l'aliquota sulle righe COGCONTR (con-iva).
  9. 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 COGMOMAG avviene per chiave secondaria chia2 (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-invalido dopo rwr) viene mostrato un box con la chiave del record non variato; il contatore tm-m-m conta 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.