Vai al contenuto

COGG38 - Evasione RMA

Sorgente: cbl/cogg38.cbl | Program-ID: COGG38 | Tipo: Programma interattivo (standalone)

Menu: - Magazzino > Entrate > RMA


Scopo

Gestisce la fase di evasione RMA: legge la pratica RMA processata in COGG36 (entrata) e consente all'operatore di specificare per ogni riga la quantita' da evadere, la classe di movimento di uscita e l'eventuale serial number / merce in uscita. Al salvataggio genera i movimenti di magazzino in uscita tramite COGU30 e aggiorna lo stato dei record RMA. Supporta la modalita' "Conto Anticipo" (tipo-rmt-tip = "A").

Puo' essere richiamato da COGG41 via utilg38.cpy / util-g38 con riga RMA preimpostata.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB Indexed Input Parametri generali
COGTABEL Indexed Input Tabelle di supporto (tipo EUTA 25: difetti)
COGMERCI Indexed Input Anagrafica merci (external)
COGGEANA Indexed Input Anagrafica clienti/fornitori
COGAPPOG Indexed I/O File di appoggio temporaneo
COGMATRI Indexed I/O Matricole/serial number
COGMTUSC Indexed I/O Matricole in uscita
COGGENER Indexed I/O Movimenti generali
COGDESCR Indexed I/O Descrizioni aggiuntive
COGRMATS Indexed I/O Testata pratica RMA
COGRMARG Indexed I/O Righe pratica RMA
COGRMADT Indexed I/O Dettagli righe RMA
COGRMACL Indexed I/O Classi di movimento RMA
COGCLASM Indexed Input Anagrafica classi di movimento
COGMTPRE Indexed I/O Prelievi matricole
COGLAVOR Indexed I/O Lavorazioni
COGMTDET Indexed I/O Dettagli matricole

Copybook utilizzate

Copybook Descrizione
feurtab.fd / cogtabel.fd / cogmerci.fd / coggeana.fd / cogappog.fd File control
cogmatri.fd / cogmtusc.fd / coggener.fd / cogdescr.fd File control
cogrmats.fd / cogrmarg.fd / cogrmadt.fd / cogrmacl.fd / cogclasm.fd File control
cogmtpre.fd / coglavor.fd / cogmtdet.fd File control
cogfiles.cpy FD FEURTAB
cogtabel.cpy / cogmerci.cpy / coggeana.cpy / cogappog.cpy FD tabelle
cogmatri.cpy / cogmtusc.cpy / coggener.cpy / cogdescr.cpy FD tabelle
cogrmats.cpy / cogrmarg.cpy / cogrmadt.cpy / cogrmacl.cpy / cogclasm.cpy FD tabelle
cogmtpre.cpy / coglavor.cpy / cogmtdet.cpy FD tabelle
k-rma.cpy / k-personal.cpy Costanti RMA e personalizzazione
wstato.cpy / wgrave.cpy / wopenf.cpy / wnscr.cpy Utility standard
cogazien.cpy Dati azienda
utilg35.cpy Interfaccia COGG35 (ricerca difetti)
utilgw01.cpy / utilgw02.cpy Utility gestione finestre
utils21.cpy Utility
utils25.cpy Utility
utils52.cpy Date
utils58.cpy Utility
utils60.cpy Lista selezione
utils65.cpy Ricerca anagrafica
utils68.cpy Utility
utils89.cpy Classi di movimento
utilu20.cpy Interfaccia COGU20
utilu30.cpy Interfaccia COGU30
utilw06.cpy Utility schermo
utilw68.cpy Interfaccia COGW68 (serial disponibili)
utilw107.cpy / utilw109.cpy / utilw110.cpy Interfacce finestre di ricerca
utilu07.cpy Interfaccia COGU07
utilncnf.cpy Interfaccia RNEWCONF
wcont.cpy Linkage stringhe
utilg38.cpy / utilg41.cpy Linkage called
wcont1.cpy Linkage ext

Logica di elaborazione

Flusso principale

  1. Inizializzazione (a000): apertura file, lettura azienda, configurazione (x99-src-confi). Se g38-called = k-program-id: carica ri-call da util-g38, imposta tipo RMA. Parametro wo-parametro = "A" attiva la modalita' Conto Anticipo.
  2. Selezione pratica (a4, a-5-ricerche): ricerca tramite WIN107 (call-w107 → WIN107). Se found direttamente, salta a a-5-read. Altrimenti, accept anno (a-5-anno via COGS52) e numero.
  3. Lettura pratica (a-5-read): legge COGRMATS; visualizza testata con disp-rma. Carica righe da COGRMARG e COGRMADT in tm-tab-righe (max k-t-size = 900 elementi).
  4. Posizionamento su riga specifica (acc-inizio): se richiamato da COGG41 con riga/dettaglio preimpostati, salta direttamente alla riga indicata (jump-to-w-det, jump-to-w-rig, jump-to-w-sn).
  5. Ciclo elaborazione (b-10, b-20, b-30, b-40, acc-20, acc-50):
  6. b-10 (Quantita'): accept via COGU20; max = tm-qta-ent (i); per serializzati max = 1; righe evase (tm-stato = 'V') rifiutate
  7. b-20 (Difetto riscontrato): F8 → COGG35; validazione su COGTABEL tipo 25
  8. b-30 (Classe di movimento): accept via call-s89-tm-clm; controlli su tipo classe (no merce rientro per RMA, no nuova merce uscita per C.A.); verifica "classe gia' usata" per personalizzazioni specifiche (az-personal = k-vege o k-opel)
  9. b-40 (S/N uscita): accept via COGS23; F8 → COGW68 per serial disponibili; per classi provvisorie/auto/C.A. salta direttamente a acc-20
  10. acc-20 (Merce in uscita): se la classe prevede merce uscita (tm-fl-merce-u = k-yes)
  11. acc-50 (Salvataggio riga): aggiornamento COGRMADT + chiamate a COGU30 per movimenti
  12. Aggiornamento finale: aggiornamento stato pratica COGRMATS.

Struttura dati principali

  • tm-tab-righe (900 elementi, k-t-size): righe pratica. Campi chiave per riga: tm-rig, tm-det, tm-merce-ent, tm-merce-usc, tm-mat-ent, tm-mat-usc, tm-sn-e, tm-sn-u, tm-qta, tm-qta-ent, tm-qta-prc, tm-qta-usc, tm-dif-dic, tm-dif-ris, tm-stato, tm-clm, flag movimento e classi.
  • tm-tab-classi (100 elementi): classi di movimento gia' usate per riga (per controllo unicita').
  • ricordante (ri-clm-fl-merce): memorizza flag merce per l'ultima classe selezionata.
  • w-gnr-clm: struttura per decodifica classe da COGGENER (tipo CLM).

Configurazione RNEWCONF (x99-src-confi)

Campo tab-config Descrizione
tm-cfg-anno-start Anno di partenza per filtro
tm-cfg-escludi-x / tm-cfg-x-esclusione / tm-cfg-x-inclusione Filtri esclusione/inclusione
tm-cfg-clm-entrata / tm-cfg-clm-uscita Classi di movimento predefinite

Chiamate a sottoprogrammi

Programma Copybook Contesto
COGU20 utilu20.cpy Accept quantita'
COGG41 utilg41.cpy Visualizzazione situazione pratica (F8); chiamante diretto in modalita' called
COGG35 utilg35.cpy Ricerca difetto riscontrato (F8 su b-20)
COGU30 utilu30.cpy Generazione movimenti di magazzino (evasione righe)
WIN109 utilw109.cpy Finestra di ricerca RMA
WIN110 utilw110.cpy Finestra di ricerca RMA (variante)
COGU07 utilu07.cpy Utility (paragrafo specifico)
WIN107 utilw107.cpy Ricerca principale pratica RMA (call-w107)
RNEWCONF utilncnf.cpy Configurazione (x99-src-confi)

Documentazione tecnica -- 2026-04-07