COGM45 - Duplicazione Bolle¶
Funzione¶
Crea una copia esatta di una bolla di consegna gia' emessa su un magazzino e cliente di destinazione diversi. Duplica la testata (COGTESBO), tutte le righe di movimento (COGMOMAG) e le descrizioni aggiuntive (COGDESAG). Per ogni riga duplicata aggiorna la giacenza del magazzino di destinazione tramite COGU12.
Menu¶
- Magazzino > Uscite > Bolle Accompagnatorie > Duplicazione bolle
Tabelle e file principali¶
| Tabella | Descrizione | Accesso |
|---|---|---|
| FEURTAB | Tabella file/directory | R |
| COGTESBO | Testata bolle (file origine, prefisso oritesbo) |
R - tramite directory configurata |
| COGMOMAG | Righe movimenti magazzino (file origine, orimomag) |
R - tramite directory configurata |
| COGDESAG | Descrizioni aggiuntive (file origine, oridesag) |
R - tramite directory configurata |
| COGTESBO | Testata bolle (file destinazione) | W - da cogm45.select |
| COGMOMAG | Righe movimenti (file destinazione) | W - da cogm45.select |
| COGDESAG | Descrizioni aggiuntive (file destinazione) | W - da cogm45.select |
Il programma apre due istanze separate di COGTESBO, COGMOMAG e COGDESAG: una in lettura (il file di origine dalla directory configurata, con prefisso ori-) e una in scrittura (il file principale del gestionale, da cogm45.select).
Chiavi di accesso ai file origine¶
oritesbo: chiave primariao-tes-chia3(mag+anno+tipob+bolla), chiavi secondarie per data, agente, numero bolla fornitore, tipo cliente/nonno/flagfat.orimomag: chiave primariao-mag-chiap(mag+anno+tipob+bolla+prog), chiavi secondarie per articolo e giacenza.oridesag: chiaveo-dag-chia(R/M + mag + anno + tipo + bolla + prog).
Logica principale¶
Flusso di elaborazione¶
-
Configurazione directory: il programma legge la directory di origine degli archivi (
a4-conf) tramitex99-src-cfgex99-rd-cfg. Se non configurata, chiede all'operatore. Apre i tre file origine in input. -
Raccolta dati (maschera
cogm45-01.scr): a-tm-cli: cliente destinatario (util-s65, F1 per configurazione)a-tm-doc-mag: magazzino della bolla originea-tm-doc-ann: anno della bolla origine (F8 calendario, util-s52)a-tm-doc-tip: tipo documento originea-tm-doc-num: numero bolla origine-
a-tm-new-mag: magazzino di destinazione (F8 ricerca tramitesend-w36) -
Conferma e ricerca numerazione: dopo la conferma (
acc-conf), il programma: - Copia i dati della bolla origine in
tm-ori-bolla - Chiama
COGS25per ottenere il prossimo numero progressivo per il magazzino/anno/tipo destinazione (codice 3 per tipo "I", 6 altrimenti) -
Se la numerazione non viene trovata o e' zero, interrompe con messaggio di errore
-
Duplicazione testata (
c-05-wr): leggeo-tes-recdaoritesboe scrivetes-recsu COGTESBO destinazione, aggiornando magazzino, numero bolla e cliente (tes-nonno). -
Duplicazione righe (loop
s1-20-loop): scorriorimomagcon start sulla chiave primaria (mag+anno+tipob+bolla, prog=0), per ogni riga: - Verifica che la riga appartenga ancora alla bolla origine (rottura su mag/anno/tipo/bolla)
- Copia
o-mag-reczinmag-recz, aggiorna magazzini (mag-mag1/2/3/5), numeri bolla (mag-bolla1-6), cliente (mag-nonno,mag-nonno6) - Scrive su COGMOMAG destinazione
-
Aggiorna la giacenza tramite COGU12 (
u12-tipo = "G", usamag-qtamagaz,tes-causale,mag-entrusc) -
Duplicazione descrizioni aggiuntive (
c15-dag, loopc50-dag): scorrioridesagcon start suo-dag-chia(R + mag + anno + tipo + bolla + prog=0), per ogni descrizione: - Verifica appartenenza alla bolla origine
- Copia
o-dag-recindag-rec, aggiorna magazzino e numero bolla -
Scrive su COGDESAG destinazione
-
Finestra di esito (
c99-dag): mostra il numero della bolla creata tramiteDIALOGS. Opzioni: - Esc: torna all'inizio per nuova duplicazione
- F3: apre COGV56 sulla nuova bolla (tramite
v11-called = "COGV56-CALLED")
Struttura di linkage¶
Il programma puo' ricevere in linkage (da wcont.cpy) la struttura util-v11 con:
- v11-called: stringa chiamante
- v11-doc: riferimento documento (mag, ann, tip, num)
Al termine, se F3, popola v11-called = "COGV56-CALLED" e v11-doc con i dati della bolla creata prima di chiamare COGV56.
Chiamate principali¶
| Programma | Scopo |
|---|---|
| COGS25 | Ricerca prossimo numero progressivo bolla |
| COGU12 | Aggiornamento giacenza per ogni riga duplicata |
| COGV56 | Gestione bolla creata (apertura opzionale al termine) |
| DIALOGS | Finestra di dialogo esito duplicazione |
Note tecniche¶
- I tre file di origine (
oritesbo,orimomag,oridesag) usano la copybook standard (cogtesbo.cpy,cogmomag.cpy,cogdesag.cpy) conreplacingper rinominare tutti i campi con prefissoo-, evitando conflitti con i file destinazione dichiarati incogm45.select. - La directory di origine e' configurabile: in ambienti con archivi separati (es. storico vs. corrente) il programma puo' duplicare bolle da un archivio diverso da quello di produzione.
- Il campo
tm-tip-anae' inizializzato a"C"(cliente) ad ogni ciclo. - Il codice personalizzazione
k-personal.cpye' incluso ma non risulta attivamente utilizzato nella logica di duplicazione. - L'aggiornamento giacenza usa sempre il tipo
"G"(scarico normale); la quantita' e'mag-qtamagaz(quantita' di magazzino gia' con segno dalla riga originale).