Files
Facilitor/APPL/BES/bes_hook_punch.asp
Erik Groener d53ba5a020 MDUX#64435 Punch out meer dan 2 decimalen
svn path=/Website/trunk/; revision=55993
2022-05-23 06:33:31 +00:00

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(); %>