COGL11 - Cancellazione Pre-Distinta¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGL11 |
| Titolo | Cancella pre-distinta, offerte, merce temporanea padre |
| Autore | Stefano Ruozzi - Eurosystem |
| Posizione menu | Magazzino > Produzione > Distinte-Preventivo > Cancellazione Pre-Distinta |
Scopo e logica generale¶
COGL11 e' un programma interattivo che cancella una pre-distinta completa. Il processo rimuove in sequenza: i record della pre-distinta (COGDBPRE), le offerte associate (COGOFFCL), la merce temporanea padre (COGMERTP) e le note sulla distinta (COGDBAGG).
Prima di procedere, verifica che la pre-distinta non contenga componenti che siano a loro volta pre-distinte (distinte nidificate): in tal caso blocca l'operazione e richiede la cancellazione preventiva delle figlie.
Flusso principale¶
- Inizializzazione (
inizio): controllo abilitazione, apertura file, lettura azienda - Selezione merce padre (
a7): accept codice merce tramite COGS22, con ricerca merci temporanee via WIN046 (F4) - Validazione (
a8): verifica che il codice sia in COGMERTP, che non sia anche in COGMERCI, e che sia di tipo padre (mtp-padre = 'P') - Conferma (
a10->a11): richiesta conferma (F3); se confermato: cont-padreTHRUex-cont-padre: verifica assenza pre-distinte figliex1-e000THRUex-x1-e000: cancellazione record COGDBPREx1-f000THRUex-x1-f000: cancellazione offerte COGOFFCLx1-g000THRUex-x1-g000: cancellazione merce padre COGMERTPx1-h000THRUex-x1-h000: cancellazione note COGDBAGG- Chiusura (
z-chiudi): close file, exit program
File e tabelle acceduti¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| COGMERCI | mer-rec | Input | Anagrafica merci - verifica che il codice non sia gia' definitivo |
| COGMERTP | mtp-rec | I-O | Merci temporanee - lettura e cancellazione padre |
| COGDBPRE | dbp-rec | I-O | Pre-distinta base - lettura e cancellazione componenti |
| COGOFFCL | ofc-rec | I-O | Offerte clienti - cancellazione offerte collegate |
| COGDBAGG | dbg-rec | I-O | Note aggiuntive distinta base - cancellazione note tipo 'P' |
| FEURTAB | feurtab | Input | Tabella generale Eurosystem |
Copybook inclusi¶
Strutture dati¶
| Copybook | Contenuto |
|---|---|
cogfiles.cpy |
FD feurtab |
cogmerci.cpy |
Anagrafica merci |
cogmertp.cpy |
Merci temporanee |
cogdbpre.cpy |
Pre-distinta base |
cogoffcl.cpy |
Offerte clienti |
cogdbagg.cpy |
Note distinta base |
cogazien.cpy |
Dati azienda |
FD e chiavi¶
| Copybook | Contenuto |
|---|---|
feurtab.fd / cogmerci.fd / cogmertp.fd / cogdbpre.fd / cogoffcl.fd / cogdbagg.fd |
SELECT file |
cogmerci.k01 |
Lettura chiave primaria COGMERCI |
cogmertp.k01 |
Lettura chiave primaria COGMERTP |
Working e utility¶
| Copybook | Contenuto |
|---|---|
wstato.cpy / wopenf.cpy / wgrave.cpy / wnscr.cpy |
Working storage comuni |
utils22.cpy |
Interfaccia COGS22 (selezione merce) |
stato.cpy / stato1.cpy |
Gestione stato file |
winmsg.cpy |
Messaggi a video |
open1.cpy |
Apertura file |
mmmask.cpy |
Gestione maschera (standalone) |
grave.cpy |
Gestione errori gravi |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COGS22 | Selezione codice merce (gruppo/sottogruppo/codice + descrizione) |
| WIN046.COB | Ricerca merci temporanee per codice (F4) |
Logica di business¶
Controllo pre-distinte nidificate (cont-padre)¶
Scansiona COGDBPRE per chiave padre (gru/sot/cod del padre selezionato). Per ogni componente con dbp-fl-mt <> 'M', legge COGMERTP sul figlio. Se il figlio ha mtp-padre = 'P', blocca: prima occorre cancellare la pre-distinta figlia.
Cancellazione componenti (x1-e000)¶
Scansione sequenziale COGDBPRE per chiave padre. DELETE di tutti i record trovati.
Cancellazione offerte (x1-f000)¶
Scansione sequenziale COGOFFCL per chiave alternativa ofc-chia1 (padre + qta + data + cli + prog). DELETE di tutti i record offerta del padre.
Cancellazione merce padre (x1-g000)¶
Scansione completa COGDBPRE su dbp-merce-f per verificare che il padre non sia componente figlio di altre pre-distinte. Se non e' referenziato, DELETE del record COGMERTP del padre. Se e' referenziato, la merce padre viene preservata.
Cancellazione note (x1-h000)¶
Scansione COGDBAGG con dbg-tip = 'P' e dbg-db = tm-macro e dbg-comp = LOW-VALUES. DELETE di tutti i record nota trovati.
Variabili di stato principali¶
| Variabile | Descrizione |
|---|---|
tab-maschera / tm-macro |
Codice merce padre selezionato (gru + sot + cod) |
tm-desc-macro |
Descrizione della merce padre |
util-5 |
Struttura per ricerca merci temporanee (WIN046) |
util-s22 |
Struttura interfaccia COGS22 |