Vai al contenuto

COGM23 — Raggruppamenti merci

Sorgente: cbl/cogm23.cbl | Tipo: Programma interattivo a griglia | Program-ID: COGM23

Menu: Magazzino > Archivi & Tabelle > Tabelle > Gruppi/raggruppamenti > Raggruppamenti merci


Scopo

Gestisce le tabelle di raggruppamento merci: consente di definire, per ogni tipo di raggruppamento, l'elenco dei singoli codici di raggruppamento con relativa descrizione ed eventuale tipologia cliente collegata. I raggruppamenti servono a classificare gli articoli in famiglie trasversali usate da statistiche, sincronizzazioni e altre elaborazioni.

I dati sono memorizzati nella tabella generalizzata COGTABEL (record euta) con tipo euta-tipo = 17. La descrizione del tipo raggruppamento è a sua volta un record COGTABEL tipo 17 con chiave a euta-cfg-key = spaces.


File e tabelle principali

File/Tabella Copybook Uso
COGTABEL cogtabel.cpy (via feurtab) Tabelle generalizzate; questo programma tratta i record con euta-tipo = 17
CRMTIPCL (via feurtab) Tipologie cliente CRM; usata per validare/descrivere euta-rm-tcl (campo tcl-cod/tcl-des)
COGAZIEN cogazien.cpy Dati azienda
Tabella di lavoro tab-maschera (tm-tab) (interna) Righe raggruppamento in memoria per la griglia (max k-max-ele-tab = 900)
util-crm010 (linkage call) utilcrm010.cpy Dialogo con CRM010 per la scelta della tipologia nominativo
util-ncnf utilncnf.cpy Lettura configurazione RNEWCONF raggr-merce-per-sincro

Struttura dei record COGTABEL (tipo 17)

  • euta-tipo = 17 (costante k-euta-tipo);
  • euta-cfg-arg (redefines euta-cod, primi 4 char) = tipo raggruppamento (tm-tip);
  • euta-cfg-key (successivi 6 char) = codice raggruppamento (tm-rag);
  • record con euta-cfg-key = spaces → riga di intestazione tipo, la cui euta-descr contiene la descrizione del tipo raggruppamento (tm-tip-des);
  • record con euta-cfg-key valorizzato → singolo raggruppamento, con euta-descr ridefinita da euta-raggruppamenti-merce: euta-rm-des (descrizione) + euta-rm-tcl (codice tipologia nominativo CRM).

Flusso di elaborazione

Configurazione iniziale (x99-confi)

All'avvio (e su richiamo con F1) il programma legge via RNEWCONF la chiave di configurazione clipot / raggr-merce-per-sincro in tm-cfg-raggr. Questo valore identifica il tipo raggruppamento speciale usato per la sincronizzazione: quando tm-tip = tm-cfg-raggr, il programma abilita il campo tipologia cliente (flag-ok-tipol = "S", controllo x-enabled-tm-tipol).

Selezione tipo e caricamento (a-tm-tipa-richiesta-confermaa10-loop)

  1. l'operatore seleziona il tipo raggruppamento (a-tm-tip, combo gestita da COGS60 via z-s60-tm-tip) e ne conferma/modifica la descrizione (a-tm-tip-des); la descrizione del tipo viene scritta come record COGTABEL con euta-cfg-key = spaces;
  2. alla conferma (F3) si esegue il caricamento: st-cogtabel-notmin posizionato su euta-tipo=17 + euta-cfg-arg=tm-tip, poi loop rdnxt-cogtabel;
  3. il loop si ferma quando cambia euta-tipo o euta-cfg-arg, salta i record con euta-cfg-key = spaces (l'intestazione tipo), e per ogni raggruppamento valorizza tm-righe (i): tm-rag = euta-cfg-key, tm-des = euta-rm-des, tm-tipol = euta-rm-tcl; se la tipologia è valorizzata legge CRMTIPCL (rd-crmtipcl) per la descrizione tm-desl.

Modalità e gestione griglia (a-grid / a-accept-grid)

Il programma alterna due modalità (a-modalita): (A)ggiornamento e (S)elezione — quest'ultima usata quando COGM23 è richiamato da un altro programma (w-dc-called = "S"). In aggiornamento sono attivi:

  • INVIO / doppio click → modifica riga (a-operazione = "M"), previo controllo w-abi-agg;
  • CTRL-A → inserimento (a-operazione = "I"), previo controllo w-abi-ins;
  • CTRL-E → cancellazione con conferma (c-cancelladel-cogtabel), previo controllo w-abi-del;
  • F3 → commuta modalità / conferma; SHIFT-F4 → personalizzazione griglia.

Dettaglio riga (a-riga-dettaglioa-riga-dettaglio-fine)

Accetta in sequenza: codice gruppo (a-tm-rag, non modificabile in variazione), descrizione (a-tm-des), tipologia cliente (a-tm-tipol, abilitata solo se tm-tip = tm-cfg-raggr). Sul campo tipologia il tasto F8 apre CRM010 per la scelta assistita.

In conferma:

  1. controlli x-imposta-conferma (x-controlla-tm-rag, x-controlla-tm-des, x-controlla-tm-tipol);
  2. aggiornamento griglia via GRIDADMN;
  3. rilettura del record (rd-cogtabel-lk) con eventuale commutazione inserimento/modifica;
  4. scrittura: wr-cogtabel (inserimento) o rwr-cogtabel (modifica), valorizzando euta-rm-des e euta-rm-tcl.

Chiamate a sottoprogrammi

CALL Scopo
GRIDADMN Gestione griglia (preparazione colonne, add/modify/svuota record)
COGS60 Combo di scelta del tipo raggruppamento (via util-s60 / z-s60-tm-tip)
CRM010 Scelta assistita della tipologia nominativo CRM (F8 sul campo tipologia); ritorna crm010-out-cod
RNEWCONF Lettura configurazione clipot / raggr-merce-per-sincro

Copy standard: mmmask.cpy, wgrid.cpy, utilgrid.cpy, utilgdad.cpy.


Note

  • Il tipo raggruppamento tm-cfg-raggr letto dalla configurazione è quello per cui è significativa la tipologia cliente (euta-rm-tcl); per gli altri tipi il campo è disabilitato e viene azzerato.
  • Il numero massimo di raggruppamenti caricabili in griglia è 900 (k-max-ele-tab); in z-costruisci-grid un tm-pnt maggiore viene troncato a tale soglia.
  • La descrizione del tipo raggruppamento è essa stessa un record COGTABEL (chiave con euta-cfg-key = spaces): modificarla aggiorna solo l'intestazione, non i singoli raggruppamenti.