Vai al contenuto

COGM34 - Modifica Simultanea

Scopo

Consente operazioni di massa sulle distinte base: inserimento, cancellazione o sostituzione di un componente su piu' distinte contemporaneamente. Supporta sia la selezione manuale delle distinte (tramite COGU05) sia la ricerca per range di codici con diversi criteri di ordinamento.

Struttura

Programma standalone con maschera GUI (mmmask.cpy). Flusso principale:

  1. Parametri: accept di operazione (I/C/S), quantita', componente/i, modalita' ricerca (S/G), range distinte
  2. Conferma: validazione completa, richiesta conferma con avviso per tipo C
  3. Elaborazione: scansione distinte e applicazione dell'operazione su ciascuna (b-elabora / b1-ela-dis)
  4. Riepilogo: conteggio distinte lette vs modificate

Tabelle/File utilizzati

Tabella Accesso Descrizione
COGMERCI Lettura Anagrafica merci - validazione componenti e distinte
COGDBASE Lettura/Scrittura Distinta base - inserimento, cancellazione, modifica componenti
COGRACMC Lettura Raccordo merci per classificazione avanzata (ordinamento per codice avanzato)
COGDBAGG Lettura/Scrittura Componenti aggiuntivi distinta - aggiornamento sostitutivi
COGMAGAZ Lettura/Scrittura Magazzino - aggiornamento movimenti di carico/scarico
COGCLAVA Lettura/Scrittura Classificazioni avanzate
FEURTAB Configurazione Tabella configurazioni standard

Logica di elaborazione

Operazioni disponibili

  • I (Inserisco): aggiunge tm-cmp con tm-qta alla distinta, solo se il componente non esiste gia'
  • C (Cancello): rimuove tm-da-cmp dalla distinta, solo se esiste
  • S (Sostituisco): sostituisce tm-da-cmp con tm-a-cmp; il sostitutivo non deve gia' esistere; se tm-qta = 0 la quantita' resta invariata

Modalita' di ricerca distinte

  • S (Singola): usa la selezione multipla di COGU05 (fino a 200 distinte, array u05-merce)
  • G (Gruppo): scansione sequenziale di COGMERCI nel range tm-da-merce / tm-a-merce, con ordinamento:
  • C: per codice merce (mer-chia)
  • D: per descrizione (mer-chia1)
  • A: per codice avanzato (via COGRACMC)

Elaborazione singola distinta (b1-ela-dis)

  1. Incrementa contatore distinte lette (tm-d-l)
  2. Per sostituzione (S): verifica che il componente sostitutivo (tm-a-cmp) non esista gia' nella distinta
  3. Cerca il componente da operare (tm-da-cmp) nella distinta (b2-src-cmp)
  4. In base all'operazione:
  5. I: se componente non trovato, lo inserisce con wr-cogdbase, gestisce COGDBAGG e movimenti magazzino
  6. C: se componente trovato, lo cancella con del-cogdbase, aggiorna COGDBAGG e magazzino
  7. S: se componente trovato e sostitutivo non presente, riscrive il record con il nuovo codice e la nuova quantita'

Ricerca componente in distinta (b2-src-cmp)

Scansione sequenziale di COGDBASE per la distinta corrente (w-gru/w-sot/w-cod), cerca b2-cmp tra i componenti (dba-merce-f). Restituisce b2-trovato (S/N) e b2-ultimo-prog (ultimo progressivo nella distinta).

Chiamate a sottoprogrammi

Programma Scopo
COGU05 Selezione multipla distinte (modalita' ricerca Singola)
COGU16W Gestione ordinamento e range merci
COGS60W2 Gestione combo-box con valori predefiniti
COGS68W Gestione campo merce con ricerca avanzata
COGL61 Recupero prezzi

COPY utilizzate

File/Select

  • feurtab.fd, cogm34.select, cogm34.fd

Working storage

  • cogm34.wrk, k-personal.cpy, k-u10.cpy
  • wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy
  • utilu05.cpy, utilu10.cpy, utilu12.cpy, utilu16.cpy, utilu20.cpy
  • utils25.cpy, utils68.cpy, utils60w2.cpy, utilcogl61.cpy, utils52.cpy
  • cogazien.cpy, utilncnf.cpy

Linkage

  • wcont.cpy, wcont1.cpy

Screen

  • cogm34-01.scr

Procedure

  • cogm34.prc, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy

Note

  • La conferma mostra un avviso specifico: la sostituzione su distinte con opzioni (tipo 'C') non ha effetti retroattivi su ordini o lavorazioni in corso.
  • Il contatore finale mostra distinte lette (tm-d-l) e distinte effettivamente modificate (tm-d-m).
  • Per la ricerca Singola (S), le distinte vanno selezionate con F5 prima della conferma; il programma valida che almeno una distinta sia selezionata.
  • Supporta tipi distinta P, D, C, O; altri tipi vengono scartati.