Vai al contenuto

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

  1. Ingresso e delega a COGVA1: se richiamato da COGV06 con codice fornitore valorizzato (cogv13-forn > 0), imposta i parametri COGVA1 e delega tutta la gestione a COGVA1, poi esce (goback).
  2. 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 griglia e-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.
  3. 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.
  4. 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).
  5. 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-for non 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"). Limite k-max-ele-tab = 500 righe.
  6. Gestione griglia (a-grid/a-accept-grid): accept sulla griglia con gestione eventi. Tasti funzione:
  7. F2: dichiarazioni di origine per merce/fornitore (COGFA2).
  8. Shift-F4: amministrazione colonne griglia (GRIDADMN).
  9. F3: salvataggio (a1-aggiorna) con controllo dei dati, poi ricaricamento; oppure passaggio selezione/aggiornamento nella variante richiamata. Bloccato in base alle abilitazioni w-abi-ins/w-abi-agg.
  10. F4: gestione note della riga (COGZDEW, con travaso descrizioni COGDESCR <-> LODTMDES).
  11. F6: apertura listino fornitore per la riga (COGV19).
  12. Ctrl-A: aggiunge una riga (solo in aggiornamento).
  13. Ctrl-E: elimina la riga corrente (con conferma e controllo abilitazione w-abi-del).
  14. Sui campi flag preferenziale/fabbricante (z-usa-tf-tm-tab-ep) esegue e1-chg-prf/e2-chg-fab per aggiornare in tempo reale COGCNDCF.
  15. 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.
  16. 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 (gruppo LISTGENF, pack COGE), letta in x99-confi in tm-cfg-gestione-da-cmf. Se non attiva ('S'), le celle prezzo/sconto/data non sono editabili (paragrafi z-tm-tab-*-be-ep).
  17. 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.