Vai al contenuto

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

  1. m-00 - Inizializzazione, recupero divisa di conto (COGU10), apertura file
  2. a4 - Visualizzazione maschera, inizializzazione, lettura configurazione
  3. a10 - Attesa ricezione: ciclo messagebox ESC/F3
  4. a-prepara - Scarico dati MW-20:
    • Chiama RD10 (comando sistema) per comunicazione con dispositivo
    • Apre il file MWDATI.<operatore>
  5. 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)
  6. a5-dati-sistema - Completa con data/ora sistema, magazzino principale
  7. a6-completa - Validazione dati obbligatori (causale, cliente, righe)
  8. a61-prezzo - Per ogni riga: ricerca prezzo via COGS01
  9. a62-prepara-ordini - Crea file transito con ordini aperti del cliente
  10. a63-ctr-ord - Abbina righe articolo a righe ordine
  11. a7-visua - Visualizza la bolla completa sulla maschera
  12. 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).