Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Premo pulsante “salva” in alto che pero mi porta alla griglia seguente, non salva niente :
Riempimento griglia :
Query iniziale : tira fuori I articoli base corrispondenti al assortimento del o dei fornitori selezionati
con lo stato giusto, insieme ai loro um gestionale e barcode
SELECT DISTINCT
artb.art_base_id AS articoloid,
artb.codice AS codice,
artb.descrizione AS descrizione,
um.descrizione AS unitamisuradescrizione,
um.unita_misura_id AS unitamisuraid,
stringagg(DISTINCT(barcdd.valore)) AS codiciean,
NULL AS dirittomerceologia
FROM
ncl_art_base artb
SELECT
valore,
articolo_id
FROM
ncl_barcode b
WHERE
b.annullato = 'N'
UNION
SELECT
valore,
articolo_id
FROM
ncl_barcode_x_divisione bxd
WHERE
bxd.annullato = 'N'
UNION
SELECT
valore,
articolo_id
FROM
ncl_barcode_x_pdd bxp
WHERE
bxp.annullato = 'N'
WHERE
mcl.uso_merceologia = 'S'
AND assort.stato_id = 90
AND EXISTS (
SELECT
NULL
FROM
ncl_assortimento_fornitore naf
WHERE
naf.articolo_id = art.articolo_id
AND assort.fornitore_id IN (
'512994'
GROUP BY
artb.art_base_id,
artb.codice,
artb.descrizione,
um.descrizione,
um.unita_misura_id
ORDER BY
artb.codice ASC;
- codici esterni
SELECT DISTINCT
artforn.codice AS codiceesterno
FROM
ncl_art_base artb,
ncl_articolo art,
ncl_assortimento_fornitore assort,
ncl_articolo_x_fornitore artforn
WHERE
artb.art_base_id = art.art_base_id
AND art.articolo_id = assort.articolo_id
AND assort.assortimento_fornitore_id = artforn.assortimento_fornitore_id
AND sysdate BETWEEN nvl(artforn.data_inizio, TO_DATE('01-01-1900', 'DD-MM-YYYY')) AND
nvl(artforn.data_fine, TO_DATE('31-12-9999'
, 'DD-MM-YYYY'))
AND artb.art_base_id = 18072
- linee
SELECT DISTINCT
ls.linea_sconto_id AS id,
ls.codice AS codice,
ls.descrizione AS descrizione
FROM
ncl_linea_sconto ls,
ncl_linea_sconto_dtl lsdtl,
ncl_assortimento_fornitore assort,
ncl_articolo art,
ncl_art_base artb
WHERE
artb.art_base_id = art.art_base_id
Caso 1 sovraposizione a sinistra, la riga sovraposta inizia prima e finisce prima della riga con le date
utente :
Data inizio della riga sovraposta = data inizio prezzo precedente in griglia
Caso 2 sovraposizione al interiore o uguale, la riga sovraposta e valida dentro l intervallo che sto per
inserire con le date utente, oppure uguale :
Se e precisamente uguale alora prezzo della riga sovraposta = prezzo nel intervallo
Caso 3 sovraposizione a destra , la riga sovraposta inizia dopo la data inizio della riga utente e prima
della data fine, e finisce dopo la data fine della riga utente
Data fine della riga sovraposta = data fine prezzo sucessivo in griglia
Caso 4 sovraposizione su entrambi lati, destra e sinistra, la riga sovraposta inizia prima della data inizio
della riga utente e finisce dopo la data fine della riga utente.
Prezzo riga sovraposta = prezzo precedente, prezzo nel intervallo, prezzo sucessivo in griglia
Se trova piu righe sovraposte su uno dei casi, vince lúltima perche non vedo un break nel loop.
Alla fine tiro fuori e concateno per descrizioni I sconti di una delle righe sovraposte, in ordine di priorita
dei casi : caso 2, caso 4, caso 1, caso 3 ( il primo che esiste, quella e la riga per la quale tiro fuori e faccio
vedere I sconti concatenati nella griglia)
Alla fine dopo che l utente vede la griglia, imposta prezzi nuovi, e salva, vengon salvate righe base
insieme alle righe articolo , senza sconti, con le date utente inziali, e con alcuni defaults ( conversione,
inibisci, annullato, etc)
2. Modifica prezzi
Riempimento griglia :
Query iniziale :
SELECT DISTINCT
lstrg.listino_riga_id AS id,
lstrg.version AS version,
0 AS childrennumber,
artb.art_base_id AS articoloid,
artb.codice AS codice,
artb.descrizione AS descrizione,
artb.multi_variante AS articolobasemultivariante,
lstrg.prezzo AS prezzoprecedente,
lstrg.prezzo AS prezzo,
um.descrizione AS unitamisuradescrizione,
lstrg.data_inizio AS datainizio,
lstrg.data_fine AS datafine,
lstrg.annullato AS annullato,
lstrg.eccezione AS eccezione,
ls.listino_id AS listinoid,
too.tipo_offerta_opp_id,
too.codice AS tipo_offerta_codice,
too.descrizione AS tipo_offerta_descrizione,
stringagg(DISTINCT(sc.descrizione_costruita)) AS sconti,
stringagg(DISTINCT(barcdd.valore)) AS codiciean,
NULL AS dirittomerceologia
FROM
listino_riga lstrg
SELECT
valore,
articolo_id
FROM
ncl_barcode b
WHERE
b.annullato = 'N'
UNION
SELECT
valore,
articolo_id
FROM
ncl_barcode_x_divisione bxd
WHERE
bxd.annullato = 'N'
UNION
SELECT
valore,
articolo_id
FROM
ncl_barcode_x_pdd bxp
WHERE
bxp.annullato = 'N'
WHERE
))
))
AND assort.fornitore_id IN (
'512994'
AND assort.stato_id = 90
GROUP BY
lstrg.listino_riga_id,
lstrg.version,
0,
artb.art_base_id,
artb.codice,
artb.descrizione,
artb.multi_variante,
lstrg.prezzo,
lstrg.prezzo,
um.descrizione,
lstrg.data_inizio,
lstrg.data_fine,
lstrg.annullato,
lstrg.eccezione,
ls.listino_id,
too.tipo_offerta_opp_id,
too.codice,
too.descrizione;
Ogni una delle righe ottenute vienne completata con codici esterni, linee sconto comme nel caso
precedente, e in piu con
FROM
articolo_com artc,
ncl_articolo art,
ncl_art_base artb,
listino_riga lstrg,
listino_riga lstrgart,
listino lst
WHERE
lstrg.art_base_id = artb.art_base_id
E poi con eventuali figli in eccezione ( non si vedono in griglia, ma vedere il dialogo del salvataggio ) :
SELECT DISTINCT
lstrg.listino_riga_id AS id,
lstrg.version AS version,
0 AS childrennumber,
ls.listino_id AS listinoid,
ls.codice AS listinocodice,
ls.descrizione_breve AS listinodescrizionebreve,
art.articolo_id AS articoloid,
art.codice AS codice,
art.descrizione AS descrizione,
lstrg.prezzo AS prezzo,
div.descrizione AS divisadescrizione,
um.descrizione AS unitamisuradescrizione,
lstrg.data_inizio AS datainizio,
lstrg.data_fine AS datafine,
lstrg.annullato AS annullato,
lstrg.eccezione AS eccezione,
too.tipo_offerta_opp_id,
too.codice AS tipo_offerta_codice,
too.descrizione AS tipo_offerta_descrizione
FROM
listino_riga lstrg,
listino ls,
ncl_articolo art,
articolo_com artc,
ncl_art_base artb,
ncl_divisa div,
ncl_unita_misura um,
tipo_offerta_opp too
WHERE
lstrg.listino_id = ls.listino_id
ORDER BY
art.codice ASC ;
Secondo la scelta del utente, la riga vienne modificata , base e articoli , sovrascrivendo o no le eccezioni.