COGX30 - Inserimento / Gestione Ordini¶
Scopo¶
Genera o modifica l'ordine commerciale a partire da una proposta esistente. Una proposta (BCTESPRO) puo' essere collegata a un solo ordine (btp-ord-ann/btp-ord-num); le righe di proposta selezionate ricevono un progressivo riga ordine (brp-ord-rig). E' chiamabile da menu o da COGX33 (assegnazione vettura venduta) come passo successivo all'inserimento della proposta.
Posizioni menu¶
- Magazzino > Gestione Veicoli > Commerciale > Inserim/Gestione Ordini
File e Tabelle¶
| File | Copybook | Utilizzo |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella file di sistema |
| cogx30.select | (generato da Screens) | SELECT |
| cogx30.fd | (generato da Screens) | FD |
| BCTESPRO | (da cogx30.fd) | Testata proposta (anche per i campi ord-ann/ord-num) |
| BCRIGPRO | (da cogx30.fd) | Righe proposta (campo brp-ord-rig per legame ordine) |
| BCVETTUR | (da cogx30.fd) | Anagrafica vetture |
| BCTABEL | (da cogx30.fd) | Tabelle (etichette colonne, numeratore ordini) |
| COGGEANA | (da cogx30.fd) | Anagrafica cliente |
Copybook¶
Working storage¶
cogx30.wrk(generato da Screens),k-u10.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpywgrid.cpy,utilgdad.cpy,utildlg.cpyutils52.cpy,utilu10.cpyutilx28.cpy,utilx31.cpy
Linkage¶
wcont.cpy,wcont1.cpy,utilx30.cpy
Procedure¶
- Standard (
grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy) cogx30.prc- Chiavi:
bcrigpro.k02,bcvettur.k02,bctespro.k03
CALL¶
| Programma | Scopo |
|---|---|
| COGS52 | Input data con calendario |
| COGU10W | Conversione importi |
| COGX28 | (utility ricerca) |
| COGX31 | Stampa ordine (dalla dialog finale F9) |
| GRIDADMN | Personalizzazione colonne griglia |
| DIALOGS | Dialog finale post-conferma |
Parametri di chiamata (linkage)¶
Vedi utilx30.cpy:
| Campo | Tipo | Significato |
|---|---|---|
x30-caller |
x(8) | Programma chiamante |
x30-called |
x(8) | Se = k-program-id, chiamata esterna |
x30-operazione |
x(1) | "I" inserimento, "M" modifica |
x30-anno / x30-numero |
9(4)/9(8) | Anno/numero proposta |
x30-data-ord |
9(8) | Data ordine (input) |
x30-ord-ann / x30-ord-num |
9(4)/9(8) | Output: anno/numero ordine generato |
x30-esito-ok |
x(1) | Output: "S"/"N" |
Logica di elaborazione¶
Flusso principale¶
apri: init, apertura file, controllo abilitazioni- Se chiamato da COGX33 (con
x30-anno/x30-numerovalorizzati): salta i parametri iniziali, va direttamente aa-inizio-dati a-tm-anno/a-tm-numero: input propostaa-tm-ord-ann/a-tm-ord-num: input ordine (solo in modifica, per richiamare un ordine esistente)a-inizio-dati: lettura BCTESPRO, determinazione operazione (I/M)a-tm-data-ord/a-tm-fl-stock: dati testata ordinea-grid/a-accept-grid: loop griglia con selezione righea-fine-dati/a-fine-dati-ok: conferma eregistra
Determinazione operazione¶
if btp-ord-ann not = zero
move "M" to a-operazione *> ordine gia' esistente
else
move "I" to a-operazione *> nuovo ordine
end-if
Registrazione ordine (paragrafo registra)¶
In inserimento:
- Acquisisce nuovo numero ordine (numeratore BCTABEL)
- Aggiorna BCTESPRO con btp-ord-ann/btp-ord-num
- Per ogni riga selezionata: progressivo brp-ord-rig, brp-ord-ann, brp-ord-num
In modifica: aggiorna le sole righe modificate (selezionate/deselezionate). Le righe deselezionate perdono il brp-ord-rig (azzerato).
Note tecniche¶
- GUI (screen section con
cogx30-01.scr) - Griglia gestita con
utilgdad.cpy+GRIDADMN, max 900 righe - Dialog finale con
DIALOGSper stampa post-conferma - L'ordine non e' una entita' separata su file: vive come campi sulla testata proposta (
btp-ord-ann/num) e sulle righe (brp-ord-rig/ann/num). Vedi anche COGX32 per la cancellazione massiva e COGX31 per la stampa