diff --git a/APPL/BES/bes_bestelling.asp b/APPL/BES/bes_bestelling.asp index 751b1b40f2..c1c39bb9d6 100644 --- a/APPL/BES/bes_bestelling.asp +++ b/APPL/BES/bes_bestelling.asp @@ -155,9 +155,9 @@ transitParam = buildTransitParam(["punch", "mld_key", "artikel_key", "ps", "pn", var bes_disc_info = bes.disc_info(dis_key); var newWindow = false; - if (!from_punch && bes_disc_info.isPunchout) + if (!from_punch && bes_disc_info.disc_params_punchouturl && !bes_disc_info.isFreeArticle) { - var purl = oRsbes_disc_info.disc_params_punchouturl; + var purl = bes_disc_info.disc_params_punchouturl; var hook_url = "bes_hook_punch.asp?urole="+urole+"&dis_key="+dis_key+transitParam; // Biedt de mogelijkheid de url te verrijken met gebruikers info var subst_table = { "RANDOM" : shared.random(16), diff --git a/APPL/BES/bes_bestelling.js b/APPL/BES/bes_bestelling.js index 75e1d3ea02..e14295f6ab 100644 --- a/APPL/BES/bes_bestelling.js +++ b/APPL/BES/bes_bestelling.js @@ -86,6 +86,7 @@ function show_item_details(bes_item_info) window.stock_info = {}; // even onbekend. var imgObj = $("#photo")[0]; + if (imgObj == null) return; // free artikel if (bes_item_info.srtdeel_image) { diff --git a/APPL/BES/bes_edit_bestelling.asp b/APPL/BES/bes_edit_bestelling.asp index 636904bedf..2f6b6815a0 100644 --- a/APPL/BES/bes_edit_bestelling.asp +++ b/APPL/BES/bes_edit_bestelling.asp @@ -712,21 +712,22 @@ else // nieuwe bestelling. Defaults bepalen <% // ======== BLOCK om itemregels toe te voegen ======== if (this_bes.canItemsChange) { - BLOCK_START("besItemSel" , L("lcl_bes_selectieblok") + " " + bes_disc_info.discipline_omschrijving + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW"))); + BLOCK_START("besItemSel" , L("lcl_bes_selectieblok") + " " + safe.html(bes_disc_info.discipline_omschrijving) + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW"))); if (bes_disc_info.isFreeArticle) { FCLTbedrijfselector("lev_key", // Leverancier "sg_lev", - { companyKey: -1, + { companyKey: bes_bestelling.bedrijf_key||-1, label: L("lcl_bes_Supplier"), filtercode: "L", - required: true + required: true, + readonly: bes_bestelling.bedrijf_key > 0 }); RWFIELDTR("srtdeel_nr", "fld", L("lcl_bes_srtdeel_nr"), "", { required: true, maxlength: 32 }); RWFIELDTR("omschrijving", "fld", L("lcl_bes_srtdeel_oms"), "", { required: true, maxlength: 100 }) RWFIELDTR("unit", "fld", L("lcl_bes_unity"), "", { maxlength: 30 }) - RWFIELDTR("price", "fld currency", L("lcl_bes_price_per_unity"), "", { required: true, maxlength: 10 }) + RWFIELDTR("price", "fld currency", L("lcl_bes_price_per_unity"), "", { requiredor0: true, maxlength: 10 }) RWFIELDTR("aantal_text", "fld", L("lcl_bes_amount"), "", { required: true, maxlength: 10 }) %> diff --git a/APPL/BES/bes_edit_bestelling_save.asp b/APPL/BES/bes_edit_bestelling_save.asp index e33d7f4a7b..74e0eab77c 100644 --- a/APPL/BES/bes_edit_bestelling_save.asp +++ b/APPL/BES/bes_edit_bestelling_save.asp @@ -43,28 +43,30 @@ var flexkey_string_arr = getFParamIntArray("flexkey_string",[]); var flexval_string_arr = getFParamArray("flexval_string",[]); var flexdeel_string_arr = getFParamArray("flexdeel_string",[]); var flexitem_string_unsafe = getFParamArray("flexitem_string",[]); // kan ook 'new1' zijn voor nieuwe opdrachten +var srtdeel_keys = getFParamIntArray("srtdeel_keys",[]); // Bij isFree ook voor bewerken bestaande if (bes_disc_info.isFreeArticle) -{ // Moeten we de srtdeel-en nog aanmaken - var srtdeel_keys = []; +{ // Moeten we de nieuwe srtdeel-en nog aanmaken for (var itemregelnr = 0; itemregelnr < item_keys_unsafe.length; itemregelnr++) { - var data = { //srtgroep_key: getFParamInt("srtgroup_key_" + item_keys_unsafe[itemregelnr]), - srtgroep_omschrijving: "Vrije artikel groep", // 2015.1 nog lcl van maken - srtdeel_nr: getFParam("srtdeel_nr_" + item_keys_unsafe[itemregelnr]), - srtdeel_omschrijving: getFParam("srtdeel_omschrijving_" + item_keys_unsafe[itemregelnr]), - srtdeel_prijs: getFParamFloat("price_" + item_keys_unsafe[itemregelnr]), - srtdeel_eenheid: getFParam("eenheid_" + item_keys_unsafe[itemregelnr], ""), - srtdeel_btw: 21, - bedrijf_key: getFParamInt("lev_key_" + item_keys_unsafe[itemregelnr]), - srtdeel_opmerking: "" //opmerking - }; - var bes_srtdeel_key = bes.upsert_deel(dis_key, data); - srtdeel_keys.push(bes_srtdeel_key); + var srtdeel_nr = getFParam("srtdeel_nr_" + item_keys_unsafe[itemregelnr], ""); // Leeg bij bewerken bestaande; + if (srtdeel_nr) + { + var data = { //srtgroep_key: getFParamInt("srtgroup_key_" + item_keys_unsafe[itemregelnr]), + srtgroep_omschrijving: "Vrije artikel groep", // 2015.1 nog lcl van maken + srtdeel_nr: srtdeel_nr, + srtdeel_omschrijving: getFParam("srtdeel_omschrijving_" + item_keys_unsafe[itemregelnr]), + srtdeel_prijs: getFParamFloat("price_" + item_keys_unsafe[itemregelnr]), + srtdeel_eenheid: getFParam("eenheid_" + item_keys_unsafe[itemregelnr], ""), + srtdeel_btw: 21, + bedrijf_key: getFParamInt("lev_key_" + item_keys_unsafe[itemregelnr]), + srtdeel_opmerking: "" //opmerking + }; + var bes_srtdeel_key = bes.upsert_deel(dis_key, data); + srtdeel_keys[itemregelnr] = bes_srtdeel_key; + } } } -else - var srtdeel_keys = getFParamIntArray("srtdeel_keys",[]); var isNew = (bes_key == -1); var isChange = !isNew && bes_bestelling.parent_key > 0; diff --git a/APPL/BES/bes_hook_punch.asp b/APPL/BES/bes_hook_punch.asp index ac5a309f44..03cdff8172 100644 --- a/APPL/BES/bes_hook_punch.asp +++ b/APPL/BES/bes_hook_punch.asp @@ -18,6 +18,7 @@ */ %> + <% var urole = getQParamSafe("urole"); var dis_key = getQParamInt("dis_key"); diff --git a/APPL/BES/sel_items_tab.js b/APPL/BES/sel_items_tab.js index 8413b606ac..5db8dc50bd 100644 --- a/APPL/BES/sel_items_tab.js +++ b/APPL/BES/sel_items_tab.js @@ -71,9 +71,10 @@ function maxArtikelReached() return (maxartikel > 0 && aantalArtikelen >= maxartikel) } +var jqFreeFields = ["lev_key_show", "srtdeel_nr", "omschrijving", "srtgroep", "price", "aantal_text"]; function AddFreeArticleItem(urole) { - if (!validateForm("u2", { checkOnly: ["lev_key_show", "srtdeel_nr", "omschrijving", "srtgroep", "price", "aantal_text"] })) + if (!validateForm("u2", { checkOnly: jqFreeFields })) return; window.bes_item_info = { @@ -88,7 +89,7 @@ function AddFreeArticleItem(urole) "singlegroep":0, //"srtdeel_image":"https://cos.euroflorist.com/uwv/Products/ARR06_03.jpg", "veelvoud":1, - "price":parseFloat($("#price").val()), + "price":parseFloat(String($("#price").val()).replace(',', '.')) || 0.0, "eenheid":$("#unit").val(), "num_prop":0, "staffelgroep":-1, @@ -141,16 +142,15 @@ function AddSuggestItem(bes_item_info, aantal, urole) function AddItem(bes_item_info, aantal, urole, doCheckAmount) { - var table = $("#sel_items")[0]; - // openModalDetail is dan wel modal maar niet synchroon, daarom continueAdd callback var continueAdd = function(objFlex) { - if (objFlex || bes_item_info.num_prop == 0) - { - var aantal_cell = CreateRow(bes_item_info, aantal, -1, true, objFlex, urole); - if (doCheckAmount) - checkAmount(aantal_cell); // eventuele minimum en zo + if (bes_item_info.num_prop > 0 && !objFlex) + return; // geen flex ingevuld + + var aantal_cell = CreateRow(bes_item_info, aantal, -1, true, objFlex, urole); + if (doCheckAmount) + checkAmount(aantal_cell); // eventuele minimum en zo StaffelKortingResult(); @@ -164,8 +164,16 @@ function AddItem(bes_item_info, aantal, urole, doCheckAmount) } // Item veld en details van item wissen: onChangeArtikelgroep does the trick - if (!bes_item_info.isFreeArticle) // niet bij de isFreeArticle + if (!bes_item_info.isFreeArticle) onChangeArtikelgroep(); + else + { + $('#aantal_text').val(""); + $('#srtdeel_nr').val(""); + $('#omschrijving').val(""); + $("#price").val(""); + $("#unit").val(""); + } // Als het maximum aantal artikelen voor deze discipline bereikt is moet het artikel veld gedisabled worden. if (maxArtikelReached()) @@ -175,10 +183,6 @@ function AddItem(bes_item_info, aantal, urole, doCheckAmount) } FcltMgr.resized(window); - } - else { - return; - } } var objFlex = false; @@ -516,7 +520,7 @@ function checkInput() function MakeOrder (newOrder) { // Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat. - if (!validateForm("u2")) + if (!validateForm("u2", { checkNot: jqFreeFields })) return false; // Formulier specifieke checks diff --git a/APPL/FAC/help.asp b/APPL/FAC/help.asp index 89e573a3f4..05d430f47b 100644 --- a/APPL/FAC/help.asp +++ b/APPL/FAC/help.asp @@ -66,12 +66,7 @@ if (Session("user_lang")) urole = findparam(params, "urole"); if (urole) url += "&urole=" + urole; + +Response.Redirect(protectQS.create(url, { sleutel: S("helppage_secret"), no_user_key: true })); +Response.End; %> - - -<% FCLTHeader.Generate() %> - - - " frameborder="0" marginwidth="0" noresize> - - diff --git a/APPL/Localscripts/iface.js b/APPL/Localscripts/iface.js index 9b05ce3985..26a67fdde3 100644 --- a/APPL/Localscripts/iface.js +++ b/APPL/Localscripts/iface.js @@ -173,6 +173,7 @@ iface = } // params: checkOnly : [] beperkt array met velden die gecontroleerd moeten worden // (default alles met class 'required') +// checkNot : [] deze velden niet controleren (default leeg) // relaxed : alleen controle, geen class aanpassingen of alerts function validateForm(fName, params) { // TODO: Alleen binnen fName kijken? @@ -227,15 +228,17 @@ function validateForm(fName, params) var anyBad = false; var validatorHint = ""; - var selector = ".required"; var jqcheckonly="*"; if (params.checkOnly) // slechts enkele velden controleren jqcheckonly = "#" + params.checkOnly.join(",#"); + var jqchecknot=""; + if (params.checkNot) // Deze velden niet meer controleren + jqchecknot = "#" + params.checkNot.join(",#"); if (params.relaxed) clsName = ""; - $(selector).filter(jqcheckonly).each(function (i) + $(".required").filter(jqcheckonly).not(jqchecknot).each(function (i) { switch (this.tagName) { @@ -282,9 +285,10 @@ function validateForm(fName, params) case "TEXTAREA": { // bij currency zijn we extra streng: 0.0 wordt niet geaccepteerd. + // tenzij je oorspronkelijk requiredor0:true (ipv required) hebt meegegeven $(this).removeClass(clsName); if ($(this).val() == "" || - ($(this).hasClass("currency") && parseFloat($(this).val().replace(',', '.')) == 0) || + ($(this).hasClass("currency") && !$(this).hasClass("required0isoke") && parseFloat($(this).val().replace(',', '.')) == 0) || $(this).hasClass("suggestBad") || ($(this).hasClass("suggest") && this.getAttribute("sgKey") < 0)) { @@ -313,7 +317,7 @@ function validateForm(fName, params) } ) - $(".number").filter(jqcheckonly).each(function (i) + $(".number").filter(jqcheckonly).not(jqchecknot).each(function (i) { if ($(this).val() != "" && isNaN(parseInt($(this).val()), 10)) { @@ -326,7 +330,7 @@ function validateForm(fName, params) } } ) - $(".float").filter(jqcheckonly).each(function (i) + $(".float").filter(jqcheckonly).not(jqchecknot).each(function (i) { if ($(this).val() != "" && !isFinite(parseFloat($(this).val()))) { @@ -339,7 +343,7 @@ function validateForm(fName, params) } } ) - $(".currency").filter(jqcheckonly).each(function (i) + $(".currency").filter(jqcheckonly).not(jqchecknot).each(function (i) { if ($(this).val() != "" && !_isGoodCurrency($(this).val().replace(',', '.'))) { @@ -352,7 +356,7 @@ function validateForm(fName, params) } } ) - $("input[regexp]").filter(jqcheckonly).each(function (i) + $("input[regexp]").filter(jqcheckonly).not(jqchecknot).each(function (i) { if (($(this).hasClass("required") || $(this).val()) && (!_isGoodTextFormat(this))) { @@ -365,7 +369,7 @@ function validateForm(fName, params) } } ) - $("textarea[regexp]").filter(jqcheckonly).each(function (i) + $("textarea[regexp]").filter(jqcheckonly).not(jqchecknot).each(function (i) { if (($(this).hasClass("required") || $(this).val()) && (!_isGoodTextFormat(this))) { diff --git a/APPL/PRS/prs_edit_afdeling.asp b/APPL/PRS/prs_edit_afdeling.asp index 177e40d360..f525cb5e73 100644 --- a/APPL/PRS/prs_edit_afdeling.asp +++ b/APPL/PRS/prs_edit_afdeling.asp @@ -120,7 +120,7 @@ BLOCK_START("prsAfd", L("lcl_dep_name_level"+afd_niveau)); required: true }); } - RWFIELDTR("afd_naam", "fld", L("lcl_prs_dept_name"), afd_naam, {required: true, maxlength: 10}); + RWFIELDTR("afd_naam", "fld", L("lcl_prs_dept_name"), afd_naam, {required: true, maxlength: 15}); RWFIELDTR("afd_oms", "fld", L("lcl_prs_dept_desc"), afd_oms, {required: true, maxlength: 60}); FCLTkostenplaatsselector( "kstpl_key", diff --git a/APPL/RES/res_multi_create_save.asp b/APPL/RES/res_multi_create_save.asp index bced5d02f5..e456dd42a3 100644 --- a/APPL/RES/res_multi_create_save.asp +++ b/APPL/RES/res_multi_create_save.asp @@ -79,7 +79,8 @@ for (var i = 1; i <= form_dates.Count; i++) } } } -sql += "END;" +sql += " UPDATE res_rsv_artikel SET res_rsv_artikel_prijs = NULL WHERE res_rsv_ruimte_key = new_key;"; // NYBU#31785 DB24 res.res_copy_res doet dat fout +sql += " END;" var err = Oracle.Execute(sql, true); if (err.friendlyMsg) abort_with_warning(err.friendlyMsg); diff --git a/APPL/Shared/default.inc b/APPL/Shared/default.inc index 4b1d42eb28..3b048706ae 100644 --- a/APPL/Shared/default.inc +++ b/APPL/Shared/default.inc @@ -9,7 +9,7 @@ Note: Sinds 5.2.2 zitten de settings in de database */ -var FCLTVersion="5.4.4d"; // software versie +var FCLTVersion="5.4.4e"; // software versie var FCLTMinDatabaseSchema="24"; var custpath = rooturl + "/cust/" + customerId; // path to customer files diff --git a/APPL/Shared/iface.inc b/APPL/Shared/iface.inc index 4804146733..dd24b5d56b 100644 --- a/APPL/Shared/iface.inc +++ b/APPL/Shared/iface.inc @@ -291,6 +291,7 @@ function RWFIELD(pname, pclass, plabel, pvalue, params) var lclass = pclass; if (params.infoPointer) lclass += " details"; if (!params.readonly && params.required) lclass += " required"; + if (!params.readonly && params.requiredor0) lclass += " required required0isoke"; var inputtype = (isBadInput()? " type='text'" : " type='number'"); var lstep=""; switch (params.datatype) { diff --git a/UTILS/PutOrders/puo_putorders.wsc b/UTILS/PutOrders/puo_putorders.wsc index f5a4492f76..de1e556570 100644 --- a/UTILS/PutOrders/puo_putorders.wsc +++ b/UTILS/PutOrders/puo_putorders.wsc @@ -141,8 +141,13 @@ function sendMLDorders(opdr_key) oRs.Close(); var result = send1Order(Bedrijf_key, XMLnode, OpdrKey, ordernr, Sender, cust) - if (!result) + if (result) + { + Log2File(1, "====== " + XMLnode + " done (" + toDateTimeString(new Date()) + ")"); + } + else { // Dan maar opnieuw door scheduled putorders laten proberen + Log2File(1, "====== " + XMLnode + " sending failed. Retry by scheduled putorders (" + toDateTimeString(new Date()) + ")"); var sql = "UPDATE mld_opdr SET mld_opdr_teverzenden = 1 WHERE mld_opdr_key = " + opdr_key; Oracle.Execute(sql); } diff --git a/UTILS/PutOrders/puo_sendftp.js b/UTILS/PutOrders/puo_sendftp.js index 21814a3d4b..56a9ab901e 100644 --- a/UTILS/PutOrders/puo_sendftp.js +++ b/UTILS/PutOrders/puo_sendftp.js @@ -10,7 +10,7 @@ function sendFTP(p_connect, p_file, p_data, p_path) { var objFso = new ActiveXObject("Scripting.FileSystemObject"); - Log2File(1, "*> sendFTP"); + Log2File(2, "*> sendFTP"); var FTPsend = false; if (p_connect.Connected) { @@ -41,7 +41,7 @@ function sendFTP(p_connect, p_file, p_data, p_path) FTPsend = false; } } - Log2File(1, "*< sendFTP"); + Log2File(2, "*< sendFTP"); return FTPsend; }