COGX33 - Assegnazione Vettura Venduta¶
Scopo¶
Wrapper interattivo che concatena la creazione di una proposta (COGX26) e di un ordine (COGX30) per una singola vettura venduta. A partire da matricola/targa e cliente, costruisce i parametri di linkage e chiama in sequenza COGX26 con operazione "I" e poi COGX30 con operazione "I". Offre infine la stampa di proposta/ordine via DIALOGS.
Posizioni menu¶
- Magazzino > Gestione Veicoli > Commerciale > Assegnazione Vettura Venduta
File e Tabelle¶
| File | Copybook | Utilizzo |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella file di sistema |
| cogx33.select | (generato da Screens) | SELECT |
| cogx33.fd | (generato da Screens) | FD |
| BCVETTUR | (da cogx33.fd) | Anagrafica vetture (lookup) |
| BCTESPRO | (da cogx33.fd) | Testate proposte (controlli) |
| BCRIGPRO | (da cogx33.fd) | Righe proposte (controllo presenza in ordine) |
| COGGEANA | (da cogx33.fd) | Anagrafica clienti |
| COGRACMT | (da cogx33.fd) | Raccolta mezzi (recupero merce da targa) |
| BCVEICOL | (da cogx33.fd) | Anagrafica veicoli (controllo amministrativo) |
| BCMOVIM | (da cogx33.fd) | Movimenti veicoli (controllo uscita amministrativa) |
| BCCONTRA | (da cogx33.fd) | Contratti vendita (controllo amministrativo) |
Copybook¶
Working storage¶
cogx33.wrk(generato da Screens)wgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpyutildlg.cpy,utils52.cpy,utils65.cpyutilx24.cpy,utilx26.cpy,utilx27.cpy,utilx30.cpy,utilx31.cpy,utilx35.cpy
Linkage¶
wcont.cpy,wcont1.cpy
Procedure¶
- Standard (
grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy) cogx33.prc- Chiavi:
bcvettur.k02,bcvettur.k03,bcrigpro.k02
CALL¶
| Programma | Scopo |
|---|---|
| COGS65W | Lookup cliente (anagrafica) |
| COGS52 | Input data con calendario |
| COGX24 | Lookup vetture assegnate (F8 su matricola/targa) |
| COGX26 | Creazione proposta |
| COGX30 | Creazione ordine |
| COGX27 | Stampa proposta (dialog finale F8) |
| COGX31 | Stampa ordine (dialog finale F9) |
| COGX35 | Edit dati cliente non codificato (codice 99999) |
| DIALOGS | Dialog finale post-conferma |
Parametri di chiamata (linkage)¶
Nessuno specifico oltre alle stringhe standard.
Logica di elaborazione¶
Flusso principale¶
a-tm-random/a-tm-targa: input matricola o targa (F8 chiama COGX24 conx24-in-tip = "A")a-inizio-dati: controlli di disponibilita' (ctrl-random,ctrl-ammin)a-tm-cli-cod: cliente acquirente (con eventuale edit cliente non codificato via COGX35)a-tm-data: dataa-fine-dati: chiamata a COGX26 (inserimento proposta) + COGX30 (inserimento ordine)a-fine-dlg-acc: dialog post-conferma con stampa opzionale
Controlli (paragrafo ctrl-random)¶
Scorre BCRIGPRO con chiave 2 (random) per la matricola scelta:
- Se trova una riga con brp-ord-rig not = 0: "Autoveicolo in ordine"
- Se trova una riga su testata con btp-fl-stock = "S": "Autoveicolo in proposta stock"
In entrambi i casi blocca il flusso.
Controlli (paragrafo ctrl-ammin)¶
Cerca COGRACMT con tipo "TA" + targa, ricava il codice merce, legge BCVEICOL, scorre BCMOVIM con chiave 1 (merce):
- Se trova BCCONTRA con stessa chiave (bcm-mer-chia + bcm-prog): "Contratto di Vendita in procedura amministrativa"
- Se trova bcm-cau-usc not = 0: "Veicolo Uscito in procedura amministrativa"
Chiamata COGX26 (inserimento proposta)¶
move "COGX26" to x26-called
move k-program-id to x26-caller *> "COGX33"
move tm-random to x26-random
move tm-cli-cod to x26-cli
move tm-data to x26-data
if tm-cli-cod = 99999
move tm-nome, tm-ind, ... to x26-nome, x26-ind, ...
end-if
move "I" to x26-operazione
call "COGX26"
COGX26 quando riceve x26-random non zero da COGX33 salta i parametri iniziali e va direttamente all'editing della proposta.
Chiamata COGX30 (inserimento ordine)¶
move "COGX30" to x30-called
move k-program-id to x30-caller
move "I" to x30-operazione
move tm-prop-anno to x30-anno
move tm-prop-numero to x30-numero
move tm-data to x30-data-ord
call "COGX30"
Se COGX30 fallisce, resta la sola proposta: viene mostrato un messaggio e il flusso continua con tm-ord-anno = 0.
Dialog finale¶
Costruita con utildlg.cpy + DIALOGS:
- Esc -> uscita
- F8 -> stampa proposta (chiama COGX27 con x27-btp-anno/x27-btp-numero)
- F9 -> stampa ordine (solo se generato, chiama COGX31 con x31-btp-ord-ann/x31-btp-ord-num)
Note tecniche¶
- GUI (screen section con
cogx33-01.scr) - Non scrive dati direttamente: delega tutto a COGX26 e COGX30
- I controlli pre-chiamata evitano la creazione di proposte su vetture non vendibili