Vai al contenuto

COGM58 - Inserimento / Gestione Buoni di Prelievo

Scopo

Programma GUI per l'inserimento, la modifica, la cancellazione e la consultazione dei Buoni di Prelievo (BDP). L'operatore seleziona la chiave (magazzino / anno / numero, con eventuale mese-giorno per numerazione a lotto), compila la testata (cliente, riferimento, pagamento, note, provvisorio) e inserisce le righe articolo in una griglia con prezzi da listino, sconti, IVA, lotti e collegamento alle consegne d'ordine. Alla conferma scrive testata (cogtesbp) e righe (cogrigbp), aggiorna le giacenze di prelievo via COGU12 e, per gli articoli gestiti a Modula, inoltra i movimenti a COGD53. Supporta l'esplosione di distinta base, l'import da terminale MemoWand e l'interscambio documenti (import/export) verso Excel via COGPA9.

Magazzino > Entrate > Buoni di Prelievo > Inserimento

File e tabelle

File Tipo Descrizione
FEURTAB Parametri File di ambiente / parametri (cogfiles.cpy)
COGTESBP Indicizzato Testata BDP (tbp-mag/tbp-aa/tbp-num/tbp-mm/tbp-gg, tbp-chia1); campi tbp-fl-cls (stato A/C), tbp-cli, tbp-fl-provvisorio, tbp-fl-chiam
COGRIGBP Indicizzato Righe BDP (rbp-mag..rbp-num/rbp-prog, rbp-merce, rbp-qta, rbp-consegna k04, rbp-lotto)
COGGENER Indicizzato Legami generici: bolle (tip "BB"), evasione ("EB"), serial ("CB"/"CM"/"CS"); scandito per chiave 2
COGTBPAP Indicizzato Appendice testata BDP: dati Modula (invio/inviato, lista, qta evasa)
COGMDTES / COGMDRIG Indicizzato Testata/righe Modula (raccordo mdt-doc, mdr-qta-evasa)
COGIMPCA Indicizzato Impegni/assegnazioni carico collegate al BDP (chiave 2, mpc-rif-doc, mpc-tip="B")
COGISIRR Indicizzato Registro ISIR (isir-bdp-controllo, chiave 4)
COGTESBO / COGTESOR Indicizzato Testate bolle / ordini (letture di raccordo)
COGRIGOR / COGCONOR Indicizzato Righe ordine (k03) e consegne d'ordine (cor-qta, cor-qtacons)
COGMERCI / COGMERLT Indicizzato Anagrafica merci (mer-modula, mer-lotti, mer-codiva) e lotti merce
COGGEANA Indicizzato Anagrafica clienti
COGMAGAZ Indicizzato Anagrafica magazzini (magz-tipo='M')
COGTABEL Indicizzato Tabelle: IVA (tipo 67), consolidamento (tipo 57), causali
COGRACMC Indicizzato Raccordo codici merce (cod AVA, chiave 2)
TRAN-S16 Sequenziale/temp Transito esplosione distinta base (#$COGS16.<oper>)
TRAN-S47 Sequenziale/temp Transito descrizioni aggiuntive riga (#$COGS47.<oper>)
INPFIL Sequenziale (line) File import terminale MemoWand (seq-ean, seq-qta)
COGPA9-T-DATI Temp File dati temporaneo di interscambio documenti (COGPA9)

Copybook

File e select

  • feurtab.fd, cogm58.select, tran-s16.fd, tran-s47.fd (SELECT inpfil dichiarato inline); FD via cogm58.fd, tran-s16.cpy, tran-s47.cpy
  • Chiavi secondarie: cogmdtes.k02, cogimpca.k02, coggener.k02, cogtesbp.k02, cogtesor.k02, cogrigor.k03, cogrigbp.k04, cogracmc.k02, cogisirr.k04, tran-s16.k01, tran-s47.k01
  • Screen designer (in cbl/screens/): cogm58.select, cogm58.fd, cogm58.wrk, cogm58-01.scr, cogm58.decla, cogm58.prc, cogm58.tm

Costanti / working-storage di dominio

  • cogm58.wrk, k-personal.cpy, k-tipi-cogtabel.cpy, l-copiaf.cpy, k-modelli-ie-int-dm.cpy, costanti-modula.cpy, k-u10.cpy, wrk-u10.cpy

Working-storage standard

  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy

Utilita' / linkage subroutine

  • utilgdad.cpy (GRIDADMN), utilncnf.cpy (RNEWCONF), utild53.cpy (Modula), utilu10.cpy/utilu12.cpy/utilu20.cpy (valute/giacenze), utilm12.cpy (prezzi precedenti), utils47.cpy/utils52.cpy/utils25.cpy/utils65.cpy/utils68.cpy/utils93.cpy (t.f. campi), utilw36.cpy/utilw97.cpy (aiuti), utildlg.cpy (DIALOGS), utilcogo05e.cpy, utilu01.cpy/utilu02.cpy (IVA esteri), utilwmsw01.cpy (db frontiera locazioni), utilcogpa9.cpy (interscambio DM)

Linkage

  • wcont.cpy, wcont1.cpy, utilcogm59.cpy (parametri di chiamata dall'esterno), utils01.cpy, utils08.cpy, utils16.cpy, utilp64.cpy, utilcogm65.cpy, u-copiaf.cpy; redefines inline util-s61 e util-s14

Procedure

  • grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, sendw36.cpy, getdcont.cpy, cogm58.prc

CALL

Programma Descrizione
COGS25 Numeratore buono (cod 11): nuovo numero in inserimento e azzeramento numerazione
COGU12 Aggiornamento giacenza di prelievo (u12-tipo="P", verso "U") per ogni riga inserita/cancellata
COGD53 Generazione/invio movimenti Modula (d53-tip="LP", causale "BP") per merci mer-modula="S"
WMSW01 Cancellazione movimenti del BDP dal db frontiera locazioni (cancella-bdp, cancella-bdp-altri) con gestione tablet
COGM65 Ricerca avanzata buoni (F9): restituisce il BDP selezionato
COGM12 Recupero ultimo prezzo praticato (F7 prezzi precedenti)
COGS47 Gestione descrizioni aggiuntive di riga (F5)
COGO05E Selezione merce per esplosione distinta base
COGS16 Esplosione distinta base (popola tran-s16)
COGS01 Ricerca prezzo/sconti da listino (x5-listino)
COGS08 Import dati da terminale MemoWand (x3-memowand)
COGU10 / COGU10W Arrotondamenti, cambi valuta, edit importi
COGU02 Dati anagrafici / IVA per clienti esteri (intracomunitari)
COGS14 Ricerca ordini aperti per cliente/merce (cerco-righe-ord)
COGS65W Gestione campo cliente con tasto funzione
WIN097 Selezione lotto/interno per l'articolo (F8 su cella lotto)
COGP64 Stampa del buono di prelievo (F9 nel dialogo finale)
COGPA9 Interscambio documenti DM: selezione modello, esportazione, importazione
COPIAF Cancellazione del file di testo di interscambio dopo l'export
RNEWCONF Lettura configurazioni (GESTBUONIP c053, magazzino/locazioni/modula-db-frontiera, PROGCOGV51 c041)
DIALOGS Dialoghi modali (riapertura/chiusura buono, cancellazione legami, dialogo post-inserimento)
GRIDADMN Amministrazione griglia AcuCOBOL (preparazione colonne, configurazione via Shift+F4)
W$MENU Creazione/distruzione menu pop-up della griglia (Interscambio documenti Esporta/Importa)

Logica di elaborazione

  1. apri: ctr-abil, z-99-init-program, open-files, rd-azi; lettura configurazioni (x99-src-cfg GESTBUONIP, x999-src-cfg PROGCOGV51, x991-src-cfg path interscambio / gestione-tablet / modula-db-frontiera); riconosce la chiamata esterna via utilcogm59 (es. da COGM65, COGF22, COGD25); imposta i tasti funzione, i pulsanti custom con bitmap (Inserimento F7, Azzera F9, Esplodi distinta Shift+F6); prepara la griglia (z-prepara-tm-grid, GRIDADMN) e aggancia il menu pop-up (build-menus).
  2. Operazione silente: se chiamato da COGD25 con CANCELLA-SILENT esegue c-cancella-silent e termina senza aprire la maschera.
  3. a4: reset maschera; legge la data di consolidamento (COGTABEL tipo 57 via leggi-consolidato); se in modalita' richiamata predispone la chiave.
  4. Accept chiave (a-tm-mag, a-tm-tbp-aa, a-tm-num, a-tm-tbp-mm, a-tm-tbp-gg): F7 avvia un nuovo buono (fl-vario="I"), F9 la ricerca avanzata (COGM65). a-fine-chiave legge cogtesbp; blocca i buoni collegati alla procedura "Assist" e gestisce i buoni chiusi (dialoghi di riapertura/sola visualizzazione, TASK-1363).
  5. a-fine-controlli: cerca-mdtes / cerca-impca verificano se il buono e' collegato a Modula o a un'assegnazione carico e impostano fl-ok-var/fl-ok-var-modula/fl-no-agg limitando le modifiche.
  6. Accept testata (a-tm-data, a-tm-fl-provv, a-tm-cli, a-tm-rif, a-tm-pag, a-tm-note): ogni campo ha un x-controlla-...; F3 va a a-fine-dati tramite ctrl-modifica.
  7. a-grid / a-accept-grid: gestione della griglia righe. Ctrl+A aggiunge, Ctrl+E elimina (c1-ctrl-canc), Shift+F6 esplode la distinta base (exp-dbase), F6 ricalcola da listino, F7 prezzi precedenti (send-m12), F5 descrizioni aggiuntive (send-s47). Le exception 151-199 attivano il menu pop-up di interscambio. Su F3 esegue il controllo consegne (x6-controllo-consegne, che verifica di non superare la qta di consegna) e poi a1-aggiorna.
  8. a-fine-dati -> a-fine-dati-ins -> a-fine-dati-ok (cuore del salvataggio): validazione e conferma; in inserimento assegna il numero via COGS25; in modifica cancella le righe preesistenti; scrive la testata (wr-cogtesbp) e cicla la griglia scrivendo le righe (wr-cogrigbp); per ogni riga aggiorna la giacenza (COGU12) e, se merce Modula su magazzino Modula, accumula un elemento per COGD53; a fine ciclo invia a COGD53 (se modula-db-frontiera non attivo). ins-desc-agg propaga le descrizioni aggiuntive.
  9. a-dialogs (post-salvataggio): F3 rientra in gestione del buono, F9 stampa (COGP64).
  10. cancella: conferme (incluso avviso se il BDP e' collegato a una lista Modula gia' evasa), c-cancella-righe (ripristino giacenza), c-cancella-legame-isir, c-cancella-coggener (CB/CM/CS), del-cogtesbp, del-cogtbpap, cancellazione raccordo "EB" e movimenti WMSW01, invio COGD53.
  11. Interscambio DM: x-int-dm-esporta (griglia -> COGPA9 -> file Excel, poi COPIAF) e x-int-dm-importa (file -> COGPA9 -> righe griglia).
  12. fine / z-chiudi: chiude i file, elimina tran-s16/tran-s47, distrugge il menu, exit program.

Note tecniche

  • La griglia di dettaglio e' un controllo AcuCOBOL evoluto (e-tm-tab, gestito da wgrid.cpy + utilgdad.cpy + GRIDADMN), non una VSFlexGrid; il menu pop-up e' gestito con W$MENU.
  • La numerazione ha due modalita' (tm-cfg-tip-num): 'L' (a lotto, con mese/giorno nella chiave) o 'A'; i campi mese/giorno di testata sono visibili solo in modalita' 'L'.
  • Marcatore *>DOC: presente in cancella: avviso di conferma alla cancellazione di un BDP collegato a una lista di prelievo Modula gia' evasa.
  • L'invio a Modula non ha un paragrafo dedicato: e' realizzato tramite COGD53 (in a-fine-dati-ok e c-end-cancella) e WMSW01; i flag tm-invio-modula / tm-inviato-modula e la qta evasa risiedono su cogtbpap (letta/scritta come appendice della testata, con ottieni-qta-evasa-modula che somma mdr-qta-evasa).
  • La modalita' modula-db-frontiera="S" (config sistmga001) limita le variazioni ai soli dati di testata e disabilita inserimento/cancellazione righe.
  • Chiamata dall'esterno tramite utilcogm59 (linkage): COGM59-CALLED con caller/operazione/chiave; operazione "CANCELLA-SILENT" da COGD25 esegue la cancellazione senza interfaccia.
  • Il file ha terminatori di riga misti (CRLF + NEL 0x85) che rendono inutilizzabili gli strumenti grep testuali su questo sorgente: l'analisi va fatta a lettura diretta.