COGB10 - Inserimento Bolle con MW-20
Sorgente: cbl/cogb10.cbl | Program-ID: COGB10 | Tipo: Interattivo batch (raccolta dati + inserimento)
Menu: Magazzino > Uscite > Bolle Accompagnatorie > Bolle con MW-20 > Inserimento, Vendite > Bolle Vendita > Bolle da MW-20 > Inserimento
Scopo
Crea bolle di accompagnamento (COGTESBO + COGMOMAG) a partire da dati raccolti con lettore barcode portatile MW-20. Il programma scarica il file dati dal dispositivo, interpreta i barcode (clienti, vettori, estremi, articoli EAN-13), cerca prezzi e ordini, e inserisce il documento completo nel sistema. L'interfaccia e' a caratteri (maschera 80x25).
File e tabelle
| File/Tabella |
Tipo |
Modalita' |
Descrizione |
| FEURTAB |
Tabella |
Input |
Tabella generale Eurosystem |
| COGTABEL |
Tabella |
Input |
Tabelle di sistema (tipo 15: causali, tipo 14: pagamenti, tipo 71: estremi) |
| COGMERCI |
Tabella |
Input |
Anagrafica merci (chiave primaria e K2 per EAN) |
| COGGEANA |
Tabella |
Input |
Anagrafica generale (clienti, vettori) |
| COGMAGAZ |
Tabella |
Input |
Anagrafica magazzini |
| COGTESBO |
Tabella |
I-O |
Testata bolle - documento creato |
| COGMOMAG |
Tabella |
I-O |
Movimenti magazzino - righe create |
| COGTESOR |
Tabella |
Input |
Testata ordini (per collegamento ordini) |
| COGRIGOR |
Tabella |
Input |
Righe ordini (per collegamento ordini) |
| COGMERAP |
Tabella |
Input |
Dati merci appoggio (centro costo) |
| COGDESOR |
Tabella |
I-O |
Descrizioni ordini (aspetto esteriore) |
| COGMW10 |
File |
Input |
File dati scaricato da MW-20 (line sequential) |
| COGTRANS |
File temp |
I-O |
Transito righe ordini aperti (indicizzato, 2 chiavi) |
Copybook utilizzate
| Copybook |
Descrizione |
cogfiles.cpy |
Struttura generica FEURTAB |
cogtabel.cpy |
Record tabelle di sistema |
cogmerci.cpy |
Record anagrafica merci |
coggeana.cpy |
Record anagrafica generale |
cogmaga2.cpy |
Record anagrafica magazzini |
cogtesbo.cpy |
Record testata bolle |
cogmomag.cpy |
Record movimenti magazzino |
cogtesor.cpy |
Record testata ordini |
cogrigor.cpy |
Record righe ordini |
cogmerap.cpy |
Record merci appoggio |
cogdesor.cpy |
Record descrizioni ordini |
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy |
Working storage comuni |
utils25.cpy |
Utility numerazione progressiva |
utilw92.cpy |
Utility destinazione diversa |
utilu09.cpy |
Utility legame ordine-consegna |
utilu10.cpy |
Utility divisa/arrotondamento |
utilu12.cpy |
Utility generica |
utilu20.cpy |
Utility numerica |
cogazien.cpy |
Dati azienda |
utilncnf.cpy |
Interfaccia configurazione RNEWCONF |
Linkage
| Copybook |
Descrizione |
wcont.cpy, wcont1.cpy |
Contesto chiamante |
utils01.cpy |
Interfaccia COGS01 (ricerca listino) |
utilv52.cpy |
Interfaccia generica |
Struttura del programma
Variabili della maschera (tab-maschera)
| Variabile |
PIC |
Descrizione |
tm-divisa |
X(02) |
Divisa di conto |
tm-tip-bol |
X(01) |
Tipo bolla (default "I") |
tm-num-bol |
9(06) |
Numero bolla (da numeratore) |
tm-data |
9(08) |
Data bolla |
tm-cau |
9(02) |
Causale |
tm-fat |
X(01) |
Flag da fatturare (S/N) |
tm-cli |
9(05) |
Codice cliente |
tm-mag |
X(01) |
Magazzino |
tm-dst-id |
compound |
Destinazione diversa (tipo+indice) |
tm-lis |
9(02) |
Listino |
tm-fascia |
9(02) |
Fascia prezzo |
tm-com |
9(05) |
Committente |
tm-tra |
X(01) |
Trasporto (V/D/M) |
tm-pag-1 |
9(02) |
Pagamento |
tm-tip-pag |
X(01) |
Tipo pagamento |
tm-data-tra |
9(08) |
Data partenza |
tm-ora-tra |
9(04) |
Ora partenza |
tm-asp |
X(40) |
Aspetto esteriore |
tm-porto |
X(10) |
Porto |
tm-fl-ord |
X(01) |
Flag ordini trovati |
Righe (tm-righe, max 100)
| Variabile |
PIC |
Descrizione |
tamerce(i) |
X(09) |
Codice merce (gru+sot+cod) |
tarigpro(i) |
9(04) |
Progressivo riga ordine |
tadesc(i) |
X(34) |
Descrizione |
taum(i) |
X(02) |
Unita' di misura |
taqta(i) |
9(06) |
Quantita' |
taqtaord(i) |
9(06) |
Quantita' da ordine |
taprezzo(i) |
9(12)V999999 |
Prezzo netto |
taprensc(i) |
9(12)V999999 |
Prezzo senza sconto |
tasc1(i), tasc2(i) |
S9(02)V99 |
Sconti |
taimpo(i) |
9(12)V999999 |
Importo riga |
tacolli(i) |
9(03) |
Colli |
taiva(i) |
X(02) |
Codice IVA |
tacont(i) |
9(03) |
Conto |
tacc(i) |
9(03) |
Centro costo |
tariford(i) |
compound |
Riferimento ordine (anno+numero+progressivo) |
taimpegno(i) |
X(01) |
Flag impegno |
Configurazione (tm-cfg)
| Variabile |
Descrizione |
tm-cfg-com |
Porta COM per MW-20 |
tm-cfg-vel |
Velocita' comunicazione |
Flusso principale
- m-00 - Inizializzazione, recupero divisa di conto (COGU10), apertura file
- a4 - Visualizzazione maschera, inizializzazione, lettura configurazione
- a10 - Attesa ricezione: ciclo messagebox ESC/F3
- a-prepara - Scarico dati MW-20:
- Chiama
RD10 (comando sistema) per comunicazione con dispositivo
- Apre il file
MWDATI.<operatore>
- a-10-loop - Parsing barcode:
- Identifica delimitatori
[...] nel record
- Se 8 cifre:
a1-cliente (tipo 1), a2-vettore (tipo 2), a3-estremi (altro)
- Se >8 cifre:
a4-riga (EAN-13 su COGMERCI K2)
- a5-dati-sistema - Completa con data/ora sistema, magazzino principale
- a6-completa - Validazione dati obbligatori (causale, cliente, righe)
- a61-prezzo - Per ogni riga: ricerca prezzo via COGS01
- a62-prepara-ordini - Crea file transito con ordini aperti del cliente
- a63-ctr-ord - Abbina righe articolo a righe ordine
- a7-visua - Visualizza la bolla completa sulla maschera
- c-aggiorna - Inserimento:
- c-00-num: numerazione bolla via COGS25 (cod 3 per tipo I, cod 6 per altri)
- c-05-wr: write testata COGTESBO
- c-10-loop: write righe COGMOMAG
Chiamate esterne
| Programma |
Modalita' |
Scopo |
| COGS01 |
CALL |
Ricerca prezzo listino |
| COGS25 |
CALL |
Numerazione progressiva bolle |
| COGU10 |
CALL |
Utility divisa ("GetDivisaConto", "Arrotonda") |
| SYSTEM (RD10) |
CALL |
Comunicazione con dispositivo MW-20 |
Note
- Il programma usa interfaccia a caratteri (maschera
mm-1 di 80x25 colonne), non GUI con Screen Designer.
- Il file dati MW-20 si trova nella directory temporanea come
MWDATI.<operatore>.
- Il file transito ordini si trova nella directory temporanea come
#$COGB10.<operatore>.
- La divisa della bolla e' sempre la divisa di conto (
w-currency-conto) determinata all'avvio tramite COGU10.
- Il collegamento ordine-consegna (utility COGU09) e' presente nel codice ma interamente commentato.
- La sezione di sdoppiamento righe per quantita' ordine > quantita' bolla e' anch'essa commentata.
- Le sezioni di elaborazione usano
PERFORM ... THRU (stile legacy).