Vai al contenuto

COGG48 - Gestione Sottocommesse

Panoramica

Programma interattivo per la gestione dell'anagrafica delle sottocommesse (tabella COGSOTCM). Consente l'inserimento, la modifica, la cancellazione e la selezione delle sottocommesse in una griglia paginata. Supporta due modalita': "Aggiornamento" (operazioni CRUD complete) e "Selezione" (scelta di una sottocommessa per una funzione chiamante). Puo' essere richiamato come "called" da altri programmi (via linkage utilcogg48.cpy), nel qual caso parte in modalita' selezione e puo' filtrare le sottocommesse collegate a una commessa specifica (COGRIGCM tipo "SC"). Supporta numerazione automatica o alfanumerica del codice sottocommessa in base alla configurazione RNEWCONF.

Posizioni nel menu

Menu Percorso
Vendite Commesse > Tabelle > Sottocommesse

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema
COGSOTCM I-O Anagrafica sottocommesse (tabella principale)
COGRIGCM Input Righe commessa (per filtro sottocommesse collegate, tipo "SC")

Copybook principali

Copybook Descrizione
cogg48.select SELECT dei file
cogg48.fd File Description
cogg48.wrk Working storage generata
cogg48.prc Procedure generate da Screens
cogg48-01.scr Screen section
wgrid.cpy Variabili gestione griglia
utilgdad.cpy Interfaccia GRIDADMN
utilncnf.cpy Configurazioni RNEWCONF
utilagprg.cpy Interfaccia AGPRGW (bitmap custom)
utilcogg48.cpy Interfaccia per richiamo come "called" (linkage)

Chiamate a sottoprogrammi (CALL)

Programma Scopo
GRIDADMN Gestione griglia avanzata (preparazione, riempimento, modifica, personalizzazione, export)
RNEWCONF Lettura configurazioni (tipo numerazione sottocommessa)

Logica di elaborazione

Flusso principale

  1. Inizializzazione (apri): apre file, carica lingua. Se richiamato come "called" (cogg48-called = k-program-id), imposta modalita' selezione ("S"), riceve codice sottocommessa e codice commessa dalla linkage. Altrimenti modalita' aggiornamento ("A"). Configura tasti funzione: Invio (seleziona/modifica), Ctrl+E (elimina), Ctrl+A (aggiungi), F3 (conferma/selezione), F7 (nuovo codice), F8 (aiuto), S-F4/S-F5 (griglia). Carica bitmap custom: "commesse" e "all64". Crea pulsanti F5 (Tutto) e F7 (Filtro commessa). Legge configurazione tip-num-sot per il tipo di numerazione.
  2. Preparazione griglia (a4): inizializza dati, costruisce griglia. Se called con commessa, cerca le sottocommesse collegate su COGRIGCM tipo "SC" per impostare il filtro. Attiva/disattiva i pulsanti F5/F7 in base alla presenza di sottocommesse collegate.
  3. Caricamento griglia (carica-tab): scorre COGSOTCM con spaginamento standard. In modalita' called, filtra per: flag chiamata (se specificato), flag stato (se specificato "A" o "C"), e sottocommesse collegate alla commessa (se filtro attivo, verifica su COGRIGCM tipo "SC" + codice commessa + codice sottocommessa).
  4. Navigazione griglia (a-grid): gestisce paginamento, S-F4/S-F5, e le azioni principali:
  5. Invio: in modalita' "A" apre il dettaglio per modifica; in modalita' "S" restituisce il codice/descrizione alla funzione chiamante e termina.
  6. Ctrl+A: aggiunge una nuova riga (con numerazione automatica F7 se tipo numerico).
  7. Ctrl+E: cancella la riga selezionata previa conferma.
  8. F3: alterna tra modalita' selezione e aggiornamento (solo in called).
  9. F5: mostra tutte le sottocommesse (disattiva filtro commessa).
  10. F7: filtra per sottocommesse collegate alla commessa.

Dettaglio riga (a-riga-dettaglio)

Quando si entra nel dettaglio (inserimento o modifica):

  1. Se in modifica ("M"): legge il record COGSOTCM con lock. Se non trovato, torna alla griglia.
  2. Se in inserimento ("I"): inizializza la riga.
  3. Accept dei campi: codice numerico (a-tm-r-cod-num) o alfanumerico (a-tm-r-cod), descrizione (a-tm-r-des), stato (a-tm-r-fl-stato).
  4. Alla conferma (a-fine-dettaglio): valida i campi, chiede conferma. Legge COGSOTCM con lock per verificare se il record esiste:
  5. Se esiste e operazione = "I": avvisa e converte in modifica
  6. Se non esiste e operazione = "M": avvisa e converte in inserimento
  7. Scrive/riscrive il record. In caso di inserimento, sincronizza il KPN (x-sincronizza-kpn).

Numerazione automatica (cerca-num-sot)

Quando la numerazione e' di tipo numerico (tm-cfg-tip-num-sot = "N") e l'utente preme F7 in inserimento: - Posiziona COGSOTCM sull'ultimo record (START NOT GREATER THAN 9999999999) - Legge il record precedente per ottenere l'ultimo numero usato - Incrementa di 1, verifica che non esista gia', e lo assegna al campo codice

Cancellazione (c-cancella)

Cancellazione del record COGSOTCM dopo conferma utente. Verifica esistenza tramite c1-ctrl-canc.

Configurazioni RNEWCONF

Gruppo Chiave Descrizione
commesse tip-num-sot Tipo numerazione sottocommessa: "N" = numerico, altro = alfanumerico

Note tecniche

  • Il programma usa lo spaginamento diretto su COGSOTCM (non crea un file di transito).
  • La griglia supporta fino a 900 elementi (k-max-ele-tab).
  • In modalita' called con commessa, il filtro per sottocommesse collegate usa COGRIGCM con chiave: rgc-tsc = commessa, rgc-sot = codice_sottocommessa, rgc-tip = "SC".
  • I pulsanti F5 (Tutto) e F7 (Filtro commessa) sono mutuamente esclusivi: quando uno e' attivo, l'altro e' disattivato.
  • Il campo sot-fl-stato gestisce lo stato: "A" = Attivo, "C" = Chiuso.
  • Il campo sot-fl-chiamata indica se la sottocommessa e' utilizzata da una commessa: "S" = Si', "N" = No.
  • Dimensione sorgente: circa 57K, circa 1.250 righe.