var tabIndex; var currentUserName; var $type = ''; initData = function () { var projectid = getQueryVariable("projectid") || 0; console.log(projectid); $(".main [field='projectName']").parent().parent().hide(); $.ajax({ url: "/Pm_SupplierInquiry/InitData", async: false, cache: false, data: { projectid: projectid }, dataType: "json", success: function (data) { currentUserName = data.CurrentUserName; var $data = data.children; for (var name in data) { if (name !== "children") { var $value = data[name]; if ($value != null && $value !== '') { var $control = $(".main [field='" + name + "']"); var $controltype = $control.prop("tagName"); if ($controltype != null && $controltype !== '') { var $type = $control.attr("type"); if ($type !== "radio" && $type !== "checkbox") { $(".main [field='" + name + "']").val($value); } if ($type === "radio") { $(".main [field='" + name + "'][value='" + $value + "']").attr("checked", "checked"); } if ($type === "checkbox") { var $items = $(".main [field='" + name + "']"); var $arr = $value.split(","); $.each($items, function (index, obj) { var value = $(obj).attr("value"); if (contains($arr, value)) $(obj).attr("checked", "checked"); }); } } } } } } }); var $txttitle = $("#txtTitle").text(); currentUserNameStr = currentUserName ? "(" + currentUserName + ")" : ""; $txttitle = $txttitle + currentUserNameStr; $("#pm_supplier_inquiry_title").val($txttitle); var projectid = getQueryVariable("projectid") || 0; if (projectid != null && projectid != 0) { $('select[name="pm_supplier_inquiry.project_id"]').val(projectid); $('select[name="pm_supplier_inquiry.project_id"]').trigger("chosen:updated"); } //事项添加必填标志* $('#pm_supplier_inquiry_remark').parent().siblings("label").append('*'); //物料名称 $('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').each(function (i, item) { item.setAttribute("title", item.value); }) addCSS(); changeTextarea(); //绑定日期 var $orderDate = $("#pm_supplier_inquiry_orderDate"); $orderDate.val(JsonDateToDate($orderDate.val()).Format('yyyy-MM-dd hh:mm')); //绑定物料选择事件 $('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').bind('focus', function (i, r) { getmaterielinfo(this); }); //绑定供应商和联系方式 $('input[name="pm_supplier_inquiry_dtl.supplier_name"]').bind('focus', function (i, r) { getcompanyinfo(this); return false; }); //绑定选择分类 $('select[name="pm_supplier_inquiry_dtl.materielinfo_type"]').bind('change', function (i, r) { if (this.value == "1") { $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').bind('focus', function (i, r) { getmaterielinfo(this); }); } else if (this.value == "2") { $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').unbind('focus'); } $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_id"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.price"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.unit"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.count"]').val(""); }) //含税总金额 addInputWan($("#pm_supplier_inquiry_total_tax_price"), "back"); //总金额 addInputWan($("#pm_supplier_inquiry_total_price"), "back"); //是否只读 var type = getQueryVariable("type"); if (type == "readonly") setReadOnly(); var title = $("#txtTitle").html(); var pjname = $("#pm_supplier_inquiry_project_id option:selected").html(); $("#txtTitle").html(pjname + "【" + title + "】"); } //选择计算金额 $(document).on('change', $('input[name="pm_supplier_inquiry_dtl.price"],input[name="pm_supplier_inquiry_dtl.count"],input[name="pm_supplier_inquiry_dtl.totalPrice"]'), function (i, r) { countmoney(); }); //新增子项后触发事假 createMethod = function (materialCode, materialName, Unit, count) { var ntr = $('input[name="pm_supplier_inquiry_dtl.supplier_name"]').length; $('input[name="pm_supplier_inquiry_dtl.supplier_name"]').eq(ntr - 1).bind('focus', function (i, r) { getcompanyinfo(this); }); $('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').eq(ntr - 1).bind('focus', function (i, r) { getmaterielinfo(this); }); //绑定选择分类 $('select[name="pm_supplier_inquiry_dtl.materielinfo_type"]').bind('change', function (i, r) { if (this.value == "1") { $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').bind('focus', function (i, r) { getmaterielinfo(this); }); } else if (this.value == "2") { $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').unbind('focus'); } $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_id"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.price"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.unit"]').val(""); $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.count"]').val(""); }); changeTextarea(); } //删除事件后触发操作 deleteMethod = function () { countmoney(); } //供应商选择 var getcompanyinfo = function (obj) { thisobj = obj; layer.open({ type: 2, title: '供应商', shadeClose: true, shade: 0.4, area: ['90%', '90%'], content: "/oa/General/company" }); } //物料选择 var getmaterielinfo = function (obj, type) { switch (type) { case 1: $type = '01'; break; case 5: $type = '0502,0504'; break; case 6: $type = '0503'; break; case 7: $type = "04"; break; default: $type = ""; break; } thisobj = obj; layer.open({ type: 2, title: '采购物品', shadeClose: true, shade: 0.4, area: ['90%', '90%'], content: "/Article/index?type=" + $type }); } //选择物品后赋值 setBaseInfo = function (materialCode, materialName, resourceClassificationId, resourceClassificationName, specificationModel, measurementUnit, index, measurementUnitName, resourceClassificationSupName) { var supplier_id = $.trim($(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_id"]').val()); supplier_id = supplier_id == '' ? 0 : supplier_id; if (setcompanyinfo(supplier_id, materialCode)) { $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val(materialCode); var sname = materialName + ($.trim(specificationModel) == '' ? '' : '(' + $.trim(specificationModel) + ')') $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').val(sname); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').attr('title', sname); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').attr('alt', sname); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.unit"]').val(measurementUnitName); layer.closeAll(); } else { layer.msg('每个供应商单个物品只能选择一次'); } } //选择供应商后绑定数据 var thisobj = null; var setCompanyInfo = function (id, name, UserName, Phone, BankName, BankDeposit, BankAccount) { var materielinfo_code = $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val(); if (setcompanyinfo(id, materielinfo_code)) { $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_id"]').val(id); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_name"]').val(name); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_name"]').attr('title', name); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_name"]').attr('alt', name); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacter"]').val(UserName); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacter"]').attr('title', UserName); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacter"]').attr('alt', UserName); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacts_way"]').val(Phone); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacts_way"]').attr('title', Phone); $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacts_way"]').attr('alt', Phone); layer.closeAll(); } else { layer.msg('每个供应商单个物品只能选择一次'); } } //计算总金额 var countmoney = function () { var allmoney_tax = 0; var allmoney = 0; //含税单价 $.each($('input[name="pm_supplier_inquiry_dtl.tax_price"]'), function () { var val = $.trim($(this).val()); val = isNaN(val) ? 0 : val; val = val == '' ? 0 : parseFloat(val); var count = $.trim($(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.count"]').val()); count = count == '' ? 0 : parseFloat(count); //税率 var taxrate = parseInt($(this).parent().parent().find('select[name="pm_supplier_inquiry_dtl.taxrate"]').val()) * 0.01; //税额 var tax = accMul(accDiv(val, (1 + taxrate)), taxrate).toFixed(2); //不含税单价 var price = accSub(val, tax); //含税总价 var total_tax = accMul(count, val).toFixed(2); //不含税总价 var total = accMul(count, price).toFixed(2); //主表含税总价 allmoney_tax = accAdd(parseFloat(allmoney_tax), parseFloat(total_tax)); //主表不含税总价 allmoney = accAdd(parseFloat(allmoney), parseFloat(total)); //不含税单价 var $unit_price = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.price"]'); $unit_price.val(price); $unit_price.attr("title", price); //含税总价 var $price_tax = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.total_tax_price"]'); $price_tax.val(total_tax); $price_tax.attr("title", total_tax); //不含税总价 var $price = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.totalPrice"]'); $price.val(total); $price.attr("title", total); }); //主表含税总金额 var totalMoney_tax = parseFloat(accDiv(allmoney_tax * 100, 1000000)).toFixed(8); totalMoney_tax = totalMoney_tax * 1; var $totalPrice_tax = $('#pm_supplier_inquiry_total_tax_price'); $totalPrice_tax.val(totalMoney_tax); $totalPrice_tax.attr("title", totalMoney_tax); //主表总金额 var totalMoney = parseFloat(accDiv(allmoney * 100, 1000000)).toFixed(8); totalMoney = totalMoney * 1; var $totalPrice = $('#pm_supplier_inquiry_total_price'); $totalPrice.val(totalMoney); $totalPrice.attr("title", totalMoney); } // 验证重复元素,有重复返回true;否则返回false function isexist(a) { return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f" + a.join("\x0f\x0f") + "\x0f"); } var setcompanyinfo = function (nsupplier_id, smaterielinfo_code) { aryinfo = {}; $.each($('input[name="pm_supplier_inquiry_dtl.supplier_name"]'), function () { var supplier_name = $.trim($(this).val()); var supplier_id = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_id"]').val(); var materielinfo_code = $.trim($(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val()); if (supplier_name != '' && materielinfo_code != '') { var arycodes = aryinfo[supplier_id]; if (arycodes == undefined || arycodes == null) { arycodes = []; arycodes.push(materielinfo_code); aryinfo[supplier_id] = arycodes; } else { arycodes.push(materielinfo_code); aryinfo[supplier_id] = arycodes; } } }); if (parseInt(nsupplier_id) > 0) { var ary = aryinfo[nsupplier_id]; if (ary == undefined || ary == null) return true; else { if (ary.indexOf(smaterielinfo_code) > -1) return false; else return true; } } return true; } //动态添加CSS样式 function addCSS() { var str_style = 'td{ position:relative;}\ .bl{position: relative;}\ .bl .back {position: absolute;top: 0;right: 5px;display: inline-block;}\ .bl .backdtl {position: absolute;top: 2px;right:10px;display: inline-block;}'; if (document.all) { // document.createStyleSheet(url) window.style = str_style; document.createStyleSheet("javascript:style"); } else { //document.createElement(style) var style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = str_style; document.getElementsByTagName('HEAD').item(0).appendChild(style); } } //在input后添加万元div function addInputWan($input, className) { var div = createDivWan(className); $input.after(div); $input.parent().addClass("bl"); } //创建div万元 function createDivWan(className) { var div = document.createElement("div"); div.className = className; div.innerHTML = "万元"; return div; } //把input改为textarea function changeTextarea() { //付款方式 $('input[name="pm_supplier_inquiry_dtl.pay_way"]').each(function (i, input) { var value = $.trim($(this).val()); var textarea = createTextarea("pm_supplier_inquiry_dtl", "pay_way"); changeInputCell(input, textarea, value); }) //备注 $('input[name="pm_supplier_inquiry_dtl.remark"]').each(function (i, input) { var value = $.trim($(this).val()); var textarea = createTextarea("pm_supplier_inquiry_dtl", "remark"); changeInputCell(input, textarea, value); }) } //替换表格控件元素 function changeInputCell(input, newInput, value) { value = value || ""; var $input = $(input); var $newInput = $(newInput); var parent = input.parentNode; $newInput.val(value); var hasEdit = $input.hasClass("edit"); var isDisbale = $input.prop("disabled"); isDisbale && newInput.setAttribute("disabled", "disabled"); newInput.innerHTML = value; $input.remove(); parent.appendChild(newInput); } //创建textarea function createTextarea(table, name) { var textarea = document.createElement("textarea"); textarea.className = "tex_inp"; textarea.id = table + "_" + name; textarea.name = table + "." + name; textarea.setAttribute("field", name); return textarea; } function setReadOnly() { $(".btn:last").parent().hide(); $("input, textarea, select").attr("disabled", "disabled"); $(".subtradd_js,.subtrdel_js").hide(); } getQueryVariable = function (parameter) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] === parameter) { return pair[1]; } } return ""; }