Vai al contenuto

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':

  1. Sostituzione puntuale: sostituisce tutte le occorrenze di una specifica contropartita con un'altra
  2. 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 -- Screens
  • cogazien.cpy -- Dati azienda (az-prof per profili, az-tipo-imm)
  • utils52.cpy -- Date (COGS52W)
  • utilv04.cpy -- Interfaccia COGV04
  • utils67.cpy -- Utility
  • cogtesbo.k02, cogracco.k02, cogmomag.k02 -- Chiavi secondarie

Logica di elaborazione

Elaborazione movimenti merci (b-elabora)

  1. Posizionamento: START su COGMOMAG chiave k02 (chia2) partendo dalla data inizio
  2. Ciclo: RDNXT su COGMOMAG con lock
  3. Filtri di esclusione per ogni riga letta:
  4. Data precedente alla data inizio: riposiziona (START) alla data inizio
  5. Data successiva alla data fine: passa alla riga successiva
  6. Contropartita (mag-coge) = 0: skip
  7. Contropartita > 499: skip
  8. 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
  9. Se sostituzione puntuale: se mag-coge diverso da tm-old-contr: skip
  10. Controllo bolla: se il mag/anno/tipo/bolla e' diverso dal precedente (usando ricordante):
  11. 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
  12. Aggiornamento: se forza da merce, imposta mag-coge = mer-codcontr; altrimenti mag-coge = tm-new-contr. Esegue REWRITE su COGMOMAG

Elaborazione bolle servizi (c-elabora)

Eseguita solo se az-prof = "S" (profili attivi):

  1. Posizionamento: START su COGTESBO chiave k02 (chia2) partendo dalla data inizio
  2. Ciclo: RDNXT su COGTESBO. Filtri:
  3. Data > data fine: termina
  4. Tipo bolla diverso da "S": skip (solo bolle servizi)
  5. Flag fatturazione tes-flagfat diverso da "*": skip (solo bolle fatturate)
  6. Verifica raccordo in COGRACCO tipo az-tipo-imm: se non trovato, skip
  7. 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)
  8. 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 ... THRU per 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