svn path=/Website/branches/v2017.2/; revision=37001
This commit is contained in:
Daniëlle Tolner
2018-02-15 10:37:26 +00:00
parent 7abf55566e
commit 2feb713e69

View File

@@ -52,7 +52,7 @@ var __Log;
var __DoLog;
var safe;
bes_punch_receive =
bes_punch_receive =
function (RequestForm, bes_srtdeel_key, item, pResult)
{
var result = {orderurl: ""};
@@ -75,65 +75,16 @@ function (RequestForm, bes_srtdeel_key, item, pResult)
{
// STPH#31730
// Voor elk item de eenheid (die standaard uit NEW_ITEM_UNIT wordt ingelezen) bij Medeco uit CUST-field NEW_ITEM-CUST_FIELD5 te halen...
var artikel_eenheid = punchNVL("NEW_ITEM-CUST_FIELD5[#]", item, "Onbekend");
__Log('ARTIKEL EENHEID: CUST_FIELD5[' + item + ']= ' + artikel_eenheid);
__Log('ARTIKEL EENHEID: CUST_FIELD5[' + item + ']= ' + artikel_eenheid);
if (artikel_eenheid != 'Onbekend')
{
sql = "UPDATE bes_srtdeel SET bes_srtdeel_eenheid = " + safe.quoted_sql(artikel_eenheid) + " WHERE bes_srtdeel_key = " + bes_srtdeel_key;
oRs = Oracle.Execute(sql);
}
}
// Alleen voor leverancier Bidfood (voorheen Deli XL) uitvoeren (prs_bedrijf_key = 7461)
if (bedr_key == 7461)
{
// Alleen voor eerste item de leverdatum en bestellingid opvragen. Is toch voor elk item identiek.
if (item == 1) {
// Deli XL heeft 2 belangrijke gegevens, die Facilitor 1-op-1 moet overnemen en in de bestelopdracht moet terugsturen:
// Aleverdatum en Afleveradres, 2 onafscheidelijke vaste gegevens die door DeliXL wordt bepaald (business rules).
// Leverdatum is in formaat yyyy-mm-dd
var leverdatum = punchNVL("NEW_ITEM-CUST_FIELD1[#]", item, "Onbekend");
__Log('Leverdatum: CUST_FIELD1[' + item + ']= ' + leverdatum);
if (leverdatum != "Onbekend")
{
sql = "SELECT TO_DATE(" + safe.quoted_sql(leverdatum) + ", 'yyyy-mm-dd') leverdatum FROM DUAL";
oRs = Oracle.Execute(sql);
leverdatum = oRs("leverdatum").value;
result.orderurl = "&leverdatum=" + (new Date(leverdatum)).getTime();
}
// Afleveradres is het klantnummer, en moeten wij 'mappen' op een mld_adres record (=aflever adres)
// Implementatie van deze mapping (vertaaltabel): delixl_klantnr -> alg_locatie kenmerk 'Deli XL 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!
var delixl_klantnr = punchNVL("NEW_ITEM-CUST_FIELD2[#]", item, "Onbekend");
__Log('DeliXL Klantnummer: CUST_FIELD2[' + item + ']= ' + delixl_klantnr);
if (delixl_klantnr != "Onbekend")
{
sql = "SELECT alg_onrgoed_key FROM alg_onrgoedkenmerk WHERE alg_onrgoed_niveau = 'L' and alg_kenmerk_key = 1000 and alg_onrgoedkenmerk_verwijder is NULL and alg_onrgoedkenmerk_waarde = " + safe.quoted_sql(delixl_klantnr);
sql = " SELECT mld_adres_key FROM mld_adres a, alg_locatie l, alg_onrgoedkenmerk k"
+ " WHERE alg_onrgoed_niveau = 'L' and alg_kenmerk_key = 1000 and alg_onrgoedkenmerk_verwijder is NULL and alg_onrgoedkenmerk_waarde = " + safe.quoted_sql(delixl_klantnr)
+ " 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";
oRs = Oracle.Execute(sql);
if (!oRs.eof){
var mld_adres_key = oRs("mld_adres_key").value;
result.orderurl = result.orderurl + "&adres_key=" + mld_adres_key;
}
}
}
}
return result;
}