Vai al contenuto

COGG37 - Classi di movimentazione RMA (Gestione classi di movimento)

Panoramica

Programma GUI a testata + griglia di dettaglio per la manutenzione delle classi di movimentazione usate nel flusso RMA (resi/riparazioni). Ogni classe (COGCLASM) e' identificata da un codice di tipo "classe movimento" e definisce, oltre ad attributi generali (gestione quantita' in entrata/processate/uscita, cambio merce, cambio serial number, evasione, tipo classe, fase), un elenco di righe di movimentazione: per ciascuna riga tipo documento, causale, magazzino, comportamento sulla merce (nuova/usata/entrata/uscita), forzatura del serial number del padre e sottoclasse. Il programma consente inserimento, modifica e cancellazione delle classi e delle relative righe. Puo' essere richiamato come finestra di aiuto/selezione (WIN192) da altri programmi.

Posizione nel menu

Menu Percorso
Magazzino Archivi & Tabelle > Tabelle > RMA > Classi di Movimentazione

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema (nomi file)
COGCLASM I-O Archivio classi di movimento: testata (clm-chia1 = tipo + codice), attributi generali (clm-fl-rmd-*, clm-fl-cambio-merce/sn, clm-fl-evasione, clm-tipo-classe, clm-fase), dati di inserimento/aggiornamento e tabella righe clm-tab (clm-tip-doc, clm-cau, clm-mag, clm-fl-merce, clm-clm, clm-fl-stesso-sn)
COGTABEL Input Tabella generica: fasi (tipo 27), causali di magazzino (tipo 15). Legge descrizioni e attributi causale (euta-cb-*) per validare tipo entrata/uscita e cliente/fornitore
COGMAGAZ Input Anagrafica magazzini (validazione codice e descrizione)

Copybook principali

Copybook Descrizione
cogg37.select / cogg37.fd / cogg37.wrk / cogg37.decla / cogg37.prc SELECT, FD, working storage, declaratives e procedure di I/O (generati da Screens)
cogg37-01.scr / cogg37.tm Screen section (testata + griglia e-tm-tab + frame dettaglio) e area dati modificabili
k-rma.cpy Costanti del dominio RMA (tipo classe movimento k-clm-tip, tipo classe auto, ecc.)
linkg37.cpy / utilg37.cpy Record di linkage per la chiamata come programma richiamato (parametri lnk-g37-fun, wlk-g37-key, ...); incluso sia in working (con replacing) sia in linkage
utilg39.cpy / utils89.cpy / utilw36.cpy / utilw01.cpy Aree di comunicazione con COGG39 (fasi), COGS89W (sottoclassi), aiuto magazzino, aiuto causale
utilgdad.cpy / wgrid.cpy Interfaccia GRIDADMN e gestione griglia
wstato/wgrave/wopenf/wnscr/cogazien Working storage stato I/O, errori, apertura file, video, dati azienda
grave/mmmask/opengen/stato/stato1/winmsg/utilgrid Errori gravi, maschera, apertura generica, stato verbi, messaggi, gestione griglia
sendw01.cpy / sendw36.cpy Routine di aiuto causale e magazzino

Chiamate a sottoprogrammi (CALL)

Programma Scopo
WIN192 Finestra di aiuto/selezione classe di movimento (F8 sul codice, o all'avvio se richiamato con funzione "win-aiuto")
COGG39 Selezione/aiuto fase (F8 sul campo fase)
COGS89W Gestione/validazione della sottoclasse (tm-clm-cod) sulle righe di dettaglio
GRIDADMN Gestione e personalizzazione della griglia di dettaglio (Shift-F4, add/modify/svuota record)

Logica di elaborazione

1. Inizializzazione (apri)

Imposta nome programma, verifica abilitazione (ctr-abil), apre i file e legge i dati azienda. Abilita i tasti funzione (F7 nuovo, F8 aiuto, Invio/Invio-modifica, F3 conferma/aggiorna, F4 cancella, Sf4 griglia, Ctrl-A aggiungi, Ctrl-E elimina). Se lanciato in modalita' richiamata con funzione "win-aiuto" (g37-called = k-program-id, lnk-g37-fun = "win-aiuto"), apre subito WIN192 come finestra di selezione e restituisce l'esito al chiamante. Imposta il titolo "Gestione classi di movimento", prepara la griglia e i controlli, modalita' iniziale "A" (aggiornamento).

2. Testata della classe (a4, paragrafi a-tm-*)

Sulla testata l'operatore digita il codice classe (tm-cod, aiuto WIN192, F7 propone il primo codice libero via a1-src-lib) e, alla lettura, se la classe esiste (x-controlla-tm-cod legge COGCLASM) la visualizza (visualizza-classe), altrimenti imposta operazione di inserimento. Seguono descrizione, flag gestione quantita' in entrata/processate/uscita (tm-fl-rmd-ent/prc/usc), cambio merce (tm-fl-c-merce), cambio serial number (tm-fl-c-sn), evasione (tm-fl-evasione), tipo classe (tm-tipo-classe) e fase (tm-fase, aiuto COGG39, validata su COGTABEL tipo 27).

3. Visualizzazione classe esistente (visualizza-classe / flow-clm-tab1)

Legge da COGCLASM tutti gli attributi di testata e riversa la tabella righe clm-tab nella tabella video tm-tab: per ogni riga con tipo documento valorizzato recupera la descrizione causale (COGTABEL tipo 15), la descrizione magazzino (COGMAGAZ) e la descrizione sottoclasse (COGS89W), poi costruisce la griglia.

4. Gestione griglia dettaglio (a-grid / a-accept-grid)

La griglia elenca le righe della classe. Tasti: Sf4 (personalizzazione GRIDADMN), F3 (conferma/aggiorna la classe, previa abilitazione w-abi-agg e conferma), F4 (cancella la classe se in modifica, fl-ope = "U"), Invio (modifica la riga selezionata), Ctrl-A (aggiungi riga, previa w-abi-ins e limite k-max-ele-tab), Ctrl-E (elimina la riga corrente, previa w-abi-del e conferma, con compattamento della tabella).

5. Riga di dettaglio (a-riga-dettaglio, paragrafi a-tm-tip-doc ... a-tm-clm-cod)

Per inserimento/modifica di una riga l'operatore imposta: tipo documento (tm-tip-doc, default "C"), causale (tm-cau-cod, aiuto COGW01, validata su COGTABEL tipo 15), magazzino (tm-mag-cod, default magazzino principale, aiuto COGW36, validato su COGMAGAZ), comportamento merce (tm-fl-merce nelle varianti unr/u/eu/eunr abilitate secondo il contesto), forzatura serial number padre (tm-fl-stesso-sn) e sottoclasse (tm-clm-cod, gestita da COGS89W). Il paragrafo cambia-fl-merce determina quali valori di merce sono ammessi in base al tipo documento e al tipo classe (gestione speciale per classi "auto"). Alla conferma (a-riga-dettaglio-fine) la riga e' aggiunta/modificata nella griglia tramite GRIDADMN.

6. Validazione causale per tipo documento (x-controlla-tm-cau-cod)

Oltre a verificare l'esistenza della causale (COGTABEL tipo 15), controlla la coerenza tra tipo documento e attributi della causale: documenti "I"/"D"/"U"/"O"/"L" richiedono causale di uscita (euta-cb-fl-eu = "U"), documenti "R"/"C"/"E"/"F" causale di entrata; per alcuni tipi verifica anche che la causale sia di tipo cliente (ctr-cb-cli) o fornitore (ctr-cb-for).

7. Aggiornamento archivio (aggiorna / aggiorna-classe / inserisci-classe / cancella-classe)

Alla conferma della classe (F3): se in modifica (fl-ope = "U") esegue aggiorna-classe (riscrittura COGCLASM con dati di aggiornamento: data, programma, operatore), se in inserimento (fl-ope = "I") esegue inserisci-classe (scrittura con dati di inserimento). Entrambi riempiono la testata (fill-clm-generic) e la tabella righe (fill-clm-tab) da tm-tab. La cancellazione (F4, cancella-classe) rilegge e cancella il record COGCLASM.

8. Chiusura (fine / z-chiudi)

Chiude i file, cancella COGS89W, chiude la finestra ed esegue z-99-exit-program.

Note tecniche

  • Tabella principale COGCLASM, non COGTABEL: a differenza di molte tabelle di menu, le classi di movimentazione sono memorizzate nell'archivio dedicato COGCLASM (con chiave clm-chia1 = tipo classe movimento + codice). COGTABEL e' usata solo in lettura per validare/descrivere fasi (tipo 27) e causali (tipo 15).
  • Struttura testata + righe: la classe ha attributi generali (gestione quantita', cambio merce/SN, evasione, tipo classe, fase) e una tabella di righe di movimentazione (fino a k-max-ele-tab = 20) memorizzate in clm-tab; ogni riga collega un tipo documento a una causale, magazzino, comportamento merce e sottoclasse.
  • Comportamento merce dipendente dal contesto (cambia-fl-merce): i valori ammessi per tm-fl-merce (nuova/usata/entrata/uscita e varianti) dipendono dal tipo documento e dal tipo classe; per le classi "auto" (k-clm-tipo-classe-auto) e' prevista una gestione specifica dei resi motori (nota: se si permettesse la merce "R" la matricola del reso diventerebbe padre della matricola entrata, comportamento non voluto).
  • Generazione del codice libero (a1-src-lib / next-w-cod-alfa): con F7 il programma propone il primo codice alfanumerico libero (alfabeto t-alfa 0-9 A-Z) scandendo COGCLASM al contrario.
  • Modalita' richiamata (aiuto/selezione): se avviato con g37-called = COGG37 e funzione "win-aiuto" apre direttamente WIN192 restituendo la selezione al chiamante; la modalita' selezione (a-modalita = "S") abilita i tasti F3-selezione/modifica quando w-dc-called = "S".
  • Abilitazioni: rispetta i flag utente w-abi-ins (inserimento riga), w-abi-agg (modifica classe/riga) e w-abi-del (cancellazione), bloccando le operazioni con messaggio se non abilitate.
  • Programma generato da Screens (versione 2.13.0): testata, griglia di dettaglio e routine di I/O provengono dai file cogg37.select/.fd/.wrk/.decla/.prc/.tm e dalla screen cogg37-01.scr; il .select include COGTABEL, COGMAGAZ e COGCLASM. La griglia e' amministrata da GRIDADMN (add/modify/svuota record, Shift-F4).