COGF99 - Modifica Lotti¶
Sorgente: cbl/cogf99.cbl | Tipo: Programma a carattere (maschera testo) | Program-ID: COGF99
Menu: - Magazzino > Produzione > Produzione 2 > Prod. x Lotti > Modifica Lotti
Puo' essere richiamato come sottoprogramma passando f99-called = "COGF99-CALLED" con il lotto in f99-lotto (vedi utilf99.cpy). E' tipicamente chiamato da COGF57 quando il lotto da modificare e' di tipo "L" (lotti) anziche' matricole.
Scopo¶
Dato un lotto di produzione gia' chiuso, mostra il dettaglio di tutti i componenti di tutte le matricole del lotto e consente di aggiungere, eliminare o sostituire componenti, generando i movimenti di magazzino (carico/scarico) e i collegamenti con eventuali serial number. A differenza di COGF57 che opera su una singola matricola, COGF99 lavora sull'intero lotto: gli aggiornamenti vengono replicati su tutte le matricole oppure su quella selezionata via lettura.
Vincoli:
- Il lotto deve essere di tipo "L" (cla-tip = "L"), altrimenti "Lotto gestito a matricole"
- Il lotto deve essere chiuso (cla-fl-cls = "C"), altrimenti "Lotto non ancora chiuso"
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indicizzato | I-O | Tabelle di sistema |
| COGTABEL | Indicizzato | I-O | Tabelle gestionale |
| COGMERCI | Indicizzato ext | I-O | Anagrafica merci |
| COGGEANA | Indicizzato ext | I-O | Anagrafica generale (clienti) |
| COGTESBO | Indicizzato | I-O | Testate bolle |
| COGMOMAG | Indicizzato | I-O | Movimenti di magazzino |
| COGSLMAG | Indicizzato | I-O | Saldi magazzino (controllo giacenza) |
| COGMERAP | Indicizzato ext | I-O | Merci rapporti |
| COGLAVOR | Indicizzato | I-O | Lotti di lavorazione |
| COGCONOR | Indicizzato | I-O | Conferme d'ordine (righe consegna) |
| COGMATRI | Indicizzato | I-O | Matricole (chiave aggiuntiva: cogmatri.k04) |
| COGMTUSC | Indicizzato | I-O | Matricole uscite |
| COGGENER | Indicizzato | I-O | Generatore numeri |
| COGDESCR | Indicizzato | I-O | Descrizioni |
| COGMTPRE | Indicizzato | I-O | Matricole pre-assegnazione (chiave: cogmtpre.k02) |
| COGMTDET | Indicizzato | I-O | Matricole dettaglio |
| COGMTMOD | Indicizzato | I-O | Matricole modifiche |
| LODTMDES | Indicizzato | I-O | Transito note operatore (#$NOTEOP.<operatore>) |
Copybook principali¶
Strutture dati¶
| Copybook | Ruolo |
|---|---|
cogf99.select / .fd / .wrk / .decla |
Generati da Screen Designer |
feurtab.fd / cogfiles.cpy |
FD feurtab |
lodtmdes.fd / lodtmdes.cpy / lodtmdes.k01 |
Note operatore |
cogmatri.k04 |
Chiave secondaria COGMATRI |
cogmtpre.k02 |
Chiave secondaria COGMTPRE |
k-u10.cpy |
Costanti COGU10 |
utilncnf.cpy |
Interfaccia RNEWCONF |
Working storage¶
| Copybook | Ruolo |
|---|---|
wopenf.cpy / wstato.cpy / wgrave.cpy / wnscr.cpy |
Working storage comuni |
cogazien.cpy |
Dati azienda |
wcont.cpy / wcont1.cpy |
Linkage comune |
Interfacce sottoprogrammi¶
| Copybook | Sottoprogramma |
|---|---|
utils21.cpy |
COGS21 |
utils25.cpy |
COGS25 |
utils52.cpy |
COGS52 (calendario) |
utils66.cpy |
COGS66 |
utils68.cpy |
COGS68 (ricerca merce) |
utilu07.cpy |
COGU07 |
utilu10.cpy |
COGU10 (formattazione/divisa) |
utilu12.cpy |
COGU12 |
utilu20.cpy |
COGU20 |
utilw01.cpy / utilw68.cpy |
Worker vari |
utilzde.cpy |
COGZDEW |
utilcogl61.cpy |
COGL61 (controllo lotti) |
utilf99.cpy |
Interfaccia di chiamata a COGF99 |
Chiamate a sottoprogrammi¶
| Programma | Funzione |
|---|---|
| RNEWCONF | Lettura configurazione (gruppo progcogv51) |
| COGS10 | Selezione/elenco |
| COGU07 | Display reverse con elenco |
| COGU10 | Gestione divisa e formattazione importi (GetDivisaConto) |
| COGU12 | Funzioni varie |
| COGU20 | Funzioni varie |
| COGL61 | Logica controllo lotti |
| COGZDEW | Worker note vendita |
Configurazione (RNEWCONF)¶
Chiavi lette in apertura (gruppo progcogv51):
| Chiave | Variabile | Significato |
|---|---|---|
euta-c041-ctr-gia |
tm-cfg-ctr-gia |
Modalita' controllo giacenza |
ctr-gia-sblocco-password |
tm-cfg-ctr-gia-sblocco-password |
Password sblocco controllo giacenza |
Inoltre vengono lette dalla configurazione del programma (x99-src-cfg / x99-rd-cfg) le impostazioni di magazzino e causale per i movimenti generati.
Logica di elaborazione¶
Inizializzazione (a000)¶
- Apre i file (
open-files) e legge azienda (rd-azi) - Se chiamato (
f99-called = "COGF99-CALLED"): salvaf99-lottocome lotto da elaborare - Legge configurazione
progcogv51 - Ottiene divisa conto da COGU10
- Legge configurazione del programma (
x99-src-cfg) - Apre note operatore
#$NOTEOP.<operatore>con controllo "Funzione gia' in uso da questo operatore" - Visualizza maschera caratteri 25x80 (
mm-1)
Selezione lotto (a7-ann / a7-num / a7-lotto)¶
- Accept anno lotto (COGS52)
- Accept numero lotto
- Legge COGLAVOR: se non trovato "Lotto non trovato"
- Verifica
cla-tip = "L"; se diverso "Lotto gestito a matricole" - Verifica
cla-fl-cls = "C"; se diverso "Lotto non ancora chiuso" - Legge riga consegna (COGCONOR): warning se non trovata "Lotto collegato a riga consegna inesistente"
Caricamento dettaglio¶
Carica nella tabella tab-maschera.tm-tab-righe (max 800 elementi) tutti i componenti di tutte le matricole del lotto, scandendo COGMTPRE (chiave 2) e COGMTDET. Per ogni componente memorizza anche la matricola di appartenenza (tm-mc-ann / tm-mc-num).
Modifica componenti¶
Operazioni disponibili (analoghe a COGF57 ma replicate sul lotto):
- F1 - Aggiungi componente: apre finestra con merce, quantita', magazzino, causale, serial number; genera movimento di carico
- F4 - Elimina componente: rimuove dal lotto; genera movimento di scarico (richiede evasa != 0)
- F7 - Sostituisci componente: rientro vecchio + uscita nuovo
- F9 - Cambio matricola prodotto finito: modifica tm-dm-mat-nuova
- F8 - Alterna figli/padri
- Filtraggio per singola matricola tramite campo tm-matricola o tm-lettura (barcode/manuale)
Generazione movimenti¶
Analoga a COGF57:
- Crea testata su COGTESBO
- Scrive righe su COGMOMAG con segno carico/scarico
- Controllo giacenza tramite COGL61 e configurazione ctr-gia
- Aggiornamento saldi COGSLMAG
Chiusura (fine)¶
Chiude i file ed esce.
Limiti dimensionali¶
| Costante | Valore | Significato |
|---|---|---|
k-ele-tab-righe |
800 | Max righe componenti caricati (doppio di COGF57) |
k-ele-tab-matricole |
900 | Max matricole nel lotto |
k-w-siz-tm-pf |
33 | Larghezza descrizione prodotto finito |
k-w-siz-tm-merce |
33 | Larghezza descrizione merce |
k-w-siz-dm-merce |
33 | Larghezza descrizione merce modifica |
Messaggi principali¶
| Messaggio | Origine |
|---|---|
| Lotto non trovato!! | Lettura COGLAVOR fallita |
| Lotto gestito a matricole | cla-tip != "L" (usare COGF57) |
| Lotto non ancora chiuso | cla-fl-cls != "C" |
| Lotto collegato a riga consegna inesistente!! | Lettura COGCONOR fallita |
| Funzione gia' in uso da questo operatore!! | Apertura LODTMDES fallita |
| Data sistema minore di consolidato! Programma non eseguibile | Controllo data-consolidato |
Differenze rispetto a COGF57¶
| Aspetto | COGF57 | COGF99 |
|---|---|---|
| Granularita' | Singola matricola | Tutto il lotto |
cla-tip accettato |
"2" (matricole) | "L" (lotti) |
| Quando uno richiama l'altro | Se lotto = "L" propone COGF99 | Chiamato da COGF57 |
| Max righe componenti | 400 | 800 |
| Max matricole | 100 | 900 |
| Visualizza colonna matricola in griglia | No | Si' |
Menu¶
- Magazzino > Produzione > Produzione 2 > Prod. x Lotti > Modifica Lotti