From 67e13fa1dfef7d9ef160f26021e15ff522431f06 Mon Sep 17 00:00:00 2001 From: Maykel Geerdink Date: Tue, 22 Mar 2016 14:52:37 +0000 Subject: [PATCH] MARX#35457: Extra velden bij opdrachtmateriaal tbv Tobias-inkooporders. svn path=/Website/trunk/; revision=28583 --- APPL/BES/bes_edit_bestelling.asp | 1 + APPL/MLD/mld_edit_opdr.asp | 8 ++ APPL/MLD/mld_edit_opdr.js | 50 ++++++++----- APPL/MLD/mld_edit_opdr_save.asp | 18 +++-- APPL/MLD/mld_opdr_materiaal.asp | 3 +- APPL/MLD/mld_opdr_materiaal.js | 124 +++++++++++++++++++++++-------- APPL/MLD/mld_show_opdr.js | 2 +- APPL/Shared/default.csx | 14 ++-- APPL/Shared/loadBtwTabel.asp | 25 ++++++- APPL/Shared/selector.inc | 2 +- 10 files changed, 182 insertions(+), 65 deletions(-) diff --git a/APPL/BES/bes_edit_bestelling.asp b/APPL/BES/bes_edit_bestelling.asp index 400b4b82d5..012b99ab89 100644 --- a/APPL/BES/bes_edit_bestelling.asp +++ b/APPL/BES/bes_edit_bestelling.asp @@ -525,6 +525,7 @@ else // nieuwe bestelling. Defaults bepalen { $("#btw").load("../Shared/loadBtwTabel.asp", { bedrijf_key: p_key, + sel_key: "perc", // select key is fin_btwtabelwaarde_perc required: true, selectjustone: true, emptyOption: "" diff --git a/APPL/MLD/mld_edit_opdr.asp b/APPL/MLD/mld_edit_opdr.asp index 8a9eaa5e5a..1809761c89 100644 --- a/APPL/MLD/mld_edit_opdr.asp +++ b/APPL/MLD/mld_edit_opdr.asp @@ -822,7 +822,9 @@ oRs.Close(); var matopdrkeyarr = []; var matkeyarr = []; var matamountarr = []; + var matunitarr = []; var matpricearr = []; + var matbtwarr = []; var matdescriptarr = []; var mataantal = 0; if (opdr_key > 0) @@ -830,7 +832,9 @@ oRs.Close(); sql = "SELECT fac_usrdata_key" + " , mld_opdr_materiaal_key" + " , mld_opdr_materiaal_aantal" + + " , mld_opdr_materiaal_eenheid" + " , mld_opdr_materiaal_prijs" + + " , fin_btwtabelwaarde_key" + " , mld_opdr_materiaal_omschr" + " FROM mld_opdr_materiaal ud" + " WHERE mld_opdr_key = " + opdr_key; @@ -842,7 +846,9 @@ oRs.Close(); matopdrkeyarr.push(oRs("mld_opdr_materiaal_key").Value); matkeyarr.push( oRs("fac_usrdata_key").Value || -1 ); matamountarr.push(oRs("mld_opdr_materiaal_aantal").Value); + matunitarr.push(oRs("mld_opdr_materiaal_eenheid").Value); matpricearr.push(safe.jsfloat(oRs("mld_opdr_materiaal_prijs").Value)); + matbtwarr.push(oRs("fin_btwtabelwaarde_key").Value); matdescriptarr.push(oRs("mld_opdr_materiaal_omschr").Value || "Dummy"); // Voor vaste materialen 'Dummy' gebruiken oRs.MoveNext(); } @@ -857,7 +863,9 @@ oRs.Close(); "> "> "> + "> "> + "> @@ -163,7 +165,6 @@ if (!readonly && opdr_key > 0) rst.addColumn(new Column({caption: L("lcl_mld_opdr_prijs"), content: "mld_opdr_materiaal_prijs", datatype: "currency"})); rst.addColumn(new Column({caption: L("lcl_mld_opdr_totaal"), content: "totaal", datatype: "currency"})); rst.addColumn(new Column({caption: L("lcl_mld_opdr_btw"), content: "fin_btwtabelwaarde_code"})); - rst.addColumn(new Column({caption: L("lcl_mld_opdr_totaal_inBTW"), content: "totaalincbtw", datatype: "currency"})); var mld = rst.processResultset(); } else diff --git a/APPL/MLD/mld_opdr_materiaal.js b/APPL/MLD/mld_opdr_materiaal.js index bde21cdcca..a875bf2a32 100644 --- a/APPL/MLD/mld_opdr_materiaal.js +++ b/APPL/MLD/mld_opdr_materiaal.js @@ -159,9 +159,11 @@ function makeMaterialHtml(matExistArray) + "" + "" + "" - + "" - + "" + "" + + "" + + "" + + "" + + "" + "" + ""; matHtml += ""; @@ -182,6 +184,13 @@ function makeMaterialHtml(matExistArray) + " size='8' onKeyPress='checkKey(event, 1);'> " + "" + "" + + "" + + "" + + "" + // Eenheid kolom. + + "" + + "" + " " + "" + "" + // BTW kolom. + + "" + + "" + " " + "" - + "" - + "" - + "" + ""; } + matHtml += ""; return "" + matHtml + "
"; } @@ -212,7 +221,7 @@ var rowIndex = -1; function nextInvoer() { function material(matopdrkey, key, amount, descript, price, roprice) - { + { // Vaste materialen hebben geen eenheid en btw. this.matopdrkey = matopdrkey; this.key = key; this.amount = amount; @@ -229,8 +238,12 @@ function nextInvoer() var matopdrkeystrArr = (matopdrkeystr != "" ? matopdrkeystr.split(",") : []); var matamountstr = FcltMgr.dialogArguments().matamountstr; var matamountstrArr = (matamountstr != "" ? matamountstr.split(",") : []); + var matunitstr = FcltMgr.dialogArguments().matunitstr; + var matunitstrArr = (matamountstr != "" ? matunitstr.split(",") : []); var matpricestr = FcltMgr.dialogArguments().matpricestr; var matpricestrArr = (matpricestr != "" ? matpricestr.split(",") : []); + var matbtwstr = FcltMgr.dialogArguments().matbtwstr; + var matbtwstrArr = (matbtwstr != "" ? matbtwstr.split(",") : []); var matdescriptstrArr = FcltMgr.dialogArguments().matdescriptarr; //deze krijgen we rechtsteeks als array // Maak een array met alle gegevens van de vaste materialen die eerder zijn gekozen @@ -268,7 +281,7 @@ function nextInvoer() { if (matexiststrArr[i] == 0) { - CreateRow(matamountstrArr[i], matpricestrArr[i], matdescriptstrArr[i], matopdrkeystrArr[i]); + CreateRow(matamountstrArr[i], matunitstrArr[i], matpricestrArr[i], matbtwstrArr[i], matdescriptstrArr[i], matopdrkeystrArr[i]); setTotal(rowIndex); } } @@ -314,21 +327,23 @@ function mat_info() // overige materialen -function MldItem(qty, prc, sum, descr, key) +function MldItem(qty, unit, prc, btw, sum, descr, key) { - this.matopdrkey = key; - this.amount = qty; + this.matopdrkey = key; + this.unit = unit; + this.amount = qty; this.price = prc; + this.btw = btw; this.descript = descr; this.sum = sum; } function AddItem() { - CreateRow(1, 0, "", -1); + CreateRow(1, "", 0, -1, "", -1); } -function CreateRow(qty, prc, descr, key) +function CreateRow(qty, unit, prc, btw, descr, key) { rowIndex++; var table = $("#sel_items")[0]; @@ -349,6 +364,21 @@ function CreateRow(qty, prc, descr, key) + " id='qty" + rowIndex + "' name='qty" + rowIndex + "' maxlength='10' value='" + parseFloat(qty) + "'>"; cell.align = 'right'; + // Create description field + cell = tr.insertCell(-1); + cell.innerHTML = ""; + $("input", cell).val(descr); // safe oplossing + + // Create unit field + cell = tr.insertCell(-1); + cell.innerHTML = ""; + cell.align = 'right'; + // Create price field cell = tr.insertCell(-1); cell.innerHTML = ""; cell.align = 'right'; + // Create BTW field + cell = tr.insertCell(-1); + cell.innerHTML = "
"; + cell.align = 'right'; + cell.className = 'fldbtw'; + // Create total field cell = tr.insertCell(-1); cell.innerHTML = num2curr(sum) @@ -364,14 +400,20 @@ function CreateRow(qty, prc, descr, key) + "' value='" + num2curr(parseFloat(sum)) + "'>"; cell.align = 'right'; - // Create description field - cell = tr.insertCell(-1); - cell.innerHTML = ""; - $("input", cell).val(descr); // safe oplossing + $("#btwdiv" + rowIndex).load("../Shared/loadBtwTabel.asp", + { fieldname: "btw" + rowIndex, + sel_key: "key", // select key is fin_btwtabelwaarde_key + btw_key: btw, + bedrijf_key: uitv_key, + required: true, + selectjustone: true, + extraclass: "btwdiv", + onChange: "BtwChanged(event)", + emptyOption: "" + } + ); - matUserArray[rowIndex] = new MldItem(qty, prc, sum, descr, key); + matUserArray[rowIndex] = new MldItem(qty, unit, prc, btw, sum, descr, key); matUserArray[rowIndex].row = tr; } @@ -397,6 +439,16 @@ function QtyChanged(evt) setTotal(index); } +function UnitChanged(evt) +{ + evt = evt || window.event; + var obj = evt.srcElement || evt.target; + var unit = obj.value; + var index = obj.id.substr(4); + + matUserArray[index].unit = unit; +} + function PrcChanged(evt) { evt = evt || window.event; @@ -419,6 +471,16 @@ function PrcChanged(evt) setTotal(index); } +function BtwChanged(evt) +{ + evt = evt || window.event; + var obj = evt.srcElement || evt.target; + var btw = parseInt(obj.value, 10); + var index = obj.id.substr(3); + + matUserArray[index].btw = btw; +} + function DesChanged(evt) { evt = evt || window.event; @@ -426,17 +488,16 @@ function DesChanged(evt) var des = obj.value; var index = obj.id.substr(8); - matUserArray[index].descript = des; - // omschrijving mag maar 1 keer bestaan binnen opdracht. - for (var i in matUserArray) + matUserArray[index].descript = des; + // omschrijving mag maar 1 keer bestaan binnen opdracht. + for (var i in matUserArray) + { + if ((matUserArray[i].descript == des) && (i != index)) { - if ((matUserArray[i].descript == des) && (i != index)) - { - alert(L("lcl_mld_opdr_materials_unique")); - return; - } + alert(L("lcl_mld_opdr_materials_unique")); + return; } -// matUserArray[index].descript = des; + } } function DesCheck() @@ -470,9 +531,8 @@ function setTotal(index) { if ((matUserArray.length != 0) && (index >= 0)) { // Na wijzigen van amount of price moet de sum van deze regel worden aangepast. - matUserArray[index].sum = parseFloat(matUserArray[index].amount * matUserArray[index].price); - matUserArray[index].row.cells[3].innerHTML = "" + num2curr(matUserArray[index].sum) + "" - + " "; + matUserArray[index].sum = parseFloat(matUserArray[index].amount * matUserArray[index].price); + matUserArray[index].row.cells[5].innerHTML = "" + num2curr(matUserArray[index].sum) + "" + " "; } var total = 0; for (var i in matExistArray) diff --git a/APPL/MLD/mld_show_opdr.js b/APPL/MLD/mld_show_opdr.js index 3c9ea04388..017385633c 100644 --- a/APPL/MLD/mld_show_opdr.js +++ b/APPL/MLD/mld_show_opdr.js @@ -179,7 +179,7 @@ function mld_melding_materiaal() { // Maximum lengte van url is 2083 karakters (maximum path lengte is 2048 karakters). // Daarom de strings niet via url (GET) meesturen maar via params van openModalDetail (Nadeel: nu wel clientside beschikbaar bij mld_opdr_materiaal.asp) - var url = "mld_opdr_materiaal.asp?opdr_key=" + opdr_key + "&readonly=1"; + var url = "mld_opdr_materiaal.asp?opdr_key=" + opdr_key + "&readonly=1" + "&uitv_key=" + $("#uitvoerende").val(); FcltMgr.openModalDetail(url, L("lcl_mld_materialen"), diff --git a/APPL/Shared/default.csx b/APPL/Shared/default.csx index b55cba55c6..204f8e6190 100644 --- a/APPL/Shared/default.csx +++ b/APPL/Shared/default.csx @@ -90,7 +90,8 @@ th { padding-left: 6px; } #logintable #visname, -#logintable #vispswd +#logintable #vispswd, +#logintable #otpcode { width: 250px; border: 1px solid #B1B3B4; @@ -2340,14 +2341,14 @@ select.fldimport_app_key, .fldfinomsch, .flduitvExist width: 100%; } -.flduren, .fldgeboekt, .flduurtarief, .fldmatkosten, .fldcorrkosten, .fldtotkosten, .fldtermkosten, .fldbeslimiet, .fldprjraming, .rescat_p_c, .rescat_tp_c, .fldfinsom, +.flduren, .fldgeboekt, .flduurtarief, .fldmatkosten, .fldcorrkosten, .fldtotkosten, .fldtermkosten, .fldbeslimiet, .fldprjraming, .rescat_p_c, .rescat_tp_c, .fldcntprijs, .fldcntopp, .fldmrkprijs, .fldcntamount, .fldalgprijs, .fldfinsumover, .fldfinsumbelow, .fldbessrtweging, .fldbessrtprijs, .fldbestsrttotaal, -.fldmatamount, .fldmatprice, .fldmattotal, .fldkpnlimiet, .fldcntverlengen, .fldroomkosten, .fldvoorzkosten, .fldroomkorting, .fldroomtotaal, .fldrvskosten, .fldrespijt, +.fldkpnlimiet, .fldcntverlengen, .fldroomkosten, .fldvoorzkosten, .fldroomkorting, .fldroomtotaal, .fldrvskosten, .fldrespijt, .flduitvoertijd1, .flduitvoertijd2, .flduitvoertijd3, .flduitvoertijd4, .fldalg_uitvtijd, .fldbdr_uitvtijd, .fldins_uitvtijd, .fldmld_uitvtijd, .fldmld_accpettijd, .flddayshours, .flddayshours3, .flddayshours1, .flddayshours2, .flddayshours4, .flddayshourse, .flddayshours_resp, .flddayshours_urg, .fldfreebudget { width: 100px; } -.fldfinbedrag { +.fldfinbedrag, .fldmatamount, .fldmatprice, .fldmattotal, .fldfinsom { width: 100px; text-align:right; } @@ -2389,6 +2390,9 @@ select.fldimport_app_key, .fldfinomsch, .flduitvExist width: 20px; } +.btwdiv { + width: 100px; +} #fldobjPossible, #fldobjExist {width: 380px;} .fldobjcolumn {width: 200px; text-align:center} .fldobjmidcolumn {width: 140px; text-align:center} @@ -2590,7 +2594,7 @@ body.likemodal { #mod_prsinzetbaar {width:500px;} #mod_resupdateroom {width:430px;} #mod_resupdateobj {width:400px;} -#mod_mldmat {width:625px;} +#mod_mldmat {width:900px;} #mod_mldstdmsrtruimte {width:400px;} #mod_authQR {width:500px;} #mod_bijlagen {width:600px;} diff --git a/APPL/Shared/loadBtwTabel.asp b/APPL/Shared/loadBtwTabel.asp index fc0f23cc12..b383bef4e6 100644 --- a/APPL/Shared/loadBtwTabel.asp +++ b/APPL/Shared/loadBtwTabel.asp @@ -13,9 +13,15 @@ DOCTYPE_Disable = true; <% // Build a group list +var fieldname = getFParam("fieldname", null); +var select_key = getFParam("sel_key", "key"); +var btw_key = getFParamInt("btw_key", null); +var label = getFParam("label", null); +var extraclass = getFParam("extraclass", null); var bedrijf_key = getFParamInt("bedrijf_key", -1); var selectjustone = getFParam("selectjustone", true); var emptyOption = getFParam("emptyOption", null); +var onChange = getFParam("onChange", null); var required = getFParam("required", false); var btwtabel_key = -1; @@ -39,7 +45,7 @@ if (btwtabel_key == -1) oRs.Close(); } -var sql = "SELECT fin_btwtabelwaarde_perc" +var sql = "SELECT " + (select_key == "key"? "fin_btwtabelwaarde_key" : "fin_btwtabelwaarde_perc") + " , fin_btwtabelwaarde_oms" + " FROM fin_btwtabelwaarde" + " WHERE fin_btwtabel_key = " + btwtabel_key @@ -49,9 +55,22 @@ var params = { required: required, selectjustone: selectjustone } +if (btw_key != null) + params.initKey = btw_key; +if (label != null) + params.label = label; if (emptyOption != null) params.emptyOption = emptyOption; +if (extraclass != null) + params.extraclass = extraclass; +if (onChange != null) + params.onChange = onChange; -FCLTselectorOptions(sql, - params); +if (fieldname) + FCLTselector(fieldname, + sql, + params); +else + FCLTselectorOptions(sql, + params); %> diff --git a/APPL/Shared/selector.inc b/APPL/Shared/selector.inc index 7382bd541b..5c88236e30 100644 --- a/APPL/Shared/selector.inc +++ b/APPL/Shared/selector.inc @@ -92,7 +92,7 @@ function FCLTselector(fieldName, sql, params) if (!params.mobile) { %> <% } - %> <%=params.extraclass? " " + params.extraclass : ""%>" name="<%=fieldName%>" id="<%=params.id%>" <%=params.multi? " multiple" : ""%>