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.
Menu¶
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(SELECTinpfildichiarato inline); FD viacogm58.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 inlineutil-s61eutil-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¶
apri:ctr-abil,z-99-init-program,open-files,rd-azi; lettura configurazioni (x99-src-cfgGESTBUONIP,x999-src-cfgPROGCOGV51,x991-src-cfgpath interscambio / gestione-tablet / modula-db-frontiera); riconosce la chiamata esterna viautilcogm59(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).- Operazione silente: se chiamato da COGD25 con
CANCELLA-SILENTeseguec-cancella-silente termina senza aprire la maschera. a4: reset maschera; legge la data di consolidamento (COGTABEL tipo 57 vialeggi-consolidato); se in modalita' richiamata predispone la chiave.- 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-chiaveleggecogtesbp; blocca i buoni collegati alla procedura "Assist" e gestisce i buoni chiusi (dialoghi di riapertura/sola visualizzazione, TASK-1363). a-fine-controlli:cerca-mdtes/cerca-impcaverificano se il buono e' collegato a Modula o a un'assegnazione carico e impostanofl-ok-var/fl-ok-var-modula/fl-no-agglimitando le modifiche.- Accept testata (
a-tm-data,a-tm-fl-provv,a-tm-cli,a-tm-rif,a-tm-pag,a-tm-note): ogni campo ha unx-controlla-...; F3 va aa-fine-datitramitectrl-modifica. 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 poia1-aggiorna.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 (semodula-db-frontieranon attivo).ins-desc-aggpropaga le descrizioni aggiuntive.a-dialogs(post-salvataggio): F3 rientra in gestione del buono, F9 stampa (COGP64).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.- Interscambio DM:
x-int-dm-esporta(griglia -> COGPA9 -> file Excel, poi COPIAF) ex-int-dm-importa(file -> COGPA9 -> righe griglia). 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 dawgrid.cpy+utilgdad.cpy+GRIDADMN), non una VSFlexGrid; il menu pop-up e' gestito conW$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 incancella: 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-okec-end-cancella) e WMSW01; i flagtm-invio-modula/tm-inviato-modulae la qta evasa risiedono sucogtbpap(letta/scritta come appendice della testata, conottieni-qta-evasa-modulache sommamdr-qta-evasa). - La modalita'
modula-db-frontiera="S" (configsistmga001) 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.