var listpurposeoptions = []; var listcostnameoptions = []; var gettype = function () { listpurposeoptions = []; listcostnameoptions = []; $.ajax({ url: "/Erp_ApplyGoods/GetPurposeList?selecttype=" + $('#erp_applygoods_selecttype').val(), async: false, cache: false, dataType: "json", success: function (data) { listpurposeoptions.push(''); for (var i = 0; i < data.length; i++) { listpurposeoptions.push(''); } } }); $.ajax({ url: "/DropDown/chengbenDropDown?selecttype=" + $('#erp_applygoods_selecttype').val(), async: false, cache: false, dataType: "json", success: function (data) { listcostnameoptions.push(''); for (var i = 0; i < data.length; i++) { listcostnameoptions.push(''); } } }); } initData = function () { if (window.taskid === '') { $.ajax({ url: "/Erp_ApplyGoods/InitData", async: false, cache: false, 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"); }); } } } } } if ($data != null && $data.length > 0) { renderGirdtableByData($children, $data.length); } } }); var txttitle = $("#txtTitle").text(); txttitle = txttitle + "(" + currentUserName + ")"; $("#erp_applygoods_name").val(txttitle).attr("title", txttitle); $('#erp_applygoods_storageId').val(""); $('#erp_applygoods_storageId').trigger("chosen:updated"); $('#erp_applygoods_selecttype').val(""); $('#erp_applygoods_selecttype').trigger("chosen:updated"); } else { gettype(); var ntr = $('input[name="erp_applygoods_dtl.materielinfo_code"]').length; for (var j = 0; j < ntr; j++) { $('select[name="erp_applygoods_dtl.purpose"]').eq(j).html(listpurposeoptions.join('')); $('select[name="erp_applygoods_dtl.purpose"]').eq(j).chosen(); $('select[name="erp_applygoods_dtl.purpose"]').eq(j).trigger("chosen:updated"); $('select[name="erp_applygoods_dtl.costname"]').eq(j).html(listcostnameoptions.join('')); $('select[name="erp_applygoods_dtl.costname"]').eq(j).chosen(); $('select[name="erp_applygoods_dtl.costname"]').eq(j).trigger("chosen:updated"); } $.ajax({ url: "/Erp_ApplyGoods/InitData?sysid=" + window.sysid, async: false, cache: false, dataType: "json", success: function (data) { var $data = data.Children; if ($data != null && $data.length > 0) { for (var j = 0; j < $data.length; j++) { $('select[name="erp_applygoods_dtl.purpose"]').eq(j).val($data[j].purpose); $('select[name="erp_applygoods_dtl.purpose"]').eq(j).trigger("chosen:updated"); $('select[name="erp_applygoods_dtl.costname"]').eq(j).val($data[j].costname); $('select[name="erp_applygoods_dtl.costname"]').eq(j).trigger("chosen:updated"); } } } }); } //打开物品仓库选择 $('input[name="erp_applygoods_dtl.materielinfo_code"]').bind('focus', function (i, r) { this.setAttribute("autocomplete", "off"); getmaterielinfo(this) }); //计算数量价格 $('input[name="erp_applygoods_dtl.count"]').bind('blur', function (i, r) { computeAmount(this) }); //修改单据日期 var $applyDate = $(".main [field='applyDate']"); $applyDate.val(JsonDateToDate($applyDate.val()).Format('yyyy-MM-dd')); var storageId = []; storageId.push($('#erp_applygoods_storageId').val()); $('#erp_applygoods_storageId').bind('change', function (i, r) { var _this = this; storageId.push(_this.value); if (oObj == null || oObj.value.length == 0) { return; } layer.confirm('更换仓库会清空申领明细,是否确认?', { btn: ['是', '否'] //按钮 }, function () { $("#girdtable tr.body").remove(); $(".subtradd_js").click(); $('select[name="erp_applygoods_dtl.purpose"]').eq(0).html(listpurposeoptions.join('')); $('select[name="erp_applygoods_dtl.purpose"]').eq(0).trigger("chosen:updated"); $('select[name="erp_applygoods_dtl.costname"]').eq(0).html(listcostnameoptions.join('')); $('select[name="erp_applygoods_dtl.costname"]').eq(0).trigger("chosen:updated"); oObj = null; layer.closeAll(); }, function () { storageId.pop(); _this.value = storageId[storageId.length - 1] || null; $(_this).trigger("chosen:updated"); }); }); $('#erp_applygoods_selecttype').bind('change', function (i, r) { var _this = this; gettype(); var ntr = $('input[name="erp_applygoods_dtl.materielinfo_code"]').length; for (var j = 0; j < ntr; j++) { $('select[name="erp_applygoods_dtl.purpose"]').eq(j).html(listpurposeoptions.join('')); $('select[name="erp_applygoods_dtl.purpose"]').eq(j).chosen(); $('select[name="erp_applygoods_dtl.purpose"]').eq(j).trigger("chosen:updated"); $('select[name="erp_applygoods_dtl.costname"]').eq(j).html(listcostnameoptions.join('')); $('select[name="erp_applygoods_dtl.costname"]').eq(j).chosen(); $('select[name="erp_applygoods_dtl.costname"]').eq(j).trigger("chosen:updated"); } }); } createMethod = function () { var ntr = $('input[name="erp_applygoods_dtl.materielinfo_code"]').length - 1; $('input[name="erp_applygoods_dtl.materielinfo_code"]').eq(ntr).bind('focus', function (i, r) { getmaterielinfo(this) }); $('input[name="erp_applygoods_dtl.count"]').eq(ntr).bind('blur', function (i, r) { computeAmount(this) }); $('select[name="erp_applygoods_dtl.purpose"]').eq(ntr).html(listpurposeoptions.join('')); $('select[name="erp_applygoods_dtl.purpose"]').eq(ntr).chosen(); $('select[name="erp_applygoods_dtl.purpose"]').eq(ntr).trigger("chosen:updated"); $('select[name="erp_applygoods_dtl.costname"]').eq(ntr).html(listcostnameoptions.join('')); $('select[name="erp_applygoods_dtl.costname"]').eq(ntr).chosen(); $('select[name="erp_applygoods_dtl.costname"]').eq(ntr).trigger("chosen:updated"); } deleteMethod = function () { computeTotalPrice(); } var oObj; //物品选择 var getmaterielinfo = function (obj) { var warehouse_id = $.trim($('#erp_applygoods_storageId').val()); if (warehouse_id == '') { parent.layer.msg('请选择仓库', { icon: 5 }); return; } oObj = obj; layer.open({ type: 2, title: '资源库', shadeClose: true, shade: 0.4, area: ['90%', '90%'], content: "/erp/erp_warehouse/search?id=" + warehouse_id + "&operateType=1" }); } //选择后物品后绑定数据 setBaseInfo = function (materialNumber, materialName, count, price, model, itemmeasuringunit) { var isRepeat = false; //$('input[name="erp_applygoods_dtl.materielinfo_code"]').each(function (i, input) { // if (input.value.length > 0 && input.value == materialNumber) { // isRepeat = true; // layer.alert("该物品" + materialName + "已存在明细中,无需重复添加"); // } //}) if (oObj != null && !isRepeat) { var smodel = $.trim(model) == '' ? '' : '(' + model + ')'; //$(oObj).val(materialName + smodel); $(oObj).val(materialNumber); var title = materialName + smodel; $(oObj).parent().parent().find('input[name="erp_applygoods_dtl.material_name"]').val(title).attr("title", title); $(oObj).parent().parent().find('input[name="erp_applygoods_dtl.price"]').val(price); //$(oObj).attr('materielinfo_code', materialNumber); //$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.count"]').val(count); //var money = (parseFloat(count) * parseFloat(price)).toFixed(2); $(oObj).parent().parent().find('input[name="erp_applygoods_dtl.count"]').val(''); var money = ''; $(oObj).parent().parent().find('input[name="erp_applygoods_dtl.amount"]').val(money); $(oObj).parent().parent().find('input[name="erp_applygoods_dtl.unit"]').val(itemmeasuringunit); $(oObj).parent().parent().find('input[name="erp_applygoods_dtl.occupyNum"]').val(count); layer.closeAll(); } } //计算小计 function computeAmount(obj) { var count = obj.value; var price = $(obj).parent().parent().find('input[name="erp_applygoods_dtl.price"]').val(); count = parseFloat(count) || 0; price = parseFloat(price) || 0; var amount = accMul(parseFloat(count), parseFloat(price)); $(obj).parent().parent().find('input[name="erp_applygoods_dtl.amount"]').val(amount); computeTotalPrice(); } //计算总金额 function computeTotalPrice() { var totalPrice = 0; $('input[name="erp_applygoods_dtl.amount"]').each(function (i, item) { var price = parseFloat(item.value); totalPrice = accAdd(totalPrice, price); }) if (isNaN(totalPrice)) totalPrice = 0; $("#erp_applygoods_mony").val(totalPrice); $('#erp_applygoods_monyFont').val(Arabia_to_Chinese(totalPrice)); } /** * 乘法 * @param arg1 * @param arg2 * @returns {Number} */ function accMul(arg1, arg2) { var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); try { m += s1.split(".")[1].length } catch (e) { } try { m += s2.split(".")[1].length } catch (e) { } return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) } /** * 加法 * @param arg1 * @param arg2 * @returns {Number} */ function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)) if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) * cm; } else { arg1 = Number(arg1.toString().replace(".", "")) * cm; arg2 = Number(arg2.toString().replace(".", "")); } } else { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")); } return (arg1 + arg2) / m } /** * 数字转换为大写 * @param NumStr * @returns */ function Arabia_to_Chinese(NumStr) { var Num = NumStr + ""; for (i = Num.length - 1; i >= 0; i--) { Num = Num.replace(",", "")//替换tomoney()中的“,” Num = Num.replace(" ", "")//替换tomoney()中的空格 } Num = Num.replace("¥", "")//替换掉可能出现的¥字符 if (isNaN(Num)) { //验证输入的字符是否为数字 //alert("请检查小写金额是否正确"); return; } //字符处理完毕后开始转换,采用前后两部分分别转换 part = String(Num).split("."); newchar = ""; //小数点前进行转化 for (i = part[0].length - 1; i >= 0; i--) { if (part[0].length > 10) { alert("位数过大,无法计算"); return ""; }//若数量超过拾亿单位,提示 tmpnewchar = "" perchar = part[0].charAt(i); switch (perchar) { case "0": tmpnewchar = "零" + tmpnewchar; break; case "1": tmpnewchar = "壹" + tmpnewchar; break; case "2": tmpnewchar = "贰" + tmpnewchar; break; case "3": tmpnewchar = "叁" + tmpnewchar; break; case "4": tmpnewchar = "肆" + tmpnewchar; break; case "5": tmpnewchar = "伍" + tmpnewchar; break; case "6": tmpnewchar = "陆" + tmpnewchar; break; case "7": tmpnewchar = "柒" + tmpnewchar; break; case "8": tmpnewchar = "捌" + tmpnewchar; break; case "9": tmpnewchar = "玖" + tmpnewchar; break; } switch (part[0].length - i - 1) { case 0: tmpnewchar = tmpnewchar + "元"; break; case 1: if (perchar != 0) tmpnewchar = tmpnewchar + "拾"; break; case 2: if (perchar != 0) tmpnewchar = tmpnewchar + "佰"; break; case 3: if (perchar != 0) tmpnewchar = tmpnewchar + "仟"; break; case 4: tmpnewchar = tmpnewchar + "万"; break; case 5: if (perchar != 0) tmpnewchar = tmpnewchar + "拾"; break; case 6: if (perchar != 0) tmpnewchar = tmpnewchar + "佰"; break; case 7: if (perchar != 0) tmpnewchar = tmpnewchar + "仟"; break; case 8: tmpnewchar = tmpnewchar + "亿"; break; case 9: tmpnewchar = tmpnewchar + "拾"; break; } newchar = tmpnewchar + newchar; } //小数点之后进行转化 if (Num.indexOf(".") != -1) { if (part[1].length > 2) { //alert("小数点之后只能保留两位,系统将自动截断"); part[1] = part[1].substr(0, 2) } for (i = 0; i < part[1].length; i++) { tmpnewchar = "" perchar = part[1].charAt(i) switch (perchar) { case "0": tmpnewchar = "零" + tmpnewchar; break; case "1": tmpnewchar = "壹" + tmpnewchar; break; case "2": tmpnewchar = "贰" + tmpnewchar; break; case "3": tmpnewchar = "叁" + tmpnewchar; break; case "4": tmpnewchar = "肆" + tmpnewchar; break; case "5": tmpnewchar = "伍" + tmpnewchar; break; case "6": tmpnewchar = "陆" + tmpnewchar; break; case "7": tmpnewchar = "柒" + tmpnewchar; break; case "8": tmpnewchar = "捌" + tmpnewchar; break; case "9": tmpnewchar = "玖" + tmpnewchar; break; } if (i == 0) tmpnewchar = tmpnewchar + "角"; if (i == 1) tmpnewchar = tmpnewchar + "分"; newchar = newchar + tmpnewchar; } } //替换所有无用汉字 while (newchar.search("零零") != -1) newchar = newchar.replace("零零", "零"); newchar = newchar.replace("零亿", "亿"); newchar = newchar.replace("亿万", "亿"); newchar = newchar.replace("零万", "万"); newchar = newchar.replace("零元", "元"); newchar = newchar.replace("零角", ""); newchar = newchar.replace("零分", ""); if (newchar.charAt(newchar.length - 1) == "元" || newchar.charAt(newchar.length - 1) == "角") newchar = newchar + "整" return newchar; }