COGF57 - Modifica Matricola¶
Sorgente: cbl/cogf57.cbl | Tipo: Programma a carattere (maschera testo) | Program-ID: COGF57
Menu: - Magazzino > Produzione > Produzione 2 > Prod. x Matricole > Modifica Matricola
Puo' essere richiamato come sottoprogramma passando f57-called = "COGF57-CALLED" con la matricola in f57-matricola (vedi utilf57.cpy).
Scopo¶
Data una matricola di produzione gia' chiusa, mostra il dettaglio dei componenti utilizzati e consente di aggiungere, eliminare o sostituire componenti generando i relativi movimenti di magazzino (carico/scarico) e gli eventuali collegamenti con i serial number movimentati. Se il lotto associato alla matricola non e' di tipo "matricole" (cla-tip != "2"), il programma propone di passare a COGF99 (modifica lotti) con F3.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indicizzato | I-O | Tabelle di sistema |
| COGTABEL | Indicizzato | I-O | Tabelle gestionale (tipo 57 = data consolidato) |
| COGMERCI | Indicizzato ext | I-O | Anagrafica merci |
| COGGEANA | Indicizzato ext | I-O | Anagrafica generale (clienti) |
| COGTESBO | Indicizzato | I-O | Testate bolle (per generazione movimenti) |
| 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 |
| COGMTUSC | Indicizzato | I-O | Matricole uscite |
| COGGENER | Indicizzato | I-O | Generatore numeri |
| COGDESCR | Indicizzato | I-O | Descrizioni |
| COGMTPRE | Indicizzato | I-O | Matricole pre-assegnazione |
| COGMTDET | Indicizzato | I-O | Matricole dettaglio |
| COGMTMOD | Indicizzato | I-O | Matricole modifiche |
| LODTMDES | Indicizzato | I-O | Transito note operatore (#$NOTEOP.<operatore>) |
| FLSTA | Sequenziale | Output | File di stampa |
Copybook principali¶
Strutture dati¶
| Copybook | Ruolo |
|---|---|
cogf57.select / .fd / .wrk / .decla |
Generati da Screen Designer |
feurtab.fd / cogfiles.cpy |
FD feurtab |
flsta.fd / flsta.cpy |
Stampa |
lodtmdes.fd / lodtmdes.cpy |
Note operatore |
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 |
wdisp002.cpy |
Working display |
wcont.cpy / wcont1.cpy |
Linkage comune |
util021.cpy |
Utility 021 |
Interfacce sottoprogrammi¶
| Copybook | Sottoprogramma |
|---|---|
utils21.cpy |
COGS21 (selezione SI/NO) |
utils25.cpy |
COGS25 |
utils50.cpy |
COGS50 |
utils52.cpy |
COGS52 (calendario) |
utils54.cpy |
COGS54 (gestione stampa) |
utils66.cpy |
COGS66 (ricerca magazzino/causale) |
utils68.cpy |
COGS68 (ricerca merce) |
utilu07.cpy |
COGU07 (display reverse) |
utilu09.cpy |
COGU09 |
utilu10.cpy |
COGU10 (formattazione importi/divisa) |
utilu12.cpy |
COGU12 |
utilu20.cpy |
COGU20 |
utilw01.cpy / utilw28.cpy / utilw68.cpy |
Worker vari |
utilzde.cpy |
COGZDEW |
utilcogl61.cpy |
COGL61 (logica controllo lotti) |
utilf57.cpy |
Interfaccia di chiamata a COGF57 |
utilf99.cpy |
Chiamata a COGF99 (vedi sotto) |
Chiamate a sottoprogrammi¶
| Programma | Funzione |
|---|---|
| RNEWCONF | Lettura configurazione (gruppo progcogv51) |
| COGS10 | Selezione/elenco |
| COGS52 | Accept campo anno/data |
| COGS54 | Selezione destinazione stampa |
| COGU07 | Display reverse con elenco |
| COGU09 | Utility display |
| COGU10 | Gestione divisa e formattazione importi (GetDivisaConto) |
| COGU12 | Funzioni varie |
| COGU20 | Funzioni varie |
| COGL61 | Logica di controllo per lotti |
| COGZDEW | Worker note vendita |
| COGF99 | Richiamato se il lotto e' di tipo "L" (lotti) anziche' matricole |
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 di carico/scarico generati dalle modifiche:
- tm-cfg-mag-in / tm-cfg-cau-in (entrata componenti)
- tm-cfg-mag-out / tm-cfg-cau-out (uscita componenti)
Logica di elaborazione¶
Inizializzazione (a000)¶
- Controllo abilitazione (
ctr-abil); se non abilitato esce - Se chiamato come sottoprogramma (
f57-called = "COGF57-CALLED"), salva la matricola passata - Apre i file e legge azienda
- Legge configurazione
progcogv51 - Ottiene divisa conto da COGU10 (
GetDivisaConto) - Verifica
data-consolidato(leggi-consolidato): sesis-aa<dt-cons-aa(o uguale esis-mm<=dt-cons-mm) blocca con messaggio - Apre file note operatore
#$NOTEOP.<operatore>(output -> i-o); se gia' aperto: "Funzione gia' in uso da questo operatore" - Legge configurazione programma (
x99-src-cfg) - Visualizza maschera caratteri (
mm-1, 25x80)
Selezione matricola (a-tm-mat-ann / a-tm-mat-num / a-tm-mat-num-leggi)¶
- Accept anno matricola con COGS52
- Accept numero matricola
- Cerca su COGMTPRE con
mtp-tip = "A",mtp-mat-ann/num: se non trovata, "Matricola di produzione non trovata" - Verifica esistenza in COGMATRI: se esiste,
tm-mtr-evasa = "S"(matricola evasa) - Recupera lotto associato (
mtp-lot-ann/num) e legge COGLAVOR: se non trovato, "Lotto non trovato" - Se
cla-tip != "2"(non gestito a matricole): proposta di passare a COGF99 con F3 - Legge riga consegna (COGCONOR su
cla-consegna): se non trovata, "Lotto collegato a riga consegna inesistente" - Cerca note post-vendita (paragrafo
a1-note-post-vendita)
Caricamento dettaglio (b-carica)¶
Carica nella tabella tab-maschera.tm-tab-righe (max 400 elementi) i componenti della matricola scandendo COGMTPRE/COGMTDET/COGMOMAG con chiave per matricola.
Modifica componenti (c-elabora / c1-modifica)¶
Operazioni disponibili dalla griglia:
- F1 - Aggiungi componente (c15-aggiungi-dettaglio): apre finestra con merce, quantita', magazzino, causale, serial number; genera movimento di carico tramite c2-ins-tes e c3-ins-mag
- F4 - Elimina componente (c14-togli-dettaglio): rimuove dalla matricola; genera movimento di scarico
- F7 - Sostituisci componente (c12-rientro / c13-uscita): combina rientro del vecchio e uscita del nuovo
- F9 - Cambio matricola prodotto finito (c16-modifica-dettaglio): aggiorna tm-dm-mat-nuova
- F8 - Alterna figli/padri (carica-figlio)
- F11 - Note post-vendita (se ok-note-post-vend = "S")
Le operazioni sono disponibili solo se la matricola e' evasa (tm-mtr-evasa = "S"). Le w-abi-agg/del/ins controllano la disponibilita' delle azioni.
Generazione movimenti¶
I movimenti di magazzino vengono creati tramite:
- c2-ins-tes: crea testata bolla (COGTESBO) con magazzino e numerazione da cogv01 simile a COGF05
- c3-ins-mag: scrive riga su COGMOMAG con merce, quantita', segno
- Controllo giacenza tramite COGL61 (utilcogl61.cpy) e configurazione ctr-gia
- Aggiornamento saldi su COGSLMAG
Chiusura (fine / z-chiudi)¶
Chiude tutti i file, esce con z-99-exit-program.
Limiti dimensionali¶
| Costante | Valore | Significato |
|---|---|---|
k-ele-tab-pnota |
200 | Max righe tabella prima nota |
k-ele-tab-righe |
400 | Max righe componenti caricati |
k-ele-tab-matricole |
100 | Max matricole |
k-chr-stampa |
132 | Larghezza riga stampa |
Messaggi principali¶
| Messaggio | Origine |
|---|---|
| Matricola di produzione non trovata!! | a-tm-mat-num-leggi, ricerca COGMTPRE |
| Lotto non trovato!! | Lettura COGLAVOR fallita |
| Lotto non gestito a matricole!! | cla-tip != "2" |
| 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 |
Menu¶
- Magazzino > Produzione > Produzione 2 > Prod. x Matricole > Modifica Matricola