PCHD#58564 -- Bidfood: meerdere klantnummers op één locatie

svn path=/Website/branches/v2019.1/; revision=43523
This commit is contained in:
Jos Migo
2019-07-30 08:38:48 +00:00
parent 5e8b8e7423
commit cd20af30d1

View File

@@ -94,8 +94,10 @@ function (RequestForm, bes_srtdeel_key, item, pResult)
// Afleveradres is het klantnummer, en moeten wij 'mappen' op een mld_adres record (=aflever adres)
// Implementatie van deze mapping (vertaaltabel): bidfood_klantnr -> alg_locatie kenmerk 'bidfood_klantnr' -> alg_locatie -> mld_adres.
// Uitgangspunt is dat alg_locatie wel een mld_adres met vinkje 'afleveradres=ja' heeft, en precies 1 (anders wordt de '1e' of een willekeurige gepakt).
// Indien alg_locatie geen mld_adres heeft, dan wordt geen mld_adres_key meegegeven!
// Voorwaardes voor goed functioneren structuur:
// - Per locatie 1 uniek 5-cijferig bidfoodklantnr gekoppeld
// - Per locatie 1 afleveradres gekoppeld met een vinkje 'afleveradres=ja'.
// Indien er MEER adressen gekoppeld zijn OF GEEN adressen gekoppeld zijn dan moet gebruiker zelf nog afleveradressen selecteren (zie ticket 58564)
var bidfood_klantnr = punchNVL("NEW_ITEM-CUST_FIELD2[#]", item, "Onbekend");
__Log('bidfood_klantnr: CUST_FIELD2[' + item + ']= ' + bidfood_klantnr);
@@ -106,11 +108,16 @@ function (RequestForm, bes_srtdeel_key, item, pResult)
sql = " SELECT mld_adres_key FROM mld_adres a, alg_locatie l, alg_onrgoedkenmerk k"
+ " WHERE alg_onrgoed_niveau = 'L' and alg_kenmerk_key = 1220 and alg_onrgoedkenmerk_verwijder is NULL and alg_onrgoedkenmerk_waarde = " + safe.quoted_sql(bidfood_klantnr)
+ " WHERE alg_onrgoed_niveau = 'L' and alg_kenmerk_key = 1220 and alg_onrgoedkenmerk_verwijder is NULL and substr(alg_onrgoedkenmerk_waarde,1,5) = substr(" + safe.quoted_sql(bidfood_klantnr) + ",1,5)"
+ " AND l.alg_locatie_key = k.alg_onrgoed_key"
+ " AND a.alg_locatie_key = l.alg_locatie_key"
+ " AND a.mld_adres_afleveradres = 1"
+ " AND a.mld_adres_verwijder IS NULL";
+ " AND a.mld_adres_verwijder IS NULL"
+ " AND l.alg_locatie_key NOT IN (select v.alg_locatie_key from"
+ " (select l.alg_locatie_Key, count(a.mld_adres_key) as AantalAflever from alg_locatie l, mld_adres a where l.alg_Locatie_key = a.alg_locatie_key and a.mld_adres_afleveradres = 1 and a.mld_adres_verwijder is null"
+ " group by l.alg_locatie_key) v where v.AantalAflever=2)"
;
oRs = Oracle.Execute(sql);
if (!oRs.eof){