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.prctran-cogs17c.fd/cpy,trbn-cogs17c.fd/cpy,tran-s26.fd/cpy,tran-s26b.fd/cpyk-personal.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpyutils26.cpy,utils52.cpy,utilu07.cpy,utilu12.cpy,utilncnf.cpy,utilcogw72.cpywcont.cpy,wcont1.cpy,utils17c.cpy,utils17l.cpygrave.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)¶
- controlla-doc: verifica che non ci siano documenti contoterzista bloccanti
- cerca-dt-modula: controlla dati Modula (sistema esterno)
- cerca-lavla: controlla COGLAVLA (lavorazioni accodate)
- ctrl-mov-supporti: controlla supporti in movimento
- cerca-max-figlio: trova l'anno/numero massimo tra le lavorazioni figlie (
coglavor.k02sucla-pf-ann/cla-pf-num) - scansione COGLAVOR (chiave principale ascendente da lotto padre fino al max figlio):
- Per ogni lavorazione figlia (
cla-pf-* = lotto,cla-tip='1'):- apri/troncа
tran-cogs17cetrbn-cogs17c - b-coggener: scandisce COGGENER tip "LP" parte-1=lavorazione → per ognuno:
- se
gnr-fl-no-cancognr-lav-est-rie='RIENTRO': salva su COGTRANS per segnalazione finale - altrimenti:
c-analisi-bolla(legge COGTESBO viagnr-parte-2, salva su COGTRANS2; scandisce COGMOMAG accumulando per merce/magazzino sutran-cogs17ccon segno opposto, e per merci critiche raccoglie matricole sutrbn-cogs17c; chiamatratta-movltper cancellare COGMOVLT e ripristinare COGMERLT) e-cogmatri: cancella COGMTUSC del lotto (chiave 3) e riportamtr-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 lavoroaz-mag-cla), leggetran-cogs17c, riempietran-s26con righe segno opposto +tran-s26bcon matricole per merci critiche, chiama COGS26 cons26-ope="Inserimento"per generare il documento di rettifica tratta-supporti
- apri/troncа
- a1-90: dopo tutte le lavorazioni
- se NON COGP13A: d-cogmovdb (cancellazione finale COGMOVDB)
- se Eurocold o B&B Elettronica: cancella-prematricole (COGMTPRE chiave 2 = lotto)
- 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-s26etran-s26bsonoexternal(condivisi con COGS26).set-win-appoggio/close-win-appoggioper 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"es17l-sl-lot-*: in quel caso processa solo la specifica sotto-lavorazione (notratta-movdb-cc, nod-cogmovdb). - COGP13S chiama con
s17l-ope="C": non cancella i cicli di lavoro.