COGM01 - Modifica Contropartite su Bolle¶
Sorgente: cbl/cogm01.cbl | Tipo: Programma batch interattivo | Program-ID: COGM01
Menu:
- Magazzino > Archivi & Tabelle > Varie > Modifica Controp. su Bolle
Scopo¶
Variazione massiva della contropartita contabile sulle righe dei movimenti di magazzino (COGMOMAG) e, per le aziende con profili attivi, anche sulle righe delle bolle servizi (COGCONTR). Opera in due modalita':
- Sostituzione puntuale: sostituisce tutte le occorrenze di una specifica contropartita con un'altra
- Forzatura da anagrafica merce: per ogni riga, sostituisce la contropartita con quella indicata nell'anagrafica della merce associata
Interfaccia utente¶
Maschera (tab-maschera)¶
| Campo | Tipo | Descrizione |
|---|---|---|
| tm-contr-mr | X(01) | Flag forza contropartita da merce: S/N |
| tm-old-contr | 9(03) | Vecchia contropartita (non usata se tm-contr-mr = "S") |
| tm-new-contr | 9(03) | Nuova contropartita (non usata se tm-contr-mr = "S") |
| tm-da-data | 9(08) | Data inizio periodo (AAAAMMGG) |
| tm-a-data | 9(08) | Data fine periodo (AAAAMMGG) |
| tm-m-l | 9(06) COMP-4 | Contatore righe lette |
| tm-m-c | 9(06) COMP-4 | Contatore righe candidabili |
| tm-m-m | 9(06) COMP-4 | Contatore righe modificate |
| tm-pco-old / tm-pco-new | 02+02+06 | Piano dei conti vecchio/nuovo (mastro, conto, sottoconto) |
| tm-pco-old-des / tm-pco-new-des | X(40) | Descrizione del conto |
Ordine di accept dei campi¶
Forza contropartita merce > Vecchia contropartita > Nuova contropartita > Data inizio > Data fine > Conferma
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| ESC | Esce |
| F2 | Torna al campo precedente |
| F3 | Conferma e avvia l'elaborazione |
| F8 | Aiuto contropartita (chiama COGV04) / Calendario (su date) |
File e tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella parametri generali |
| COGMOMAG | cogm01.fd, k02 | Movimenti di magazzino (tabella principale di aggiornamento) |
| COGTESBO | cogm01.fd, k02 | Testata bolle (per verifica raccordi e fatturazione) |
| COGRACCO | cogm01.fd, k02 | Raccordi bolle (per verifica fatturazione) |
| COGRACBB | cogm01.fd | Raccordi bolle-bolle (per i resi: tipo "RV") |
| COGCONTR | cogm01.fd | Righe bolle servizi (aggiornamento per aziende con profili) |
| COGTABEL | cogm01.fd | Tabelle generiche (tipo 16: contropartite) |
| COGMERCI | cogm01.fd | Anagrafica merci (per leggere mer-codcontr) |
| COGPNCON | cogm01.fd | Piano dei conti (per descrizione conto) |
Chiavi di accesso¶
| Tabella | Chiave | Composizione | Uso |
|---|---|---|---|
| COGMOMAG | k02 (chia2) | Data + altri campi | Scansione per data |
| COGTESBO | k02 (chia2) | Data + chiave | Scansione bolle servizi per data |
| COGRACCO | k02 (chia2) | Mag + anno + tipo + bolla | Verifica fatturazione |
| COGRACBB | primaria | Tipo + bolla A | Ricerca raccordo reso-vendita |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGV04 | Ricerca contropartita (F8 su campi vecchia/nuova contropartita) |
| COGS52W | Gestione date con calendario |
Copybook principali¶
cogm01.select,cogm01.fd,cogm01.wrk,cogm01.prc,cogm01.decla,cogm01-01.scr-- Screenscogazien.cpy-- Dati azienda (az-profper profili,az-tipo-imm)utils52.cpy-- Date (COGS52W)utilv04.cpy-- Interfaccia COGV04utils67.cpy-- Utilitycogtesbo.k02,cogracco.k02,cogmomag.k02-- Chiavi secondarie
Logica di elaborazione¶
Elaborazione movimenti merci (b-elabora)¶
- Posizionamento: START su COGMOMAG chiave k02 (chia2) partendo dalla data inizio
- Ciclo: RDNXT su COGMOMAG con lock
- Filtri di esclusione per ogni riga letta:
- Data precedente alla data inizio: riposiziona (START) alla data inizio
- Data successiva alla data fine: passa alla riga successiva
- Contropartita (mag-coge) = 0: skip
- Contropartita > 499: skip
- Se forza da merce (tm-contr-mr = "S"): legge COGMERCI per la merce della riga. Se la merce non esiste o la contropartita gia' coincide con
mer-codcontr: skip - Se sostituzione puntuale: se
mag-cogediverso datm-old-contr: skip - Controllo bolla: se il mag/anno/tipo/bolla e' diverso dal precedente (usando
ricordante): controlli-su-resi-raccordi:- Se la bolla e' un reso (tipo "R"): cerca il raccordo tipo "RV" in COGRACBB; se la bolla originale e' fuori periodo, skip della bolla
- Legge la testata bolla da COGTESBO; se non esiste, skip
- Cerca un raccordo in COGRACCO: se esiste (bolla gia' fatturata), skip della bolla
- Aggiornamento: se forza da merce, imposta
mag-coge = mer-codcontr; altrimentimag-coge = tm-new-contr. Esegue REWRITE su COGMOMAG
Elaborazione bolle servizi (c-elabora)¶
Eseguita solo se az-prof = "S" (profili attivi):
- Posizionamento: START su COGTESBO chiave k02 (chia2) partendo dalla data inizio
- Ciclo: RDNXT su COGTESBO. Filtri:
- Data > data fine: termina
- Tipo bolla diverso da "S": skip (solo bolle servizi)
- Flag fatturazione
tes-flagfatdiverso da "*": skip (solo bolle fatturate) - Verifica raccordo in COGRACCO tipo
az-tipo-imm: se non trovato, skip - Lettura righe: per la bolla selezionata, scorre COGCONTR (righe della bolla servizi) con stessi filtri della fase b-elabora (contropartita 0 o > 499, confronto con vecchia contropartita o anagrafica merce)
- Aggiornamento: REWRITE su COGCONTR
Contatori di avanzamento¶
tm-m-l: righe lette (incrementato ad ogni riga esaminata)tm-m-c: righe candidabili (incrementato quando la riga supera tutti i filtri)tm-m-m: righe effettivamente modificate (incrementato dopo REWRITE riuscito)
I contatori vengono mostrati nella maschera durante l'elaborazione.
Struttura ricordante¶
La variabile ricordante (ri-mag, ri-anno, ri-tipob, ri-bolla, ri-flag-skip) memorizza l'ultima bolla esaminata per evitare di ripetere i controlli su raccordi e fatturazione per ogni riga della stessa bolla.
Note¶
- Il programma usa
PERFORM ... THRUper le sezioni di elaborazione (b-elabora thru ex-b,c-elabora thru ex-c). - La validazione delle contropartite avviene leggendo COGTABEL tipo 16.
- Il piano dei conti associato viene letto da COGPNCON per la visualizzazione nella maschera (
cerca-tm-pco-old-des,cerca-tm-pco-new-des). - Quando si seleziona "Forzo contropartita merce" = "S", i campi vecchia/nuova contropartita vengono azzerati e nascosti (
x-after-tm-contr-mr).
Documentazione tecnica -- 2026-04-06