Vai al contenuto

COGG15 - Gestione raccordo Cantieri/Commesse

Sorgente: cbl/cogg15.cbl | Tipo: Programma interattivo GUI con griglia e dettaglio riga | Program-ID: COGG15

Menu:

  • Magazzino > Archivi & Tabelle > Cantieri > Collegamento Commesse
  • Vendite > Commesse > Tabelle > Colleg. Cantieri/Commessa

Scopo

Gestisce il raccordo (collegamento molti-a-molti) tra commesse (COGTESCM) e cantieri / magazzini secondari (COGMAGPE) memorizzato nella tabella di raccordo COGCMMGP. L'operatore sceglie una modalita' di lavoro:

  • C = per Commessa: fissata una commessa, elenca e modifica i cantieri ad essa collegati;
  • (modalita' speculare) per Cantiere: fissato un cantiere, elenca e modifica le commesse ad esso collegate.

I collegamenti selezionati vengono caricati in una griglia editabile riga per riga (inserimento, modifica, cancellazione); alla conferma il programma riallinea COGCMMGP scrivendo i nuovi raccordi e cancellando quelli non piu' presenti in griglia.

Il programma puo' essere richiamato da un altro modulo (g15-called = "COGG15-CALLED"): in tal caso mostra i dati con cui e' stato invocato e, se g15-tipo-vis = "S", funziona in modalita' selezione (l'operatore sceglie una riga con Invio e il codice viene restituito al chiamante in g15-mgp-cod o g15-tsc-cod).

Il tipo magazzino secondario e' fissato a "C" (fl-mgp-tip = "C", cantieri).


Struttura del programma

Flusso principale

  1. Inizializzazione (apri): apertura file, z-99-init-program, lettura azienda, abilitazione tasti funzione, preparazione griglia (z-prepara-tm-grid), costruzione controlli, lettura configurazione RNEWCONF (x99-confi).
  2. Reset / sezione parametri (a4): inizializza tab-maschera, imposta tipo "C"; se richiamato con COGG15-CALLED porta subito i dati e salta a a-inizio-dati.
  3. Accept filtri (a-tm-tipo, a-tm-tsc-cod, a-tm-mgp-cod): tipo ricerca, commessa (via COGU35W), cantiere (via COGS66W). Navigazione F2 / F3 / mouse (x-test-mouse).
  4. Conferma (a-conferma-dati, x-imposta-conferma): validazione dei campi.
  5. Caricamento (a-inizio-dati): in base a tm-tipo esegue carica-cantieri o carica-commesse scandendo COGCMMGP.
  6. Griglia (a-grid / a-accept-grid): visualizza e permette inserimento (Ctrl-A), modifica (Invio), cancellazione (Ctrl-E) delle righe; Shift-F4 personalizza colonne.
  7. Aggiornamento (aggiorna): alla conferma F3 scrive/riscrive i raccordi e rimuove i non piu' presenti.

Caricamento collegamenti

  • carica-cantieri: scandisce COGCMMGP per chiave primaria (cmm-tsc = commessa, cmm-mgp-tip = "C"); per ogni cantiere collegato risolve la descrizione da COGMAGPE.
  • carica-commesse: scandisce COGCMMGP per chiave secondaria (.k02, cmm-mgp-tip + cmm-mgp-cod); per ogni commessa collegata risolve la descrizione da COGTESCM.

Entrambi i loop hanno un limite di k-max-ele-tab = 500 elementi (messaggio "Tabella piena" al superamento).

Aggiornamento (aggiorna-cant / aggiorna-comm)

  • Scrittura: per ogni riga non vuota della griglia esegue wr-cogcmmgp e, se il record esiste gia', rwr-cogcmmgp.
  • Cancellazione (aggiorna-cant-del / aggiorna-comm-del): riscandisce COGCMMGP per la commessa/cantiere corrente; ogni raccordo non piu' presente in griglia viene eliminato con del-cogcmmgp.

Modalita' selezione (richiamo da altro programma)

In a-accept-grid, se g15-called = "COGG15-CALLED" e g15-tipo-vis = "S", l'Invio su una riga copia tm-cod (i) in g15-mgp-cod (tipo "C") o g15-tsc-cod (altri tipi) e torna al chiamante (fine).


Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema
COGCMMGP primaria cmm-tsc+cmm-mgp-tip+cmm-mgp-cod; secondaria .k02 Raccordo commesse - cantieri/magazzini secondari (tabella centrale del programma)
COGTESCM tsc-cod Testata commesse (descrizione breve tsc-des-breve)
COGMAGPE mgp-tip+mgp-cod Magazzini secondari / cantieri (descrizione mgp-nome)

COPY incluse

Working-Storage

cogg15.wrk, wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilncnf.cpy, utilu35w.cpy, utils66.cpy, utilgdad.cpy, utilw52.cpy

Linkage

wcont.cpy, utilg15.cpy (parametri di chiamata: g15-called, g15-tipo-vis, g15-tsc-cod, g15-mgp-cod), wcont1.cpy

Procedure Division

cogg15.decla, cogg15-01.scr (screen), stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, cogcmmgp.k02, call-u35.cpy, utilgrid.cpy, cogg15.prc


CALL a sottoprogrammi

Programma Scopo
COGU35W Accept/lookup del codice commessa (call-u35-prepare-tutte, call-u35-accept, call-u35-cancel)
COGS66W Accept/lookup del codice cantiere / magazzino secondario
GRIDADMN Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record, personalizzazione colonne)
RNEWCONF Lettura configurazioni

Configurazioni RNEWCONF

Lette in x99-confi (pacchetto "C", file COMMESSE.CNF, 2 chiavi):

Chiave Variabile Descrizione
TIPO-NUMERAZIONE-COMMESSE tm-cfg-tip-num-tsc Tipo numerazione commesse
TIPO-NUMERAZIONE-SOTTOCOMMESSE tm-cfg-tip-num-sot Tipo numerazione sottocommesse

(Il vecchio ramo con READCONF e' commentato nel sorgente e sostituito da RNEWCONF.)


Note tecniche

  • La griglia usa GRIDADMN con gdad-forza-custom = "F" e personalizzazione per programma (w-prg-pers = k-program-id).
  • Il tipo magazzino secondario e' fisso su "C" (cantieri): fl-mgp-tip non viene mai cambiato nel flusso.
  • I controlli anti-duplicato (x-controlla-tm-cod, x-controlla-tm-cod-5) impediscono di inserire due volte la stessa commessa o lo stesso cantiere nella griglia.
  • L'aggiornamento e' idempotente: prima scrive/riscrive tutte le righe presenti, poi elimina da COGCMMGP i raccordi non piu' in griglia (delta effettivo tra stato a video e archivio).