Vai al contenuto

COGO10CS - Gestione ordini clienti (standard)

Sorgente: cbl/cogo10cs.cbl | Program-ID: COGO10CS | Tipo: Programma interattivo carattere (worker)

Menu: Ordini > Clienti > Gestione


Scopo

COGO10CS e' la versione "standard" (carattere) della gestione/variazione degli ordini cliente gia' esistenti, delegata dal launcher COGO10. Il programma richiama un ordine per anno/numero/progressivo, ne visualizza la testata e le righe, permette di modificare i dati di testata (intestatario, committente, magazzino, validita', pagamento, causale, ecc.) e la tabella righe (merce, quantita', sconto, prezzo), quindi riscrive testata, righe (COGRIGOR), prezzi (COGPREOR) e consegne (COGCONOR) e ricalcola l'impegno di magazzino tramite COGU12. Sono presenti anche la cancellazione completa dell'ordine e la stampa (COGO65).

Nota: l'intestazione del sorgente riporta "Versione personalizzata per CANTINA"; la maschera di testata include campi specifici (vasche, grado, ritiro, analisi, arbitro, mediatore, provvigione) memorizzati riutilizzando campi della testata ordine (tor-vasche, tor-grado, tor-vettore1/2/3, tor-agente, tor-fl-prv).


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB Indexed Input Tabella nomi file
COGTABEL Indexed Input Tabella generica (pagamenti tipo 14, causali tipo 15, agenti tipo 21)
COGMERCI Indexed Input Anagrafica merci (accesso per chiave primaria e chiave EAN mer-chia2)
COGGEANA Indexed Input Anagrafica clienti/fornitori (intestatario, committente, mediatore)
COGMAGAZ Indexed Input Anagrafica magazzini
COGSLMAG Indexed Input Saldi di magazzino (controllo giacenza)
COGTESOR Indexed I-O Testate ordini (record letto, riscritto, cancellato)
COGRIGOR Indexed I-O Righe ordine (riscritte/cancellate)
COGPREOR Indexed I-O Prezzi ordine
COGCONOR Indexed I-O Consegne ordine (cancellate in fase di eliminazione)

Copybook utilizzate

Copybook Descrizione
feurtab.fd SELECT tabella nomi file
cogtabel.fd SELECT COGTABEL
cogmerci.fd SELECT COGMERCI
coggeana.fd SELECT COGGEANA
cogmagaz.fd SELECT COGMAGAZ
cogslmag.fd SELECT COGSLMAG
cogtesor.fd SELECT COGTESOR
cogrigor.fd SELECT COGRIGOR
cogpreor.fd SELECT COGPREOR
cogconor.fd SELECT COGCONOR
COGFILES.CPY FD FEURTAB (record nomi file)
COGTABEL.CPY FD COGTABEL
COGTESOR.CPY FD COGTESOR (testata ordine)
COGGEANA.CPY FD COGGEANA
COGRIGOR.CPY FD COGRIGOR (riga ordine)
COGPREOR.CPY FD COGPREOR
COGMERCI.CPY FD COGMERCI
COGMAGAZ.CPY FD COGMAGAZ
COGSLMAG.CPY FD COGSLMAG (saldi)
COGCONOR.CPY FD COGCONOR
wstato.cpy Stato I/O
wgrave.cpy Gestione errori gravi
wopenf.cpy Apertura file
wnscr.cpy Dati schermo
cogazien.cpy Dati azienda
utils52.cpy Interfaccia COGS52 (date)
utils65.cpy Interfaccia COGS65 (ricerca anagrafica)
utilu10.cpy Interfaccia COGU10 (importi)
utilu12.cpy Interfaccia COGU12 (impegno merce)
utilu20.cpy Interfaccia COGU20 (input numerico)
utilu22.cpy Interfaccia COGU22 (tipo pagamento/RB)
utile35.cpy Interfaccia COGE35 (ricerca agente/mediatore)
wcont.cpy Linkage stringhe comuni
utilo65.cpy Linkage COGO65 (stampa ordine)
utils01.cpy Linkage COGS01 (calcolo prezzo di listino)
wcont1.cpy Linkage area utente 2
stato.cpy / stato1.cpy Controllo stato I/O
winmsg.cpy Messaggi/box a video
grave.cpy Paragrafi errori gravi
open1.cpy Apertura file
mmmask.cpy Paragrafi init/exit programma e gestione maschera
sendu22.cpy Paragrafi COGU22
cogtabel.k01 Accesso COGTABEL per chiave k01

Logica di elaborazione

  1. Inizializzazione: open-files, lettura dati azienda (rd-azi), impostazione maschera di testata mm-1 (24x80) e display iniziale.
  2. Selezione ordine: input anno (via COGS52 con controllo anno = anno sistema +/- 1), numero e progressivo; read cogtesor. Se l'ordine non esiste viene segnalato e si torna alla richiesta. La testata letta viene mostrata da metti-testata (intestatario, committente, magazzino, pagamento, causale, mediatore, campi cantina) e le righe collegate vengono caricate nella tabella interna tael1 (fino a 100 elementi) leggendo COGRIGOR, COGMERCI e COGPREOR.
  3. Variazione testata: sequenza di paragrafi (a6c...a62) che permettono di modificare impegno merce, intestatario/committente (COGS65 con controllo su COGGEANA), magazzino (COGMAGAZ), date di validita' e scadenza (COGS52), tipo ordine (C/A), codice pagamento (COGTABEL tipo 14, consulta con WIN002), tipo pagamento/raggruppamento RB (COGU22), causale di uscita (COGTABEL tipo 15, consulta con WIN001, verifica euta-cb-fl-eu = 'U'), porto, cura trasporto (M/D), campi specifici cantina, mediatore (COGE35 o COGGEANA tipo 'F' con verifica codifica agente su COGTABEL tipo 21) e tipo provvigione (P/Q).
  4. Variazione righe (maschera mm-2): per ogni riga input di gruppo/sottogruppo/codice merce o bar code (lettura COGMERCI per chiave primaria e chiave EAN), descrizione con ricerca alfabetica (WIN004), riferimento listino (con richiesta password per listino 5 tramite record COGMERCI '999999999'), sconto (COGU20), quantita' (COGU20) con controllo giacenza su COGSLMAG (ctr-gia), prezzo di listino ricalcolato da COGS01 e prezzo editato in valuta (COGU10). Navigazione tabella con F2/frecce/PgUp/PgDwn, cancellazione riga (F5) e ricerca merce per codice (WIN005).
  5. Registrazione (F3): controllo che almeno una riga sia significativa; rewrite cogtesor (con incremento progressivo su invalid key); cancellazione delle vecchie righe COGRIGOR con storno dell'impegno via COGU12 (u12-qta-old); riscrittura delle righe dalla tabella con aggiunta all'impegno via COGU12 (u12-qta-new). A fine aggiornamento possibilita' di stampa (F9 -> COGO65).
  6. Cancellazione ordine (F4): conferma, quindi delete di COGTESOR, delle righe COGRIGOR (con storno impegno via COGU12), dei prezzi COGPREOR e delle consegne COGCONOR.
  7. Uscita: chiusura file, chiamata a COGS01 con s01-open = 'C', z-99-exit-program, exit program.

Chiamate a sottoprogrammi

Programma Scopo
COGS52 Input e validazione date (anno ordine, validita', scadenza)
COGS65 Ricerca/selezione anagrafica cliente (intestatario, committente)
COGS01 Calcolo prezzo netto di listino per la riga; apertura/chiusura contesto listini
COGU10 Input e visualizzazione importi in valuta (prezzo riga)
COGU12 Aggiornamento impegno merce di magazzino (storno/aggiunta)
COGU20 Input numerico editato (sconto, quantita')
COGE35 Ricerca agente/mediatore
WIN001 Popup scelta causale
WIN002 Popup scelta codice pagamento
WIN004 Popup ricerca alfabetica merce
WIN005 Popup ricerca merce per codice
COGO65 Stampa dell'ordine (opzionale, F9 dopo la registrazione)

Nota: COGU22 e' invocato tramite i paragrafi della copybook sendu22.cpy (gestione tipo pagamento/raggruppamento RB).


Vedi anche