var relation_order_num = '';//关联单号 var type = 0;//业务类型 var $type = ''; var aryinfo = {};//供应商物品列表 //获取href里面的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return unescape(r[2]); return null; //返回参数值 } //获取默认单据号与名称 var getusername = function (type) { if ($.trim(sysid) == '') { $.ajax({ url: "/erp/Erp_supplierprice/GetLoad", async: false, cache: false, dataType: "json", success: function (data) { $('input[name="erp_supplierprice.orderCode"]').val(data.orderCode); switch (type) { case 1: $('#txtTitle').html('主材供应商选择定价单'); $('input[name="erp_supplierprice.title"]').val('主材供应商选择定价(' + data.username + ')'); break; case 3: $('#txtTitle').html('施工费/措施费班组选择定价单'); $('input[name="erp_supplierprice.title"]').val('施工费/措施费班组选择定价(' + data.username + ')'); break; case 5: $('#txtTitle').html('机械设备供应商选择定价单'); $('input[name="erp_supplierprice.title"]').val('机械设备供应商选择定价(' + data.username + ')'); break; case 6: $('#txtTitle').html('固定资产/周转材料供应商选择定价单'); $('input[name="erp_supplierprice.title"]').val('固定资产/周转材料供应商选择定价(' + data.username + ')'); break; case 7: $('#txtTitle').html('周转材料供应商选择定价单'); $('input[name="erp_supplierprice.title"]').val('周转材料供应商选择定价(' + data.username + ')'); break; case 11: $('#txtTitle').html('设备部劳务班组选择定价单'); $('input[name="erp_supplierprice.title"]').val('设备部劳务班组选择定价(' + data.username + ')'); break; } } }); } } //选择计算金额 $(document).on('change', $('input[name="erp_supplierprice_dtl.price"],input[name="erp_supplierprice_dtl.count"],input[name="erp_supplierprice_dtl.totalPrice"]'), function (i, r) { countmoney(); }); //新增子项后触发事假 createMethod = function (materialCode, materialName, Unit, count, model) { // 不知道哪个RZ写的 顾前不顾后 只有本页调进来这些参数才有值 其他时候都是各种undifind,所以下面处理一下 materialCode = (typeof materialCode == "string" || typeof materialCode == "number") ? materialCode : ''; materialName = (typeof materialName == "string" || typeof materialName == "number") ? materialName : ''; Unit = (typeof Unit == "string" || typeof Unit == "number") ? Unit : ''; count = (typeof count == "string" || typeof count == "number") ? count : ''; model = (typeof model == "string" || typeof model == "number") ? model : ''; NumberBind(); var ntr = $('input[name="erp_supplierprice_dtl.supplier_name"]').length; if (ntr > 0) { var inputs = ''; $('input[name="erp_supplierprice_dtl.supplier_name"]').eq(ntr - 1).after(inputs); var inputs = ''; $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).after(inputs); inputs = ''; if ($.trim(materialName) != '') { $('input[name="erp_supplierprice_dtl.count"]').eq(ntr - 1).val(count); $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).val(materialName); $('input[name="erp_supplierprice_dtl.unit"]').eq(ntr - 1).val(Unit); if (type == 3) { $('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(ntr - 1).val(materialCode); $('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(ntr - 1).trigger("chosen:updated"); $('select[name="erp_supplierprice_dtl.unit"]').eq(ntr - 1).val(Unit); $('select[name="erp_supplierprice_dtl.unit"]').eq(ntr - 1).trigger("chosen:updated"); } } if (type != 3) { $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).after(inputs); } else { $('input[name="erp_supplierprice_dtl.materialCode"]').eq(ntr - 1).val(materialCode); } } $('input[name="erp_supplierprice_dtl.supplier_name"]').eq(ntr - 1).bind('focus', function (i, r) { getcompanyinfo(this); }); $('input[name="erp_supplierprice_dtl.contacts_way"]').eq(ntr - 1).bind('focus', function (i, r) { getcompanyinfo(this); }); if (type == 1 || type == 5 || type == 6 || type == 7) { $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).bind('focus', function (i, r) { getmaterielinfo(this); }); } countmoney(); } //删除事件后触发操作 deleteMethod = function () { countmoney(); } //首次加载定价单信息 var setfirstInfo = function () { if ($.trim(sysid) == '' && $.trim(getUrlParam('original_order_code')) == '' && (type == 1 || type == 3 || type == 5 || type == 6 || type == 7)) { $.ajax({ url: "/oa/General/Getmaterielinfo?orderCode=" + relation_order_num, async: false, cache: false, dataType: "json", success: function (data) { $.each(data, function (i, r) { var model = $.trim(r.model); model = model == '' ? '' : '(' + model + ')'; if (i == 0) createMethod(r.materielinfo_code, r.materielinfoName + model, r.Unit, r.count, r.model); if (i > 0) { $('.subtradd_js').click(); $('input[name="erp_supplierprice_dtl.count"]').eq(i).val(r.count); $('input[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code); $('input[name="erp_supplierprice_dtl.model"]').eq(i).val(r.model); if (type == 3) { $('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code); $('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).trigger("chosen:updated"); $('select[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.Unit); $('select[name="erp_supplierprice_dtl.unit"]').eq(i).trigger("chosen:updated"); } $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).val(r.materielinfoName + model); $('input[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.Unit); } }); } }); } } //选择供应商后绑定数据 var thisobj = null; var setCompanyInfo = function (id, name, UserName, Phone, BankName, BankDeposit, BankAccount) { var materielinfo_code = $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_code"]').val(); if (setcompanyinfo(id, materielinfo_code)) { $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_id"]').val(id); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_name"]').val(name); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_name"]').attr('title', name); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_name"]').attr('alt', name); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.contacts_way"]').val(UserName + '(' + Phone + ')'); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.contacts_way"]').attr('title', UserName + '(' + Phone + ')'); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.contacts_way"]').attr('alt', UserName + '(' + Phone + ')'); layer.closeAll(); } else { layer.msg('每个供应商单个物品只能选择一次'); } } //供应商选择 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) { switch (type) { case 1: $type = '01'; break; //case 5: $type = '050002,050004'; break; case 5: $type = ''; break; case 6: $type = '04,05,06'; break; case 7: $type = "04"; break; } thisobj = obj; layer.open({ type: 2, title: '采购物品', shadeClose: true, shade: 0.4, area: ['90%', '90%'], //content: "/Article/index?type=" + $type content: "/Article/index" }); } //选择物品后赋值 setBaseInfo = function (materialCode, materialName, resourceClassificationId, resourceClassificationName, specificationModel, measurementUnit, index, measurementUnitName, resourceClassificationSupName) { var supplier_id = $.trim($(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_id"]').val()); supplier_id = supplier_id == '' ? 0 : supplier_id; if (setcompanyinfo(supplier_id, materialCode)) { $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_code"]').val(materialCode); var sname = materialName + ($.trim(specificationModel) == '' ? '' : '(' + $.trim(specificationModel) + ')') $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_name"]').val(sname); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.model"]').val(specificationModel); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_name"]').attr('title', sname); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_name"]').attr('alt', sname); $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.unit"]').val(measurementUnitName); if (type == 3) { $(thisobj).parent().parent().find('select[name="erp_supplierprice_dtl.unit"]').val(measurementUnitName); $(thisobj).parent().parent().find('select[name="erp_supplierprice_dtl.unit"]').trigger("chosen:updated"); } layer.closeAll(); } else { layer.msg('每个供应商单个物品只能选择一次'); } } //计算总金额 var countmoney = function () { var allmoney = 0; $.each($('input[name="erp_supplierprice_dtl.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="erp_supplierprice_dtl.count"]').val()); count = count == '' ? 0 : parseFloat(count); var total = accMul(count , val).toFixed(2); allmoney = parseFloat(allmoney) + parseFloat(total); $(this).parent().parent().find('input[name="erp_supplierprice_dtl.totalPrice"]').val(total); }); $('#erp_supplierprice_total_price').val(parseFloat(allmoney).toFixed(2)); } // 验证重复元素,有重复返回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="erp_supplierprice_dtl.supplier_name"]'), function () { var supplier_name = $.trim($(this).val()); var supplier_id = $(this).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_id"]').val(); var materielinfo_code = $.trim($(this).parent().parent().find('input[name="erp_supplierprice_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; } ///数据加载 var initData = function () { NumberBind(); $('input[name="erp_supplierprice.original_order_code"]').parent().parent().hide(); var url = window.location.href; type = parseInt(getUrlParam('type')); if ($.trim(sysid) != '' && initItems != null) { type = parseInt(initItems.type); relation_order_num = initItems.relation_order_num; } getusername(type); var inputs = ''; $('#erp_supplierprice_orderCode').after(inputs); relation_order_num = relation_order_num == '' ? $.trim(getUrlParam('relation_order_num')) : relation_order_num; if ($.trim(relation_order_num) == '') { $('input[name="erp_supplierprice.relation_order_num"]').parent().parent().remove(); } else { $('input[name="erp_supplierprice.relation_order_num"]').val(relation_order_num); } var projectid = $.trim(getUrlParam('projectid')); projectid = projectid == '' ? 0 : projectid; projectid = parseInt(projectid); if (parseInt(projectid) > 0) { $('#erp_supplierprice_project_id').val(projectid); $('#erp_supplierprice_project_id').attr('disabled', 'disabled'); $('#erp_supplierprice_project_id').trigger("chosen:updated"); } $('input[name="erp_supplierprice_dtl.supplier_name"],input[name="erp_supplierprice_dtl.contacts_way"]').bind('focus', function (i, r) { getcompanyinfo(this); return false; }); if (sysid == '') { var ntr = $('input[name="erp_supplierprice_dtl.supplier_name"]').length; if (ntr > 0) { var inputs = ''; $('input[name="erp_supplierprice_dtl.supplier_name"]').eq(ntr - 1).after(inputs); } } setfirstInfo(); if (sysid != '') { if ($.trim(sysid) != '' && initItems.Children != null && initItems.Children != undefined && initItems.Children.length > 0) { $.each(initItems.Children, function (i, r) { var inputs = ''; $('input[name="erp_supplierprice_dtl.supplier_name"]').eq(i).after(inputs); var inputs = ''; $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).after(inputs); if (type == 1 || type == 5 || type == 6 || type == 7) { inputs = ''; $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).after(inputs); } }); if (type == 1 || type == 5 || type == 6 || type == 7) { $('input[name="erp_supplierprice_dtl.materielinfo_name"]').bind('focus', function (i, r) { getmaterielinfo(this); }); } } } addCSS(); changeTextarea(); $.each($('input[name="erp_supplierprice_dtl.materielinfo_name"],input[name="erp_supplierprice_dtl.supplier_name"],input[name="erp_supplierprice_dtl.contacts_way"],input[name="erp_supplierprice_dtl.pay_way"]'), function (i, r) { var val = $(this).val(); $(this).attr('title', val); $(this).attr('alt', val); }); if (sysid == '' && $.trim(getUrlParam('original_order_code')) != "") { ChangeSupplier(); } } //动态添加CSS样式 function addCSS() { var str_style = 'td{ position:relative;}'; 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改为textarea function changeTextarea() { //备注 $('input[name="erp_supplierprice_dtl.pay_way"]').each(function (i, input) { var value = $.trim($(this).val()); var textarea = createTextarea("erp_supplierprice_dtl", "pay_way"); 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; } var oldId = parseInt(getUrlParam('oldId')); function ChangeSupplier() { oldId = parseInt(getUrlParam('oldId')); // 获取原始数据 $.ajax({ url: "/ERP/Erp_supplierprice/Get?sysid=" + oldId + "&original_order_code=" + getUrlParam('original_order_code') , async: false , cache: false , dataType: "json", success: function (data) { // 赋值Children $.each(data, function (i, v) { if ($(".main input[name='erp_supplierprice." + i + "']").length > 0) { v = (v == null || v == "null") ? "" : v; $(".main input[name='erp_supplierprice." + i + "']").val(v); } }); $.each(data.Children, function (i, r) { if (i == 0) createMethod(r.materielinfo_code, r.materielinfo_name, r.unit, r.count, r.model); if (i > 0) { $('.subtradd_js').click(); $('input[name="erp_supplierprice_dtl.count"]').eq(i).val(r.count); $('input[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code); $('input[name="erp_supplierprice_dtl.model"]').eq(i).val(r.model); if (type == 3) { $('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code); $('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).trigger("chosen:updated"); $('select[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.unit); $('select[name="erp_supplierprice_dtl.unit"]').eq(i).trigger("chosen:updated"); } $('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).val(r.materielinfo_name); $('input[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.unit); } }); $.each(data.Children, function (itemIndex, itmeData) { $.each(itmeData, function (i, v) { if ($('#girdtable .body').eq(itemIndex).find("[name='erp_supplierprice_dtl." + i + "']").length > 0) { v = (v == null || v == "null") ? "" : v; $('#girdtable .body').eq(itemIndex).find("[name='erp_supplierprice_dtl." + i + "']").val(v); } }); }); $("[name='erp_supplierprice.remark']").val(data.remark + "(换供应商复制单据[原始单号:" + data.orderCode + "])"); $("[name='erp_supplierprice.orderCode']").val(data.NewOrderCode); $("[name='erp_supplierprice.original_order_code']").val(data.original_order_code); $("[name='erp_supplierprice.total_price']").val(data.total_price); $('input[name="erp_supplierprice.title"]').val($('input[name="erp_supplierprice.title"]').val().replace(/\(\S*\)/, data.NewUserName)); $.each($('input,textarea,select'), function (i, r) { $(this).attr('disabled', 'disabled'); $(".chosen-select").trigger("chosen:updated"); }); $('input[name="erp_supplierprice_dtl.supplier_name"]').removeAttr('disabled'); $('.subtradd_js').hide(); $('.btn-info').hide(); } }); } NumberBind = function () { $("[name='erp_supplierprice_dtl.count']").addClass("countTxtBox"); $("[name='erp_supplierprice_dtl.price']").addClass("priceTxtBox"); $("[name='erp_supplierprice_dtl.totalPrice']").addClass("amountTxtBox"); NumberBoxBind(); }