Vai al contenuto

GRP002 - Anagrafica aziende del gruppo

Sorgente: cbl/grp002.cbl | Tipo: Programma interattivo GUI con griglia editabile (anche richiamabile via CALL come help/selezione) | Program-ID: GRP002

Menu:

  • Sistema > Configurazione > Gruppi di aziende > Aziende
  • Clinica > Archivi > Pannello di controllo

Scopo

E' il pannello di controllo delle aziende del gruppo: gestisce l'anagrafica GRPAZIEN (le singole aziende/ambienti che compongono il gruppo) e i dati locali collegati (GRPAZGRP, tabella codice merce avanzato COGTABEL tipo 62). Per ogni azienda si definiscono codice, descrizione, tipo azienda (da GRPAZTIP), percorsi di export/import, stato, flag import, path base/univoco e, se attiva la gestione gruppo aziende, il magazzino sede e i riferimenti cliente/fornitore locali.

L'interfaccia e' una griglia editabile (pattern tm-tab / GRIDADMN): l'operatore inserisce/modifica/elimina le righe e alla conferma (F3) le variazioni sono riversate sulle tabelle confrontando codice attuale e codice precedente di ciascuna riga.

Modalita' di funzionamento:

  • Standalone da menu: parte in "Aggiornamento", F3 salva e chiude.
  • Chiamato come help/selezione (grp002-called = k-program-id): parte in "Selezione", riceve in grp002-in-cod un codice azienda che filtra le righe visualizzate secondo il tipo del record indicato (holding, clinica, laboratorio, pdlab), e restituisce codice/descrizione selezionati in grp002-out-cod / grp002-out-des.

Tasti aggiuntivi rispetto a GRP001/GRP004: F1 riapre la configurazione (RNEWCONF) e la rilegge, Shift-F7 apre i contatti dell'azienda selezionata (GRP003).


Struttura del programma

Flusso principale

  1. Inizializzazione (apri): ctr-abil, z-99-init-program, open-files, rd-azi; determina w-dc-called e memorizza grp002-in-cod in w-dc-in-cod. Abilita i tasti (Invio, F1 configura, F3, F8 aiuto, Shift-F4 griglia, Ctrl-A/Ctrl-E, Shift-F7 contatti). Legge le configurazioni (x99-src-cfg), imposta il titolo "Pannello di Controllo", prepara la griglia.
  2. Filtro per chiamata (a4): se chiamato (w-dc-called = "S") legge il record azienda di w-dc-in-cod, ne ricava il tipo (flag-tipo-in-cod) e, per il tipo pdlab, il codice laboratorio associato (scansione GRPLABOD per chiave ao-lab-chia5).
  3. Caricamento griglia (a10-loop): scandisce GRPAZIEN (st-grpazien-notmin + rdnxt-grpazien), fino a k-max-ele-tab = 600 righe. Applica il filtro:
  4. tipo laboratorio: mostra solo l'azienda w-dc-in-cod;
  5. tipo pdlab: mostra w-dc-in-cod e le aziende con laboratorio (GRPLABOD) il cui padre coincide con il laboratorio di w-dc-in-cod (ao-lab-padre = w-ao-lab-cod). Per ogni riga carica: codice, descrizione, tipo azienda + descrizione tipo (da GRPAZTIP), path export/import, stato, flag import, path base/univoco (in minuscolo). Se attiva la gestione gruppo aziende, integra da GRPAZGRP i riferimenti cliente/fornitore (con nome da COGGEANA) e da GRPAZIEN il magazzino sede (nome da COGMAGAZ).
  6. Gestione griglia (a-grid / a-accept-grid): accept sulla griglia, gestione Esc, emulazione Invio, F1 (riconfigura), Shift-F4, Shift-F7 (contatti), F3, Invio, Ctrl-A, Ctrl-E.
  7. Conferma / salvataggio (a1-aggiorna -> b-aggiorna): valida e riversa le variazioni.
  8. Chiusura (fine / z-chiudi): z-close-files, cancel "COGS65W", chiusura finestra, uscita.

Salvataggio (b-aggiorna)

Come nella famiglia GRP0xx, per ogni riga confronta tm-cod e tm-cod-prec: cancella (b3-cancella), modifica (b2-modifica), inserisce (b1-inserisci) oppure cancella+inserisci se il codice e' cambiato.

b1-inserisci / b2-modifica aggiornano il record GRPAZIEN (descrizione, tipo, path, stato, flag import, path base/univoco). Se gestione-gruppo-aziende = "S" sincronizzano anche il record locale GRPAZGRP (crea se assente; scrive azg-rif-cliente / azg-rif-fornitore), il magazzino sede e chiamano a-sincronizza-aziende-gruppo. Dopo la scrittura eseguono x-sincronizza-kpn (esporta la chiave azienda verso KPN via SWN121) e b-aggiorna-tma (allineamento tabella codice merce avanzato COGTABEL tipo 62, se configurata la sigla in TAB-CMA-AZIENDE-GRUPPO).

b3-cancella cancella GRPAZIEN, sincronizza KPN, e se attiva la gestione gruppo aziende cancella anche GRPAZGRP e la voce COGTABEL collegata (b-cancella-tma).

Controlli di cella

  • x-controlla-tm-tipo: tipo azienda obbligatorio e verificato su GRPAZTIP (carica la descrizione tipo).
  • x-controlla-tm-path-exp / x-controlla-tm-path-imp: percorsi export/import obbligatori.
  • x-controlla-tm-mag: codice magazzino verificato su COGMAGAZ (solo se gestione gruppo aziende attiva).
  • x-controlla-tm-cli-cod / x-controlla-tm-for-cod: cliente/fornitore verificati su COGGEANA (solo se gestione gruppo aziende attiva).
  • I paragrafi z-tm-tab-*-be-ep per le colonne mag/cli/for disabilitano l'ingresso in cella (w-cell-accept-ok = "N") quando la gestione gruppo aziende non e' attiva.

Help di cella (z-usa-tf-tm-tab-ep)

  • colonna tipo (F8): apre GRP001 come selezione e riporta il tipo scelto;
  • colonna magazzino (F8, solo con gestione gruppo aziende): apre l'help magazzino (send-w36) e riporta il codice scelto.

Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema (COGTABEL per il codice merce avanzato, tipo 62)
GRPAZIEN primaria ao-azi-chia1 (ao-azi-cod, 4 car.); scansione st-grpazien-notmin + rdnxt-grpazien Anagrafica aziende del gruppo (tipo, path export/import, stato, flag import, path base/univoco, magazzino sede)
GRPAZTIP ao-azt-chia1 (ao-azt-cod) Tipologie di azienda (descrizione tipo per la griglia; verifica in x-controlla-tm-tipo)
GRPAZGRP (COGAZGRP) azg-chia1 (azg-cod) Dati locali azienda del gruppo (riferimenti cliente azg-rif-cliente / fornitore azg-rif-fornitore)
GRPLABOD chiave .k05 ao-lab-chia5 (ao-lab-az-cod) Aziende/laboratori odontotecnici (filtro pdlab: ao-lab-padre)
COGGEANA ana-tipo+ana-cod Anagrafica generale (nome cliente/fornitore)
COGMAGAZ magz-tipo+magz-cod Anagrafica magazzini (nome sede)
COGTABEL (via FEURTAB) euta-tipo (62) + euta-ptc-tip + euta-ptc-cod Codice merce avanzato: descrizione azienda allineata (b-aggiorna-tma / b-cancella-tma)

COPY incluse

Working-Storage

grp002.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilagprg.cpy, wgrid.cpy, utilgdad.cpy, utilu20.cpy, utilncnf.cpy, utilgrp001.cpy, utilgrp003.cpy, utils65.cpy, utilw36.cpy

Linkage

wcont.cpy, wcont1.cpy, utilgrp002.cpy (parametri grp002-caller, grp002-called, grp002-in-cod, grp002-out-cod, grp002-out-des)

Procedure Division

grp002.decla, grp002-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, grplabod.k05 (chiave secondaria aggiunta manualmente), winmsg.cpy, sendw36.cpy, grp002.prc

Le routine di I/O di GRPAZIEN, GRPAZTIP, COGAZGRP, COGGEANA, COGMAGAZ, COGTABEL (dai file dichiarati nel .select generato da Screens) sono incluse via grp002.prc; la chiave secondaria grplabod.k05 e' aggiunta esplicitamente perche' Screens genera solo la chiave primaria.


CALL a sottoprogrammi

Programma Scopo
GRIDADMN Gestione della griglia editabile e-tm-tab (operazione "Prepara" e chiamata interattiva su Shift-F4)
RNEWCONF Lettura delle chiavi di configurazione (paragrafo x99-src-cfg, richiamabile anche da F1)
GRP001 Help/selezione del tipo azienda (F8 sulla colonna tipo)
GRP003 Gestione contatti dell'azienda selezionata (Shift-F7)
SWN121 Sincronizzazione con KPN: esporta la chiave azienda (ESPORTA-KEY) in x-sincronizza-kpn
COGS65W Help anagrafica cliente/fornitore per le colonne cli/for (parametrizzato da z-s65-tm-cli-ep / z-s65-tm-for-ep; cancel in chiusura)
Y* Gestori tabella generati per GRPAZIEN, GRPAZTIP, COGAZGRP, GRPLABOD, COGGEANA, COGMAGAZ, COGTABEL (routine incluse via grp002.prc)

Configurazioni RNEWCONF

Lette nel paragrafo x99-src-cfg (pacchetto C):

Gruppo Chiave Uso
AZIENDA GESTIONE-BRAND-MARCHIO Flag gestione brand/marchio (tm-cfg-gestione-brand)
SISTMERAVA TAB-CMA-AZIENDE-GRUPPO Sigla tabella codice merce avanzato su cui allineare la descrizione azienda (COGTABEL tipo 62); se vuota l'allineamento e' disattivato
assist gestione-gruppo-aziende Abilita i dati locali gruppo (magazzino sede, cliente/fornitore, GRPAZGRP) sia in griglia sia in salvataggio (tm-cfg-gestione-gruppo-aziende)
ABILITA GRUPPO-AZIENDE Se "S" attiva la sincronizzazione aziende del gruppo (a-sincronizza-aziende-gruppo / a-cancella-aziende-gruppo, tm-cfg-gruppo-aziende)

Riferimenti: azienda, sistmerava, assist, abilita.


Note tecniche

  • Griglia con diffing codice/codice-precedente: come tutta la famiglia GRP0xx, la persistenza (b-aggiorna) confronta tm-cod e tm-cod-prec per decidere insert/update/delete/rinomina.
  • Nuova riga precompilata: all'aggiunta (Ctrl-A) la riga nasce con stato "P" (attiva/produzione) e flag import "S".
  • Path base/univoco in minuscolo: ao-azi-path-base e ao-azi-path-univoco sono forzati in minuscolo (function lower-case) sia in caricamento sia in scrittura.
  • Sincronizzazione KPN: ogni scrittura/cancellazione di azienda esporta la chiave verso KPN tramite SWN121 (x-sincronizza-kpn), con on overflow continue per non bloccare in assenza del modulo.
  • Dipendenza dalla configurazione gruppo aziende: i paragrafi di sincronizzazione (a-sincronizza-aziende-gruppo, a-cancella-aziende-gruppo) attualmente si limitano a unlock all; le colonne magazzino/cliente/fornitore e la scrittura di GRPAZGRP sono attive solo con gestione-gruppo-aziende = "S".
  • Filtro pdlab/laboratorio: quando il programma e' chiamato con un'azienda di tipo laboratorio o pdlab, la griglia mostra un sottoinsieme delle aziende ricavato da GRPLABOD (ao-lab-padre); usato per navigare le aziende figlie di un laboratorio.
  • Limite griglia: massimo 600 aziende in memoria (k-max-ele-tab).
  • Per la collocazione di GRP002 nel contesto import/export del gruppo vedi Gruppi di aziende - Panoramica.