COGV13 - Merce -> Fornitori¶
Sorgente: cbl/cogv13.cbl | Program-ID: COGV13 | Tipo: Programma interattivo con griglia (GUI, richiamabile da altri programmi)
Menu: Magazzino > Archivi & Tabelle > Merci Fornitori > Merce -> Fornitori
Scopo¶
Gestione dell'anagrafica merci-fornitori (COGMERFO) partendo da una merce (gruppo/sottogruppo/codice). Il programma carica in una griglia editabile l'elenco dei fornitori collegati alla merce selezionata, con codice merce fornitore (CMF), descrizione, unita' di misura, confezione, divisa, prezzi (lordo/netto/sconto), prezzo di listino corrente e i flag fornitore preferenziale ("P") e fornitore fabbricante ("F"). In aggiornamento consente di inserire, modificare ed eliminare le righe, aggiornando anche le anagrafiche generiche merce-fornitore (COGGENMF), i listini (COGLISFO), le stringhe di ricerca e le note.
Il programma puo' essere richiamato da COGV06 (area wo-passw-area = 'COGV06'): in tal caso, se e' passato un codice fornitore, delega interamente la gestione a COGVA1 e termina. Un parametro cogv13-cmf-fabb viene restituito al chiamante con il CMF del fabbricante.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indexed | Input | Tabella nomi file (assegnazione dinamica) |
| COGTABEL | Indexed | Input | Tabella generica |
| COGMERCI | Indexed | Input | Anagrafica merci (um, confezione) |
| COGGEANA | Indexed | Input | Anagrafica clienti/fornitori (tipo "F") |
| COGMERFO | Indexed | I-O | Anagrafica merci-fornitori (record principale gestito) |
| COGLISFO | Indexed | I-O | Listini fornitore per merce |
| COGGENMF | Indexed | I-O | Anagrafica generica merce-fornitore (prezzi, sconto, descrizione) |
| COGCNDCF | Indexed | I-O | Condizioni cliente/fornitore (flag "FP" preferenziale, "FF" fabbricante) |
| COGDESCR | Indexed (varying) | I-O | Descrizioni/note associate (tipo "NM") |
| LODTMDES | Indexed | I-O | File temporaneo di lavoro per le note (nome a runtime: ext-tmp-dir/#$BOGV13.{wo-oper}) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd | SELECT tabella nomi file |
| cogv13.select / cogv13.fd | SELECT/FD generati da Screens (COGTABEL, COGMERCI, COGGEANA, COGMERFO, COGLISFO, COGGENMF, COGCNDCF, COGDESCR) |
| cogfiles.cpy | Record FEURTAB |
| lodtmdes.fd / lodtmdes.cpy | SELECT/FD file temporaneo note |
| cogv13.wrk | Working-storage generato da Screens |
| k-u10.cpy | Costanti importi |
| wgrave.cpy | Gestione errori gravi |
| wnscr.cpy | Dati schermo |
| wopenf.cpy | Apertura file |
| wstato.cpy | Stato I/O |
| cogazien.cpy | Dati azienda |
| utilcogfa2.cpy | Linkage COGFA2 |
| utilu20.cpy | Utility COGU20 |
| utils38.cpy | Utility COGS38 (stringhe ricerca) |
| utils39.cpy | Utility COGS39 (stringhe ricerca) |
| utils65.cpy | Utility COGS65 (ricerca anagrafica) |
| utils68.cpy | Utility COGS68 (ricerca merce) |
| utilu10.cpy | Utility importi COGU10 |
| utilv19.cpy | Linkage COGV19 (listino) |
| utilzde.cpy | Linkage COGZDEW (note) |
| utils40.cpy / utils41.cpy / utils42.cpy | Utility COGS40/41/42 (stringhe ricerca COGGENMF) |
| utils52.cpy | Utility date COGS52 |
| wgrid.cpy | Gestione griglia |
| utilgdad.cpy | Linkage GRIDADMN |
| utilncnf.cpy | Linkage RNEWCONF (configurazioni) |
| wcont.cpy | Linkage stringhe comuni |
| utilcogv13.cpy | Linkage parametri COGV13 (ope, forn, merce, cmf-fabb) |
| utilcogva1.cpy | Linkage COGVA1 |
| wcont1.cpy | Linkage area utente 2 |
| grave.cpy | Paragrafi errori gravi |
| mmmask.cpy | Paragrafi init/exit programma |
| opengen.cpy | Apertura file generica |
| stato.cpy / stato1.cpy | Controllo stato I/O |
| winmsg.cpy | Messaggi a video |
| getdcont.cpy | Lettura dati contabilita'/divisa conto |
| cogcndcf.k02 | Accesso COGCNDCF per chiave secondaria k02 |
| lodtmdes.k01 | Accesso LODTMDES per k01 |
| cogv13.prc | Paragrafi di gestione griglia/controlli generati da Screens |
Logica di elaborazione¶
- Ingresso e delega a COGVA1: se richiamato da
COGV06con codice fornitore valorizzato (cogv13-forn > 0), imposta i parametri COGVA1 e delega tutta la gestione a COGVA1, poi esce (goback). - Inizializzazione: lettura dati azienda, apertura file, lettura configurazione (paragrafo
x99-confi), costruzione del nome del file temporaneo note (LODTMDES), lettura divisa conto (get-divisa-conto), caricamento bitmap e pulsanti custom (Note F4, Dichiarazioni di origine F2), preparazione e costruzione della grigliae-tm-tab. Il file temporaneo LODTMDES viene aperto in output e riaperto in i-o; se gia' in uso dall'operatore viene segnalato e il programma si chiude. - Impostazione modalita': la modalita' iniziale e' "A" (aggiornamento). La modalita' "S" (selezione) e' predisposta ma il ramo
w-dc-called = "S"risulta commentato nel codice attuale. - Input merce (
a-tm-r-merce): accept del gruppo/sottogruppo/codice merce con aiuto COGS68; validazione tramite COGMERCI (x-controlla-tm-r-merce), da cui si ricavano um e confezione di default. F1 apre la configurazione (RNEWCONF). - Caricamento griglia (
a-avanti/a10-loop): scansione di COGMERFO per la merce selezionata (st-cogmerfo-notmin+rdnxt, rottura su gru/sot/cod). Per ogni fornitore valido (mfr-fornon zero) carica in griglia: codice/descrizione fornitore (COGGEANA tipo "F"), CMF, descrizione, um, confezione, divisa; prezzi lordo/netto/sconto da COGGENMF; listino corrente da COGLISFO (load-lis); flag preferenziale/fabbricante da COGCNDCF ("FP"/"FF",ft-src-prf/ft-src-fab); presenza note (COGDESCR tipo "NM"). Limitek-max-ele-tab = 500righe. - Gestione griglia (
a-grid/a-accept-grid): accept sulla griglia con gestione eventi. Tasti funzione: - F2: dichiarazioni di origine per merce/fornitore (COGFA2).
- Shift-F4: amministrazione colonne griglia (GRIDADMN).
- F3: salvataggio (
a1-aggiorna) con controllo dei dati, poi ricaricamento; oppure passaggio selezione/aggiornamento nella variante richiamata. Bloccato in base alle abilitazioniw-abi-ins/w-abi-agg. - F4: gestione note della riga (COGZDEW, con travaso descrizioni COGDESCR <-> LODTMDES).
- F6: apertura listino fornitore per la riga (COGV19).
- Ctrl-A: aggiunge una riga (solo in aggiornamento).
- Ctrl-E: elimina la riga corrente (con conferma e controllo abilitazione
w-abi-del). - Sui campi flag preferenziale/fabbricante (
z-usa-tf-tm-tab-ep) eseguee1-chg-prf/e2-chg-fabper aggiornare in tempo reale COGCNDCF. - Salvataggio (
a1-aggiorna->b-aggiorna->b2-agg-m): confronto tra fornitore precedente (tm-w-forn) e attuale (tm-for-cod) di ogni riga per decidere rewrite/insert/delete su COGMERFO. In prima fase cancella i riferimenti preferenziale/fabbricante precedenti e gestisce i nuovi (COGCNDCF), in seconda fase inserisce le nuove righe. Ad ogni operazione aggiorna le stringhe di ricerca (COGS38/COGS39) e, se abilitata la gestione da CMF, l'anagrafica COGGENMF con relative stringhe (COGS40/COGS41/COGS42) e il listino COGLISFO. - Gestione da CMF: il comportamento dei campi prezzo/sconto/CMF e la sincronizzazione con COGGENMF/COGLISFO sono condizionati dalla chiave di configurazione
GESTIONE-DA-CMF(gruppoLISTGENF, pack COGE), letta inx99-confiintm-cfg-gestione-da-cmf. Se non attiva ('S'), le celle prezzo/sconto/data non sono editabili (paragrafiz-tm-tab-*-be-ep). - Chiusura (
z-chiudi): chiusura file e del temporaneo LODTMDES, cancellazione dei moduli COGZDEW e (se gestione da CMF) COGS40/COGS41/COGS42, chiusura finestra e uscita.
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGVA1 | Gestione merci-fornitori per fornitore (delega quando richiamato da COGV06 con fornitore) |
| COGFA2 | Dichiarazioni di origine merce/fornitore (F2) |
| GRIDADMN | Amministrazione/preparazione colonne della griglia |
| COGV19 | Gestione listino fornitore per la riga (F6) |
| COGZDEW | Gestione e visualizzazione note (F4) |
| COGU10W | Gestione e visualizzazione importi/prezzi |
| COGS38 | Aggiornamento stringhe di ricerca |
| COGS39 | Aggiornamento stringhe di ricerca (CMF) |
| COGS40 | Ricostruzione stringhe di ricerca COGGENMF |
| COGS41 | Ricostruzione stringhe di ricerca COGGENMF |
| COGS42 | Ricostruzione stringhe di ricerca COGGENMF (descrizione) |
| RNEWCONF | Lettura configurazione (chiave GESTIONE-DA-CMF) |
Storico modifiche¶
Fix listino (marcatore 140223, segnalazione Cortesi)¶
Nel paragrafo aggiorna-coggenmf, in presenza di una data listino sulla riga, il listino su COGLISFO viene ora inserito solo se non ne esistono gia' (controllo presenza-lis -> w-listino-trovato), per evitare di inserire/sovrascrivere listini non voluti dall'utente. La variabile w-listino-trovato e' introdotta appositamente.