Vai al contenuto

COGO55W - Inserimento/Gestione Ordini Fornitori e Buoni di versamento (versione grafica)

Sorgente: cbl/cogo55w.cbl | Tipo: Programma interattivo a maschera (worker) | Program-ID: COGO55W


Scopo

Worker grafico per l'inserimento e la gestione degli ordini a fornitore e dei buoni di versamento. E' il programma operativo lanciato da COGO55 quando la configurazione ordini / versione-programmi-of vale "GRAFICA".

Gestisce testata ordine (magazzino, fornitore, causale, condizioni di pagamento, divisa), righe merce/prestazioni con prezzi e sconti, consegne programmate, e l'allineamento delle anagrafiche merce-fornitore alla conferma delle righe.

Posizione menu:

Menu Percorso
Ordini Fornitori > Inserimento
Ordini Buoni di versamento > Inserimento

Vedi COGO55 per il lanciatore, la scelta versione grafica/carattere e il ramo "taglio lamiere".


File principali coinvolti (estratto)

Tabella Ruolo Campi chiave
COGTESOR (tor-*) Testata ordine fornitore tor-clifor (fornitore), tor-chia
COGRIGOR (ror-*) Righe ordine ror-gru / ror-sot / ror-cod (chiave merce)
COGMERFO (mfr-*) Codice merce del fornitore (collegamento merce ↔ fornitore) mfr-gru/mfr-sot/mfr-cod, mfr-for, mfr-cod-for, mfr-divisa, mfr-desc
COGGENMF (gmf-*) Listino generale fornitori gmf-cf (fornitore) + gmf-cmf (codice merce fornitore), gmf-dm, gmf-currency, gmf-molt-pre, gmf-pre-lor, gmf-pre-net, gmf-sco
COGDESOR (dor-*) Descrizioni aggiuntive righe ordine
TRAN-O55 File transitorio per la generazione consegne

Copybook principali

Copybook Descrizione
cogo55w.wrk / .select / .fd / .tm / .scr Screen Designer: working, select, fd, tab-maschera, screen
coggenmf.cpy (+ .k01) Record listino generale fornitori COGGENMF (gmf-rec)
cogmerfo.cpy Record codice merce fornitore COGMERFO (mfr-rec)
utils38.cpy Interfaccia COGS38 (indice ricerca COGRACMF su merce/fornitore)
utils39.cpy Interfaccia COGS39 (stringa ricerca COGSTCMF su codice merce fornitore)
utils40.cpy Interfaccia COGS40 (indice ricerca COGRACLF del listino generale)
utils41.cpy Interfaccia COGS41 (stringa ricerca COGSTLFM del listino generale)
utils42.cpy Interfaccia COGS42 (stringa ricerca COGSTLFD su descrizione merce del listino generale)
utilncnf.cpy Interfaccia RNEWCONF (lettura configurazioni)

Chiamate a sottoprogrammi (CALL)

Programma Scopo
RNEWCONF Lettura configurazioni (blocco x99-confi)
COGO16F Inserimento consegne programmate dell'ordine (giro TRAN-O55)
COGS38 Creazione/aggiornamento indice di ricerca COGRACMF (merce/fornitore)
COGS39 Gestione stringa di ricerca COGSTCMF (codice merce fornitore) — inserimento (I) o variazione (V)
COGS40 Aggiornamento indice ricerca COGRACLF del listino generale fornitori (ope I)
COGS41 Aggiornamento stringa ricerca COGSTLFM del listino generale fornitori (ope I)
COGS42 Aggiornamento stringa ricerca COGSTLFD su descrizione merce del listino generale (ope I/C)

Logica di elaborazione

Allineamento COGMERFO e stringhe di ricerca (paragrafo agg-prezzi)

Alla conferma delle righe, per ogni riga merce il programma aggiorna la tabella COGMERFO (codice merce del fornitore) e le relative stringhe di ricerca:

  1. Se tm-cfg-listino-unico = "S" il paragrafo esce subito (nessun aggiornamento del c.m.f.).
  2. Legge COGMERFO per la coppia merce/fornitore corrente (mfr-gru/sot/cod + mfr-for):
  3. Record non trovato → viene creato ex novo (wr-cogmerfo), impostando s38-ope = "I" e s39-ope = "I".
  4. Record esistente → si memorizza in s39-cmf-c il codice merce fornitore attuale e si imposta s39-ope = "V" (variazione).
  5. Se la merce e' in divisa estera (diversa da conto, L, E) memorizza mfr-divisa; se la colonna c.m.f. e' visibile in griglia (gcn-r-mfr > 0) aggiorna mfr-cod-for col valore digitato. Riscrive il record (rwr-cogmerfo).
  6. Ricostruzione stringhe di ricerca COGMERFO (TASK-1395):
  7. Ramo inserimento (s38-ope = "I"): chiama COGS38 (I) e COGS39 (I) per costruire gli indici della coppia merce/fornitore.
  8. Ramo variazione (s39-ope = "V"): solo se mfr-cod-for e' cambiato rispetto al valore precedente (s39-cmf-c), chiama COGS39 (V) per rimuovere la vecchia stringa e inserire quella nuova (s39-cmf-i).

Allineamento del listino generale fornitori COGGENMF (paragrafo aggiorna-coggenmf)

Quando la configurazione GESTIONE-DA-CMF vale "S", dopo la ricostruzione delle stringhe COGMERFO (sia nel ramo inserimento sia nel ramo variazione) il programma allinea anche il listino generale fornitori COGGENMF tramite il paragrafo aggiorna-coggenmf. In questo modo l'anagrafica merce-fornitore inserita/modificata durante l'ordine si riflette immediatamente nel listino generale del fornitore, senza dover ripassare da COGM02.

Il paragrafo opera solo se il codice merce fornitore (mfr-cod-for) e' valorizzato, e legge COGGENMF per la coppia gmf-cf (fornitore) + gmf-cmf (codice merce fornitore):

  • Record COGGENMF gia' esistente → aggiorna divisa (gmf-currency), descrizione (gmf-dm), moltiplicatore prezzo (gmf-molt-pre = 1) e riscrive il record. Se la descrizione e' cambiata, ricostruisce l'indice di ricerca su descrizione chiamando COGS42 in cancellazione (C) sul valore precedente e in inserimento (I) sul nuovo (stessa sequenza di COGM02).
  • Record COGGENMF assente → crea il record con divisa, descrizione, moltiplicatore prezzo a 1 e prezzi/sconto azzerati (gmf-pre-lor, gmf-pre-net, gmf-sco = 0), poi costruisce gli indici di ricerca chiamando COGS40 (I), COGS41 (I) e COGS42 (I).

Consegne programmate

Per gli ordini con consegne (ins-consegne), il programma scandisce il transitorio TRAN-O55 e, per ogni data di consegna diversa, lancia COGO16F per registrare le consegne delle righe di competenza.


Configurazioni RNEWCONF

Il blocco x99-confi carica 39 chiavi. Le principali rilevanti per la logica documentata:

Gruppo Chiave Variabile Effetto
ordfor carica-merci-da-cliente tm-cfg-carica-merser-dacli Caricamento merci/servizi da cliente
ordfor carica-merci-solo-fornit-prefer tm-cfg-carica-mersolo-pref Caricamento solo merci del fornitore preferito
listgenf GESTIONE-DA-CMF tm-cfg-gestione-da-cmf Se "S", allinea COGGENMF (listino generale fornitori) alla conferma delle righe ordine

Storico modifiche

2026-07-13 — Ricostruzione stringhe di ricerca COGMERFO anche in variazione

In precedenza le stringhe di ricerca COGMERFO venivano ricostruite solo all'inserimento del record. E' stata introdotta la gestione della variazione: quando il codice merce fornitore di un record COGMERFO esistente viene modificato, COGS39 viene richiamato in variazione ("V") passando il nuovo codice (s39-cmf-i) e quello precedente (s39-cmf-c), mantenendo coerente l'indice di ricerca per codice fornitore. Logica identica a quella del worker bolle di entrata COGV14W. Sono state aggiunte le variabili di appoggio w-fl-mod-cogmerfo e il pilotaggio esplicito di s38-ope/s39-ope/s39-cmf-c nei rami inserimento/variazione. Nessun impatto sull'interfaccia utente.

2026-07-29 — Aggiornamento del listino generale fornitori (COGGENMF) dall'ordine

Introdotta la nuova configurazione listgenf / GESTIONE-DA-CMF (tm-cfg-gestione-da-cmf, 39esima chiave RNEWCONF). Quando vale "S", alla conferma delle righe dell'ordine — sia quando la coppia merce/fornitore viene inserita ex novo, sia quando viene modificata — il programma allinea anche il listino generale fornitori COGGENMF al codice merce fornitore digitato, tramite il nuovo paragrafo aggiorna-coggenmf:

  • se il record COGGENMF esiste, ne aggiorna divisa, descrizione e moltiplicatore prezzo, ricostruendo l'indice di ricerca su descrizione (COGS42) solo se la descrizione e' cambiata;
  • se il record non esiste, lo crea con prezzi e sconto a zero e ne costruisce gli indici di ricerca (COGS40/COGS41/COGS42).

La sequenza di aggiornamento del listino e degli indici replica quella del programma di importazione listino generale COGM02. Aggiunti i copybook utils40.cpy, utils41.cpy, utils42.cpy (interfacce COGS40/COGS41/COGS42) e le variabili di appoggio w-dm e w-fl-mod-cogmerfo. Comportamento invariato (nessuna scrittura su COGGENMF) quando la configurazione e' assente o vale "N", quindi retrocompatibile con le installazioni esistenti.