Vai al contenuto

COGG17 -- Gestione Conferme (mediatori)

Sorgente: cbl/cogg17.cbl (~2.977 righe) | Tipo: Programma interattivo full-screen character-mode, richiamabile come sottoprogramma | Program-ID: COGG17

Menu:

  • Vendite > Mediatori > Gestione Conferme

Scopo

Produce la conferma di compravendita (contratto di mediazione, verticalizzazione Guidetti) partendo da una testata ordine/contratto (COGTESOR): estrae venditore, compratore, merci con qualita', quantita', prezzi e provvigioni d'agente, li fonde in un modello testuale a placeholder (file .DAT line-sequential), consente all'operatore di editare a maschera le note, le salva su COGDESGN e le stampa in piu' copie.

E' interattivo full-screen character-mode (DISPLAY/ACCEPT, non griglia Screen Designer). Puo' girare standalone o essere richiamato da altri programmi (es. COGG03) via linkage.


File e tabelle

Tabella Chiave / campi Ruolo
COGTESOR (tor-) tor-chia; tor-clifor (compratore), tor-destina (venditore), tor-prv-val(1/2), tor-prv-currency, tor-prv-conv, tor-datdecor, tor-numero Testata ordine/contratto
COGRIGOR (ror-) ror-chia1; ror-qtaord, ror-prez, ror-currency Righe ordine
COGMERCI (mer-) mer-chia, mer-descr Anagrafica merci (descrizione riga)
COGGEANA (ana-) tipo cliente; ana-nome/ind/loca/cap/prov/piva Compratore (da tor-clifor), venditore (da tor-destina)
COGDESAG (dag-) dag-r-m="M"+dag-merce+dag-prog-2; dag-desc Descrizioni aggiuntive merce (qualita')
COGDESGN (dgn-) dgn-chia (ridef. dgn-ordine), dgn-pro, dgn-data, dgn-des x(80) Persistenza note conferma (i-o)
COGTABEL (euta-) tipo 70 GEST/SCHEDE (config stampa), tipo 56 (divise) Tabelle di config/sistema
feurtab Parametri azienda
inpfil (seq-rec x80) assign to random nome-modello, line sequential File modello .DAT con placeholder @...$
flsta File di stampa (via COGS54)

I verbi rd-/st-/rdnxt-/wr-/rwr-/del- sono realizzati via dtab.cpy + tstfun1.cpy (nessun modulo Y* generato).


Copybook principali

Nessun copybook Screen Designer (programma character-mode legacy). FD e record delle tabelle sopra; working k-u10/wrk-u10, wstato/wgrave/wopenf/wnscr/cogazien, utils54, utilgw04, utilu10, utilv75, utilgw02, utilncnf. Linkage wcont/wcont1 (stringhe, con util-g17 inline su user-area). Fine procedure: u10-fun, stato/stato1, chiavi .k01, winmsg, grave, open1, mmmask (z-99-init/exit-program), dtab, tstfun1, scree, vscroll, sendgw02, sendgw04, printer.


Chiamate ad altri programmi

COGV75 (conversione numero->lettere, importi in parole per qta e prezzo), COGU10 (editing/arrotondamento valori e provvigioni con divisa/cambio), COGS54 (gestore STAMPA), RNEWCONF (configurazioni), C$TOLOWER (normalizzazione minuscole).


Flusso / Paragrafi principali

  • apri: ctr-abil, open-files, rd-azi, user-area->util-g17. Se g17-ope="cancella" e g17-called="Y" -> b1-cancella note e fine (ramo di sola cancellazione).
  • x99-src-cfg/x99-rd-cfg: config stampa da COGTABEL 70 GEST/SCHEDE (righe/col stampa, nome file .DAT). x99-src-confi: config RNEWCONF (epoche/imballi/associazioni/pagamenti/opzioni stampa/n.copie).
  • a-9/a20-*: se non chiamato, richiede tipo/anno/numero ordine; se chiamato, id da g17-ord con tm-ord-pro forzato a 0 (documento legato a 2 ordini: progr 0=compratore, progr 1=venditore).
  • a20-go: rd-cogtesor; estrae provvigioni, check-digit (overflow cifre stampa), calcola provvigioni venditore/compratore con conversione (COGU10), legge compratore/venditore da COGGEANA, scandisce COGRIGOR caricando merce/qualita' (COGDESAG)/quantita'/prezzo.
  • load-modello: apre inpfil, individua i campi @...$, rileva placeholder EPOCA/LUOGO/IMBALLO/PAGAMENTO/Assoc.
  • a-50: cerca note su COGDESGN; se assenti preload-data sostituisce i placeholder con i dati reali; clean-data pulisce residui.
  • a-60/a-70/a-80: loop editing a maschera scrollabile (F8 = win-aiuto, popup liste RNEWCONF G22).
  • F3 = b-aggiorna (b1-cancella + b2-ins-not, wr/rwr COGDESGN); F5 = stampa (COGS54, copie da tm-cfg-ncopie, compressione 17cpi/doppia battuta).
  • fine/z-chiudi: close, z-99-exit-program, exit program.

DECLARATIVES io-error section (use after standard error) su tutti i file.


Configurazioni

  • COGTABEL tipo 70, euta-cfg-arg='GEST'/euta-cfg-key='SCHEDE': riga stampa, colonna stampa, nome modello .DAT.
  • COGTABEL tipo 56: decodifica divise.
  • RNEWCONF (x99-src-confi, ncnf-percorso="ORDINI.CNF", gruppo G22): EPOCA CONSEGNA (x10), IMBALLI (x10), ASSOCIAZIONI (x10), PAGAMENTI (x10), OPZIONE STAMPA (x30, config campi stampa idcopia/idriga/idstart/idsize/idope), N.COPIE -> tm-cfg-ncopie.

Note

  • Programma verticale per il cliente Guidetti (conferme di mediazione). Doppio ordine collegato: progr 0 = compratore, progr 1 = venditore.
  • Provvigioni agente: tor-prv-val(1) = venditore, (2) = compratore, con coefficiente tor-prv-conv.
  • Motore a template testuale: il .DAT contiene placeholder delimitati @...$ a lunghezza fissa; inspect-riga fa REPLACING con troncamento intelligente (arretra al primo spazio per non spezzare le parole).
  • Importi in lettere via COGV75 (stile assegno). Stampa avanzata (compressione 17cpi, doppia battuta) pilotata da COGS54; check-digit previene overflow numerico annullando la stampa.
  • Note persistite su COGDESGN per ordine (aggiornamento = cancella + reinserisci righe).