/* $Revision$ $Id$ File: mld_edit_opdr.js */ function mld_cancel() { FcltMgr.closeDetail(window, { cancel: true } ); } function showUurtarief(json, textStatus) { if (textStatus == "success") { var uurtarief = parseFloat(json.uurtarief); // Uurtarief van bedrijf if (isNaN(uurtarief)) { // Bereken opdrachttarief if (json.uurtarief == null) $("#uurtarief").val(""); var uren = parseFloat( $("#uren").val()); var mat_kosten = parseFloat( $("#mat_kosten").val()); var corr_kosten = parseFloat( $("#corr_kosten").val()); var tot_kosten = parseFloat( $("#tot_kosten").val()); if (isNaN(mat_kosten)) mat_kosten = 0; if (!isNaN(uren) && !isNaN(tot_kosten) && uren > 0) { uurtarief = (tot_kosten - mat_kosten - corr_kosten)/uren; // Uurtarief van opdracht } } if (!isNaN(uurtarief)) { $("#uurtarief").val(num2currEditable(uurtarief)); // Totaal nu ook aanpassen. calcTotal(); } } else FcltMgr.alert("showUurtarief: " + textStatus); } function changeUurtarief() { // Deze toont het uurtarief, hetzij van de opdracht, hetzij (als leeg) van het uitvoerende bedrijf // Bedoeld wordt dat het uurtarief dat bij de opdracht is opgeslagen wordt gebruikt en dat kan afwijken van // het tarief van het uitvoerende bedrijf. Als de gebruiker echter de uitvoerende verandert, dan wordt het // tarief van dat nieuwe bedrijf gebruikt. Dat is dus op de onchange van uitvoerende if (tonen_uren == 1) { var uitv_key = $("#uitvoerende").val(); var pbtype = $("#pbtype").val(); var pers_key = $("#contactpers").val(); var cnt_key = $("#contract").val(); $.getJSON("get_uurtarief_info.asp", { bedrijf_key: uitv_key, pbtype: pbtype, contactpersoon_key: pers_key, contract_key: cnt_key }, showUurtarief) } } // Bereken het totaal bedrag van de opdracht. function calcTotal() { // Één van de velden uren, tarief, materiaal bedrag, correctie en/of opdrachtnr is aangepast. // Als het uren veld en/of het tarief veld en/of materiaal bedrag veld en/of het correctie veld aanwezig is/zijn dan kan het totaal m.b.v. die velden berekenend worden. if (tonen_totaal) { var valid_mat_kosten = false; var valid_corr_kosten = false; var valid_uren = false; var valid_uurtarief = false; var tot_kosten; var uren = $("#uren").val(); if (!(uren == null || uren == "" || typeof uren == "undefined")) { uren = tonen_uren? parseFloat($("#uren").val().replace(',', '.')) : 0; valid_uren = !isNaN(uren); } var uurtarief = $("#uurtarief").val(); if (!(uurtarief == null || uurtarief == "" || typeof uurtarief == "undefined")) { uurtarief = tonen_uren? parseFloat($("#uurtarief").val().replace(',', '.')) : 0; valid_uurtarief = !isNaN(uurtarief); if (valid_uurtarief) $("#uurtarief").val(num2currEditable(uurtarief)); } var mat_kosten = $("#mat_kosten").val(); if (!(mat_kosten == null || mat_kosten == "" || typeof mat_kosten == "undefined")) { mat_kosten = tonen_materiaal_bedrag? parseFloat($("#mat_kosten").val().replace(',', '.')) : 0; valid_mat_kosten = !isNaN(mat_kosten); if (valid_mat_kosten) $("#mat_kosten").val(num2currEditable(mat_kosten)); } var corr_kosten = $("#corr_kosten").val(); if (!(corr_kosten == null || corr_kosten == "" || typeof corr_kosten == "undefined")) { corr_kosten = tonen_correctie? parseFloat($("#corr_kosten").val().replace(',', '.')) : 0; valid_corr_kosten = !isNaN(corr_kosten); if (valid_corr_kosten) $("#corr_kosten").val(num2currEditable(corr_kosten)); } if ((valid_uren && valid_uurtarief) || valid_mat_kosten || valid_corr_kosten) { tot_kosten = (valid_uren && valid_uurtarief? uren * uurtarief : 0) + (valid_mat_kosten? mat_kosten : 0) + (valid_corr_kosten? corr_kosten : 0); $("#tot_kosten").val(num2currEditable(tot_kosten)); } else $("#tot_kosten").val(null); } //else return; // Geen van de kostenvelden zijn aanwezig. } // Bereken het totaal bedrag van de opdracht. function calcTotalMobile() { // Één van de velden uren, tarief, materiaal bedrag, correctie en/of opdrachtnr is aangepast. // Als het uren veld en/of het tarief veld en/of materiaal bedrag veld en/of het correctie veld aanwezig is/zijn dan kan het totaal m.b.v. die velden berekenend worden. if (tonen_totaal) { var valid_mat_kosten = false; var valid_corr_kosten = false; var valid_uren = false; var valid_uurtarief = false; var uren = parseFloat($("#uren").val().replace(',', '.')); var uurtarief = parseFloat($("#uurtarief").val().replace(',', '.')); var mat_kosten = parseFloat($("#mat_kosten").val().replace(',', '.')); var corr_kosten = parseFloat($("#corr_kosten").val().replace(',', '.')); var tot_kosten = (isNaN(uren)? 0 : uren) * (isNaN(uurtarief)? 0 : uurtarief) + (isNaN(mat_kosten)? 0 : mat_kosten) + (isNaN(corr_kosten)? 0 : corr_kosten); if ($("#uren").val() != '' && !isNaN(uren)) { valid_uren = true; $("#uren").val(parseFloat($("#uren").val()).toFixed(2)); } else $("#uren").val(null) if ($("#uurtarief").val() != '' && !isNaN(uurtarief)) { valid_uurtarief = true; $("#uurtarief").val(parseFloat($("#uurtarief").val()).toFixed(2)); } else $("#uurtarief").val(null) if ($("#mat_kosten").val() != '' && !isNaN(mat_kosten)) { valid_mat_kosten = true; $("#mat_kosten").val(parseFloat($("#mat_kosten").val()).toFixed(2)); } else $("#mat_kosten").val(null) if ($("#corr_kosten").val() != '' && !isNaN(corr_kosten)) { valid_corr_kosten = true; $("#corr_kosten").val(parseFloat($("#corr_kosten").val()).toFixed(2)); } else $("#corr_kosten").val(null) if (!valid_mat_kosten && !valid_corr_kosten && (!valid_uren || !valid_uurtarief)) { $("#tot_kosten").val(null); } else { $("#tot_kosten").val(num2currEditable(tot_kosten)); } } //else return; // Geen van de kostenvelden zijn aanwezig. } function showCnt() { if ($('#contract').val() > 0) FcltMgr.openDetail("appl/CNT/cnt_contract.asp?cnt_key=" + $('#contract').val() + "&urole=" + urole, L("lcl_mld_cnt_contract") + " " + $('#contract').val()); } function updateCnt() { var mld_key = $("#mld_key").val(); var cnt_key = $("#contract").val(); var uitv_key = $("#uitvoerende").val(); $("#contract").closest('td').load("../Shared/loadContract.asp?mld_key=" + mld_key + (uitv_key? "&bedrijf_key=" + uitv_key : "") + (cnt_key? "&cnt_key=" + cnt_key : "") + (frontend? "&moreinfo=1" : "") + "&typeopdr_contract=" + typeopdr_contract); } function changeBudgetholder() { if ($("#fiat").length) { if ($("#budgeth").val() == "") { // Er is geen budgethouder (kostenplaatsverantwoordelijke of kostenplaatsgroepverantwoordelijke) // Opdracht kan dan ook niet gefiatteerd worden $("#fiat")[0].checked = false; $("#fiat")[0].disabled = true; } else $("#fiat")[0].disabled = false; } } function onChangeUitv(u_key, txt) { if (u_key > 0) { var pbtype = $("#pbtype").val(); if ($("#behandelaar").val() < 0) { if (pbtype != "BI") // setValue(key, txt, doonChange, checkExist, extraParam, lastTry) // De user hoef ik hier niet te checken of die bestaat (checkExist). sgPerson.setValue(user_key, user_naam); //else // Behandelaar is al leeg. } else // ($("#behandelaar").val() > 0) { // Nieuwe opdrachten behandelaarveld leegmaken als wordt gewijzigd naar Intern bedrijf. if (opdr_key < 0 && pbtype == 'BI') sgPerson.setValue(-1, ""); else { // Bij bestaande opdrachten kan deze zomaar bewust gekozen zijn dus dan laten we de behandelaar met rust. // Wel checken of die hier nu mag. Het kan zijn dat bij een bestaande opdracht de behandelaar wel bestond maar nu niet meer. // De user naam bestaat want anders kun je niet ingelogd zijn. Deze hoeft dus niet gecontroleerd te worden. // De user _Facilitor kan zo ingevuld blijven. Anders wordt deze steeds verwijderd. // setValue(key, txt, doonChange, checkExist, extraParam, lastTry) // lastTry is true zodat suggestbox wordt leeggemaakt indien waarde niet voorkomt (en niet de laatst waarde wordt getoond) if ($("#behandelaar_show").val() != user_naam) sgPerson.setValue($("#behandelaar").val(), $("#behandelaar_show").val(), true, true, null, true); } } // Maak contactpersoon leeg sgCntPersUitv.setValue(-1, ""); // Verberg contactpersoon indien persoon ('P') of intern bedrijf ('BI'). Alleen tonen voor extern bedrijf ('BE'). if (pbtype == 'BE') $("#contactpers").closest("tr").show(); else $("#contactpers").closest("tr").hide(); // Update contract selectbox updateCnt(); changeUurtarief(); calcTotal(); recalcEinddatum(); } else updateCnt(); } function onChangePers(u_key, txt) { if (u_key > 0) { changeUurtarief(); calcTotal(); recalcEinddatum(); } } // Einddatum calendar aanpassen function processEinddatum(data, textStatus) { if (data.einddatum) data.einddatum = new Date(data.einddatum); // was nog millisec var params = { cal_id: "date_done", datum: data.einddatum? data.einddatum.getTime() : "", initEmpty: !data.einddatum? 1 : 0, // Leeg als einddatum null is. minDate: (mld_enforce_orderdates? mld_startdatum.getTime() : (opdr_key < 0? new Date().getTime() : registratiedatum.getTime())), timeField: ((data.uitvoertijd != null && data.uitvoertijd.eenheid == "U") || (data.uitvoertijd == null && data.mld_uitvoertijd_eenheid == "U") ? 1 : 0), // sla_mode is hier altijd 1 (= Leverancier) timeStep : 15, // TODO: Is nog wel erg hard. Zie ook mld_edit_opdr.asp startTime: startOfWorkDay, endTime : endOfWorkDay, readonly: (opdr_key > 0 && !canDatesChange? 1 : 0), required: 1, volgnr: 2, onChangeCode: 3 // DateChanged() //addClass: // Eventueel zetten van de "expired2" class gebeurt wel in de callback functie "DateChanged" }; if (mld_enforce_orderdates) params.maxDate = mld_einddatum.getTime(); // Einddatum melding. $("#span_date_done").load("../Shared/loadCalendar.asp?" + serializeObj(params), function() { DateChanged(); } // Aantal werkdagen moet weer kloppen en eventueel "expired2" class zetten. ); } function recalcEinddatum(luitv_key) { if (sla_mode == 1) // einddatum alleen berekenen voor leverancier-SLA { var uitv_key = luitv_key? luitv_key : $("#uitvoerende").val(); var startdate = new Date(parseInt($("#orderdate").val(), 10)); // Huidige opgeslagen waarde (Is zonder tijd) var startdatum = startdate.getTime(); var dienst_key = $("#dienstfilt").val() || -1; // daarmee kan ik de database de einddatum laten bepalen var params = { req_info: "calc_opdrachteinddatum", mld_key: mld_key, startdatum: startdatum, dienst_key: dienst_key, uitv_key: uitv_key, sla_mode: sla_mode } $.getJSON("./get_mld_info_ajax.asp", params, processEinddatum); } } function onChangeContract() { var cnt_key = $("#contract").val(); if (cnt_key > 0) { // Selecteer uitvoerende die bij het geselecteerde contract hoort. var selectedIndex = $("#contract")[0].options.selectedIndex; var bedrijf_key = $("#contract")[0].options[selectedIndex].getAttribute("bedrijf_key"); var bedrijf_naam = $("#contract")[0].options[selectedIndex].getAttribute("bedrijf_naam"); // Soms staat er voor de bedrijfsnaam een prefix plus ** of *. Echter bedrijfsnaam meegeven aan setValue is genoeg (wat je normaal ook intypt in suggest veld) sgUitv.setValue(bedrijf_key, bedrijf_naam, false); // Maak contactpersoon leeg. sgCntPersUitv.setValue(-1, ""); } // else //(cnt_key < 0) // De extra parameters bij de contracht listbox zijn dan bedrijf_key == -1 en bedrijf_naam == ""; // Dan de Uitvoerende selectbox niet leegmaken. De contract selectbox is dan nog steeds juist gevuld. changeUurtarief(); } function onChangeAccount() { // Omdat de budgetholder tegenwoordig als extra-param meekomt met de suggest kunnen we direct upload al aanroepen. changeBudgetholder(); } function checkInput() { var s = $("#opdr_omschr").val(); if (s.length > 4000) { s = s.substring(0, 4000); $("#opdr_omschr").val(s); } s = $("#opdr_opm").val() || ""; if (s.length > 4000) { s = s.substring(0, 4000); $("#opdr_opm").val(s); } } function opdr_submit_callback(json) { if (json.success) FcltMgr.closeDetail(window, json); else iface.button.enable("btn_mld_submit"); } function askshiftdateCallback(json, textStatus) { if (!json.cancelsd) { var shiftdate = (json && json.shiftdate? "&shiftdate=1" : ""); $.post($("form[name=u2]")[0].action, $("[name=u2]").serialize() + shiftdate, FcltCallbackAndThenAlways(opdr_submit_callback), "json"); } else { // Cancel. iface.button.enable("btn_mld_submit"); } } function mld_submit(json) { if (document.activeElement.tagName != "BODY") document.activeElement.blur(); // trigger laatste onChanges $('#r_objs>option').prop("selected", "true"); // Zet selected zodat verplicht ze ziet en zodat waarden worden gesubmit // Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat. if (!validateForm("u2")) return false; // Formulier specifieke checks checkInput(); // Negeer de multi of de suggest, afhankelijk van welke ingevuld (zichtbaar) is if ($(".r_objs.nowrap").is(":hidden")) $(".r_objs.nowrap").find("input.r_objs").removeAttr("name"); else $("select#r_objs").removeAttr("name"); // Er moet minimaal 0 voor een van de kostenvelden zin ingevuld. if ( $("#tot_kosten").hasClass("required") ) if ( $("#mat_kosten").val() == "" && $("#corr_kosten").val() == "" && ($("#uren").val() == "" || $("#uurtarief").val() == "") ) return false; var matkeystr = $("#matkeystr").val(); if (typeopdr_materiaal == 3 && matkeystr == "") { $("#materiallist_button").addClass("missing"); return false; } var autoConf = opdr_key < 0 && !copy && typeopdr_isofferte == 0 && parseInt($("#tot_kosten").val()) >= 0 && typeopdr_offertelimiet > 0 && typeopdr_offertelimiet < parseInt($("#tot_kosten").val()); FcltMgr.confirm(L("lcl_mld_opdr_offerte_vereist").format(typeopdr_offertelimiet), { autoconfirm: !autoConf, fncancel: function() { iface.button.enable("btn_mld_submit"); } }, function() { // Is het een nieuwe offerte waar één of meerdere bedrijven ingevuld moeten worden $("#uitvoerendelist_button").removeClass("missing"); if (opdr_key < 0 && !copy && typeopdr_isofferte == 1 && $("#uitvkeystr").val() == "") { $("#uitvoerendelist_button").addClass("missing"); FcltMgr.alert(L("lcl_shared_validator_missing").format(typeopdr_offertelimiet)); iface.button.enable("btn_mld_submit"); } else { // combinatievalidatie komt wel in mld_edit_opdr_save.asp // fiat validatie komt wel in mld_edit_opdr_save.asp if (window.matdescriptarr) { // elke omschrijving eigen veld zodat goed gaat met komma's // getFParamArray kan daar ook tegen $("form[name=u2] input[name='matdescriptstr']").remove(); var i; for (i in window.matdescriptarr) { $("form[name=u2]").append($("").val(window.matdescriptarr[i])); } } var opdr_einddatum = new Date(parseInt($("#date_done").val())); if (opdr_key > 0 && // Bestaande opdracht. canDatesChange && // Opdracht datum was wijzigbaar. canWriteDatumsMld && // Ik heb de rechten om de melding einddatum aan te passen. mld_opdr_einddatum && mld_opdr_einddatum.getTime() <= mld_einddatum.getTime() && // Huidige opdracht einddatum is voor of gelijk aan de huidige melding einddatum. mld_opdr_einddatum.getTime() > 0 && // Proberen we een ongeldige datum (1900) te herstellen? opdr_einddatum.getTime() != mld_opdr_einddatum.getTime() && // Datum van de opdracht is aangepast. opdr_einddatum.getTime()> mld_einddatum.getTime()) // Nieuwe opdracht einddatum is na de huidige melding einddatum. { var url = "../mld/mld_askshiftdate.asp?mld_einddatum=" + mld_opdr_einddatum.getTime(); // Vraag om einddatum melding met einddatum opdracht mee te verschuiven. FcltMgr.openModalDetail(url, L("lcl_opdr_info") + " " + opdrachtid, {callback: askshiftdateCallback}); } else { var finish = (json && json.finish? "&finish=1" : ""); $.post($("form[name=u2]")[0].action, $("[name=u2]").serialize() + finish, FcltCallbackAndThenAlways(opdr_submit_callback), "json"); } } }); } function opdr_edit_finish() { var opdr_kosten = parseFloat(String($("#tot_kosten").val()).replace(',', '.')); if (kosten_verplicht_afr && isNaN(opdr_kosten)) { FcltMgr.alert(L("lcl_mld_opdr_kosten_verpl_afr")); return; } var data = { opdr_key: opdr_key, opdr_kosten: (isNaN(opdr_kosten) ? "" : opdr_kosten) }; protectRequest.dataToken(data); $.post( "opdr_finish.asp" , data , FcltCallbackAndThen(mld_submit) , "json" ); } function exectimeChanged(json, textStatus) { if (textStatus == "success") { if (json.dagen >= 0) $("#period").text(json.dagen); } else FcltMgr.alert("FcltCallback: " + textStatus); } // opdracht of opdracht-klaar datum is gewijzigd // Afgeleid gegeven 'period' up to date brengen. function DateChanged() { if (mld_einddatum.getTime() < $("#date_done").val()) $("#show_date_done").addClass("expired2"); else $("#show_date_done").removeClass("expired2"); if ($("#show_orderdate").val() != "" && $("#show_date_done").val() != "" && $("#date_done").val()) // Als einddatum (date_done) readonly is, hoeft de doorlooptijd niet opnieuw herberekend te worden. $.getJSON("runtime_recalc_opdr.asp", { opdr_key: opdr_key, opdr_datum: $("#orderdate").val(), // Opdrachtdatum opdr_datum_eind: $("#date_done").val() }, // Enddatum exectimeChanged); else $("#period").text(0); } function setImage(id, src) { document.getElementById("id").src = "../Pictures/" + src; } function onChangedDienst() { //sgUitv.setValue($("#uitvoerende").val(), $("#uitvoerende_show").val(), true, true, null, true); // Regel hierboven werkt niet goed omdat CheckExist een get call veroorzaakt om te kijken of waarde bestaat. // In de tussentijd verstoort CheckJustOne dit process met een $.getJSON() // Dus gewoon Uitvoerende leegmaken if ($("#uitvoerende").length > 0) { // Suggestbox is aanwezig sgUitv.setValue(-1, "", true, false, null, true); sgUitv.CheckJustOne(); } } function onChangeFiat() { // Als kostenplaats sowieso verplicht dan komen we hier nooit var kosten = $("#fiat")[0].checked; $("#account_show").toggleClass('required', kosten); } function toggleObjectPicker(count) { if (count == 0) $("#r_objs").html(""); if (typeof sgObject == "undefined") return; else if (count != 1) sgObject.setValue(-1, ""); var isSuggest = $("select#r_objs").hasClass("hidden"); if (count == 0 || count == 1) { // Make suggest if (isSuggest) return; $("select#r_objs").addClass("hidden"); $("div.r_objs.nowrap").removeClass("hidden"); } else { if (!isSuggest) return; $("select#r_objs").removeClass("hidden"); $("div.r_objs.nowrap").addClass("hidden"); } FcltMgr.resized(window); } function checkSequence(id) { var thisID = "date_plan"+(id==2?"2":""); var thatID = "date_plan"+(id==2?"":"2"); // validate geplande einddatum >= geplande aanvang // $("#date_plan2").length alleen indien S("mld_use_plandate2") & 2, dus dat is dan al gechecked if ($("#show_"+thisID).length && $("#time_from_"+thisID).length && $("#"+thisID).length && $("#show_"+thatID).length && $("#time_from_"+thatID).length && $("#"+thatID).length) { var pld = $("#date_plan").val(); var pl2 = $("#date_plan2").val(); var pld_date = $("#show_date_plan").val(); var pl2_date = $("#show_date_plan2").val(); var pld_time = $("#time_from_date_plan").val(); var pl2_time = $("#time_from_date_plan2").val(); if (pld_date && pld_time && pld && pl2_date && pl2_time && pl2 && pld > pl2) // Not consecutive { $("#show_"+thatID).val($("#show_"+thisID).val()); $("#time_from_"+thatID).val($("#time_from_"+thisID).val()); $("#"+thatID).val($("#"+thisID).val()); } else if (pld_date && pld && pl2_date && pl2 && (!pld_time || !pl2_time) && // minstens 1 timefield is niet ingevuld pld > pl2) // Not consecutive { if (pld_date < pl2_date) { $("#show_"+thatID).val($("#show_"+thisID).val()); $("#time_from_"+thatID).val("00:00"); $("#"+thatID).val($("#"+thisID).val()); } else // (pld_date == pl2_date) want pld > pl2 $("#"+thisID).val($("#"+thatID).val()); } } } function makeMaterialStrings(data) { var matexiststr = ""; var matopdrkeystr = ""; var matkeystr = ""; var matamountstr = ""; var matunitstr = ""; var matpricestr = ""; var matbtwstr = ""; var matdescriptarr = []; if (data.matExistArray) { for (var i = 0; i < data.matExistArray.length; i++) { if (data.matExistArray[i].amount > 0) { var first = (matexiststr == ""); matexiststr += (first? "" : ",") + "1"; matopdrkeystr += (first? "" : ",") + data.matExistArray[i].matopdrkey; matkeystr += (first? "" : ",") + data.matExistArray[i].key; matamountstr += (first? "" : ",") + String(data.matExistArray[i].amount).replace(",","."); matunitstr += (first? "" : ",") + ""; matpricestr += (first? "" : ",") + String(data.matExistArray[i].price).replace(",","."); matbtwstr += (first? "" : ",") + ""; matdescriptarr.push("Dummy"); // AKZA#33231 Gaf problemen als leeg } } } if (data.matUserArray) { for (i = 0; i < data.matUserArray.length; i++) { if (data.matUserArray[i].amount > 0) { var first = (matexiststr == ""); matexiststr += (first? "" : ",") + "0"; matopdrkeystr += (first? "" : ",") + data.matUserArray[i].matopdrkey; matkeystr += (first? "" : ",") + "-1"; matamountstr += (first? "" : ",") + String(data.matUserArray[i].amount).replace(",","."); matunitstr += (first? "" : ",") + data.matUserArray[i].unit; matpricestr += (first? "" : ",") + String(data.matUserArray[i].price).replace(",","."); matbtwstr += (first? "" : ",") + String(data.matUserArray[i].btw); matdescriptarr.push(data.matUserArray[i].descript); } } } var matstr = {matexiststr: matexiststr, matopdrkeystr: matopdrkeystr , matkeystr: matkeystr, matamountstr: matamountstr, matunitstr: matunitstr , matpricestr: matpricestr, matbtwstr: matbtwstr, matdescriptarr: matdescriptarr}; return matstr; } function mld_melding_materiaal_callback(data) { var matcnt = 0; // Materiaalbedrag weergeven en wordt opgeslagen bij het opslaan van de opdracht. $("#mat_kosten").val(data.matTotal); // Aantal materialen aangeven op de button. matcnt = parseInt(data.matExistArray.length) + parseInt(data.matUserArray.length); $("#materiallist_button").val( L("lcl_mld_materialen") + " (" + matcnt + ")"); // String met keys in hidden input opslaan. var matstr = makeMaterialStrings(data); $("#matexiststr").val(matstr.matexiststr); $("#matopdrkeystr").val(matstr.matopdrkeystr); $("#matkeystr").val(matstr.matkeystr); $("#matamountstr").val(matstr.matamountstr); $("#matunitstr").val(matstr.matunitstr); $("#matpricestr").val(matstr.matpricestr); $("#matbtwstr").val(matstr.matbtwstr); // Totaalbedrag weergeven. calcTotal(); window.matdescriptarr = matstr.matdescriptarr; FcltMgr.resized(); } function mld_melding_materiaal(ro) { if ($("#uitvoerende").val() < 0) { FcltMgr.alert(L("lcl_mld_select_first").format(srtdiscbes? L("lcl_bes_Supplier") : L("lcl_ord_company_uit"))); return; } // 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 + (ro == 1? "&readonly=1" : "") + "&uitv_key=" + $("#uitvoerende").val(); FcltMgr.openModalDetail(url, L("lcl_mld_materialen"), { matexiststr: $("#matexiststr").val(), matopdrkeystr: $("#matopdrkeystr").val(), matkeystr: $("#matkeystr").val(), matamountstr: $("#matamountstr").val(), matunitstr: $("#matunitstr").val(), matpricestr: $("#matpricestr").val(), matbtwstr: $("#matbtwstr").val(), matdescriptarr: window.matdescriptarr, callback: mld_melding_materiaal_callback }); } function mld_melding_uitvoerenden_callback(data) { // Aantal uitvoerenden aangeven op de button if (data.uitvkeyArray.length == 1) $("#uitvoerendelist_button").val("(" + data.uitvkeyArray.length + ") " + (srtdiscbes? L("lcl_bes_Supplier") : L("lcl_mld_opdr_bedrijf"))); else $("#uitvoerendelist_button").val("(" + data.uitvkeyArray.length + ") " + (srtdiscbes? L("lcl_bes_Suppliers") : L("lcl_mld_opdr_bedrijven"))); // String met keys in hidden input opslaan var uitvkeystr = data.uitvkeyArray.join(","); var uitvcpersstr = data.uitvcpersArray.join(","); var uitvcntstr = data.uitvcntArray.join(","); var uitvbptstr = data.uitvbptArray.join(","); var uitvslastr = data.uitvslaArray.join(","); $("#uitvkeystr").val(uitvkeystr); $("#uitvcpersstr").val(uitvcpersstr); $("#uitvcntstr").val(uitvcntstr); $("#uitvbptstr").val(uitvbptstr); $("#uitvslastr").val(uitvslastr); FcltMgr.resized(); var levsla = 0; var uitvkey_levsla = -1; for (var i = 0; i < data.uitvslaArray.length; i++) { // Bepaal de langste leveranciers SLA. if (levsla < data.uitvslaArray[i]) uitvkey_levsla = data.uitvkeyArray[i]; } // Onderscheid uitvoerders m.b.t. initiële waarde beheerder: // 1) Extern bedrijf: Beheerder is default de user (invoerder). // 2) Interne persoon: Beheerder is default de user (invoerder). // 3) Intern bedrijf: Beheerder is default leeg. // Als alleen interne bedrijven zijn ingevuld, dan laten we de beheerder leeg, anders default de user (invoerder) invullen. var allBI = true; for (var i = 0; i < data.uitvbptArray.length; i++) { // Bepaal de langste leveranciers SLA. if (data.uitvbptArray[i] != "BI") allBI = false; } // Als er al een behandelaar is ingevuld, dan niets aanpassen. if ($("#behandelaar").val() < 0) if (!allBI) // setValue(key, txt, doonChange, checkExist, extraParam, lastTry) // De user hoef ik hier niet te checken of die bestaat (checkExist). sgPerson.setValue(user_key, user_naam); //else Behandelaar is al leeg. recalcEinddatum(uitvkey_levsla); } function mld_melding_uitvoerenden() { // 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_uitvoerenden.asp) var url = "mld_opdr_uitvoerenden.asp?opdr_key=" + opdr_key + "&mld_key=" + mld_key + "&cnt_key=" + cnt_key + "&dienst_key=" + ($("#dienstfilt").val() ? $("#dienstfilt").val() : "-1") + "&autlevel=" + autlevel + "&srtdiscbes=" + (srtdiscbes? 1 : 0) + "&loc_key=" + loc_key + "&onrgoed_key=" + onrgoed_key + "&bld_key=" + bld_key + "&disckey=" + disckey + "&opdrtype=" + opdr_type; FcltMgr.openModalDetail(url, srtdiscbes? L("lcl_bes_Supplier") : L("lcl_mld_opdr_bedrijf"), { uitvkeystr: $("#uitvkeystr").val(), uitvcpersstr: $("#uitvcpersstr").val(), uitvcntstr: $("#uitvcntstr").val(), uitvbptstr: $("#uitvbptstr").val(), uitvslastr: $("#uitvslastr").val(), callback: mld_melding_uitvoerenden_callback }); } function mld_opdracht_object_callback(data) { $("#r_objs").html(data.obj_html); var objSize = $("#r_objs").attr("size"); var objCount = $("#r_objs").get(0).options.length; if (objSize != Math.max(objCount, 1)) { $("#r_objs").attr("size", Math.max(objCount, 1)); FcltMgr.resized(); } $("#r_objs > option").removeAttr("selected"); if (objCount == 1) sgObject.setValue($("#r_objs > option").eq(0).val(), $("#r_objs > option").eq(0).text()); toggleObjectPicker(objCount); } function mld_opdracht_object() { var alg_key = -1; // De stdmelding is ingevuld. alg_onrgoed_niveau is het verplichte ingevulde niveau en alg_onrgoed_niveau heeft dan een geldige waarde // Wellicht is het niveau eronder ook ingevuld! var alg_key = -1; var alg_niveau = ""; // Objecten opvragen met // 1) Met plaatsgegevens die ingevuld zijn en verplicht. Als een plaats niveau niet verplicht is gaan we hem zelfs negeren (zie ook functie getObjectInfo). // 2) Met afdelinggegevens van de user. if (alg_onrgoed_obj_niveau == "" && melder_key > 0) { alg_key = user_afd_key; alg_niveau = "A"; } else if (room_key > -1 && alg_onrgoed_niveau == "R") { alg_key = room_key; alg_niveau = "R"; } else if (flr_key > -1 && alg_onrgoed_niveau == "V") { alg_key = flr_key; alg_niveau = "V"; } else if (bld_key > -1 && alg_onrgoed_niveau == "G") { alg_key = bld_key; alg_niveau = "G"; } else // Locatie is altijd verplicht. { alg_key = loc_key; alg_niveau = "L"; } var url = "../mld/mld_object.asp?mld_key=" + mld_key; url += "&stdm_key="+ stdm; url += "&person=" + (perslid_key_voor > 0? perslid_key_voor : melder_key); url += "&alg_key=" + alg_key; url += "&alg_niveau=" + alg_niveau; if ($("#r_objs")[0].options.length > 0 && $("#r_objs")[0].options[0].value > 0) var obj_html = $("#r_objs").html(); // huidige objecten else var obj_html = ""; FcltMgr.openModalDetail(url, L("lcl_mld_objects"), {obj_html:obj_html, callback: mld_opdracht_object_callback}); }