Vai al contenuto

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.cpy
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • wgrid.cpy, utilgdad.cpy, utildlg.cpy
  • utils52.cpy, utilu10.cpy
  • utilx28.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

  1. apri: init, apertura file, controllo abilitazioni
  2. Se chiamato da COGX33 (con x30-anno/x30-numero valorizzati): salta i parametri iniziali, va direttamente a a-inizio-dati
  3. a-tm-anno / a-tm-numero: input proposta
  4. a-tm-ord-ann / a-tm-ord-num: input ordine (solo in modifica, per richiamare un ordine esistente)
  5. a-inizio-dati: lettura BCTESPRO, determinazione operazione (I/M)
  6. a-tm-data-ord / a-tm-fl-stock: dati testata ordine
  7. a-grid / a-accept-grid: loop griglia con selezione righe
  8. a-fine-dati / a-fine-dati-ok: conferma e registra

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 DIALOGS per 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