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. Seg17-ope="cancella"eg17-called="Y"->b1-cancellanote 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 dag17-ordcontm-ord-proforzato 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: apreinpfil, individua i campi@...$, rileva placeholder EPOCA/LUOGO/IMBALLO/PAGAMENTO/Assoc.a-50: cerca note su COGDESGN; se assentipreload-datasostituisce i placeholder con i dati reali;clean-datapulisce 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 datm-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", gruppoG22):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 coefficientetor-prv-conv. - Motore a template testuale: il
.DATcontiene placeholder delimitati@...$a lunghezza fissa;inspect-rigafa 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-digitpreviene overflow numerico annullando la stampa. - Note persistite su COGDESGN per ordine (aggiornamento = cancella + reinserisci righe).