112 lines
4.2 KiB
Plaintext
112 lines
4.2 KiB
Plaintext
<% @language="javascript"%>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: bes_hook_punch.asp
|
|
Description: hookurl pagina voor punchout bestellingen.
|
|
Hier komen we als allereerst terug van de leverancier.
|
|
We maken onder water automatisch de srtdeel-en aan en gaan daarna terug
|
|
naar bes.asp met in de QueryString een lijst met srtdeel_key's en aantallen.
|
|
In feite is dat gewoon een deeplink met voorgekozen items
|
|
|
|
Parameters: urole
|
|
dis_key: puchhout catalogus.
|
|
<form> volgens de punchout specificatie
|
|
Context:
|
|
Note:
|
|
*/
|
|
|
|
var wasCodePage = Session.CodePage;
|
|
var cp = getQParamInt("codepage", 65001); // Default utf-8
|
|
Session.CodePage = cp;
|
|
|
|
// Initialize Request with CodePage = cp
|
|
Request.Form("non-existent-param");
|
|
|
|
// Reset to Session.CodePage default value, the CodePage is cp for the rest of this Request.
|
|
Session.CodePage = wasCodePage;
|
|
|
|
%>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="bes.inc" -->
|
|
<%
|
|
|
|
var urole = getQParamSafe("urole");
|
|
var dis_key = getQParamInt("dis_key");
|
|
|
|
var orderurl = "bes_bestelling.asp?punch=1" + buildTransitParam(["urole", "dis_key", "mld_key"]);
|
|
basketEmpty = false;
|
|
|
|
function punchNVL(nm, n, def)
|
|
{
|
|
nm = nm.replace('#', n);
|
|
if (Request.Form(nm).Count() == 0)
|
|
return def;
|
|
if (Request.Form(nm) == "")
|
|
return def;
|
|
return Request.Form(nm)(1);
|
|
}
|
|
|
|
i = 1;
|
|
while (!basketEmpty)
|
|
{
|
|
description = punchNVL("NEW_ITEM-DESCRIPTION[#]", i, "Onbekend");
|
|
attachment = punchNVL("NEW_ITEM-ATTACHMENT[#]", i, "");
|
|
productGroup = punchNVL("NEW_ITEM-MATGROUP[#]",i, "Onbekend");
|
|
quantity = parseInt(punchNVL("NEW_ITEM-QUANTITY[#]",i, "-1"),10);
|
|
unitOfMeasure = punchNVL("NEW_ITEM-UNIT[#]",i, '');
|
|
price = punchNVL("NEW_ITEM-PRICE[#]",i, '');
|
|
priceunit = punchNVL("NEW_ITEM-PRICEUNIT[#]",i, '');
|
|
vendorProductNumber = punchNVL("NEW_ITEM-VENDORMAT[#]",i, 'Leeg');
|
|
if (vendorProductNumber == 'Leeg')
|
|
{
|
|
vendorProductNumber = punchNVL("NEW_ITEM-EXT_PRODUCT_ID[#]",i, '');
|
|
}
|
|
vendor = punchNVL("NEW_ITEM-VENDOR[#]",i, '');
|
|
opmerking = punchNVL("NEW_ITEM-LONGTEXT_#:132[]",i, '');
|
|
|
|
if (quantity == -1)
|
|
{
|
|
basketEmpty = true; // and exit loop
|
|
}
|
|
else
|
|
{ // Maak item (eventueel) aan in catalogus
|
|
var prijs = !(prijs!=""&&isNaN(parseFloat(price)))? parseFloat(price).toFixed(5) : "NULL";
|
|
var bes_srtdeel_key = bes.upsert_deel(dis_key, { srtdeel_nr: vendorProductNumber,
|
|
srtgroep_omschrijving: productGroup,
|
|
srtdeel_omschrijving: description,
|
|
srtdeel_prijs: prijs,
|
|
srtdeel_eenheid: unitOfMeasure,
|
|
srtdeel_btw: 21,
|
|
srtdeel_opmerking: opmerking,
|
|
srtdeel_details_loc: attachment
|
|
});
|
|
orderurl += "&ps=" + bes_srtdeel_key + "&pn=" + quantity;
|
|
// Check customer specific restrictions
|
|
// customer hook
|
|
pResult = new HookResult();
|
|
|
|
// Klantspecifieke check functie (hookfunction) voor de invoer
|
|
var bes_punch_receive = custfunc.bes_punch_receive(Request.Form, bes_srtdeel_key, i, pResult);
|
|
if (!bes_punch_receive)
|
|
{
|
|
abort_with_warning(pResult.errmsg);
|
|
}
|
|
else
|
|
orderurl += (bes_punch_receive.orderurl||"");
|
|
|
|
i = i + 1;
|
|
}
|
|
}
|
|
if (i == 1)
|
|
{
|
|
__DoLog("Lege punchout?");
|
|
shared.simpel_page("Strange, shopping basket is empty?");
|
|
}
|
|
|
|
// Mocht deze URL ooit te lang worden dan is een Sessie-variabele een oplossing
|
|
Response.Redirect(orderurl);
|
|
|
|
%><% ASPPAGE_END(); %>
|