Vai al contenuto

COGS17C - Cancellazione Lotti di Produzione

Scopo

Sottoprogramma di cancellazione lotto di produzione (gestione GUI + elaborazione). Esegue la pulizia a cascata di tutti i dati collegati a un lotto principale (COGLAVOR di tipo 1, fase 1, posizione 1):

  • elimina lotto + lavorazioni figlie (COGLAVOR)
  • elimina movimenti distinta base (COGMOVDB) e tag lotto (COGMLTAG, COGLTLAV)
  • elimina record di legame lotti (COGGENER tip "LP" e "LL")
  • elimina documenti di magazzino prodotti (COGTESBO/COGRIGBP/COGMOMAG/COGMOVLT) e ripristina giacenze
  • riapre matricole scaricate (COGMTUSC + flag mtr-fl-eu='E' su COGMATRI)
  • elimina pre-matricole legate al lotto (COGMTPRE)
  • elimina cicli e correlati (CLCCCTES, CLCCCRIG, CLCCCDAY, CLCCCCNS, CLCDALAV, CLCSTAMP) - opzionale
  • segnala documenti di rientro contoterzista non cancellabili (COGTRANS)

ATTENZIONE: NON ripristina l'impegno derivante dai lotti cancellati. Le consegne legate ai lotti vanno gestite manualmente.

Programma standalone con maschera di input + linkage util-s17c/util-s17l per chiamata da altri programmi (es. COGP13A, COGP13S).

Posizioni menu

  • Magazzino > Produzione > Produzione > Cancellazione Lotti

File e Tabelle

File Copybook Utilizzo
FEURTAB cogfiles.cpy Tabella file di sistema
COGLAVOR coglavor.cpy Lotti di produzione (lotto e figlie) - principale
COGGENER coggener.cpy Legami generici (tip "LP"=lotto-prelievo, "LL"=lotto-lotto)
COGTESBO cogtesbo.cpy Testate documenti magazzino (per cancellazione)
COGMOMAG cogmomag.cpy Movimenti magazzino
COGMOVDB cogmovdb.cpy Movimenti distinta base (tip "CL", rif=lotto)
COGMOVLT cogmovlt.cpy Movimenti per lotto interno
COGMERLT cogmerlt.cpy Lotti merce (giacenze per lotto interno)
COGLGLOT coglglot.cpy Legami giacenza-lotto
COGLTLAV cogltlav.cpy Lotti tag lavorazione
COGMLTAG cogmltag.cpy Tag lotto
COGLAVLA coglavla.cpy Avanzamenti lavorazione
COGMATRI cogmatri.cpy Anagrafica matricole (riapertura: mtr-fl-eu='E')
COGMTUSC cogmtusc.cpy Uscite matricole (cancellazione)
COGMTPRE cogmtpre.cpy Pre-matricole (cancellazione)
COGMERA2 cogmera2.cpy Anagrafica merci avanzata (flag merce critica)
COGMERSP cogmersp.cpy Merci speciali
COGMOVSP cogmovsp.cpy Movimenti speciali (supporti)
COGTABEL cogtabel.cpy Causali documenti (euta-cb-con-gia per gestione giacenza)
COGTESBP cogtesbp.cpy / COGRIGBP Testate/righe buoni di prelievo
CLCCCTES, CLCCCRIG, CLCCCDAY, CLCCCCNS, CLCDALAV, CLCSTAMP (cpy omonimi) Cicli di lavoro pianificati
COGMDTES cogmdtes.cpy Modula testate (controllo)
COGSTAMP cogstamp.cpy Stampe
TRAN-COGS17C tran-cogs17c.cpy File di transito quantita' magazzino x merce (per ripristino)
TRBN-COGS17C trbn-cogs17c.cpy File di transito matricole in carico (per merci critiche)
TRAN-S26 tran-s26.cpy Trasferimento al servizio COGS26 (p.nota mag.)
TRAN-S26B tran-s26b.cpy Trasferimento matricole al servizio COGS26
COGTRANS (interno, file indicizzato) Segnalazione documenti contoterzista non cancellabili
COGTRANS2 (interno) Documenti per stampa segnalazione

I file di transito sono in ext-tmp-dir con nome #$COGS17C.<oper>, #$BOGS17C.<oper>, #COGS17C.<oper>, $$COGS17C.<oper>, #$COGS26.<oper>, #tr-s26b.<oper>.

Copybook

  • feurtab.fd, cogs17c.select, cogs17c.fd, cogs17c.wrk, cogs17c-01.scr, cogs17c.decla, cogs17c.prc
  • tran-cogs17c.fd/cpy, trbn-cogs17c.fd/cpy, tran-s26.fd/cpy, tran-s26b.fd/cpy
  • k-personal.cpy
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • utils26.cpy, utils52.cpy, utilu07.cpy, utilu12.cpy, utilncnf.cpy, utilcogw72.cpy
  • wcont.cpy, wcont1.cpy, utils17c.cpy, utils17l.cpy
  • grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy

CALL

Programma Scopo
COGS26 Inserimento p.nota magazzino (rettifica con segno opposto, da tran-s26)
COGU07 Aggiornamento COGSNAGG (riallineamento serial numbers)

Logica di elaborazione

Parametri input

tab-maschera: - tm-anno / tm-numero: lotto (anno+numero) - tm-lot-ext: lotto esterno (alternativo, se tm-cfg-lotto-ext='S')

Linkage util-s17l (utils17l.cpy): - s17l-lot-ann/s17l-lot-num: lotto da cancellare (se chiamato) - s17l-prg: programma chiamante - s17l-ope: "C" → non cancellare cicli (chiamata da COGP13S) - s17l-sl-lot-ann/s17l-sl-lot-num: per COGP13A, filtra solo questa specifica lavorazione

Configurazione tab-config (utilncnf.cpy): - tm-cfg-lotto-ext: abilita gestione lotto esterno - tm-cfg-mag-stoc: magazzino stoccaggio - tm-cfg-ctr-ava: "OK-PARZIALE" o "OK-MAI" (controllo avanzamento)

Validazione (controlla-lotto)

if cla-fas != 1 or cla-pos != 1: "Lotto intermedio non cancellabile!"
if cla-tip != "1": "Lotto non di produzione 1!"
evaluate tm-cfg-ctr-ava
   when "OK-PARZIALE": if cla-qta-lav >= cla-qta-ord -> blocco
   when "OK-MAI":      if cla-qta-lav <> 0 or cla-fl-cls = "C" -> blocco

Flusso (a1-elabora)

  1. controlla-doc: verifica che non ci siano documenti contoterzista bloccanti
  2. cerca-dt-modula: controlla dati Modula (sistema esterno)
  3. cerca-lavla: controlla COGLAVLA (lavorazioni accodate)
  4. ctrl-mov-supporti: controlla supporti in movimento
  5. cerca-max-figlio: trova l'anno/numero massimo tra le lavorazioni figlie (coglavor.k02 su cla-pf-ann/cla-pf-num)
  6. scansione COGLAVOR (chiave principale ascendente da lotto padre fino al max figlio):
  7. Per ogni lavorazione figlia (cla-pf-* = lotto, cla-tip='1'):
    • apri/troncа tran-cogs17c e trbn-cogs17c
    • b-coggener: scandisce COGGENER tip "LP" parte-1=lavorazione → per ognuno:
    • se gnr-fl-no-canc o gnr-lav-est-rie='RIENTRO': salva su COGTRANS per segnalazione finale
    • altrimenti: c-analisi-bolla (legge COGTESBO via gnr-parte-2, salva su COGTRANS2; scandisce COGMOMAG accumulando per merce/magazzino su tran-cogs17c con segno opposto, e per merci critiche raccoglie matricole su trbn-cogs17c; chiama tratta-movlt per cancellare COGMOVLT e ripristinare COGMERLT)
    • e-cogmatri: cancella COGMTUSC del lotto (chiave 3) e riporta mtr-fl-eu='E' su COGMATRI; chiama COGU07 per COGSNAGG
    • cancella COGGENER
    • tratta-ltlav: cancella COGLTLAV del lotto
    • tratta-gener-ll: cancella COGGENER tip "LL" + cleanup COGMERLT/COGLGLOT del lotto interno prodotto finito
    • tratta-movdb-cc (se NON COGP13A): cancella COGMOVDB con tip-mov='CL', rif-mov=lotto
    • se NON s17l-ope='C' (chiamata standard): cancella cicli (CLCCCTES, CLCCCRIG, CLCCCDAY, CLCCCCNS, CLCDALAV, CLCSTAMP)
    • tratta-gener-lb: cancella altri legami
    • del-coglavor: cancella la lavorazione
    • tratta-lavla: cancella COGLAVLA collegate
    • f-ripristino-magazzino: per ogni magazzino in tab-magazzini-movimentati (max 50, prima il magazzino conto lavoro az-mag-cla), legge tran-cogs17c, riempie tran-s26 con righe segno opposto + tran-s26b con matricole per merci critiche, chiama COGS26 con s26-ope="Inserimento" per generare il documento di rettifica
    • tratta-supporti
  8. a1-90: dopo tutte le lavorazioni
  9. se NON COGP13A: d-cogmovdb (cancellazione finale COGMOVDB)
  10. se Eurocold o B&B Elettronica: cancella-prematricole (COGMTPRE chiave 2 = lotto)
  11. se fl-trans='S' (ci sono documenti contoterzista bloccati): segnala-doc stampa lista

Tabella magazzini movimentati

tab-magazzini-movimentati (max k-max-tmm=50 magazzini): mantenuta in c-analisi-bolla per scandire un magazzino per volta in f-ripristino-magazzino.

File di transito (logica)

  • tran-cogs17c: chiave mag+merce. Per ogni movimento COGMOMAG accumula la quantita' netta con il segno (E/U) e flag merce critica. Serve a generare un unico documento di rettifica per merce/magazzino, anche se il lotto ha generato N movimenti per la stessa coppia.
  • trbn-cogs17c: chiave merce+matricola. Lista delle matricole in carico legate alle merci critiche, da passare a COGS26 per la gestione matricole nel documento di rettifica.
  • cogtrans: chiave tipo+ord+tes-chia3. Documenti di rientro contoterzista non cancellabili automaticamente.
  • cogtrans2: chiave tes-chia3. Documenti di magazzino interessati (per stampa).

Note tecniche

  • Tutti i file di transito usano nome <tmp-dir>/<prefix>.<wo-oper> per concorrenza multi-utente.
  • tran-s26 e tran-s26b sono external (condivisi con COGS26).
  • set-win-appoggio/close-win-appoggio per finestra modale durante chiamata COGS26.
  • Multi-lingua: messaggi caricati via x-set-m-cogs17c-N-N-id (sistema messaggi linguistici).
  • Stampa di segnalazione finale (segnala-doc) per documenti rientro contoterzista.
  • COGP13A (avanzamento da fasi) chiama questo programma con s17l-prg="COGP13A" e s17l-sl-lot-*: in quel caso processa solo la specifica sotto-lavorazione (no tratta-movdb-cc, no d-cogmovdb).
  • COGP13S chiama con s17l-ope="C": non cancella i cicli di lavoro.