diff --git a/erp_web/js/pages/materials/allocation_out_list.js b/erp_web/js/pages/materials/allocation_out_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/allocation_out_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +=""; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/assemble_list.js b/erp_web/js/pages/materials/assemble_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/assemble_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/disassemble_list.js b/erp_web/js/pages/materials/disassemble_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/disassemble_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/in_out.js b/erp_web/js/pages/materials/in_out.js deleted file mode 100644 index 1c8ab0f2..00000000 --- a/erp_web/js/pages/materials/in_out.js +++ /dev/null @@ -1,3205 +0,0 @@ - //初始化界面 - var defDepotId = null; - var kid = sessionStorage.getItem("userId"); - var pageType = getUrlParam('t'); //获取页面类型传值 - var depotList = null; - var depotID = null; - var supplierList = null; - var supplierID = null; - var personList = null; - var personID = null; - var ProjectSearch=null; - var userBusinessList=null; - var userdepot=null; - var depotHeadMaxId=null; //获取最大的Id - var accepId=null; //保存的主表id - var url; - var depotHeadID = 0; - var preTotalPrice = 0; //前一次加载的金额 - var orgDepotHead = ""; - var editIndex = undefined; - var listTitle = ""; //单据标题 - var listType = ""; //入库 出库 - var listSubType = ""; //采购 销售等 - var payTypeTitle = "";//付款 收款 - var organUrl = ""; //组织数据接口地址 - var amountNum = ""; //单据编号开头字符 - var depotString = ""; //店铺id列表 - /**默认编号有意义吗,不如空着吧*/ - var orgDefaultId=''; //单位默认编号 - var orgDefaultList; //存储查询出来的会员列表 - var accountList; //账户列表 - var outItemList; //支出项目列表 - var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 - var oldNumber = ""; //编辑前的单据编号 - var oldId = 0; //编辑前的单据Id - var otherColumns = true; //明细中的‘别名’列是否显示 - var btnEnableList = getBtnStr(); //获取按钮的权限 - var mPropertyList = ""; //商品属性列表 - var defaultAccountId = 0; //默认账户id - $(function(){ - //初始化系统基础信息 - getType(); - initSystemData_UB(); - initSelectInfo_UB(); - initSystemData_depot(); - initSelectInfo_depot(); - initSystemData_person(); - initSelectInfo_person(); - initSystemData_account(); - initSelectInfo_account(); - initSupplier(); //供应商 - initSalesman(); //销售人员 - initOutItemList(); //初始化支出项目 - initMProperty(); //初始化商品属性 - initTableData(); - ininPager(); - initForm(); - bindEvent();//绑定操作事件 - }); - //根据单据名称获取类型 - function getType(){ - listTitle = $("#tablePanel").prev().text(); - depotString = "|"; - //改变宽度和高度 - $("#searchPanel").panel({width:webW-2}); - $("#tablePanel").panel({width:webW-2}); - var supUrl = "/supplier/findBySelect_sup"; //供应商接口 - var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 - var retailUrl = "/supplier/findBySelect_retail"; //散户接口 - if(listTitle === "采购订单列表"){ - listType = "其它"; - listSubType = "采购订单"; - payTypeTitle = "隐藏"; - organUrl = supUrl; - amountNum = "CGDD"; - } - else if(listTitle === "采购入库列表"){ - listType = "入库"; - listSubType = "采购"; - payTypeTitle = "付款"; - organUrl = supUrl; - amountNum = "CGRK"; - } - else if(listTitle === "零售退货列表"){ - listType = "入库"; - listSubType = "零售退货"; //注:用预付款购买的产品不能退货 - payTypeTitle = "付款"; - organUrl = retailUrl; - amountNum = "LSTH"; - } - else if(listTitle === "销售退货列表"){ - listType = "入库"; - listSubType = "销售退货"; - payTypeTitle = "付款"; - organUrl = cusUrl; - amountNum = "XSTH"; - } - else if(listTitle === "其它入库列表"){ - listType = "入库"; - listSubType = "其它"; - payTypeTitle = "隐藏"; - organUrl = supUrl; - amountNum = "QTRK"; - } - else if(listTitle === "零售出库列表"){ - listType = "出库"; - listSubType = "零售"; - payTypeTitle = "收款"; - organUrl = retailUrl; - amountNum = "LSCK"; - } - else if(listTitle === "销售订单列表"){ - listType = "其它"; - listSubType = "销售订单"; - payTypeTitle = "隐藏"; - organUrl = cusUrl; - amountNum = "XSDD"; - } - else if(listTitle === "销售出库列表"){ - listType = "出库"; - listSubType = "销售"; - payTypeTitle = "收款"; - organUrl = cusUrl; - amountNum = "XSCK"; - } - else if(listTitle === "采购退货列表"){ - listType = "出库"; - listSubType = "采购退货"; - payTypeTitle = "收款"; - organUrl = supUrl; - amountNum = "CGTH"; - } - else if(listTitle === "其它出库列表"){ - listType = "出库"; - listSubType = "其它"; - payTypeTitle = "隐藏"; - organUrl = cusUrl; - amountNum = "QTCK"; - } - else if(listTitle === "调拨出库列表"){ - listType = "出库"; - listSubType = "调拨"; - payTypeTitle = "隐藏"; - organUrl = supUrl; - amountNum = "DBCK"; - } - else if(listTitle === "组装单列表"){ - listType = "其它"; - listSubType = "组装单"; - payTypeTitle = "隐藏"; - organUrl = supUrl; - amountNum = "ZZD"; - } - else if(listTitle === "拆卸单列表"){ - listType = "其它"; - listSubType = "拆卸单"; - payTypeTitle = "隐藏"; - organUrl = supUrl; - amountNum = "CXD"; - } - } - //初始化系统基础信息 - function initSystemData_UB(){ - $.ajax({ - type:"get", - url: "/userBusiness/getBasicData", - data: ({ - KeyId:kid, - Type:"UserDepot" - }), - //设置为同步 - async:false, - dataType: "json", - success: function (res) { - if (res && res.code === 200) { - userBusinessList = res.data.userBusinessList; - } - else { - userBusinessList = null; - } - } - }); - - } - //初始化页面选项卡 - function initSelectInfo_UB(){ - - if(userBusinessList !=null) - { - if(userBusinessList.length>0) - { - //用户对应的仓库列表 [1][2][3]... - userdepot =userBusinessList[0].value; - } - } - } - - - //初始化系统基础信息 - function initSystemData_depot(){ - $.ajax({ - type:"get", - url: "/depot/getAllList", - //设置为同步 - async:false, - dataType: "json", - success: function (res) { - if(res && res.code === 200){ - depotList = res.data; - } else { - $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); - return; - } - } - }); - } - //初始化页面选项卡 - function initSelectInfo_depot(){ - var options = ""; - - if(depotList !=null) - { - options = ""; - for(var i = 0 ;i < depotList.length;i++) - { - var depot = depotList[i]; - - if(userdepot!=null) - { - if(userdepot.indexOf("["+depot.id+"]")!=-1) - { - if(depot.isDefault){ - defDepotId = depot.id; - } - options += ''; - depotString = depotString + depot.id + ","; - } - } - if(depot.type === 1){ - depotString = depotString + depot.id + ","; - } - } - depotString = depotString.substring(1, depotString.length-1); - $("#ProjectId").empty().append(options); - $("#AllocationProjectId").empty().append(options); - $("#searchProjectId").empty().append('').append(options); - } - } - - //初始化供应商、客户、散户信息 - function initSupplier(){ - $('#OrganId').combobox({ - url: organUrl, - valueField:'id', - textField:'supplier', - filter: function(q, row){ - var opts = $(this).combobox('options'); - return row[opts.textField].indexOf(q) >-1; - }, - onLoadSuccess: function(res) { - var data = $(this).combobox('getData'); - for(var i = 0; i<= data.length; i++){ - if(data && data[i] && data[i].supplier === "非会员"){ - orgDefaultId = data[i].id; - } - } - if(listSubType === "零售"){ - orgDefaultList = res; - } - }, - onSelect: function(rec){ - if(listSubType === "零售"){ - var option = ""; - if(rec.supplier !== "非会员" && rec.advanceIn >0){ - option = ''; - option += ''; - } - else { - option += ''; - } - $("#payType").empty().append(option); - } - else{ - $.ajax({ - type:"get", - url: "/supplier/findById", - data: { - supplierId: rec.id - }, - dataType: "json", - success: function (res){ - if(res && res.code === 200) { - if(res.data && res.data[0]){ - thisTaxRate = res.data[0].taxRate; //设置当前的税率 - } - } - }, - error:function(){ - - } - }); - } - } - }); - } - - //初始化销售人员 - function initSalesman(){ - $('#Salesman').combobox({ - url: "/person/getPersonByNumType?type=1", - valueField:'id', - textField:'name', - multiple: true - }); - } - - //初始化收入项目列表 - function initOutItemList(){ - $.ajax({ - type:"get", - url: "/inOutItem/findBySelect?type=out", - //设置为同步 - async:false, - dataType: "json", - success: function (res){ - if(res){ - outItemList = res; - } - }, - error:function(){ - - } - }); - } - - //初始化商品属性 - function initMProperty(){ - $.ajax({ - type: "get", - url: "/materialProperty/list", - dataType: "json", - data: ({ - search: JSON.stringify({ - name: "" - }), - currentPage: 1, - pageSize: 100 - }), - success: function (res) { - if(res && res.code === 200){ - if(res.data && res.data.page) { - var thisRows = res.data.page.rows; - for (var i = 0; i < thisRows.length; i++) { - if (thisRows[i].enabled) { - mPropertyList += thisRows[i].nativeName + ","; - } - } - if (mPropertyList) { - mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); - } - } - } - }, - //此处添加错误处理 - error:function() { - $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); - return; - } - }); - } - - //初始化系统基础信息 - function initSystemData_person(){ - $.ajax({ - type:"get", - url: "/person/getAllList", - //设置为同步 - async:false, - dataType: "json", - success: function (res) { - if(res && res.code === 200) { - if(res.data) { - personList = res.data.personList; - } - } - } - }); - } - //初始化页面选项卡 - function initSelectInfo_person(){ - var options1 = ""; - - if(personList !=null) - { - for(var i = 0 ;i < personList.length;i++) - { - var person = personList[i]; - if(0 == i) - { - personID = person.id; - } - if(person.type=="仓管员") - { - options1 += ''; - } - } - $("#HandsPersonId").empty().append(options1); - } - } - //获取账户信息 - function initSystemData_account(){ - $.ajax({ - type:"get", - url: "/account/getAccount", - //设置为同步 - async:false, - dataType: "json", - success: function (res) { - if(res && res.code === 200) { - if(res.data) { - accountList = res.data.accountList; - } - } - } - }); - } - //获取账户信息 - function initSelectInfo_account(){ - var options = ""; - if(accountList !=null){ - options = ""; - options += ""; - for(var i = 0 ;i < accountList.length;i++) { - var account = accountList[i]; - options += ''; - if(account.isdefault) { - defaultAccountId = account.id; //给账户赋值默认id - } - } - $("#AccountId").empty().append(options); - } - } - - //防止表单提交重复 - function initForm(){ - $('#depotHeadFM').form({ - onSubmit: function(){ - return false; - } - }); - } - - //初始化表格数据 - function initTableData(){ - if(pageType === "skip") { - var oldRowInfo = sessionStorage.getItem("rowInfo"); - editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 - } - var hideType = undefined; - var isHiddenStatus = true; - if(payTypeTitle === "隐藏"){ - hideType = true; //隐藏当前列 - } - var tableToolBar = [ - { - id:'addDepotHead', - text:'增加', - iconCls:'icon-add', - handler:function() - { - addDepotHead(); - } - }, - { - id:'deleteDepotHead', - text:'删除', - iconCls:'icon-remove', - handler:function() - { - batDeleteDepotHead(); - } - } - ]; - //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 - if(btnEnableList && btnEnableList.indexOf(3)>-1){ - isHiddenStatus = false; //显示 - tableToolBar.push({ - id:'okDepotHead', - text:'审核', - iconCls:'icon-ok', - handler:function() { - setStatusFun(); - } - }, - { - id:'undoDepotHead', - text:'反审核', - iconCls:'icon-undo', - handler:function() { - setUnStatusFun(); - } - }); - } - else { - isHiddenStatus = true; //隐藏 - } - var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 - if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ - isShowLastMoneyColumn = true; //隐藏 - } - var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 - var organNameTitle = ""; //组织名称标题 - if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ - isShowOrganNameColumn = true; //隐藏 - } - else { - if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ - organNameTitle = "供应商名称"; - } - else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ - organNameTitle = "客户名称"; - } - else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ - organNameTitle = "会员卡号"; - } - } - var opWidth = 90; //操作宽度 - var isShowSkip = false; //是否显示跳转按钮 - var opTitle = ""; //跳转按钮的标题 - if(listTitle == "采购订单列表") { - opWidth = 120; - isShowSkip = true; - opTitle = "转采购入库"; - } else if(listTitle == "销售订单列表") { - opWidth = 120; - isShowSkip = true; - opTitle = "转销售出库"; - } - $('#tableData').datagrid({ - height:heightInfo, - rownumbers: false, - //动画效果 - animate:false, - //选中单行 - singleSelect : true, - collapsible:false, - selectOnCheck:false, - pagination: true, - //交替出现背景 - striped : true, - pageSize: 10, - pageList: initPageNum, - columns:[[ - { field: 'id',width:35,align:"center",checkbox:true}, - { title: '操作',field: 'op',align:"center",width:opWidth, - formatter:function(value, rec,index) { - var str = ''; - // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname - // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid - // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark - // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName - // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid - // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman - // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney - // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist - // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem - // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; - // rowInfo = rowInfo.replace(/\"/g, ""); - // rowInfo = rowInfo.replace(/\[|]/g,""); - var orgId = rec.organid? rec.organid:0; - str += '   '; - str += '   '; - str += ''; - if(isShowSkip) { - str += '   '; - } - return str; - } - }, - { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, - { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { - if(rec.linknumber) { - return value + "[转]"; - } else { - return value; - } - } - }, - { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ - if(value) { - return value.replace(",",","); - } - } - }, - { title: '单据日期',field: 'opertimeStr',width:130}, - { title: '操作员',field: 'operpersonname',width:60}, - { title: '金额合计',field: 'totalprice',width:60}, - { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ - return (rec.discountmoney + rec.discountlastmoney).toFixed(2); - } - }, - { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, - { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, - { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ - if(value === "0") { - return "未审核"; - } else if(value === "1") { - return "已审核"; - } else if(value === "2") { - if(listTitle == "采购订单列表") { - return "已转采购"; - } else if(listTitle == "销售订单列表") { - return "已转销售"; - } - } - } - } - ]], - toolbar:tableToolBar, - onLoadError:function() { - $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); - return; - } - }); - } - - //查找库存的方法 - function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ - var thisRatio = 1; //比例 - $.ajax({ - url: "/material/findById", - type: "get", - dataType: "json", - data: { - id: mId - }, - success: function (rec) { - if(rec && rec.code === 200 && rec.data && rec.data[0]) { - var loadRatio = 1; //在单位输入框上面加载比例字段 - if(rec.data[0].unit) { //如果存在计量单位信息 - loadRatio = 1; - } - else{ - var unitName = rec.data[0].unitName; - if(unitName) { - thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); - unitName = unitName.substring(0, unitName.indexOf("(")); - } - var unitArr = unitName.split(","); - var basicUnit = unitArr[0]; //基础单位 - var otherUnit = unitArr[1]; //副单位 - var unitSetInput =""; //单位 - if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ - unitSetInput = rec.data[0].firstinunit; - if(basicUnit==unitSetInput){ //基础单位等于选择的单位 - loadRatio = 1; - } - else if(otherUnit==unitSetInput){ //副单位等于选择的单位 - loadRatio = thisRatio; - } - } - else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ - unitSetInput = rec.data[0].firstoutunit; - if(basicUnit==unitSetInput){ //基础单位等于选择的单位 - loadRatio = 1; - } - else if(otherUnit==unitSetInput){ //副单位等于选择的单位 - loadRatio = thisRatio; - } - } - } - //查询库存 - $.ajax({ - type: "get", - url: '/depotItem/findStockNumById', - data:{ - projectId: depotId, - materialId: mId, - monthTime: monthTime, - currentPage: 1, - pageSize: 10 - }, - dataType: "json", - success: function (res) { - if(res && res.code === 200) { - if (res.data && res.data.page && res.data.page[0]) { - var thisStock = res.data.page[0].thisSum; - if (type == "select") { //选择下拉框的时候 - if (ratio != undefined && ratio != 1) { - loadRatio = ratio; - } - } - else if (type == "click") { //点击库存的时候 - if (ratio != undefined) { - loadRatio = ratio; - } - } - thisStock = (thisStock / loadRatio).toFixed(2); - body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 - } - else { - body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 - } - body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 - } - }, - error:function() { - $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); - } - }); - } - }, - error: function () { - $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); - } - }); - } - //优惠率、合计的统计方法 - function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ - var TotalPrice = 0; - var taxLastMoneyTotal = 0; - //金额的合计 - body.find("[field='AllPrice']").each(function(){ - if($(this).find("div").text()!==""){ - TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); - } - }); - TotalPrice = TotalPrice + UnitPrice*OperNumber; - footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 - //价税合计的总计 - body.find("[field='TaxLastMoney']").each(function(){ - if($(this).find("div").text()!==""){ - taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); - } - }); - taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); - footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 - var discount = $("#Discount").val(); //优惠率 - var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); - $("#DiscountMoney").val(discountMoney);//优惠金额 - var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) - $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 - if($("#AccountId").val()!=="many"){ - $("#ChangeAmount").val(discountLastMoney); //本次付、收款 - } - var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 - $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 - - if(listSubType == "零售" || listSubType == "零售退货") { - $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); - $("#backAmount").val(0); - } - } - //初始化表格数据-商品列表-编辑状态 - function initTableData_material(type,TotalPrice){ - var body,footer,input; //定义表格和文本框 - var ratio = 1; //比例-品名专用 - var ratioDepot = 1; //比例-仓库用 - var monthTime = getNowFormatMonth(); - var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 - var depotHeadName = ""; //仓库名称 - var depotUrl = ""; //仓库接口地址 - var depotTextField = ""; //仓库下拉名称 - var anotherDepotHeadName = ""; //对方仓库的列的标题 - var anotherDepotUrl = ""; //对方仓库接口地址 - var anotherDepotTextField = ""; - if(listSubType == "调拨"){ - isShowAnotherDepot = false; //调拨时候显示对方仓库 - anotherDepotHeadName = "调入仓库"; - anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; - anotherDepotTextField = "depotName"; - } - depotHeadName = "仓库名称"; - depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; - depotTextField = "depotName"; - var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 - if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ - isShowTaxColumn = true; //隐藏 - } - var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 - if(listSubType == "组装单" || listSubType == "拆卸单"){ - isShowMaterialTypeColumn = false; //显示 - } - $('#materialData').datagrid({ - height:245, - rownumbers: false, - //动画效果 - animate:false, - //选中单行 - singleSelect : true, - collapsible:false, - selectOnCheck:false, - //单击行是否选中 - checkOnSelect : false, - pagination: false, - //交替出现背景 - striped : true, - showFooter: true, - //loadFilter: pagerFilter, - onClickRow: onClickRow, - columns:[[ - { field: 'Id',width:35,align:"center",checkbox:true}, - { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, - { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, - formatter: function (value, row, index) { - return row.DepotName; - }, - editor: { - type: 'combobox', - options: { - valueField: 'id', - textField: depotTextField, - method: 'get', - url: depotUrl, - onSelect:function(rec){ - var depotId = rec.id; - body =$("#depotHeadFM .datagrid-body"); - footer =$("#depotHeadFM .datagrid-footer"); - input = ".datagrid-editable-input"; - var mId = body.find("[field='MaterialId']").find(".combo-value").val(); - if(mId){ - var type = "select"; //type 类型:点击 click,选择 select - findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); - } - } - } - } - }, - { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, - formatter:function(value,row,index){ - return row.MaterialName; - }, - editor:{ - type:'combobox', - options:{ - valueField:'Id', - textField:'MaterialName', - method:'get', - url: "/material/findBySelect", - panelWidth: 300, //下拉框的宽度 - //全面模糊匹配,过滤字段 - filter: function(q, row){ - var opts = $(this).combobox('options'); - return row[opts.textField].indexOf(q) >-1; - }, - onBeforeLoad: function(param){ - param.mpList = mPropertyList; //商品属性 - }, - onSelect:function(rec){ - if(rec) { - var mId = rec.Id; - $.ajax({ - url: "/material/findById", - type: "get", - dataType: "json", - data: { - id: mId - }, - success: function (res) { - if(res && res.code === 200 && res.data && res.data[0]) { - var retailPrice = res.data[0].retailprice-0; //零售价格 - var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 - var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 - var firstInUnit = res.data[0].firstinunit; //首选入库单位 - var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 - var basicPresetPriceOne = ""; //多单位-入库-基础价格 - var basicPresetPriceTwo = ""; //多单位-出库-基础价格 - var retailPriceOne = ""; //多单位-入库-零售价格 - var otherPresetPriceOne = ""; //多单位-入库-其他价格 - var otherPresetPriceTwo = ""; //多单位-出库-其他价格 - var retailPriceTwo = ""; //多单位-出库-零售价格 - var basicUnit = ""; //基础单位 - var otherUnit = ""; //其他单位 - if(!res.data[0].unit){ - var ps = res.data[0].pricestrategy; - var psObj = JSON.parse(ps); - basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; - basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; - retailPriceOne = psObj[0].basic.RetailPrice-0; - otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; - otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; - retailPriceTwo = psObj[1].other.RetailPrice-0; - basicUnit = psObj[0].basic.Unit; - otherUnit = psObj[1].other.Unit; - } - body =$("#depotHeadFM .datagrid-body"); - footer =$("#depotHeadFM .datagrid-footer"); - input = ".datagrid-editable-input"; - if(res.data[0].unit){ //如果存在计量单位信息 - ratio = 1; //重置比例为1 - body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 - body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 - body.find("[field='Unit']").find(input).off("click"); //移除点击事件 - body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 - } - else { - var unitName = res.data[0].unitName; - if(unitName) { - ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 - unitName = unitName.substring(0, unitName.indexOf("(")); - } - var unitArr = unitName.split(","); - var basicUnit = unitArr[0]; //基础单位 - var otherUnit = unitArr[1]; //副单位 - var unitSetInput =""; //单位 - body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 - var loadRatio = 1; //在单位输入框上面加载比例字段 - if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ - unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 - if(basicUnit==unitSetInput){ //基础单位等于选择的单位 - loadRatio = 1; - } - else if(otherUnit==unitSetInput){ //副单位等于选择的单位 - loadRatio = ratio; - } - } - else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ - unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 - if(basicUnit==unitSetInput){ //基础单位等于选择的单位 - loadRatio = 1; - } - else if(otherUnit==unitSetInput){ //副单位等于选择的单位 - loadRatio = ratio; - } - } - body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 - - body.find("[field='Unit']").find(input).off("click").on("click",function(){ - if(basicUnit && otherUnit) { - var self = this; - //定义模版 - var temp = "
"; - temp +="
    "; - temp +="
  • " + basicUnit + "
  • "; - temp +="
  • " + otherUnit + "
  • "; - temp +="
"; - temp +="
"; - if($('.unit-list').length){ - $('.unit-list').remove(); //如果存在计量单位列表先移除 - } - else { - $(self).after(temp); //加载列表信息 - } - //计量单位列表的单击事件 - $('.unit-list ul li').off("click").on("click",function(){ - var unit = $(this).text(); - var thisRatio = $(this).attr("data-ratio"); //获取比例 - $(self).val(unit).attr("data-ratio", thisRatio); - $(self).keyup(); //模拟键盘操作 - $('.unit-list').remove(); //移除计量单位列表 - var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 - var type = $(this).attr("data-type"); - var UnitPrice = 0; - if(type === "basic"){ - if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { - UnitPrice = basicPresetPriceOne; - } - else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { - UnitPrice = basicPresetPriceTwo; - } - else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ - UnitPrice = retailPriceOne; - } - body.find("[field='Stock']").find(input).val(stock); //修改库存 - } - else if(type === "other"){ - if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { - UnitPrice = otherPresetPriceOne; - } - else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { - UnitPrice = otherPresetPriceTwo; - } - else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ - UnitPrice = retailPriceTwo; - } - body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 - } - body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 - var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 - var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 - body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 - body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 - body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - }); - //点击空白处移除计量单位列表 - $(".datagrid-body").off("click").on("click",function(){ - $('.unit-list').remove(); //移除计量单位列表 - }); - } - }); - } - var detailPrice = 0; //明细列表-单价 - if(listSubType == "零售" || listSubType == "零售退货") { - if(res.data[0].unit) { //如果存在计量单位信息 - detailPrice = retailPrice; - } - else { - if (firstOutUnit == basicUnit) { - detailPrice = retailPriceOne; - } - else if (firstOutUnit == otherUnit) { - detailPrice = retailPriceTwo; - } - } - } - else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { - if(res.data[0].unit) { //如果存在计量单位信息 - detailPrice = presetPriceOne; - } - else { - if (firstInUnit == basicUnit) { - detailPrice = basicPresetPriceOne; - } - else if (firstInUnit == otherUnit) { - detailPrice = otherPresetPriceOne; - } - } - } - else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { - if(res.data[0].unit) { //如果存在计量单位信息 - detailPrice = presetPriceTwo; - } - else { - if(firstOutUnit==basicUnit) { - detailPrice = basicPresetPriceTwo; - } - else if(firstOutUnit==otherUnit){ - detailPrice = otherPresetPriceTwo; - } - } - } - body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 - //单价和总价赋值 - if(!detailPrice) { - detailPrice = 0; - } - body.find("[field='UnitPrice']").find(input).val(detailPrice); - body.find("[field='AllPrice']").find(input).val(detailPrice); - var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 - body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 - body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,detailPrice,1,footer,taxRate); - - //查询库存信息 - var depotId = body.find("[field='DepotId']").find(".combo-value").val(); - if(depotId) { - var type = "select"; //type 类型:点击 click,选择 select - findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); - } - } - }, - error: function() { - $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); - } - }); - } - } - } - } - }, - { title: '库存',field: 'Stock',editor:'validatebox',width:70}, - { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, - formatter: function (value, row, index) { - return row.AnotherDepotName; - }, - editor: { - type: 'combobox', - options: { - valueField: 'id', - textField: anotherDepotTextField, - method: 'get', - url: anotherDepotUrl - } - } - }, - { title: '单位',field: 'Unit',editor:'validatebox',width:60}, - { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, - { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, - { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, - { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, - { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, - { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, - { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, - { title: '备注',field: 'Remark',editor:'validatebox',width:120}, - { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, - { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, - { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, - { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, - { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} - ]], - toolbar:[ - { - id:'append', - text:'新增', - iconCls:'icon-add', - handler:function() - { - append(); //新增 - } - }, - { - id:'delete', - text:'删除', - iconCls:'icon-remove', - handler:function() - { - batchDel(); //删除 - } - }, - { - id:'reject', - text:'撤销', - iconCls:'icon-undo', - handler:function() - { - reject(); //撤销 - } - } - ], - onLoadError:function() - { - $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); - return; - } - }); - $.ajax({ - type:"get", - url: '/depotItem/getDetailList', - data: { - headerId: depotHeadID, - mpList: mPropertyList - }, - dataType: "json", - success: function (res) { - if(res && res.code === 200) { - var data = res.data; - var AllPrice = 0; - var TaxLastMoney = 0; - var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 - var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 - if(type === "edit") { - AllPrice = TotalPrice; - TaxLastMoney = DiscountMoney + DiscountLastMoney; - } - var array = []; - array.push({ - "AllPrice": AllPrice, - "TaxLastMoney": TaxLastMoney - }); - data.footer = array; - $("#materialData").datagrid('loadData',data); - //如果是订单跳转到采购或销售 - if(pageType === "skip") { - var skipList = $("#depotHeadFM .datagrid-body tr"); - //逐条自动点击每行数据 - skipList.each(function (i) { - setTimeout(function () { - skipList.eq(i).find("[field='Stock']").click(); - },(i+1)*1000); - }); - } - } - }, - error:function() { - $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); - } - }); - } - - //初始化表格数据-商品列表-查看状态 - function initTableData_material_show(TotalPrice){ - var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 - var anotherDepotHeadName = ""; //对方仓库的列的标题 - var depotHeadName = ""; //仓库的列的标题 - if(listSubType == "调拨"){ - isShowAnotherDepot = false; //调拨时候显示对方仓库 - anotherDepotHeadName = "调入仓库"; - } - depotHeadName = "仓库名称"; - var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 - if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ - isShowTaxColumn = true; //隐藏 - } - var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 - if(listSubType == "组装单" || listSubType == "拆卸单"){ - isShowMaterialTypeColumn = false; //显示 - } - $('#materialDataShow').datagrid({ - height:245, - rownumbers: true, - //动画效果 - animate:false, - //选中单行 - singleSelect : true, - collapsible:false, - selectOnCheck:false, - pagination: false, - //交替出现背景 - striped : true, - showFooter: true, - onClickRow: onClickRow, - columns:[[ - { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, - { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, - { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, - { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, - { title: '单位',field: 'Unit',editor:'validatebox',width:60}, - { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, - { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, - { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, - { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, - { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, - { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, - { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, - { title: '备注',field: 'Remark',editor:'validatebox',width:120}, - { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, - { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, - { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, - { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, - { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} - ]], - onLoadError:function() { - $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); - return; - } - }); - $.ajax({ - type:"get", - url: '/depotItem/getDetailList', - data: { - headerId: depotHeadID, - mpList: mPropertyList - }, - dataType: "json", - success: function (res) { - if(res && res.code === 200) { - var data = res.data; - var AllPrice = TotalPrice; - var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 - var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 - var array = []; - array.push({ - "AllPrice": AllPrice, - "TaxLastMoney": DiscountMoney + DiscountLastMoney - }); - data.footer = array; - $("#materialDataShow").datagrid('loadData', data); - } - }, - error:function() { - $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); - } - }); - } - - //分页信息处理 - function ininPager(){ - try - { - var opts = $("#tableData").datagrid('options'); - var pager = $("#tableData").datagrid('getPager'); - pager.pagination({ - onSelectPage:function(pageNum, pageSize) - { - opts.pageNumber = pageNum; - opts.pageSize = pageSize; - pager.pagination('refresh', - { - pageNumber:pageNum, - pageSize:pageSize - }); - showDepotHeadDetails(pageNum,pageSize); - } - }); - } - catch (e) - { - $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); - } - } - - //删除单据信息 - function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ - if(status == "1" || status == "2") { - $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); - return; - } - $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { - if (r) { - $.ajax({ - type:"post", - // url: "/depotHead/" + depotHeadID + "/delete", - url: "/depotHead/deleteDepotHeadAndDetail", - dataType: "json", - data:{ - id: depotHeadID - }, - success: function (res) { - if(res && res.code == 200) { - $("#searchBtn").click(); - } else { - $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); - } - }, - //此处添加错误处理 - error:function() { - $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); - return; - } - }); - - //更新会员的预收款信息 - if(listSubType === "零售") { - $.ajax({ - type:"post", - url: "/supplier/updateAdvanceIn", - dataType: "json", - data:{ - supplierId: thisOrganId, //会员id - advanceIn: totalPrice //删除时同时返还用户的预付款 - }, - success: function(res){ - if(res && res.code === 200) { - //保存会员预收款成功 - } - }, - error: function(){ - $.messager.alert('提示','保存信息异常,请稍后再试!','error'); - return; - } - }); - } - } - }); - } - - //订单转采购或销售 - function skipDepotHead(index, status){ - //获取当前行 - var rowsdata = $("#tableData").datagrid("getRows")[index]; - if(status == "0" || status == "2") { - $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); - } else { - sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 - if(listTitle == "采购订单列表") { - parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); - } else if(listTitle == "销售订单列表") { - parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); - } - } - } - - //批量删除单据信息 - function batDeleteDepotHead(){ - var row = $('#tableData').datagrid('getChecked'); - if(row.length == 0) - { - $.messager.alert('删除提示','没有记录被选中!','info'); - return; - } - if(row.length > 0) - { - $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) - { - if (r) { - var ids = ""; - for (var i = 0; i < row.length; i++) { - if (i == row.length - 1) { - if (row[i].status == 0) { - ids += row[i].id; - } - break; - } - ids += row[i].id + ","; - } - if (ids) { - //批量更新会员的预收款信息 - for (var i = 0; i < row.length; i++) { - if (listSubType === "零售") { - $.ajax({ - type: "post", - url: "/supplier/updateAdvanceIn", - dataType: "json", - data: { - supplierId: row[i].organid, //会员id - advanceIn: row[i].totalprice //删除时同时返还用户的预付款 - }, - success: function (res) { - if (res && res.code === 200) { - //保存会员预收款成功 - } - }, - error: function () { - $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); - return; - } - }); - } - } - //批量删除 - $.ajax({ - type: "post", - // url: "/depotHead/batchDelete", - url: "/depotHead/batchDeleteDepotHeadAndDetail", - dataType: "json", - async: false, - data: ({ - ids: ids - }), - success: function (res) { - if (res && res.code === 200) { - $("#searchBtn").click(); - $(":checkbox").attr("checked", false); - } else { - $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); - } - }, - //此处添加错误处理 - error: function () { - $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); - return; - } - }); - } else { - $.messager.alert('删除提示','没有能删除的单据!','warning'); - } - } - }); - } - } - - //批量审核 - function setStatusFun() { - var row = $('#tableData').datagrid('getChecked'); - if(row.length == 0) { - $.messager.alert('审核提示','没有记录被选中!','info'); - return; - } - if(row.length > 0) { - $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) - { - if (r) - { - var ids = ""; - for(var i = 0;i < row.length; i ++) - { - if(i == row.length-1) - { - if(row[i].status != "2") { - ids += row[i].id; - } - break; - } - ids += row[i].id + ","; - } - if(ids) { - $.ajax({ - type:"post", - url: "/depotHead/batchSetStatus", - dataType: "json", - async : false, - data: ({ - status: "1", - depotHeadIDs : ids - }), - success: function (res) { - if(res && res.code === 200) { - $("#searchBtn").click(); - $(":checkbox").attr("checked", false); - } else { - $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); - } - }, - //此处添加错误处理 - error:function() { - $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); - return; - } - }); - } else { - $.messager.alert('审核提示','没有能审核的单据!','warning'); - } - } - }); - } - } - - //批量反审核 - function setUnStatusFun() { - var row = $('#tableData').datagrid('getChecked'); - if(row.length == 0) - { - $.messager.alert('反审核提示','没有记录被选中!','info'); - return; - } - if(row.length > 0) - { - $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) - { - if (r) - { - var ids = ""; - for(var i = 0;i < row.length; i ++) - { - if(i == row.length-1) - { - if(row[i].status != "2") { - ids += row[i].id; - } - break; - } - ids += row[i].id + ","; - } - if(ids) { - $.ajax({ - type: "post", - url: "/depotHead/batchSetStatus", - dataType: "json", - async: false, - data: ({ - status: "0", - depotHeadIDs: ids - }), - success: function (res) { - if (res && res.code === 200) { - $("#searchBtn").click(); - $(":checkbox").attr("checked", false); - } else { - $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); - } - }, - //此处添加错误处理 - error: function () { - $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); - return; - } - }); - } else { - $.messager.alert('反审核提示','没有能反审核的单据!','warning'); - } - } - }); - } - } - - //生成单据编号 - function buildNumber() { - $.ajax({ - type: "get", - url: "/depotHead/buildNumber", - success:function(res){ - if(res && res.code === 200){ - var obj = res.data; - var defaultNumber = obj.DefaultNumber; - var newNumber = amountNum + defaultNumber; - $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); - } - }, - error:function(){ - $.messager.alert('提示','生成单据编号失败!','error'); - } - }); - } - - //新增信息 - function addDepotHead(){ - $('#depotHeadFM').form('clear'); - var thisDateTime = getNowFormatDateTime(); //当前时间 - $("#OperTime").val(thisDateTime); - buildNumber(); //生成单据编号 - //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 - $("#Discount").val(0); - $("#DiscountMoney").val(0); - $("#DiscountLastMoney").val(0); - $("#ChangeAmount").val(0); - $("#Debt").val(0); - $("#AccountId").val(defaultAccountId); //初始化默认的账户Id - var addTitle = listTitle.replace("列表","信息"); - $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); - $(".window-mask").css({ width: webW ,height: webH}); - - orgDepotHead = ""; - depotHeadID = 0; - initTableData_material("add"); //商品列表 - reject(); //撤销下、刷新商品列表 - $("#addOrgan").off("click").on("click",function(){ - $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); - $('#supplierFM').form('clear'); - }); - - $("#addMember").off("click").on("click",function(){ - $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); - $('#supplierFM').form('clear'); - }); - $("#addCustomer").off("click").on("click",function(){ - $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); - $('#supplierFM').form('clear'); - }); - url = '/depotHead/addDepotHeadAndDetail'; - - //零售单据修改收款时,自动计算找零 - if(listSubType == "零售" || listSubType == "零售退货") { - $("#payType").val("现付"); - $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 - // 鼠标点下时清空选择项 - $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ - $("#OrganId").combobox("setValue", ""); - }); - //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 - $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ - var self = this; - if($(this).val().length === 10){ - setTimeout(function(){ - $(".combo-panel .combobox-item-selected").click(); - //更新付款类型,加载会员的预付款的金额 - for(var i=0; i0){ - option = ''; - option += ''; - } - else { - option += ''; - } - $("#payType").empty().append(option); - } - } - },1000); - } - }); - var getAmount = $("#depotHeadFM .get-amount"); - var changeAmount = $("#depotHeadFM .change-amount"); - var backAmount = $("#depotHeadFM .back-amount"); - getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 - getAmount.off("keyup").on("keyup",function() { - if(changeAmount.val()){ - backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); - } - }); - } - } - - //编辑信息 - function editDepotHead(index, status){ - if(status == "1" || status == "2") { - $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); - return; - } - // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); - //获取当前行 - var rowsdata =''; - if(Number(index).toString()=='NaN'){ - rowsdata=$.parseJSON(index); - }else{ - rowsdata=$("#tableData").datagrid("getRows")[index]; - } - $("#ProjectId").focus().val(rowsdata.projectid); - var ProjectId=rowsdata.projectid; - if(ProjectId!='') { - initSystemData_person(ProjectId); - initSelectInfo_person(); - } - var TotalPrice = rowsdata.totalprice; //合计金额 - if(pageType === "skip") { //从订单跳转过来 - buildNumber(); //生成单据编号 - var thisDateTime = getNowFormatDateTime(); //当前时间 - $("#OperTime").val(thisDateTime); - $("#LinkNumber").val(rowsdata.number); //关联订单号 - $("#AccountId").val(defaultAccountId); //初始化默认的账户Id - $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 - $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); - } else { - $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); - $("#OperTime").val(rowsdata.opertimeStr); - $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 - $("#AccountId").val(rowsdata.accountid); //账户Id - $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 - $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); - } - $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); - $("#HandsPersonId").val(rowsdata.handspersonid); - $("#Remark").val(rowsdata.remark); - $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); - $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); - $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); - $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 - preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 - $("#AllocationProjectId").val(rowsdata.allocationprojectid); - oldNumber = rowsdata.number; //记录编辑前的单据编号 - oldId = rowsdata.id; //记录单据Id - var editTitle = listTitle.replace("列表","信息"); - $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); - $(".window-mask").css({ width: webW ,height: webH}); - depotHeadID = rowsdata.id; - - if(listSubType == "零售"){ - var option = ""; - if(rowsdata.paytype == "预付款"){ - option = ''; - option += ''; - } - else { - option += ''; - } - $("#payType").empty().append(option); - } - - if(listSubType == "销售" || listSubType == "销售退货"){ - if(rowsdata.salesman){ - var arr = rowsdata.salesman.split(","); - var salesmanArray = []; - for(var i=0;i","")); - } - } - $("#Salesman").combobox('setValues', salesmanArray); - } - } - - //采购入库、销售出库的多账户加载 - if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ - $("#AccountId").val("many"); //下拉框选中多账户 - var accountArr = rowsdata.accountidlist.split(","); - var accountMoneyArr = rowsdata.accountmoneylist.split(","); - accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 - - if(listSubType == "零售" || listSubType == "零售退货") { - var manyAccountMoney = 0; //多账户合计-零售 - for (var j = 0; j < accountArr.length; j++) { - if (accountList != null) { - for (var i = 0; i < accountList.length; i++) { - var account = accountList[i]; - if (accountArr[j] == account.id) { - manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 - } - } - } - } - $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 - var changeAmount = $("#ChangeAmount").val()-0; - $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 - } - - $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 - $(".many-account-ico").show(); //显示多账户的ico图标 - } - - //采购入库、销售出库的费用数据加载 - if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ - $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 - var itemArr = rowsdata.othermoneylist.split(","); - var itemMoneyArr = rowsdata.othermoneyitem.split(","); - $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 - } - - initTableData_material("edit",TotalPrice); //商品列表 - reject(); //撤销下、刷新商品列表 - if(pageType === "skip") { - url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 - //jshjshjsh - $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); - } else { - url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 - } - } - - //查看信息 - function showDepotHead(index){ - // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); - //获取当前行 - var rowsdata = $("#tableData").datagrid("getRows")[index]; - var manyAccountMoney = 0; //多账户合计-零售 - $("#ProjectIdShow").text(rowsdata.projectName); - $("#NumberShow").text(rowsdata.number); - $("#OperTimeShow").text(rowsdata.opertimeStr); - $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); - $("#HandsPersonIdShow").text(rowsdata.handsPersonName); - if(rowsdata.accountName && rowsdata.accountName!=undefined){ - $("#AccountIdShow").text(rowsdata.accountName); //结算账户 - } else { - var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 - var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 - var accountIdShow = ""; - for(var j =0;j 查看' + showTitle); - $(".window-mask").css({ width: webW ,height: webH}); - - depotHeadID = rowsdata.id; - initTableData_material_show(TotalPrice); //商品列表-查看状态 - - //零售单据展示数据 - if(listSubType == "零售" || listSubType == "零售退货"){ - var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; - if(manyAccountMoney!==0){ - $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); - $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); - } - else { - $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); - $("#depotHeadDlgShow .back-amount-show").text(0); - } - } - if(listSubType === "销售" || listSubType === "销售退货"){ - if(rowsdata.salesman){ - var arr = rowsdata.salesman.split(","); - var salesmanStr = ""; - for(var i=0;i",""); - } - else { - salesmanStr += arr[i].replace("<","").replace(">","") + ","; - } - } - } - $.ajax({ - type: "get", - url: "/person/getPersonByIds", - data: { - personIDs: salesmanStr - }, - success:function(res){ - if(res && res.code === 200){ - if(res.data) { - $("#SalesmanShow").text(res.data.names); //销售人员列表 - } - } - }, - error:function(){ - - } - }); - } - } - } - - //绑定操作事件 - function bindEvent(){ - showDepotHeadDetails(1,initPageSize); //初始化时自动查询 - //搜索处理 - $("#searchBtn").off("click").on("click",function(){ - showDepotHeadDetails(1,initPageSize); - var opts = $("#tableData").datagrid('options'); - var pager = $("#tableData").datagrid('getPager'); - opts.pageNumber = 1; - opts.pageSize = initPageSize; - pager.pagination('refresh', - { - pageNumber:1, - pageSize:initPageSize - }); - }); - - //重置按钮 - $("#searchResetBtn").unbind().bind({ - click:function(){ - //$("#searchProjectId").val(""); - $("#searchState").val(""); - $("#searchBeginTime").val(""); - $("#searchEndTime").val(""); - //加载完以后重新初始化 - $("#searchBtn").click(); - } - }); - - //检查单据编号是否存在 - function checkDepotHeadNumber() { - var thisNumber = $.trim($("#Number").val()); - //表示是否存在 true == 存在 false = 不存在 - var flag = false; - //开始ajax名称检验,不能重名 - if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) - { - $.ajax({ - type:"get", - url: "/depotHead/checkIsNumberExist", - dataType: "json", - async : false, - data: ({ - DepotHeadID : oldId, - Number : thisNumber - }), - success: function (tipInfo) - { - flag = tipInfo; - if(tipInfo) - { - $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); - return; - } - }, - //此处添加错误处理 - error:function() - { - $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); - return; - } - }); - } - return flag; - } - //保存信息 - /** - * 2019-01-25 - * 我对这个方法的实现结果存在严重怀疑,决定重构 - * 有如下疑点: - * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) - * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 - * 修改计划: - * 2019-01-25修改零售出库相关操作 - * 修改方式,重写url,将主从表操作合并 - * - * - * **/ - $("#saveDepotHead").off("click").on("click",function(){ - if(!$('#depotHeadFM').form('validate')){ - return; - } - else { - //如果初始编号被修改了,就要判断单据编号是否存在 - if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ - //调用查询单据编号是否重名的方法 - if(checkDepotHeadNumber()){ - return; - } - } - //输入框提示 - if(listTitle === "采购订单列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择供应商!','warning'); - return; - } - } - else if(listTitle === "采购入库列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择供应商!','warning'); - return; - } - if(!$('#AccountId').val()){ - $.messager.alert('提示','请选择结算账户!','warning'); - return; - } - } - else if(listTitle === "零售退货列表"){ - if(!$('#AccountId').val()){ - $.messager.alert('提示','请选择付款账户!','warning'); - return; - } - if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { - $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); - return; - } - } - else if(listTitle === "销售退货列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择退货单位!','warning'); - return; - } - if(!$('#AccountId').val()){ - $.messager.alert('提示','请选择付款账户!','warning'); - return; - } - } - else if(listTitle === "其它入库列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择往来单位!','warning'); - return; - } - } - else if(listTitle === "零售出库列表"){ - if(!$('#AccountId').val()){ - $.messager.alert('提示','请选择收款账户!','warning'); - return; - } - if($("#backAmount").val()-0 <0){ - $.messager.alert('提示','找零金额不能小于0!','warning'); - return; - } - if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { - $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); - return; - } - - } - else if(listTitle === "销售订单列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择购买单位!','warning'); - return; - } - } - else if(listTitle === "销售出库列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择购买单位!','warning'); - return; - } - if(!$('#AccountId').val()){ - $.messager.alert('提示','请选择收款账户!','warning'); - return; - } - } - else if(listTitle === "采购退货列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择收货单位!','warning'); - return; - } - if(!$('#AccountId').val()){ - $.messager.alert('提示','请选择收款账户!','warning'); - return; - } - } - else if(listTitle === "其它出库列表"){ - if(!$('#OrganId').combobox('getValue')){ - $.messager.alert('提示','请选择往来单位!','warning'); - return; - } - } - else if(listTitle === "调拨出库列表"){ - - } - //进行明细的校验 - if(depotHeadID ==0) { - //新增模式下 - if (!CheckData("add")) { - return; - } - } - else { - //编辑模式下 - if (!CheckData("edit")) { - return; - } - } - var OrganId = null, ProjectId = null,AllocationProjectId = null; - var ChangeAmount = $.trim($("#ChangeAmount").val())-0; - var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); - if($('#OrganId').length){ - OrganId = $('#OrganId').combobox('getValue'); - } - var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 - var accountMoneyArr; - if(accountMoneyList) { - accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); - var reg=new RegExp("\"","g"); //创建正则RegExp对象 - accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 - accountMoneyArr = accountMoneyList.split(","); //转为数组 - } - if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ - //付款为负数 - ChangeAmount = 0 - ChangeAmount; - TotalPrice = 0 - TotalPrice; - if(accountMoneyArr) { - accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 - } - } - //零售时候,可以从会员预付款中扣款 - var thisPayType = "现付"; - if(listSubType === "零售") { - if($("#payType").val() ==="预付款") { - thisPayType = "预付款"; - } - } - var SalesmanStr = ""; - if(listSubType === "销售" || listSubType === "销售退货"){ - var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 - if(Salesman) { - var SalesmanArray = Salesman.split(","); - for (var i = 0; i < SalesmanArray.length; i++) { - if (i === SalesmanArray.length - 1) { - SalesmanStr += "<" + SalesmanArray[i] + ">"; - } - else { - SalesmanStr += "<" + SalesmanArray[i] + ">,"; - } - } - } - } - var getAccountID = $.trim($("#AccountId").val()); - if($("#AccountId").val() === "many"){ //多账户 - getAccountID = null; - } - var infoStr=JSON.stringify({ - Type: listType, - SubType: listSubType, - ProjectId: ProjectId, - AllocationProjectId: AllocationProjectId, - DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 - Number: $.trim($("#Number").val()), - LinkNumber: $.trim($("#LinkNumber").val()), - OperTime: $("#OperTime").val(), - OrganId: OrganId, - HandsPersonId: $.trim($("#HandsPersonId").val()), - Salesman: SalesmanStr, //销售人员 - AccountId: getAccountID, - ChangeAmount: ChangeAmount, //付款/收款 - TotalPrice: TotalPrice, //合计 - PayType: thisPayType, //现付/预付款 - Remark: $.trim($("#Remark").val()), - AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 - AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 - Discount: $.trim($("#Discount").val()), - DiscountMoney: $.trim($("#DiscountMoney").val()), - DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), - OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 - OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 - OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 - AccountDay: $("#AccountDay").val() //结算天数 - }); - /** - * 零售出库,单独操作 - * */ - if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ - addDepotHeadAndDetail(url,infoStr); - return; - }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ - updateDepotHeadAndDetail(url,infoStr,preTotalPrice); - return; - } - $.ajax({ - type:"post", - url: url, - dataType: "json", - async : false, - data: ({ - info:infoStr - }), - success: function (tipInfo) - { - if(tipInfo) - { - function closeDialog(){ - $('#depotHeadDlg').dialog('close'); - var opts = $("#tableData").datagrid('options'); - showDepotHeadDetails(opts.pageNumber,opts.pageSize); - } - - if(thisPayType === "预付款") { - //更新用户信息-预付款 - var advanceIn = 0; //预付款金额 - if(depotHeadID){ - advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 - } - else{ - advanceIn = TotalPrice; //新增时,预付款=合计金额 - } - $.ajax({ - type:"post", - url: "/supplier/updateAdvanceIn", - dataType: "json", - data:{ - supplierId: OrganId, //会员id - advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 - }, - success: function(res){ - if(res && res.code === 200) { - //保存会员预收款成功 - } - }, - error: function(){ - $.messager.alert('提示','保存信息异常,请稍后再试!','error'); - return; - } - }); - } - - //保存明细记录 - if(depotHeadID ==0) - { - getMaxId(); //查找最大的Id - accept(depotHeadMaxId,closeDialog); //新增 - } - else - { - accept(depotHeadID,closeDialog); //修改 - } - } - else - { - $.messager.show({ - title: '错误提示', - msg: '保存信息失败,请稍后重试!' - }); - } - }, - //此处添加错误处理 - error:function() - { - $.messager.alert('提示','保存信息异常,请稍后再试!','error'); - return; - } - }); - } - }); - - //打印单据 - $("#printDepotHeadShow").off("click").on("click",function(){ - var tableString = $("#depotHeadDlgShow").html(); - localStorage.setItem("tableString",tableString); - window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); - }); - - //初始化键盘enter事件 - $(document).keydown(function(event){ - //兼容 IE和firefox 事件 - var e = window.event || event; - var k = e.keyCode||e.which||e.charCode; - //兼容 IE,firefox 兼容 - var obj = e.srcElement ? e.srcElement : e.target; - //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 - if(k == "13"&&(obj.id=="State"||obj.id=="Number")) - { - $("#saveDepotHead").click(); - } - //搜索按钮添加快捷键 - if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) - { - $("#searchBtn").click(); - } - }); - - //优惠率输入框事件 - $("#Discount").off("keyup").on("keyup",function(){ - var footer =$("#depotHeadFM .datagrid-footer"); - var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); - var discountNum = $(this).val(); - var discountMoney = (discountNum/100*totalPrice).toFixed(2); - var discountLastMoney = (totalPrice - discountMoney).toFixed(2); - $("#DiscountMoney").val(discountMoney); //优惠金额 - $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 - if($("#AccountId").val()!=="many"){ - $("#ChangeAmount").val(discountLastMoney); //本次付、收款 - } - var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 - $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 - }); - - //优惠金额输入框事件 - $("#DiscountMoney").off("keyup").on("keyup",function(){ - var footer =$("#depotHeadFM .datagrid-footer"); - var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); - var discountMoney = $(this).val(); - var discount = (discountMoney/totalPrice).toFixed(2)*100; - var discountLastMoney = (totalPrice - discountMoney).toFixed(2); - $("#Discount").val(discount); //优惠金额 - $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 - if($("#AccountId").val()!=="many"){ - $("#ChangeAmount").val(discountLastMoney); //本次付、收款 - } - var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 - $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 - }); - - //付款、收款输入框事件 - $("#ChangeAmount").off("keyup").on("keyup",function(){ - var discountLastMoney = $("#DiscountLastMoney").val(); - var changeAmount = $(this).val(); - var debtMoney = (discountLastMoney - changeAmount).toFixed(2); - $("#Debt").val(debtMoney); //本次欠款 - }); - - //多账户结算窗口弹出事件 - function depotHeadAccountDlgFun(){ - $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); - $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 - $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 - for(var i=0; i<6; i++) { - $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 - var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); - var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); - accountDlgHead.after(contentTmp); - } - - //获取账户信息 - function accountDlgFun() { - var options = ""; - if(accountList !=null){ - for(var i = 0 ;i < accountList.length;i++) { - var account = accountList[i]; - options += ''; - } - $(".account-id-dlg").empty().append("").append(options); - } - } - accountDlgFun(); //获取账户信息 - $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 - - //账户金额输入框事件-多账户 - $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ - var totalAccoutNum = 0; - $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ - var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; - totalAccoutNum += eachAccountMoney; - }); - $("#accountMoneyTotalDlg").text(totalAccoutNum); - }); - - //结算多账户列表的切换事件 - $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ - var selectAccount = $(this).children('option:selected').text(); - if(selectAccount === ""){ - var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); - var thisMoney = thisMoneyDom.val()-0; - var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; - $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); - thisMoneyDom.val(""); //账户为空时候,将金额也置为空 - } - }); - - //保存按钮事件 - $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ - //完成多账户的json数据存储 - var accountArr = []; //账户id数组 - var accountMoneyArr = []; //账户金额数组 - var errorIndex = -1; - $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ - var thisAccId = $(this).find(".account-id-dlg").val(); - var thisAccMoney = $(this).find(".account-money-dlg").val(); - if(!thisAccId && thisAccMoney) { - errorIndex = $(this).attr("data-index")-0; - return; - } - if(thisAccId && !thisAccMoney) { - errorIndex = $(this).attr("data-index")-0; - return; - } - if(thisAccId && thisAccMoney) { - accountArr.push(thisAccId); - accountMoneyArr.push(thisAccMoney); - } - }); - if(errorIndex >-1){ - $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); - return; - } - var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 - var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 - if(accountMoneyTotal===0){ - $.messager.alert('错误提示',"请填写金额后保存",'warning'); - return; - } - if(accountArr.length && accountMoneyArr.length) { - $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 - } - if(listSubType==="零售" || listSubType==="零售退货") { - $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 - var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); - $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 - } - else { - $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 - } - $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 - $("#depotHeadAccountDlg").dialog('close'); - }); - - //取消事件 - function cancelFun(){ - if($("#AccountId").attr("data-accountArr")){ - $("#depotHeadAccountDlg").dialog('close'); - } - else { - $("#depotHeadAccountDlg").dialog('close'); - $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 - if(listSubType==="零售" || listSubType==="零售退货"){ - $("#ChangeAmount").prop("readonly","readonly"); - } - else { - $("#ChangeAmount").removeProp("readonly","readonly"); - } - $(".many-account-ico").hide(); //隐藏多账户小图标 - } - } - //多账户-取消按钮 - $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ - cancelFun(); - }); - - //多账户-右上角的关闭按钮 - $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ - cancelFun(); - }); - } - //点击多账户,弹出输入框 - $("#AccountId").off("change").on("change",function(){ - var selectText = $(this).children('option:selected').text(); - if(selectText === "多账户"){ - $("#ChangeAmount").prop("readonly","readonly"); - depotHeadAccountDlgFun(); - $(".many-account-ico").show(); //显示多账户小图标 - } - else{ - $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 - if(listSubType==="零售" || listSubType==="零售退货"){ - $("#ChangeAmount").prop("readonly","readonly"); - } - else { - $("#ChangeAmount").removeProp("readonly","readonly"); - } - $(".many-account-ico").hide(); //隐藏多账户小图标 - } - }); - - //结算账户-多账户小图标-点击事件 - $(".many-account-ico").off("click").on("click",function(){ - depotHeadAccountDlgFun(); - //给弹窗赋值-多账户数据 - var accountArr = $("#AccountId").attr("data-accountArr"); - accountArr = JSON.parse(accountArr); - var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); - accountMoneyArr = JSON.parse(accountMoneyArr); - $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ - var index = $(this).attr("data-index"); - $(this).find(".account-id-dlg").val(accountArr[index]); - $(this).find(".account-money-dlg").val(accountMoneyArr[index]); - }); - if(listSubType==="零售" || listSubType==="零售退货") { - $("#accountMoneyTotalDlg").text($("#getAmount").val()); - } - else { - $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); - } - }); - - //点击采购费用、销售费用的事件 - $(".other-money-ico").off("click").on("click",function(){ - $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); - $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 - $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 - for(var i=0; i<6; i++) { - $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 - var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); - var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); - moneyDlgHead.after(contentTmp); - } - - //获取支出项目信息 - function moneyDlgFun() { - var options = ""; - if(outItemList !=null){ - for(var i = 0 ;i < outItemList.length;i++) { - var money = outItemList[i]; - options += ''; - } - $(".money-id-dlg").empty().append("").append(options); - } - } - moneyDlgFun(); //获取支出项目信息 - $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 - - //支出项目的金额输入框事件 - $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ - var totalMoneyNum = 0; - $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ - var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; - totalMoneyNum += eachOtherMoney; - }); - $("#otherMoneyTotalDlg").text(totalMoneyNum); - }); - - //支出项目列表的切换事件 - $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ - var selectItem = $(this).children('option:selected').text(); - if(selectItem === ""){ - var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); - var thisMoney = thisMoneyDom.val()-0; - var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; - $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); - thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 - } - }); - - //保存按钮事件 - $("#saveOtherMoneyDlg").off("click").on("click", function(){ - //完成支出项目的json数据存储 - var itemArr = []; //支出项目id数组 - var itemMoneyArr = []; //支出项目金额数组 - var errorIndex = -1; - $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ - var thisId = $(this).find(".money-id-dlg").val(); - var thisMoney = $(this).find(".other-money-dlg").val(); - if(!thisId && thisMoney) { - errorIndex = $(this).attr("data-index")-0; - return; - } - if(thisId && !thisMoney) { - errorIndex = $(this).attr("data-index")-0; - return; - } - if(thisId && thisMoney) { - itemArr.push(thisId); - itemMoneyArr.push(thisMoney); - } - }); - if(errorIndex >-1){ - $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); - return; - } - var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 - if(otherMoneyTotal === 0){ //0的时候清空缓存数据 - $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); - } - if(itemArr.length && itemMoneyArr.length) { - $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 - } - $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 - $("#otherMoneyDlg").dialog('close'); - }); - - //取消事件 - function cancelFun(){ - if($("#OtherMoney").attr("data-itemArr")){ - $("#otherMoneyDlg").dialog('close'); - } - else { - $("#otherMoneyDlg").dialog('close'); - $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 - } - } - //费用-取消按钮 - $("#cancelOtherMoneyDlg").off("click").on("click", function(){ - cancelFun(); - }); - - //费用-右上角的关闭按钮 - $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ - cancelFun(); - }); - - //给弹窗赋值-采购费用、销售费用数据 - var itemArr = $("#OtherMoney").attr("data-itemArr"); - itemArr = JSON.parse(itemArr); - var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); - itemMoneyArr = JSON.parse(itemMoneyArr); - $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ - var index = $(this).attr("data-index"); - $(this).find(".money-id-dlg").val(itemArr[index]); - if(itemMoneyArr[index]!="undefined"){ - $(this).find(".other-money-dlg").val(itemMoneyArr[index]); - } - }); - $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); - }); - - if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ - var supplierType = "供应商"; - if(listTitle === "零售出库列表"){ - supplierType = "会员"; - }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ - supplierType = "客户"; - } - //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 - function checkSupplierName() { - var supplierName = $.trim($("#supplier").val()); - var orgSupplier = ""; - //表示是否存在 true == 存在 false = 不存在 - var flag = false; - //开始ajax名称检验,不能重名 - if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) - { - $.ajax({ - type:"get", - url: "/supplier/checkIsNameExist", - dataType: "json", - async : false, - data: ({ - id : 0, - name : supplierName - }), - success: function (res) { - if(res && res.code === 200) { - if(res.data && res.data.status) { - flag = res.data.status; - if (flag) { - $.messager.alert('提示', '单位名称已经存在', 'info'); - return; - } - } - } - }, - //此处添加错误处理 - error:function() { - $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); - return; - } - }); - } - return flag; - } - - //保存供应商信息 - $("#saveSupplier").off("click").on("click",function() { - if(validateForm("supplierFM")) { - return; - } - if(checkSupplierName()){ - return; - } - var reg = /^([0-9])+$/; - var phonenum = $.trim($("#phonenum").val()); - if(phonenum.length>0 && !reg.test(phonenum)) - { - $.messager.alert('提示','电话号码只能是数字','info'); - $("#phonenum").val("").focus(); - return; - } - var beginNeedGet = $.trim($("#BeginNeedGet").val()); - var beginNeedPay = $.trim($("#BeginNeedPay").val()); - if(beginNeedGet && beginNeedPay) { - $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); - return; - } - var url = '/supplier/add'; - var supObj = $("#supplierFM").serializeObject(); - supObj.type = supplierType; - supObj.enabled = 1; - $.ajax({ - url: url, - type:"post", - dataType: "json", - data:{ - info: JSON.stringify(supObj) - }, - success: function(res) { - if (res) { - $('#supplierDlg').dialog('close'); - initSupplier(); //刷新供应商 - } - } - }); - }); - } - } - - function showDepotHeadDetails(pageNo,pageSize){ - var materialParam = $.trim($("#searchMaterial").val()); - $.ajax({ - type:"get", - url: "/depotItem/getHeaderIdByMaterial", - dataType: "json", - data: ({ - materialParam: materialParam, - depotIds: depotString - }), - success: function (res) { - if(res && res.code === 200) { - var ids = res.data; - if(ids){ - $.ajax({ - type: "get", - url: "/depotHead/list", - dataType: "json", - data: ({ - search: JSON.stringify({ - type: listType, - subType: listSubType, - state: $.trim($("#searchState").val()), - number: $.trim($("#searchNumber").val()), - beginTime: $("#searchBeginTime").val(), - endTime: $("#searchEndTime").val(), - dhIds: ids - }), - currentPage: pageNo, - pageSize: pageSize - }), - success: function (res) { - if(res && res.code === 200){ - if(res.data && res.data.page) { - $("#tableData").datagrid('loadData', res.data.page); - } - } - }, - //此处添加错误处理 - error: function () { - $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); - return; - } - }); - } - else { - $("#tableData").datagrid('loadData', []); - } - } - }, - //此处添加错误处理 - error:function() { - $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); - return; - } - }); - } - - //自动计算事件 - function autoReckon() { - //延时绑定事件 - setTimeout(function(){ - var body =$("#depotHeadFM .datagrid-body"); - var footer =$("#depotHeadFM .datagrid-footer"); - var input = ".datagrid-editable-input"; - //点击商品下拉框,自动加载数量、单价、金额 - body.find("[field='Stock']").find(input).prop("readonly","readonly"); - //点击库存文本框,字段计算库存 - body.find("[field='Stock']").find(input).off("click").on("click",function(){ - var depotId = body.find("[field='DepotId']").find(".combo-value").val(); - var mId = body.find("[field='MaterialId']").find(".combo-value").val(); - var monthTime = getNowFormatMonth(); - if(depotId && mId){ - var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); - body.find("[field='Stock']").find(input).prop("readonly","readonly"); - //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined - var type = "click"; //type 类型:点击 click,选择 select - findStockNumById(depotId, mId, monthTime, body, input, ratio, type); - } - else{ - body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 - } - }); - //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 - body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ - var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 - var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 - var OperNumber =$(this).val()-0; //数量 - body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 - body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 - body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - - }); - //修改单价,自动计算金额和合计 - body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ - var UnitPrice =$(this).val()-0; //单价 - var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 - var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 - body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 - body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 - body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - }); - //点击单价,自动提示参考价格列表 - body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ - var self = this; - var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id - if(!mValue) { - return; - } - else { - if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { - return; - } - $.ajax({ - url: "/material/findById", - type: "get", - dataType: "json", - data: { - id: mValue - 0 - }, - success: function(res){ - if(res && res.rows && res.rows[0]) { - var retailPrice = res.rows[0].RetailPrice; - var presetPriceOne = res.rows[0].PresetPriceOne; - var presetPriceTwo = res.rows[0].PresetPriceTwo; - //定义模版 - var temp = "
"; - temp +="
    "; - temp +="
  • 批发价:" + presetPriceTwo + "
  • "; - temp +="
  • 零售价:" + retailPrice + "
  • "; - temp +="
"; - temp +="
"; - if($('.price-list').length){ - $('.price-list').remove(); //如果存在价格列表先移除 - } - else { - if(presetPriceTwo != undefined){ //多单位的商品 - $(self).after(temp); //加载列表信息 - } - } - $('.price-list ul li').off("click").on("click",function(){ - var price = $(this).text(); - price = price.substring(price.indexOf(":") + 1); - $(self).val(price); - $(self).keyup(); //模拟键盘操作 - $('.price-list').remove(); //移除价格列表 - }); - //点击空白处移除价格列表 - $(".datagrid-body").off("click").on("click",function(){ - $('.price-list').remove(); //移除价格列表 - }); - } - }, - error: function(){ - $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); - return; - } - }); - } - }); - //修改含税单价,自动计算单价、金额、税额、价税合计和合计 - body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ - var TaxUnitPrice =$(this).val()-0; //含税单价 - var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 - var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 - body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 - var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 - body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 - body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 - body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - }); - //修改金额,自动计算单价、税额、价税合计和合计 - body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ - var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 - var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 - var AllPrice =$(this).val()-0; //金额 - var UnitPrice = (AllPrice/OperNumber).toFixed(2); - body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 - body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 - body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - }); - //修改税率,自动计算含税单价、税额、价税合计和合计 - body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ - var taxRate =$(this).val()-0; //税率 - var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 - var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 - body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 - body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - }); - //修改税额,自动计算税率、含税单价、价税合计和合计 - body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ - var taxMoney =$(this).val()-0; //税额 - var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 - var taxRate = taxMoney/AllPrice*100; //税率 - var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 - var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 - body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 - body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - }); - //修改价税合计,自动计算税率、含税单价、税额和合计 - body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ - var taxLastMoney =$(this).val()-0; //价税合计 - var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 - var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 - var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 - var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 - body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 - body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 - body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 - statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); - }); - - //加载税率 - if(thisTaxRate) { - body.find("[field='TaxRate']").find(input).val(thisTaxRate); - } - else { - body.find("[field='TaxRate']").find(input).val(0); //默认为0 - } - - //在商品类型加载 组装件、普通子件 - var mType = body.find("[field='MType']"); - var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); - var mTypeValue = "组合件"; - if(rowListLength > 0){ - mTypeValue = "普通子件"; - } - if(listSubType == "组装单" || listSubType == "拆卸单"){ - mType.find(input).val(mTypeValue).prop("readonly","readonly"); - } - },500); - } - - //结束编辑 - function endEditing() { - if (editIndex == undefined) { return true } - if ($('#materialData').datagrid('validateRow', editIndex)) { - //仓库信息 - var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); - var DepotName = $(edDepot.target).combobox('getText'); - $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; - //商品信息 - var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); - var MaterialName = $(edMaterial.target).combobox('getText'); - $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; - $('#materialData').datagrid('endEdit', editIndex); - editIndex = undefined; - return true; - } else { - return false; - } - } - //单击 - function onClickRow(index) { - if (editIndex != index) { - if (endEditing()) { - $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); - editIndex = index; - autoReckon(); - } else { - $('#materialData').datagrid('selectRow', editIndex); - } - } - } - //新增 - function append(){ - if (endEditing()) { - $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); - editIndex = $('#materialData').datagrid('getRows').length - 1; - $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); - autoReckon(); - } - } - //删除 - function batchDel(){ - /** - * 重写一下删除的逻辑 - * 获取所有选中行,直接从列表中移除 - * 点击保存时,将需要后台删除的数据提交到服务器 - * **/ - /** - * create by: qiankunpingtai - * create time: 2019/3/20 16:26 - * description: - * 这个地方比较坑的,花了一个多小时才搞明白为什么 - * 1、删除之前必须先调用endEditing结束编辑 - * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 - * 所以要在调用endEditing先获取选中的行 - */ - //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 - var row = $('#materialData').datagrid('getChecked'); - if (endEditing()) { - if (row.length == 0) { - $.messager.alert('删除提示', '没有记录被选中!', 'info'); - return; - } - if (row.length > 0) { - $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { - if (r) { - for (var i = 0; i < row.length; i++) { - $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); - } - } - }); - } - } - } - function removeit(){ - if (editIndex == undefined) { return } - $('#materialData').datagrid('cancelEdit', editIndex) - .datagrid('deleteRow', editIndex); - editIndex = undefined; - } - //撤销 - function reject() { - $('#materialData').datagrid('rejectChanges'); - editIndex = undefined; - } - //判断 - function CheckData(type) { - append(); - removeit(); - var change = $('#materialData').datagrid('getChanges').length; - if(type =="add" && !change) { - $.messager.alert('提示','请输入明细信息!','warning'); - return false; - } - var row = $('#materialData').datagrid('getRows'); - if(!row.length){ - $.messager.alert('提示',"请输入明细信息!",'info'); - return false; - } - var totalRowNum = ""; - for (var i = 0; i < row.length; i++) { - if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { - totalRowNum += (i + 1) + "、"; - } - } - if (totalRowNum != "") { - var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); - $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); - return false; - } - return true; - } - //保存 - function accept(accepId,fun) { - var inserted = $("#materialData").datagrid('getChanges', "inserted"); - var deleted = $("#materialData").datagrid('getChanges', "deleted"); - var updated = $("#materialData").datagrid('getChanges', "updated"); - $.ajax({ - type: "post", - url: "/depotItem/saveDetials", - data: { - inserted: JSON.stringify(inserted), - deleted: JSON.stringify(deleted), - updated: JSON.stringify(updated), - headerId:accepId - }, - success: function (tipInfo) - { - if (tipInfo) { - $.messager.alert('提示','保存成功!','info'); - } - else { - $.messager.alert('提示', '保存失败!', 'error'); - } - fun && fun(); - }, - error: function (XmlHttpRequest, textStatus, errorThrown) - { - $.messager.alert('提示',XmlHttpRequest.responseText,'error'); - fun && fun(); - } - }); - if (endEditing()) { - $('#materialData').datagrid('acceptChanges'); - } - } - //获取MaxId - function getMaxId(){ - var depotHeadMax=null; - $.ajax({ - type:"get", - url: "/depotHead/getMaxId", - //设置为同步 - async:false, - dataType: "json", - success: function (res) { - if(res && res.code === 200) { - if(res.data) { - depotHeadMax = res.data.maxId; - } - } - } - }); - - if(depotHeadMax !=null) { - depotHeadMaxId=depotHeadMax; - } - } - - /** - * 新增单据主表及单据子表 - * */ - function addDepotHeadAndDetail(url,infoStr){ - var inserted = null; - if(pageType === "skip") { - inserted = $("#materialData").datagrid('getChanges', "updated"); - } else { - inserted = $("#materialData").datagrid('getChanges', "inserted"); - } - var deleted = $("#materialData").datagrid('getChanges', "deleted"); - var updated = $("#materialData").datagrid('getChanges', "updated"); - $.ajax({ - type:"post", - url: url, - dataType: "json", - async : false, - data: ({ - info:infoStr, - inserted: JSON.stringify(inserted), - deleted: JSON.stringify(deleted), - updated: JSON.stringify(updated) - }), - success: function (tipInfo){ - - if(tipInfo){ - if(tipInfo.code!=200){ - $.messager.alert('提示', tipInfo.msg, 'error'); - return; - } - $.messager.alert('提示','保存成功!','info'); - $('#depotHeadDlg').dialog('close'); - var opts = $("#tableData").datagrid('options'); - showDepotHeadDetails(opts.pageNumber,opts.pageSize); - - }else { - $.messager.show({ - title: '错误提示', - msg: '保存信息失败,请稍后重试!' - }); - } - - }, - //此处添加错误处理 - error:function() - { - $.messager.alert('提示','保存信息异常,请稍后再试!','error'); - return; - } - - - }); - } - /** - * 修改单据主表及单据子表 - * */ - function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ - var inserted = $("#materialData").datagrid('getChanges', "inserted"); - var deleted = $("#materialData").datagrid('getChanges', "deleted"); - var updated = $("#materialData").datagrid('getChanges', "updated"); - $.ajax({ - type:"post", - url: url, - dataType: "json", - async : false, - data: ({ - id:url.substring(url.lastIndexOf("?id=")+4,url.length), - info:infoStr, - inserted: JSON.stringify(inserted), - deleted: JSON.stringify(deleted), - updated: JSON.stringify(updated), - preTotalPrice:preTotalPrice - }), - success: function (tipInfo){ - if(tipInfo){ - if(tipInfo.code!=200){ - $.messager.alert('提示', tipInfo.msg, 'error'); - return; - } - $.messager.alert('提示','保存成功!','info'); - $('#depotHeadDlg').dialog('close'); - var opts = $("#tableData").datagrid('options'); - showDepotHeadDetails(opts.pageNumber,opts.pageSize); - if (endEditing()) { - $('#materialData').datagrid('acceptChanges'); - } - }else { - $.messager.show({ - title: '错误提示', - msg: '保存信息失败,请稍后重试!' - }); - } - - }, - //此处添加错误处理 - error:function() - { - $.messager.alert('提示','保存信息异常,请稍后再试!','error'); - return; - } - }); - } - - - - diff --git a/erp_web/js/pages/materials/other_in_list.js b/erp_web/js/pages/materials/other_in_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/other_in_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/other_out_list.js b/erp_web/js/pages/materials/other_out_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/other_out_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/purchase_back_list.js b/erp_web/js/pages/materials/purchase_back_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/purchase_back_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/purchase_in_list.js b/erp_web/js/pages/materials/purchase_in_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/purchase_in_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/purchase_orders_list.js b/erp_web/js/pages/materials/purchase_orders_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/purchase_orders_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/retail_back_list.js b/erp_web/js/pages/materials/retail_back_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/retail_back_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/retail_out_list.js b/erp_web/js/pages/materials/retail_out_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/retail_out_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/sale_back_list.js b/erp_web/js/pages/materials/sale_back_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/sale_back_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/sale_orders_list.js b/erp_web/js/pages/materials/sale_orders_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/sale_orders_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/js/pages/materials/sale_out_list.js b/erp_web/js/pages/materials/sale_out_list.js new file mode 100644 index 00000000..662d9507 --- /dev/null +++ b/erp_web/js/pages/materials/sale_out_list.js @@ -0,0 +1,3205 @@ +//初始化界面 +var defDepotId = null; +var kid = sessionStorage.getItem("userId"); +var pageType = getUrlParam('t'); //获取页面类型传值 +var depotList = null; +var depotID = null; +var supplierList = null; +var supplierID = null; +var personList = null; +var personID = null; +var ProjectSearch=null; +var userBusinessList=null; +var userdepot=null; +var depotHeadMaxId=null; //获取最大的Id +var accepId=null; //保存的主表id +var url; +var depotHeadID = 0; +var preTotalPrice = 0; //前一次加载的金额 +var orgDepotHead = ""; +var editIndex = undefined; +var listTitle = ""; //单据标题 +var listType = ""; //入库 出库 +var listSubType = ""; //采购 销售等 +var payTypeTitle = "";//付款 收款 +var organUrl = ""; //组织数据接口地址 +var amountNum = ""; //单据编号开头字符 +var depotString = ""; //店铺id列表 +/**默认编号有意义吗,不如空着吧*/ +var orgDefaultId=''; //单位默认编号 +var orgDefaultList; //存储查询出来的会员列表 +var accountList; //账户列表 +var outItemList; //支出项目列表 +var thisTaxRate = 0; //当前税率,选择供应商或者客户的时候设置 +var oldNumber = ""; //编辑前的单据编号 +var oldId = 0; //编辑前的单据Id +var otherColumns = true; //明细中的‘别名’列是否显示 +var btnEnableList = getBtnStr(); //获取按钮的权限 +var mPropertyList = ""; //商品属性列表 +var defaultAccountId = 0; //默认账户id +$(function(){ + //初始化系统基础信息 + getType(); + initSystemData_UB(); + initSelectInfo_UB(); + initSystemData_depot(); + initSelectInfo_depot(); + initSystemData_person(); + initSelectInfo_person(); + initSystemData_account(); + initSelectInfo_account(); + initSupplier(); //供应商 + initSalesman(); //销售人员 + initOutItemList(); //初始化支出项目 + initMProperty(); //初始化商品属性 + initTableData(); + ininPager(); + initForm(); + bindEvent();//绑定操作事件 +}); +//根据单据名称获取类型 +function getType(){ + listTitle = $("#tablePanel").prev().text(); + depotString = "|"; + //改变宽度和高度 + $("#searchPanel").panel({width:webW-2}); + $("#tablePanel").panel({width:webW-2}); + var supUrl = "/supplier/findBySelect_sup"; //供应商接口 + var cusUrl = "/supplier/findBySelect_cus?UBType=UserCustomer&UBKeyId=" + kid; //客户接口 + var retailUrl = "/supplier/findBySelect_retail"; //散户接口 + if(listTitle === "采购订单列表"){ + listType = "其它"; + listSubType = "采购订单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CGDD"; + } + else if(listTitle === "采购入库列表"){ + listType = "入库"; + listSubType = "采购"; + payTypeTitle = "付款"; + organUrl = supUrl; + amountNum = "CGRK"; + } + else if(listTitle === "零售退货列表"){ + listType = "入库"; + listSubType = "零售退货"; //注:用预付款购买的产品不能退货 + payTypeTitle = "付款"; + organUrl = retailUrl; + amountNum = "LSTH"; + } + else if(listTitle === "销售退货列表"){ + listType = "入库"; + listSubType = "销售退货"; + payTypeTitle = "付款"; + organUrl = cusUrl; + amountNum = "XSTH"; + } + else if(listTitle === "其它入库列表"){ + listType = "入库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "QTRK"; + } + else if(listTitle === "零售出库列表"){ + listType = "出库"; + listSubType = "零售"; + payTypeTitle = "收款"; + organUrl = retailUrl; + amountNum = "LSCK"; + } + else if(listTitle === "销售订单列表"){ + listType = "其它"; + listSubType = "销售订单"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "XSDD"; + } + else if(listTitle === "销售出库列表"){ + listType = "出库"; + listSubType = "销售"; + payTypeTitle = "收款"; + organUrl = cusUrl; + amountNum = "XSCK"; + } + else if(listTitle === "采购退货列表"){ + listType = "出库"; + listSubType = "采购退货"; + payTypeTitle = "收款"; + organUrl = supUrl; + amountNum = "CGTH"; + } + else if(listTitle === "其它出库列表"){ + listType = "出库"; + listSubType = "其它"; + payTypeTitle = "隐藏"; + organUrl = cusUrl; + amountNum = "QTCK"; + } + else if(listTitle === "调拨出库列表"){ + listType = "出库"; + listSubType = "调拨"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "DBCK"; + } + else if(listTitle === "组装单列表"){ + listType = "其它"; + listSubType = "组装单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "ZZD"; + } + else if(listTitle === "拆卸单列表"){ + listType = "其它"; + listSubType = "拆卸单"; + payTypeTitle = "隐藏"; + organUrl = supUrl; + amountNum = "CXD"; + } +} +//初始化系统基础信息 +function initSystemData_UB(){ + $.ajax({ + type:"get", + url: "/userBusiness/getBasicData", + data: ({ + KeyId:kid, + Type:"UserDepot" + }), + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if (res && res.code === 200) { + userBusinessList = res.data.userBusinessList; + } + else { + userBusinessList = null; + } + } + }); + +} +//初始化页面选项卡 +function initSelectInfo_UB(){ + + if(userBusinessList !=null) + { + if(userBusinessList.length>0) + { + //用户对应的仓库列表 [1][2][3]... + userdepot =userBusinessList[0].value; + } + } +} + + +//初始化系统基础信息 +function initSystemData_depot(){ + $.ajax({ + type:"get", + url: "/depot/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200){ + depotList = res.data; + } else { + $.messager.alert('提示', '查找系统基础信息异常,请与管理员联系!', 'error'); + return; + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_depot(){ + var options = ""; + + if(depotList !=null) + { + options = ""; + for(var i = 0 ;i < depotList.length;i++) + { + var depot = depotList[i]; + + if(userdepot!=null) + { + if(userdepot.indexOf("["+depot.id+"]")!=-1) + { + if(depot.isDefault){ + defDepotId = depot.id; + } + options += ''; + depotString = depotString + depot.id + ","; + } + } + if(depot.type === 1){ + depotString = depotString + depot.id + ","; + } + } + depotString = depotString.substring(1, depotString.length-1); + $("#ProjectId").empty().append(options); + $("#AllocationProjectId").empty().append(options); + $("#searchProjectId").empty().append('').append(options); + } +} + +//初始化供应商、客户、散户信息 +function initSupplier(){ + $('#OrganId').combobox({ + url: organUrl, + valueField:'id', + textField:'supplier', + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onLoadSuccess: function(res) { + var data = $(this).combobox('getData'); + for(var i = 0; i<= data.length; i++){ + if(data && data[i] && data[i].supplier === "非会员"){ + orgDefaultId = data[i].id; + } + } + if(listSubType === "零售"){ + orgDefaultList = res; + } + }, + onSelect: function(rec){ + if(listSubType === "零售"){ + var option = ""; + if(rec.supplier !== "非会员" && rec.advanceIn >0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + else{ + $.ajax({ + type:"get", + url: "/supplier/findById", + data: { + supplierId: rec.id + }, + dataType: "json", + success: function (res){ + if(res && res.code === 200) { + if(res.data && res.data[0]){ + thisTaxRate = res.data[0].taxRate; //设置当前的税率 + } + } + }, + error:function(){ + + } + }); + } + } + }); +} + +//初始化销售人员 +function initSalesman(){ + $('#Salesman').combobox({ + url: "/person/getPersonByNumType?type=1", + valueField:'id', + textField:'name', + multiple: true + }); +} + +//初始化收入项目列表 +function initOutItemList(){ + $.ajax({ + type:"get", + url: "/inOutItem/findBySelect?type=out", + //设置为同步 + async:false, + dataType: "json", + success: function (res){ + if(res){ + outItemList = res; + } + }, + error:function(){ + + } + }); +} + +//初始化商品属性 +function initMProperty(){ + $.ajax({ + type: "get", + url: "/materialProperty/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + name: "" + }), + currentPage: 1, + pageSize: 100 + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + var thisRows = res.data.page.rows; + for (var i = 0; i < thisRows.length; i++) { + if (thisRows[i].enabled) { + mPropertyList += thisRows[i].nativeName + ","; + } + } + if (mPropertyList) { + mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1); + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询信息异常,请稍后再试!','error'); + return; + } + }); +} + +//初始化系统基础信息 +function initSystemData_person(){ + $.ajax({ + type:"get", + url: "/person/getAllList", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + personList = res.data.personList; + } + } + } + }); +} +//初始化页面选项卡 +function initSelectInfo_person(){ + var options1 = ""; + + if(personList !=null) + { + for(var i = 0 ;i < personList.length;i++) + { + var person = personList[i]; + if(0 == i) + { + personID = person.id; + } + if(person.type=="仓管员") + { + options1 += ''; + } + } + $("#HandsPersonId").empty().append(options1); + } +} +//获取账户信息 +function initSystemData_account(){ + $.ajax({ + type:"get", + url: "/account/getAccount", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + accountList = res.data.accountList; + } + } + } + }); +} +//获取账户信息 +function initSelectInfo_account(){ + var options = ""; + if(accountList !=null){ + options = ""; + options += ""; + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + if(account.isdefault) { + defaultAccountId = account.id; //给账户赋值默认id + } + } + $("#AccountId").empty().append(options); + } +} + +//防止表单提交重复 +function initForm(){ + $('#depotHeadFM').form({ + onSubmit: function(){ + return false; + } + }); +} + +//初始化表格数据 +function initTableData(){ + if(pageType === "skip") { + var oldRowInfo = sessionStorage.getItem("rowInfo"); + editDepotHead(oldRowInfo); //自动弹出编辑框,带缓存数据 + } + var hideType = undefined; + var isHiddenStatus = true; + if(payTypeTitle === "隐藏"){ + hideType = true; //隐藏当前列 + } + var tableToolBar = [ + { + id:'addDepotHead', + text:'增加', + iconCls:'icon-add', + handler:function() + { + addDepotHead(); + } + }, + { + id:'deleteDepotHead', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batDeleteDepotHead(); + } + } + ]; + //如果允许的按钮列表中存在就显示,3-代表审核|反审核的权限 + if(btnEnableList && btnEnableList.indexOf(3)>-1){ + isHiddenStatus = false; //显示 + tableToolBar.push({ + id:'okDepotHead', + text:'审核', + iconCls:'icon-ok', + handler:function() { + setStatusFun(); + } + }, + { + id:'undoDepotHead', + text:'反审核', + iconCls:'icon-undo', + handler:function() { + setUnStatusFun(); + } + }); + } + else { + isHiddenStatus = true; //隐藏 + } + var isShowLastMoneyColumn = false; //是否显示优惠后金额和价税合计,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowLastMoneyColumn = true; //隐藏 + } + var isShowOrganNameColumn = false; //是否显示供应商、客户等信息,true为隐藏,false为显示 + var organNameTitle = ""; //组织名称标题 + if(listSubType == "调拨" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowOrganNameColumn = true; //隐藏 + } + else { + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表"){ + organNameTitle = "供应商名称"; + } + else if(listTitle == "销售订单列表" || listTitle == "销售退货列表" || listTitle == "销售出库列表" || listTitle == "其它出库列表"){ + organNameTitle = "客户名称"; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + organNameTitle = "会员卡号"; + } + } + var opWidth = 90; //操作宽度 + var isShowSkip = false; //是否显示跳转按钮 + var opTitle = ""; //跳转按钮的标题 + if(listTitle == "采购订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转采购入库"; + } else if(listTitle == "销售订单列表") { + opWidth = 120; + isShowSkip = true; + opTitle = "转销售出库"; + } + $('#tableData').datagrid({ + height:heightInfo, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: true, + //交替出现背景 + striped : true, + pageSize: 10, + pageList: initPageNum, + columns:[[ + { field: 'id',width:35,align:"center",checkbox:true}, + { title: '操作',field: 'op',align:"center",width:opWidth, + formatter:function(value, rec,index) { + var str = ''; + // var rowInfo = rec.id + 'AaBb' + rec.projectid+ 'AaBb' + rec.number+ 'AaBb' + rec.operpersonname + // + 'AaBb' + rec.opertimeStr+ 'AaBb' + rec.organid+ 'AaBb' + rec.handspersonid + // + 'AaBb' + rec.accountid+ 'AaBb' + rec.changeamount+ 'AaBb' + rec.remark + // + 'AaBb' + rec.projectName+ 'AaBb' + rec.organName+ 'AaBb' + rec.handsPersonName + // + 'AaBb' + rec.accountName + 'AaBb' + rec.totalprice + 'AaBb' + rec.allocationprojectid + // + 'AaBb' + rec.allocationProjectName + 'AaBb' + rec.paytype + 'AaBb' + rec.salesman + // + 'AaBb' + rec.discount + 'AaBb' + rec.discountmoney + 'AaBb' + rec.discountlastmoney + // + 'AaBb' + rec.accountidlist + 'AaBb' + rec.accountmoneylist + // + 'AaBb' + rec.othermoney + 'AaBb' + rec.othermoneylist + 'AaBb' + rec.othermoneyitem + // + 'AaBb' + rec.accountday + 'AaBb' + rec.linknumber; + // rowInfo = rowInfo.replace(/\"/g, ""); + // rowInfo = rowInfo.replace(/\[|]/g,""); + var orgId = rec.organid? rec.organid:0; + str += '   '; + str += '   '; + str += ''; + if(isShowSkip) { + str += '   '; + } + return str; + } + }, + { title: organNameTitle, field: 'organName',width:120, hidden:isShowOrganNameColumn}, + { title: '单据编号',field: 'number',width:135, formatter:function (value,rec) { + if(rec.linknumber) { + return value + "[转]"; + } else { + return value; + } + } + }, + { title: '商品信息',field: 'materialsList',width:180,formatter:function(value){ + if(value) { + return value.replace(",",","); + } + } + }, + { title: '单据日期',field: 'opertimeStr',width:130}, + { title: '操作员',field: 'operpersonname',width:60}, + { title: '金额合计',field: 'totalprice',width:60}, + { title: '含税合计',field: 'totaltaxlastmoney',hidden:isShowLastMoneyColumn,width:60,formatter:function(value,rec){ + return (rec.discountmoney + rec.discountlastmoney).toFixed(2); + } + }, + { title: '优惠后金额',field: 'discountlastmoney',hidden:isShowLastMoneyColumn,width:80}, + { title: payTypeTitle,field: 'changeamount',width:50,hidden:hideType}, + { title: '状态',field: 'status',hidden:isHiddenStatus, width:70,align:"center",formatter:function(value){ + if(value === "0") { + return "未审核"; + } else if(value === "1") { + return "已审核"; + } else if(value === "2") { + if(listTitle == "采购订单列表") { + return "已转采购"; + } else if(listTitle == "销售订单列表") { + return "已转销售"; + } + } + } + } + ]], + toolbar:tableToolBar, + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); +} + +//查找库存的方法 +function findStockNumById(depotId, mId, monthTime, body, input, ratio, type){ + var thisRatio = 1; //比例 + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (rec) { + if(rec && rec.code === 200 && rec.data && rec.data[0]) { + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(rec.data[0].unit) { //如果存在计量单位信息 + loadRatio = 1; + } + else{ + var unitName = rec.data[0].unitName; + if(unitName) { + thisRatio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + if(listSubType === "采购订单" || listSubType === "采购" || listSubType === "采购退货"){ + unitSetInput = rec.data[0].firstinunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + else if(listSubType === "销售订单" || listSubType === "销售" || listSubType === "销售退货" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = rec.data[0].firstoutunit; + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = thisRatio; + } + } + } + //查询库存 + $.ajax({ + type: "get", + url: '/depotItem/findStockNumById', + data:{ + projectId: depotId, + materialId: mId, + monthTime: monthTime, + currentPage: 1, + pageSize: 10 + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if (res.data && res.data.page && res.data.page[0]) { + var thisStock = res.data.page[0].thisSum; + if (type == "select") { //选择下拉框的时候 + if (ratio != undefined && ratio != 1) { + loadRatio = ratio; + } + } + else if (type == "click") { //点击库存的时候 + if (ratio != undefined) { + loadRatio = ratio; + } + } + thisStock = (thisStock / loadRatio).toFixed(2); + body.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", res.data.page[0].thisSum); //加载库存数据 + } + else { + body.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据 + } + body.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读 + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); + } + }, + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + } + }); +} +//优惠率、合计的统计方法 +function statisticsFun(body,UnitPrice,OperNumber,footer,taxRate){ + var TotalPrice = 0; + var taxLastMoneyTotal = 0; + //金额的合计 + body.find("[field='AllPrice']").each(function(){ + if($(this).find("div").text()!==""){ + TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); + } + }); + TotalPrice = TotalPrice + UnitPrice*OperNumber; + footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计 + //价税合计的总计 + body.find("[field='TaxLastMoney']").each(function(){ + if($(this).find("div").text()!==""){ + taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("div").text().toString())-0); + } + }); + taxLastMoneyTotal = taxLastMoneyTotal + (UnitPrice*OperNumber*(1+taxRate/100)); + footer.find("[field='TaxLastMoney']").find("div").text((taxLastMoneyTotal).toFixed(2)); //价税合计的页脚总计 + var discount = $("#Discount").val(); //优惠率 + var discountMoney = (taxLastMoneyTotal*discount/100).toFixed(2); + $("#DiscountMoney").val(discountMoney);//优惠金额 + var discountLastMoney = (taxLastMoneyTotal*(1-discount/100)).toFixed(2) + $("#DiscountLastMoney").val(discountLastMoney);//优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + + if(listSubType == "零售" || listSubType == "零售退货") { + $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); + $("#backAmount").val(0); + } +} +//初始化表格数据-商品列表-编辑状态 +function initTableData_material(type,TotalPrice){ + var body,footer,input; //定义表格和文本框 + var ratio = 1; //比例-品名专用 + var ratioDepot = 1; //比例-仓库用 + var monthTime = getNowFormatMonth(); + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var depotHeadName = ""; //仓库名称 + var depotUrl = ""; //仓库接口地址 + var depotTextField = ""; //仓库下拉名称 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var anotherDepotUrl = ""; //对方仓库接口地址 + var anotherDepotTextField = ""; + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + anotherDepotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + anotherDepotTextField = "depotName"; + } + depotHeadName = "仓库名称"; + depotUrl = '/depot/findDepotByUserId?UBType=UserDepot&UBKeyId='+kid; + depotTextField = "depotName"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialData').datagrid({ + height:245, + rownumbers: false, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + //单击行是否选中 + checkOnSelect : false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + //loadFilter: pagerFilter, + onClickRow: onClickRow, + columns:[[ + { field: 'Id',width:35,align:"center",checkbox:true}, + { title: '商品类型',field: 'MType',editor:'validatebox',hidden:isShowMaterialTypeColumn,width:80}, + { title: depotHeadName, field: 'DepotId', editor: 'validatebox', width: 90, + formatter: function (value, row, index) { + return row.DepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: depotTextField, + method: 'get', + url: depotUrl, + onSelect:function(rec){ + var depotId = rec.id; + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + if(mId){ + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratioDepot, type); + } + } + } + } + }, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialId',width:230, + formatter:function(value,row,index){ + return row.MaterialName; + }, + editor:{ + type:'combobox', + options:{ + valueField:'Id', + textField:'MaterialName', + method:'get', + url: "/material/findBySelect", + panelWidth: 300, //下拉框的宽度 + //全面模糊匹配,过滤字段 + filter: function(q, row){ + var opts = $(this).combobox('options'); + return row[opts.textField].indexOf(q) >-1; + }, + onBeforeLoad: function(param){ + param.mpList = mPropertyList; //商品属性 + }, + onSelect:function(rec){ + if(rec) { + var mId = rec.Id; + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mId + }, + success: function (res) { + if(res && res.code === 200 && res.data && res.data[0]) { + var retailPrice = res.data[0].retailprice-0; //零售价格 + var presetPriceOne = res.data[0].presetpriceone-0; //预计采购价 + var presetPriceTwo = res.data[0].presetpricetwo-0; //批发价 + var firstInUnit = res.data[0].firstinunit; //首选入库单位 + var firstOutUnit = res.data[0].firstoutunit; //首选出库单位 + var basicPresetPriceOne = ""; //多单位-入库-基础价格 + var basicPresetPriceTwo = ""; //多单位-出库-基础价格 + var retailPriceOne = ""; //多单位-入库-零售价格 + var otherPresetPriceOne = ""; //多单位-入库-其他价格 + var otherPresetPriceTwo = ""; //多单位-出库-其他价格 + var retailPriceTwo = ""; //多单位-出库-零售价格 + var basicUnit = ""; //基础单位 + var otherUnit = ""; //其他单位 + if(!res.data[0].unit){ + var ps = res.data[0].pricestrategy; + var psObj = JSON.parse(ps); + basicPresetPriceOne = psObj[0].basic.PresetPriceOne-0; + basicPresetPriceTwo = psObj[0].basic.PresetPriceTwo-0; + retailPriceOne = psObj[0].basic.RetailPrice-0; + otherPresetPriceOne = psObj[1].other.PresetPriceOne-0; + otherPresetPriceTwo = psObj[1].other.PresetPriceTwo-0; + retailPriceTwo = psObj[1].other.RetailPrice-0; + basicUnit = psObj[0].basic.Unit; + otherUnit = psObj[1].other.Unit; + } + body =$("#depotHeadFM .datagrid-body"); + footer =$("#depotHeadFM .datagrid-footer"); + input = ".datagrid-editable-input"; + if(res.data[0].unit){ //如果存在计量单位信息 + ratio = 1; //重置比例为1 + body.find("[field='Unit']").find(input).val(res.data[0].unit); //设置-计量单位信息 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + body.find("[field='Unit']").find(input).off("click"); //移除点击事件 + body.find("[field='Unit']").find(input).attr("data-ratio",ratio); //修改比例缓存信息 + } + else { + var unitName = res.data[0].unitName; + if(unitName) { + ratio = unitName.substring(unitName.indexOf(":")+1).replace(")",""); //给比例赋值 + unitName = unitName.substring(0, unitName.indexOf("(")); + } + var unitArr = unitName.split(","); + var basicUnit = unitArr[0]; //基础单位 + var otherUnit = unitArr[1]; //副单位 + var unitSetInput =""; //单位 + body.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读 + var loadRatio = 1; //在单位输入框上面加载比例字段 + if(listSubType === "采购" || listSubType === "采购退货" || listSubType === "采购订单"){ + unitSetInput = res.data[0].firstinunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + else if(listSubType === "销售" || listSubType === "销售退货" || listSubType === "销售订单" || listSubType === "零售" || listSubType === "零售退货"){ + unitSetInput = res.data[0].firstoutunit; //给单位文本框赋值 + if(basicUnit==unitSetInput){ //基础单位等于选择的单位 + loadRatio = 1; + } + else if(otherUnit==unitSetInput){ //副单位等于选择的单位 + loadRatio = ratio; + } + } + body.find("[field='Unit']").find(input).val(unitSetInput).attr("data-ratio", loadRatio); //设置-首选单位 + + body.find("[field='Unit']").find(input).off("click").on("click",function(){ + if(basicUnit && otherUnit) { + var self = this; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • " + basicUnit + "
  • "; + temp +="
  • " + otherUnit + "
  • "; + temp +="
"; + temp +="
"; + if($('.unit-list').length){ + $('.unit-list').remove(); //如果存在计量单位列表先移除 + } + else { + $(self).after(temp); //加载列表信息 + } + //计量单位列表的单击事件 + $('.unit-list ul li').off("click").on("click",function(){ + var unit = $(this).text(); + var thisRatio = $(this).attr("data-ratio"); //获取比例 + $(self).val(unit).attr("data-ratio", thisRatio); + $(self).keyup(); //模拟键盘操作 + $('.unit-list').remove(); //移除计量单位列表 + var stock = body.find("[field='Stock']").find(input).attr("data-stock"); //从缓存中取值 + var type = $(this).attr("data-type"); + var UnitPrice = 0; + if(type === "basic"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = basicPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = basicPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceOne; + } + body.find("[field='Stock']").find(input).val(stock); //修改库存 + } + else if(type === "other"){ + if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + UnitPrice = otherPresetPriceOne; + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + UnitPrice = otherPresetPriceTwo; + } + else if(listTitle == "零售出库列表" || listTitle == "零售退货列表"){ + UnitPrice = retailPriceTwo; + } + body.find("[field='Stock']").find(input).val((stock/ratio).toFixed(2)); //修改库存 + } + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //获取数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击空白处移除计量单位列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.unit-list').remove(); //移除计量单位列表 + }); + } + }); + } + var detailPrice = 0; //明细列表-单价 + if(listSubType == "零售" || listSubType == "零售退货") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = retailPrice; + } + else { + if (firstOutUnit == basicUnit) { + detailPrice = retailPriceOne; + } + else if (firstOutUnit == otherUnit) { + detailPrice = retailPriceTwo; + } + } + } + else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "销售退货列表" || listTitle == "其它入库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceOne; + } + else { + if (firstInUnit == basicUnit) { + detailPrice = basicPresetPriceOne; + } + else if (firstInUnit == otherUnit) { + detailPrice = otherPresetPriceOne; + } + } + } + else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { + if(res.data[0].unit) { //如果存在计量单位信息 + detailPrice = presetPriceTwo; + } + else { + if(firstOutUnit==basicUnit) { + detailPrice = basicPresetPriceTwo; + } + else if(firstOutUnit==otherUnit){ + detailPrice = otherPresetPriceTwo; + } + } + } + body.find("[field='OperNumber']").find(input).val(1); //数量初始化为1 + //单价和总价赋值 + if(!detailPrice) { + detailPrice = 0; + } + body.find("[field='UnitPrice']").find(input).val(detailPrice); + body.find("[field='AllPrice']").find(input).val(detailPrice); + var taxRate = body.find("[field='TaxRate']").find(input).val()-0; //获取税率 + body.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,detailPrice,1,footer,taxRate); + + //查询库存信息 + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + if(depotId) { + var type = "select"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, loadRatio, type); + } + } + }, + error: function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + } + }); + } + } + } + } + }, + { title: '库存',field: 'Stock',editor:'validatebox',width:70}, + { title: anotherDepotHeadName, field: 'AnotherDepotId',editor:'validatebox',hidden:isShowAnotherDepot,width:90, + formatter: function (value, row, index) { + return row.AnotherDepotName; + }, + editor: { + type: 'combobox', + options: { + valueField: 'id', + textField: anotherDepotTextField, + method: 'get', + url: anotherDepotUrl + } + } + }, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率(%)',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + toolbar:[ + { + id:'append', + text:'新增', + iconCls:'icon-add', + handler:function() + { + append(); //新增 + } + }, + { + id:'delete', + text:'删除', + iconCls:'icon-remove', + handler:function() + { + batchDel(); //删除 + } + }, + { + id:'reject', + text:'撤销', + iconCls:'icon-undo', + handler:function() + { + reject(); //撤销 + } + } + ], + onLoadError:function() + { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = 0; + var TaxLastMoney = 0; + var DiscountMoney = $("#DiscountMoney").val()-0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoney").val()-0; //优惠后金额 + if(type === "edit") { + AllPrice = TotalPrice; + TaxLastMoney = DiscountMoney + DiscountLastMoney; + } + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": TaxLastMoney + }); + data.footer = array; + $("#materialData").datagrid('loadData',data); + //如果是订单跳转到采购或销售 + if(pageType === "skip") { + var skipList = $("#depotHeadFM .datagrid-body tr"); + //逐条自动点击每行数据 + skipList.each(function (i) { + setTimeout(function () { + skipList.eq(i).find("[field='Stock']").click(); + },(i+1)*1000); + }); + } + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//初始化表格数据-商品列表-查看状态 +function initTableData_material_show(TotalPrice){ + var isShowAnotherDepot = true; //显示对方仓库,true为隐藏,false为显示 + var anotherDepotHeadName = ""; //对方仓库的列的标题 + var depotHeadName = ""; //仓库的列的标题 + if(listSubType == "调拨"){ + isShowAnotherDepot = false; //调拨时候显示对方仓库 + anotherDepotHeadName = "调入仓库"; + } + depotHeadName = "仓库名称"; + var isShowTaxColumn = false; //是否显示税率相关的列,true为隐藏,false为显示 + if(listSubType == "调拨" || listSubType == "其它" || listSubType == "零售" || listSubType == "零售退货" || listSubType == "采购订单" || listSubType == "销售订单" || listSubType == "组装单" || listSubType == "拆卸单"){ + isShowTaxColumn = true; //隐藏 + } + var isShowMaterialTypeColumn = true; //是否显示商品类型相关的列,true为隐藏,false为显示 + if(listSubType == "组装单" || listSubType == "拆卸单"){ + isShowMaterialTypeColumn = false; //显示 + } + $('#materialDataShow').datagrid({ + height:245, + rownumbers: true, + //动画效果 + animate:false, + //选中单行 + singleSelect : true, + collapsible:false, + selectOnCheck:false, + pagination: false, + //交替出现背景 + striped : true, + showFooter: true, + onClickRow: onClickRow, + columns:[[ + { title: '商品类型',field: 'MType',width:80, hidden:isShowMaterialTypeColumn}, + { title: depotHeadName,field: 'DepotName',editor:'validatebox',width:90}, + { title: '品名(型号)(扩展信息)(单位)',field: 'MaterialName',width:230}, + { title: anotherDepotHeadName,field: 'AnotherDepotName',hidden:isShowAnotherDepot,width:90}, + { title: '单位',field: 'Unit',editor:'validatebox',width:60}, + { title: '数量',field: 'OperNumber',editor:'validatebox',width:60}, + { title: '单价',field: 'UnitPrice',editor:'validatebox',width:60}, + { title: '含税单价',field: 'TaxUnitPrice',editor:'validattebox',hidden:isShowTaxColumn,width:75}, + { title: '金额',field: 'AllPrice',editor:'validatebox',width:75}, + { title: '税率',field: 'TaxRate',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '税额',field: 'TaxMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '价税合计',field: 'TaxLastMoney',editor:'validatebox',hidden:isShowTaxColumn,width:75}, + { title: '备注',field: 'Remark',editor:'validatebox',width:120}, + { title: '品名-别',field: 'OtherField1',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '型号-别',field: 'OtherField2',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '颜色-别',field: 'OtherField3',editor:'validatebox',hidden:otherColumns,width:60}, + { title: '备注1',field: 'OtherField4',editor:'validatebox',hidden:true,width:60}, + { title: '备注2',field: 'OtherField5',editor:'validatebox',hidden:true,width:60} + ]], + onLoadError:function() { + $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); + return; + } + }); + $.ajax({ + type:"get", + url: '/depotItem/getDetailList', + data: { + headerId: depotHeadID, + mpList: mPropertyList + }, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + var data = res.data; + var AllPrice = TotalPrice; + var DiscountMoney = $("#DiscountMoneyShow").text() - 0; //优惠金额 + var DiscountLastMoney = $("#DiscountLastMoneyShow").text() - 0; //优惠后金额 + var array = []; + array.push({ + "AllPrice": AllPrice, + "TaxLastMoney": DiscountMoney + DiscountLastMoney + }); + data.footer = array; + $("#materialDataShow").datagrid('loadData', data); + } + }, + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + } + }); +} + +//分页信息处理 +function ininPager(){ + try + { + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + pager.pagination({ + onSelectPage:function(pageNum, pageSize) + { + opts.pageNumber = pageNum; + opts.pageSize = pageSize; + pager.pagination('refresh', + { + pageNumber:pageNum, + pageSize:pageSize + }); + showDepotHeadDetails(pageNum,pageSize); + } + }); + } + catch (e) + { + $.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error'); + } +} + +//删除单据信息 +function deleteDepotHead(depotHeadID, thisOrganId, totalPrice, status){ + if(status == "1" || status == "2") { + $.messager.alert('删除提示','已审核和已转的单据不能删除!','warning'); + return; + } + $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { + if (r) { + $.ajax({ + type:"post", + // url: "/depotHead/" + depotHeadID + "/delete", + url: "/depotHead/deleteDepotHeadAndDetail", + dataType: "json", + data:{ + id: depotHeadID + }, + success: function (res) { + if(res && res.code == 200) { + $("#searchBtn").click(); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); + return; + } + }); + + //更新会员的预收款信息 + if(listSubType === "零售") { + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: thisOrganId, //会员id + advanceIn: totalPrice //删除时同时返还用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + } + }); +} + +//订单转采购或销售 +function skipDepotHead(index, status){ + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + if(status == "0" || status == "2") { + $.messager.alert('提示','未审核和已转的单据禁止操作!','warning'); + } else { + sessionStorage.setItem("rowInfo", JSON.stringify(rowsdata)); //将单据信息存入缓存中 + if(listTitle == "采购订单列表") { + parent.addTab("订单转采购", "../materials/purchase_in_list.html?t=skip", ""); + } else if(listTitle == "销售订单列表") { + parent.addTab("订单转销售", "../materials/sale_out_list.html?t=skip", ""); + } + } +} + +//批量删除单据信息 +function batDeleteDepotHead(){ + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('删除提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('删除确认','确定要删除选中的' + row.length + '条单据信息吗?',function(r) + { + if (r) { + var ids = ""; + for (var i = 0; i < row.length; i++) { + if (i == row.length - 1) { + if (row[i].status == 0) { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if (ids) { + //批量更新会员的预收款信息 + for (var i = 0; i < row.length; i++) { + if (listSubType === "零售") { + $.ajax({ + type: "post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data: { + supplierId: row[i].organid, //会员id + advanceIn: row[i].totalprice //删除时同时返还用户的预付款 + }, + success: function (res) { + if (res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function () { + $.messager.alert('提示', '保存信息异常,请稍后再试!', 'error'); + return; + } + }); + } + } + //批量删除 + $.ajax({ + type: "post", + // url: "/depotHead/batchDelete", + url: "/depotHead/batchDeleteDepotHeadAndDetail", + dataType: "json", + async: false, + data: ({ + ids: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('删除提示', '删除单据信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('删除提示', '删除单据信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('删除提示','没有能删除的单据!','warning'); + } + } + }); + } +} + +//批量审核 +function setStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) { + $.messager.alert('审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) { + $.messager.confirm('审核确认','确定要审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type:"post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async : false, + data: ({ + status: "1", + depotHeadIDs : ids + }), + success: function (res) { + if(res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('审核提示', '审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('审核提示','审核信息异常,请稍后再试!','error'); + return; + } + }); + } else { + $.messager.alert('审核提示','没有能审核的单据!','warning'); + } + } + }); + } +} + +//批量反审核 +function setUnStatusFun() { + var row = $('#tableData').datagrid('getChecked'); + if(row.length == 0) + { + $.messager.alert('反审核提示','没有记录被选中!','info'); + return; + } + if(row.length > 0) + { + $.messager.confirm('反审核确认','确定要反审核选中的' + row.length + '条信息吗?',function(r) + { + if (r) + { + var ids = ""; + for(var i = 0;i < row.length; i ++) + { + if(i == row.length-1) + { + if(row[i].status != "2") { + ids += row[i].id; + } + break; + } + ids += row[i].id + ","; + } + if(ids) { + $.ajax({ + type: "post", + url: "/depotHead/batchSetStatus", + dataType: "json", + async: false, + data: ({ + status: "0", + depotHeadIDs: ids + }), + success: function (res) { + if (res && res.code === 200) { + $("#searchBtn").click(); + $(":checkbox").attr("checked", false); + } else { + $.messager.alert('反审核提示', '反审核信息失败,请稍后再试!', 'error'); + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('反审核提示', '反审核信息异常,请稍后再试!', 'error'); + return; + } + }); + } else { + $.messager.alert('反审核提示','没有能反审核的单据!','warning'); + } + } + }); + } +} + +//生成单据编号 +function buildNumber() { + $.ajax({ + type: "get", + url: "/depotHead/buildNumber", + success:function(res){ + if(res && res.code === 200){ + var obj = res.data; + var defaultNumber = obj.DefaultNumber; + var newNumber = amountNum + defaultNumber; + $("#Number").val(newNumber).attr("data-defaultNumber",newNumber); + } + }, + error:function(){ + $.messager.alert('提示','生成单据编号失败!','error'); + } + }); +} + +//新增信息 +function addDepotHead(){ + $('#depotHeadFM').form('clear'); + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + buildNumber(); //生成单据编号 + //初始化优惠率、优惠金额、优惠后金额、本次付|收款、本次欠款 为0 + $("#Discount").val(0); + $("#DiscountMoney").val(0); + $("#DiscountLastMoney").val(0); + $("#ChangeAmount").val(0); + $("#Debt").val(0); + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + var addTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + orgDepotHead = ""; + depotHeadID = 0; + initTableData_material("add"); //商品列表 + reject(); //撤销下、刷新商品列表 + $("#addOrgan").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加供应商信息'); + $('#supplierFM').form('clear'); + }); + + $("#addMember").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加会员信息'); + $('#supplierFM').form('clear'); + }); + $("#addCustomer").off("click").on("click",function(){ + $('#supplierDlg').dialog('open').dialog('setTitle',' 增加客户信息'); + $('#supplierFM').form('clear'); + }); + url = '/depotHead/addDepotHeadAndDetail'; + + //零售单据修改收款时,自动计算找零 + if(listSubType == "零售" || listSubType == "零售退货") { + $("#payType").val("现付"); + $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 + // 鼠标点下时清空选择项 + $("#OrganId").next().find("input").off("mousedown").on("mousedown",function(){ + $("#OrganId").combobox("setValue", ""); + }); + //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 + $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ + var self = this; + if($(this).val().length === 10){ + setTimeout(function(){ + $(".combo-panel .combobox-item-selected").click(); + //更新付款类型,加载会员的预付款的金额 + for(var i=0; i0){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + } + },1000); + } + }); + var getAmount = $("#depotHeadFM .get-amount"); + var changeAmount = $("#depotHeadFM .change-amount"); + var backAmount = $("#depotHeadFM .back-amount"); + getAmount.val(0); changeAmount.val(0); backAmount.val(0); //时间初始化 + getAmount.off("keyup").on("keyup",function() { + if(changeAmount.val()){ + backAmount.val((getAmount.val()-changeAmount.val()).toFixed(2)); + } + }); + } +} + +//编辑信息 +function editDepotHead(index, status){ + if(status == "1" || status == "2") { + $.messager.alert('编辑提示','已审核和已转的单据不能编辑!','warning'); + return; + } + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata =''; + if(Number(index).toString()=='NaN'){ + rowsdata=$.parseJSON(index); + }else{ + rowsdata=$("#tableData").datagrid("getRows")[index]; + } + $("#ProjectId").focus().val(rowsdata.projectid); + var ProjectId=rowsdata.projectid; + if(ProjectId!='') { + initSystemData_person(ProjectId); + initSelectInfo_person(); + } + var TotalPrice = rowsdata.totalprice; //合计金额 + if(pageType === "skip") { //从订单跳转过来 + buildNumber(); //生成单据编号 + var thisDateTime = getNowFormatDateTime(); //当前时间 + $("#OperTime").val(thisDateTime); + $("#LinkNumber").val(rowsdata.number); //关联订单号 + $("#AccountId").val(defaultAccountId); //初始化默认的账户Id + $("#DiscountLastMoney").val(TotalPrice); //优惠后金额 + $("#ChangeAmount").val(TotalPrice).attr("data-changeamount", TotalPrice); + } else { + $("#Number").val(rowsdata.number).attr("data-defaultNumber",rowsdata.number); + $("#OperTime").val(rowsdata.opertimeStr); + $("#LinkNumber").val(rowsdata.linknumber==undefined?"":rowsdata.linknumber); //关联订单号 + $("#AccountId").val(rowsdata.accountid); //账户Id + $("#DiscountLastMoney").val(rowsdata.discountlastmoney==undefined?"0.00":rowsdata.discountlastmoney); //优惠后金额 + $("#ChangeAmount").val(rowsdata.changeamount).attr("data-changeamount", rowsdata.changeamount); + } + $('#OrganId').combobox('setValue', rowsdata.organid==undefined?'':rowsdata.organid); + $("#HandsPersonId").val(rowsdata.handspersonid); + $("#Remark").val(rowsdata.remark); + $("#Discount").val(rowsdata.discount==undefined?"0":rowsdata.discount); + $("#DiscountMoney").val(rowsdata.discountmoney==undefined?"0.00":rowsdata.discountmoney); + $("#Debt").val(Number((rowsdata.discountlastmoney==undefined?'0.00':rowsdata.discountlastmoney-rowsdata.changeamount)).toFixed(2)); + $("#AccountDay").val(rowsdata.accountday==undefined?"":rowsdata.accountday); //结算天数 + preTotalPrice = rowsdata.totalprice; //记录前一次合计金额,用于扣预付款 + $("#AllocationProjectId").val(rowsdata.allocationprojectid); + oldNumber = rowsdata.number; //记录编辑前的单据编号 + oldId = rowsdata.id; //记录单据Id + var editTitle = listTitle.replace("列表","信息"); + $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); + $(".window-mask").css({ width: webW ,height: webH}); + depotHeadID = rowsdata.id; + + if(listSubType == "零售"){ + var option = ""; + if(rowsdata.paytype == "预付款"){ + option = ''; + option += ''; + } + else { + option += ''; + } + $("#payType").empty().append(option); + } + + if(listSubType == "销售" || listSubType == "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanArray = []; + for(var i=0;i","")); + } + } + $("#Salesman").combobox('setValues', salesmanArray); + } + } + + //采购入库、销售出库的多账户加载 + if(rowsdata.accountidlist!=undefined && rowsdata.accountmoneylist!=undefined){ + $("#AccountId").val("many"); //下拉框选中多账户 + var accountArr = rowsdata.accountidlist.split(","); + var accountMoneyArr = rowsdata.accountmoneylist.split(","); + accountMoneyArr = changeListFmtPlus(accountMoneyArr) //将数组单个金额中的数值转为正数 + + if(listSubType == "零售" || listSubType == "零售退货") { + var manyAccountMoney = 0; //多账户合计-零售 + for (var j = 0; j < accountArr.length; j++) { + if (accountList != null) { + for (var i = 0; i < accountList.length; i++) { + var account = accountList[i]; + if (accountArr[j] == account.id) { + manyAccountMoney += accountMoneyArr[j] - 0; //多账户合计-零售 + } + } + } + } + $("#getAmount").val(manyAccountMoney); //收款金额、付款金额 + var changeAmount = $("#ChangeAmount").val()-0; + $("#backAmount").val((manyAccountMoney-changeAmount).toFixed(2)); //找零 + } + + $("#AccountId").attr("data-accountArr", JSON.stringify(accountArr)).attr("data-accountMoneyArr", JSON.stringify(accountMoneyArr)); //json数据存储 + $(".many-account-ico").show(); //显示多账户的ico图标 + } + + //采购入库、销售出库的费用数据加载 + if(rowsdata.othermoneylist &&rowsdata.othermoneyitem){ + $("#OtherMoney").val(rowsdata.othermoney==undefined?"0":rowsdata.othermoney); //采购费用、销售费用 + var itemArr = rowsdata.othermoneylist.split(","); + var itemMoneyArr = rowsdata.othermoneyitem.split(","); + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + + initTableData_material("edit",TotalPrice); //商品列表 + reject(); //撤销下、刷新商品列表 + if(pageType === "skip") { + url = '/depotHead/addDepotHeadAndDetail'; //如果是从订单跳转过来,则此处为新增的接口 + //jshjshjsh + $("#depotHeadFM .datagrid-body").find("[field='DepotId']").click(); + } else { + url = '/depotHead/updateDepotHeadAndDetail?id=' + rowsdata.id; //更新接口 + } +} + +//查看信息 +function showDepotHead(index){ + // var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); + //获取当前行 + var rowsdata = $("#tableData").datagrid("getRows")[index]; + var manyAccountMoney = 0; //多账户合计-零售 + $("#ProjectIdShow").text(rowsdata.projectName); + $("#NumberShow").text(rowsdata.number); + $("#OperTimeShow").text(rowsdata.opertimeStr); + $('#OrganIdShow').text(rowsdata.organName==undefined?'':rowsdata.organName); + $("#HandsPersonIdShow").text(rowsdata.handsPersonName); + if(rowsdata.accountName && rowsdata.accountName!=undefined){ + $("#AccountIdShow").text(rowsdata.accountName); //结算账户 + } else { + var accountArr = (rowsdata.accountidlist==undefined?"":rowsdata.accountidlist).split(","); //账户id列表 + var accountMoneyArr =(rowsdata.accountmoneylist==undefined?"":rowsdata.accountmoneylist).split(","); //账户金额列表 + var accountIdShow = ""; + for(var j =0;j 查看' + showTitle); + $(".window-mask").css({ width: webW ,height: webH}); + + depotHeadID = rowsdata.id; + initTableData_material_show(TotalPrice); //商品列表-查看状态 + + //零售单据展示数据 + if(listSubType == "零售" || listSubType == "零售退货"){ + var changeAccount = $("#depotHeadDlgShow .change-amount-show").text() -0; + if(manyAccountMoney!==0){ + $("#depotHeadDlgShow .get-amount-show").text((manyAccountMoney).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text((manyAccountMoney -changeAccount).toFixed(2)); + } + else { + $("#depotHeadDlgShow .get-amount-show").text((changeAccount).toFixed(2)); + $("#depotHeadDlgShow .back-amount-show").text(0); + } + } + if(listSubType === "销售" || listSubType === "销售退货"){ + if(rowsdata.salesman){ + var arr = rowsdata.salesman.split(","); + var salesmanStr = ""; + for(var i=0;i",""); + } + else { + salesmanStr += arr[i].replace("<","").replace(">","") + ","; + } + } + } + $.ajax({ + type: "get", + url: "/person/getPersonByIds", + data: { + personIDs: salesmanStr + }, + success:function(res){ + if(res && res.code === 200){ + if(res.data) { + $("#SalesmanShow").text(res.data.names); //销售人员列表 + } + } + }, + error:function(){ + + } + }); + } + } +} + +//绑定操作事件 +function bindEvent(){ + showDepotHeadDetails(1,initPageSize); //初始化时自动查询 + //搜索处理 + $("#searchBtn").off("click").on("click",function(){ + showDepotHeadDetails(1,initPageSize); + var opts = $("#tableData").datagrid('options'); + var pager = $("#tableData").datagrid('getPager'); + opts.pageNumber = 1; + opts.pageSize = initPageSize; + pager.pagination('refresh', + { + pageNumber:1, + pageSize:initPageSize + }); + }); + + //重置按钮 + $("#searchResetBtn").unbind().bind({ + click:function(){ + //$("#searchProjectId").val(""); + $("#searchState").val(""); + $("#searchBeginTime").val(""); + $("#searchEndTime").val(""); + //加载完以后重新初始化 + $("#searchBtn").click(); + } + }); + + //检查单据编号是否存在 + function checkDepotHeadNumber() { + var thisNumber = $.trim($("#Number").val()); + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(thisNumber.length > 0 &&( oldNumber.length ==0 || thisNumber != oldNumber)) + { + $.ajax({ + type:"get", + url: "/depotHead/checkIsNumberExist", + dataType: "json", + async : false, + data: ({ + DepotHeadID : oldId, + Number : thisNumber + }), + success: function (tipInfo) + { + flag = tipInfo; + if(tipInfo) + { + $.messager.alert('提示','抱歉,该单据编号已经存在','warning'); + return; + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','检查单据编号是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + //保存信息 + /** + * 2019-01-25 + * 我对这个方法的实现结果存在严重怀疑,决定重构 + * 有如下疑点: + * 1、保存完主表,返回结果后,再发起请求去操作子表,如何保证事务的一致性(业务数据一致性) + * 2、保存完主表后,再通过selectmax的方式去获取主表主键id完全就是看人品的不可靠的思路 + * 修改计划: + * 2019-01-25修改零售出库相关操作 + * 修改方式,重写url,将主从表操作合并 + * + * + * **/ + $("#saveDepotHead").off("click").on("click",function(){ + if(!$('#depotHeadFM').form('validate')){ + return; + } + else { + //如果初始编号被修改了,就要判断单据编号是否存在 + if($.trim($("#Number").val()) != $('#Number').attr("data-defaultNumber")){ + //调用查询单据编号是否重名的方法 + if(checkDepotHeadNumber()){ + return; + } + } + //输入框提示 + if(listTitle === "采购订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + } + else if(listTitle === "采购入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择供应商!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择结算账户!','warning'); + return; + } + } + else if(listTitle === "零售退货列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + } + else if(listTitle === "销售退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择退货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择付款账户!','warning'); + return; + } + } + else if(listTitle === "其它入库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "零售出库列表"){ + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + if($("#backAmount").val()-0 <0){ + $.messager.alert('提示','找零金额不能小于0!','warning'); + return; + } + if($("#AccountId").val() == "many" && $("#backAmount").val()-0 >0) { + $.messager.alert('提示', '选择多账户时的找零金额不能大于0!', 'warning'); + return; + } + + } + else if(listTitle === "销售订单列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + } + else if(listTitle === "销售出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择购买单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "采购退货列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择收货单位!','warning'); + return; + } + if(!$('#AccountId').val()){ + $.messager.alert('提示','请选择收款账户!','warning'); + return; + } + } + else if(listTitle === "其它出库列表"){ + if(!$('#OrganId').combobox('getValue')){ + $.messager.alert('提示','请选择往来单位!','warning'); + return; + } + } + else if(listTitle === "调拨出库列表"){ + + } + //进行明细的校验 + if(depotHeadID ==0) { + //新增模式下 + if (!CheckData("add")) { + return; + } + } + else { + //编辑模式下 + if (!CheckData("edit")) { + return; + } + } + var OrganId = null, ProjectId = null,AllocationProjectId = null; + var ChangeAmount = $.trim($("#ChangeAmount").val())-0; + var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); + if($('#OrganId').length){ + OrganId = $('#OrganId').combobox('getValue'); + } + var accountMoneyList = $("#AccountId").attr("data-accountmoneyarr"); //账户金额列表-多账户 + var accountMoneyArr; + if(accountMoneyList) { + accountMoneyList = accountMoneyList.replace("[","").replace("]","").toString(); + var reg=new RegExp("\"","g"); //创建正则RegExp对象 + accountMoneyList = accountMoneyList.replace(reg,""); //替换所有的双引号 + accountMoneyArr = accountMoneyList.split(","); //转为数组 + } + if(listSubType === "采购订单"||listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ + //付款为负数 + ChangeAmount = 0 - ChangeAmount; + TotalPrice = 0 - TotalPrice; + if(accountMoneyArr) { + accountMoneyArr = changeListFmtMinus(accountMoneyArr); //将数组单个金额中的数值转为负数 + } + } + //零售时候,可以从会员预付款中扣款 + var thisPayType = "现付"; + if(listSubType === "零售") { + if($("#payType").val() ==="预付款") { + thisPayType = "预付款"; + } + } + var SalesmanStr = ""; + if(listSubType === "销售" || listSubType === "销售退货"){ + var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员 + if(Salesman) { + var SalesmanArray = Salesman.split(","); + for (var i = 0; i < SalesmanArray.length; i++) { + if (i === SalesmanArray.length - 1) { + SalesmanStr += "<" + SalesmanArray[i] + ">"; + } + else { + SalesmanStr += "<" + SalesmanArray[i] + ">,"; + } + } + } + } + var getAccountID = $.trim($("#AccountId").val()); + if($("#AccountId").val() === "many"){ //多账户 + getAccountID = null; + } + var infoStr=JSON.stringify({ + Type: listType, + SubType: listSubType, + ProjectId: ProjectId, + AllocationProjectId: AllocationProjectId, + DefaultNumber: $.trim($("#Number").attr("data-defaultNumber")),//初始编号 + Number: $.trim($("#Number").val()), + LinkNumber: $.trim($("#LinkNumber").val()), + OperTime: $("#OperTime").val(), + OrganId: OrganId, + HandsPersonId: $.trim($("#HandsPersonId").val()), + Salesman: SalesmanStr, //销售人员 + AccountId: getAccountID, + ChangeAmount: ChangeAmount, //付款/收款 + TotalPrice: TotalPrice, //合计 + PayType: thisPayType, //现付/预付款 + Remark: $.trim($("#Remark").val()), + AccountIdList: $("#AccountId").attr("data-accountarr"), //账户列表-多账户 + AccountMoneyList: accountMoneyArr ? JSON.stringify(accountMoneyArr) : "", //账户金额列表-多账户 + Discount: $.trim($("#Discount").val()), + DiscountMoney: $.trim($("#DiscountMoney").val()), + DiscountLastMoney: $.trim($("#DiscountLastMoney").val()), + OtherMoney: $.trim($("#OtherMoney").val()), //采购费用、销售费用 + OtherMoneyList: $("#OtherMoney").attr("data-itemarr"), //支出项目列表-涉及费用 + OtherMoneyItem: $("#OtherMoney").attr("data-itemmoneyarr"), //支出项目金额列表-涉及费用 + AccountDay: $("#AccountDay").val() //结算天数 + }); + /** + * 零售出库,单独操作 + * */ + if(url.indexOf("/depotHead/addDepotHeadAndDetail")>=0){ + addDepotHeadAndDetail(url,infoStr); + return; + }else if(url.indexOf("/depotHead/updateDepotHeadAndDetail")>=0){ + updateDepotHeadAndDetail(url,infoStr,preTotalPrice); + return; + } + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr + }), + success: function (tipInfo) + { + if(tipInfo) + { + function closeDialog(){ + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + } + + if(thisPayType === "预付款") { + //更新用户信息-预付款 + var advanceIn = 0; //预付款金额 + if(depotHeadID){ + advanceIn = TotalPrice - preTotalPrice; //修改时,预付款=合计金额-加载金额 + } + else{ + advanceIn = TotalPrice; //新增时,预付款=合计金额 + } + $.ajax({ + type:"post", + url: "/supplier/updateAdvanceIn", + dataType: "json", + data:{ + supplierId: OrganId, //会员id + advanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 + }, + success: function(res){ + if(res && res.code === 200) { + //保存会员预收款成功 + } + }, + error: function(){ + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + + //保存明细记录 + if(depotHeadID ==0) + { + getMaxId(); //查找最大的Id + accept(depotHeadMaxId,closeDialog); //新增 + } + else + { + accept(depotHeadID,closeDialog); //修改 + } + } + else + { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + + //打印单据 + $("#printDepotHeadShow").off("click").on("click",function(){ + var tableString = $("#depotHeadDlgShow").html(); + localStorage.setItem("tableString",tableString); + window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); + }); + + //初始化键盘enter事件 + $(document).keydown(function(event){ + //兼容 IE和firefox 事件 + var e = window.event || event; + var k = e.keyCode||e.which||e.charCode; + //兼容 IE,firefox 兼容 + var obj = e.srcElement ? e.srcElement : e.target; + //绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题 + if(k == "13"&&(obj.id=="State"||obj.id=="Number")) + { + $("#saveDepotHead").click(); + } + //搜索按钮添加快捷键 + if(k == "13"&&(obj.id=="searchState"||obj.id=="searchNumber"||obj.id=="searchMaterial")) + { + $("#searchBtn").click(); + } + }); + + //优惠率输入框事件 + $("#Discount").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountNum = $(this).val(); + var discountMoney = (discountNum/100*totalPrice).toFixed(2); + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#DiscountMoney").val(discountMoney); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //优惠金额输入框事件 + $("#DiscountMoney").off("keyup").on("keyup",function(){ + var footer =$("#depotHeadFM .datagrid-footer"); + var totalPrice = footer.find("[field='TaxLastMoney']").find("div").text(); + var discountMoney = $(this).val(); + var discount = (discountMoney/totalPrice).toFixed(2)*100; + var discountLastMoney = (totalPrice - discountMoney).toFixed(2); + $("#Discount").val(discount); //优惠金额 + $("#DiscountLastMoney").val(discountLastMoney); //优惠后金额 + if($("#AccountId").val()!=="many"){ + $("#ChangeAmount").val(discountLastMoney); //本次付、收款 + } + var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款 + $("#Debt").val((discountLastMoney-changeAmountNum).toFixed(2)); //本次欠款 + }); + + //付款、收款输入框事件 + $("#ChangeAmount").off("keyup").on("keyup",function(){ + var discountLastMoney = $("#DiscountLastMoney").val(); + var changeAmount = $(this).val(); + var debtMoney = (discountLastMoney - changeAmount).toFixed(2); + $("#Debt").val(debtMoney); //本次欠款 + }); + + //多账户结算窗口弹出事件 + function depotHeadAccountDlgFun(){ + $('#depotHeadAccountDlg').dialog('open').dialog('setTitle',' 多账户结算'); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").remove(); //先移除输入栏目 + $("#accountMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#depotHeadAccountDlg .tabs-tmp .account-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#depotHeadAccountDlg .tabs-tmp tbody").html(); + var accountDlgHead = $("#depotHeadAccountDlg .account-head-tmp"); + accountDlgHead.after(contentTmp); + } + + //获取账户信息 + function accountDlgFun() { + var options = ""; + if(accountList !=null){ + for(var i = 0 ;i < accountList.length;i++) { + var account = accountList[i]; + options += ''; + } + $(".account-id-dlg").empty().append("").append(options); + } + } + accountDlgFun(); //获取账户信息 + $("#depotHeadAccountDlg .tabs-tmp").hide(); //隐藏模板 + + //账户金额输入框事件-多账户 + $("#depotHeadAccountDlg .account-dlg .account-money-dlg").off("keyup").on("keyup",function(){ + var totalAccoutNum = 0; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var eachAccountMoney = $(this).find(".account-money-dlg").val()-0; + totalAccoutNum += eachAccountMoney; + }); + $("#accountMoneyTotalDlg").text(totalAccoutNum); + }); + + //结算多账户列表的切换事件 + $("#depotHeadAccountDlg .account-dlg .account-id-dlg").off("change").on("change",function(){ + var selectAccount = $(this).children('option:selected').text(); + if(selectAccount === ""){ + var thisMoneyDom = $(this).closest(".account-content-tmp").find(".account-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var accountMoneyTotal = $("#accountMoneyTotalDlg").text() - 0; + $("#accountMoneyTotalDlg").text(accountMoneyTotal - thisMoney); + thisMoneyDom.val(""); //账户为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveDepotHeadAccountDlg").off("click").on("click", function(){ + //完成多账户的json数据存储 + var accountArr = []; //账户id数组 + var accountMoneyArr = []; //账户金额数组 + var errorIndex = -1; + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var thisAccId = $(this).find(".account-id-dlg").val(); + var thisAccMoney = $(this).find(".account-money-dlg").val(); + if(!thisAccId && thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && !thisAccMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisAccId && thisAccMoney) { + accountArr.push(thisAccId); + accountMoneyArr.push(thisAccMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var discountLastMoneyNum =$("#DiscountLastMoney").val()-0; //优惠后金额 + var accountMoneyTotal = $("#accountMoneyTotalDlg").text()-0; //本次付款或者收款 + if(accountMoneyTotal===0){ + $.messager.alert('错误提示',"请填写金额后保存",'warning'); + return; + } + if(accountArr.length && accountMoneyArr.length) { + $("#AccountId").attr("data-accountArr",JSON.stringify(accountArr)).attr("data-accountMoneyArr",JSON.stringify(accountMoneyArr)); //json数据存储 + } + if(listSubType==="零售" || listSubType==="零售退货") { + $("#getAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + var backAmount = $("#getAmount").val() - $("#ChangeAmount").val(); + $("#backAmount").val((backAmount - 0).toFixed(2)); //计算找零金额 + } + else { + $("#ChangeAmount").val(accountMoneyTotal); //给付款或者收款金额赋值 + } + $("#Debt").val((discountLastMoneyNum-accountMoneyTotal).toFixed(2)); //本次欠款 + $("#depotHeadAccountDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#AccountId").attr("data-accountArr")){ + $("#depotHeadAccountDlg").dialog('close'); + } + else { + $("#depotHeadAccountDlg").dialog('close'); + $("#AccountId").val("").removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + } + //多账户-取消按钮 + $("#cancelDepotHeadAccountDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //多账户-右上角的关闭按钮 + $("#depotHeadAccountDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + } + //点击多账户,弹出输入框 + $("#AccountId").off("change").on("change",function(){ + var selectText = $(this).children('option:selected').text(); + if(selectText === "多账户"){ + $("#ChangeAmount").prop("readonly","readonly"); + depotHeadAccountDlgFun(); + $(".many-account-ico").show(); //显示多账户小图标 + } + else{ + $(this).removeAttr("data-accountArr").removeAttr("data-accountMoneyArr"); //将下拉置空并把缓存参数清空 + if(listSubType==="零售" || listSubType==="零售退货"){ + $("#ChangeAmount").prop("readonly","readonly"); + } + else { + $("#ChangeAmount").removeProp("readonly","readonly"); + } + $(".many-account-ico").hide(); //隐藏多账户小图标 + } + }); + + //结算账户-多账户小图标-点击事件 + $(".many-account-ico").off("click").on("click",function(){ + depotHeadAccountDlgFun(); + //给弹窗赋值-多账户数据 + var accountArr = $("#AccountId").attr("data-accountArr"); + accountArr = JSON.parse(accountArr); + var accountMoneyArr = $("#AccountId").attr("data-accountMoneyArr"); + accountMoneyArr = JSON.parse(accountMoneyArr); + $("#depotHeadAccountDlg .account-dlg .account-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".account-id-dlg").val(accountArr[index]); + $(this).find(".account-money-dlg").val(accountMoneyArr[index]); + }); + if(listSubType==="零售" || listSubType==="零售退货") { + $("#accountMoneyTotalDlg").text($("#getAmount").val()); + } + else { + $("#accountMoneyTotalDlg").text($("#ChangeAmount").val()); + } + }); + + //点击采购费用、销售费用的事件 + $(".other-money-ico").off("click").on("click",function(){ + $('#otherMoneyDlg').dialog('open').dialog('setTitle',' '+ listSubType +'费用'); + $("#otherMoneyDlg .money-dlg .money-content-tmp").remove(); //先移除输入栏目 + $("#otherMoneyTotalDlg").text(0); //将合计初始化为0 + for(var i=0; i<6; i++) { + $("#otherMoneyDlg .tabs-tmp .money-content-tmp").attr("data-index",5-i); //添加索引 + var contentTmp = $("#otherMoneyDlg .tabs-tmp tbody").html(); + var moneyDlgHead = $("#otherMoneyDlg .money-head-tmp"); + moneyDlgHead.after(contentTmp); + } + + //获取支出项目信息 + function moneyDlgFun() { + var options = ""; + if(outItemList !=null){ + for(var i = 0 ;i < outItemList.length;i++) { + var money = outItemList[i]; + options += ''; + } + $(".money-id-dlg").empty().append("").append(options); + } + } + moneyDlgFun(); //获取支出项目信息 + $("#otherMoneyDlg .tabs-tmp").hide(); //隐藏模板 + + //支出项目的金额输入框事件 + $("#otherMoneyDlg .money-dlg .other-money-dlg").off("keyup").on("keyup",function(){ + var totalMoneyNum = 0; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var eachOtherMoney = $(this).find(".other-money-dlg").val()-0; + totalMoneyNum += eachOtherMoney; + }); + $("#otherMoneyTotalDlg").text(totalMoneyNum); + }); + + //支出项目列表的切换事件 + $("#otherMoneyDlg .money-dlg .money-id-dlg").off("change").on("change",function(){ + var selectItem = $(this).children('option:selected').text(); + if(selectItem === ""){ + var thisMoneyDom = $(this).closest(".money-content-tmp").find(".other-money-dlg"); + var thisMoney = thisMoneyDom.val()-0; + var otherMoneyTotal = $("#otherMoneyTotalDlg").text() - 0; + $("#otherMoneyTotalDlg").text(otherMoneyTotal - thisMoney); + thisMoneyDom.val(""); //支出项目为空时候,将金额也置为空 + } + }); + + //保存按钮事件 + $("#saveOtherMoneyDlg").off("click").on("click", function(){ + //完成支出项目的json数据存储 + var itemArr = []; //支出项目id数组 + var itemMoneyArr = []; //支出项目金额数组 + var errorIndex = -1; + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var thisId = $(this).find(".money-id-dlg").val(); + var thisMoney = $(this).find(".other-money-dlg").val(); + if(!thisId && thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && !thisMoney) { + errorIndex = $(this).attr("data-index")-0; + return; + } + if(thisId && thisMoney) { + itemArr.push(thisId); + itemMoneyArr.push(thisMoney); + } + }); + if(errorIndex >-1){ + $.messager.alert('错误提示',"第" + (errorIndex+1) + "行数据存在问题,请修改",'warning'); + return; + } + var otherMoneyTotal = $("#otherMoneyTotalDlg").text()-0; //合计金额 + if(otherMoneyTotal === 0){ //0的时候清空缓存数据 + $("#OtherMoney").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); + } + if(itemArr.length && itemMoneyArr.length) { + $("#OtherMoney").attr("data-itemArr",JSON.stringify(itemArr)).attr("data-itemMoneyArr",JSON.stringify(itemMoneyArr)); //json数据存储 + } + $("#OtherMoney").val(otherMoneyTotal); //给采购费用、销售费用赋值 + $("#otherMoneyDlg").dialog('close'); + }); + + //取消事件 + function cancelFun(){ + if($("#OtherMoney").attr("data-itemArr")){ + $("#otherMoneyDlg").dialog('close'); + } + else { + $("#otherMoneyDlg").dialog('close'); + $("#OtherMoney").val("").removeAttr("data-itemArr").removeAttr("data-itemMoneyArr"); //将下拉置空并把缓存参数清空 + } + } + //费用-取消按钮 + $("#cancelOtherMoneyDlg").off("click").on("click", function(){ + cancelFun(); + }); + + //费用-右上角的关闭按钮 + $("#otherMoneyDlg").prev().find(".panel-tool-close").off("click").on("click", function(){ + cancelFun(); + }); + + //给弹窗赋值-采购费用、销售费用数据 + var itemArr = $("#OtherMoney").attr("data-itemArr"); + itemArr = JSON.parse(itemArr); + var itemMoneyArr = $("#OtherMoney").attr("data-itemMoneyArr"); + itemMoneyArr = JSON.parse(itemMoneyArr); + $("#otherMoneyDlg .money-dlg .money-content-tmp").each(function(){ + var index = $(this).attr("data-index"); + $(this).find(".money-id-dlg").val(itemArr[index]); + if(itemMoneyArr[index]!="undefined"){ + $(this).find(".other-money-dlg").val(itemMoneyArr[index]); + } + }); + $("#otherMoneyTotalDlg").text($("#OtherMoney").val()); + }); + + if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){ + var supplierType = "供应商"; + if(listTitle === "零售出库列表"){ + supplierType = "会员"; + }else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){ + supplierType = "客户"; + } + //检查单位名称是否存在 ++ 重名无法提示问题需要跟进 + function checkSupplierName() { + var supplierName = $.trim($("#supplier").val()); + var orgSupplier = ""; + //表示是否存在 true == 存在 false = 不存在 + var flag = false; + //开始ajax名称检验,不能重名 + if(supplierName.length > 0 &&( orgSupplier.length ==0 || supplierName != orgSupplier)) + { + $.ajax({ + type:"get", + url: "/supplier/checkIsNameExist", + dataType: "json", + async : false, + data: ({ + id : 0, + name : supplierName + }), + success: function (res) { + if(res && res.code === 200) { + if(res.data && res.data.status) { + flag = res.data.status; + if (flag) { + $.messager.alert('提示', '单位名称已经存在', 'info'); + return; + } + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('提示','检查单位名称是否存在异常,请稍后再试!','error'); + return; + } + }); + } + return flag; + } + + //保存供应商信息 + $("#saveSupplier").off("click").on("click",function() { + if(validateForm("supplierFM")) { + return; + } + if(checkSupplierName()){ + return; + } + var reg = /^([0-9])+$/; + var phonenum = $.trim($("#phonenum").val()); + if(phonenum.length>0 && !reg.test(phonenum)) + { + $.messager.alert('提示','电话号码只能是数字','info'); + $("#phonenum").val("").focus(); + return; + } + var beginNeedGet = $.trim($("#BeginNeedGet").val()); + var beginNeedPay = $.trim($("#BeginNeedPay").val()); + if(beginNeedGet && beginNeedPay) { + $.messager.alert('提示','期初应收和期初应付不能同时输入','info'); + return; + } + var url = '/supplier/add'; + var supObj = $("#supplierFM").serializeObject(); + supObj.type = supplierType; + supObj.enabled = 1; + $.ajax({ + url: url, + type:"post", + dataType: "json", + data:{ + info: JSON.stringify(supObj) + }, + success: function(res) { + if (res) { + $('#supplierDlg').dialog('close'); + initSupplier(); //刷新供应商 + } + } + }); + }); + } +} + +function showDepotHeadDetails(pageNo,pageSize){ + var materialParam = $.trim($("#searchMaterial").val()); + $.ajax({ + type:"get", + url: "/depotItem/getHeaderIdByMaterial", + dataType: "json", + data: ({ + materialParam: materialParam, + depotIds: depotString + }), + success: function (res) { + if(res && res.code === 200) { + var ids = res.data; + if(ids){ + $.ajax({ + type: "get", + url: "/depotHead/list", + dataType: "json", + data: ({ + search: JSON.stringify({ + type: listType, + subType: listSubType, + state: $.trim($("#searchState").val()), + number: $.trim($("#searchNumber").val()), + beginTime: $("#searchBeginTime").val(), + endTime: $("#searchEndTime").val(), + dhIds: ids + }), + currentPage: pageNo, + pageSize: pageSize + }), + success: function (res) { + if(res && res.code === 200){ + if(res.data && res.data.page) { + $("#tableData").datagrid('loadData', res.data.page); + } + } + }, + //此处添加错误处理 + error: function () { + $.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error'); + return; + } + }); + } + else { + $("#tableData").datagrid('loadData', []); + } + } + }, + //此处添加错误处理 + error:function() { + $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); + return; + } + }); +} + +//自动计算事件 +function autoReckon() { + //延时绑定事件 + setTimeout(function(){ + var body =$("#depotHeadFM .datagrid-body"); + var footer =$("#depotHeadFM .datagrid-footer"); + var input = ".datagrid-editable-input"; + //点击商品下拉框,自动加载数量、单价、金额 + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //点击库存文本框,字段计算库存 + body.find("[field='Stock']").find(input).off("click").on("click",function(){ + var depotId = body.find("[field='DepotId']").find(".combo-value").val(); + var mId = body.find("[field='MaterialId']").find(".combo-value").val(); + var monthTime = getNowFormatMonth(); + if(depotId && mId){ + var ratio = body.find("[field='Unit']").find(input).attr("data-ratio"); + body.find("[field='Stock']").find(input).prop("readonly","readonly"); + //在新增的时候,这个ratio有值;在编辑的时候,这个ratio为undefined + var type = "click"; //type 类型:点击 click,选择 select + findStockNumById(depotId, mId, monthTime, body, input, ratio, type); + } + else{ + body.find("[field='Stock']").find(input).val(0).attr("data-stock",0); //加载库存数据 + } + }); + //修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计 + body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber =$(this).val()-0; //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + + }); + //修改单价,自动计算金额和合计 + body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){ + var UnitPrice =$(this).val()-0; //单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //点击单价,自动提示参考价格列表 + body.find("[field='UnitPrice']").find(input).off("click").on("click",function(){ + var self = this; + var mValue = body.find("[field='MaterialId'] .combo-value").attr("value"); //获取选中的商品id + if(!mValue) { + return; + } + else { + if(listTitle!="销售出库列表" && listTitle!="采购退货列表" && listTitle!="其它出库列表" && listTitle!="调拨出库列表") { + return; + } + $.ajax({ + url: "/material/findById", + type: "get", + dataType: "json", + data: { + id: mValue - 0 + }, + success: function(res){ + if(res && res.rows && res.rows[0]) { + var retailPrice = res.rows[0].RetailPrice; + var presetPriceOne = res.rows[0].PresetPriceOne; + var presetPriceTwo = res.rows[0].PresetPriceTwo; + //定义模版 + var temp = "
"; + temp +="
    "; + temp +="
  • 批发价:" + presetPriceTwo + "
  • "; + temp +="
  • 零售价:" + retailPrice + "
  • "; + temp +="
"; + temp +="
"; + if($('.price-list').length){ + $('.price-list').remove(); //如果存在价格列表先移除 + } + else { + if(presetPriceTwo != undefined){ //多单位的商品 + $(self).after(temp); //加载列表信息 + } + } + $('.price-list ul li').off("click").on("click",function(){ + var price = $(this).text(); + price = price.substring(price.indexOf(":") + 1); + $(self).val(price); + $(self).keyup(); //模拟键盘操作 + $('.price-list').remove(); //移除价格列表 + }); + //点击空白处移除价格列表 + $(".datagrid-body").off("click").on("click",function(){ + $('.price-list').remove(); //移除价格列表 + }); + } + }, + error: function(){ + $.messager.alert('错误提示','查询商品信息异常,请稍后再试!','error'); + return; + } + }); + } + }); + //修改含税单价,自动计算单价、金额、税额、价税合计和合计 + body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){ + var TaxUnitPrice =$(this).val()-0; //含税单价 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价 + body.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改金额,自动计算单价、税额、价税合计和合计 + body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var taxRate = body.find("[field='TaxRate']").find(input).val(); //税率 + var AllPrice =$(this).val()-0; //金额 + var UnitPrice = (AllPrice/OperNumber).toFixed(2); + body.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税率,自动计算含税单价、税额、价税合计和合计 + body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){ + var taxRate =$(this).val()-0; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改税额,自动计算税率、含税单价、价税合计和合计 + body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){ + var taxMoney =$(this).val()-0; //税额 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = taxMoney/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + //修改价税合计,自动计算税率、含税单价、税额和合计 + body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){ + var taxLastMoney =$(this).val()-0; //价税合计 + var AllPrice = body.find("[field='AllPrice']").find(input).val(); //金额 + var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率 + var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 + var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 + body.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价 + body.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率 + body.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额 + statisticsFun(body,UnitPrice,OperNumber,footer,taxRate); + }); + + //加载税率 + if(thisTaxRate) { + body.find("[field='TaxRate']").find(input).val(thisTaxRate); + } + else { + body.find("[field='TaxRate']").find(input).val(0); //默认为0 + } + + //在商品类型加载 组装件、普通子件 + var mType = body.find("[field='MType']"); + var rowListLength = mType.find(input).closest(".datagrid-row").attr("datagrid-row-index"); + var mTypeValue = "组合件"; + if(rowListLength > 0){ + mTypeValue = "普通子件"; + } + if(listSubType == "组装单" || listSubType == "拆卸单"){ + mType.find(input).val(mTypeValue).prop("readonly","readonly"); + } + },500); +} + +//结束编辑 +function endEditing() { + if (editIndex == undefined) { return true } + if ($('#materialData').datagrid('validateRow', editIndex)) { + //仓库信息 + var edDepot = $('#materialData').datagrid('getEditor', {index:editIndex,field:'DepotId'}); + var DepotName = $(edDepot.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['DepotName'] = DepotName; + //商品信息 + var edMaterial = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); + var MaterialName = $(edMaterial.target).combobox('getText'); + $('#materialData').datagrid('getRows')[editIndex]['MaterialName'] = MaterialName; + $('#materialData').datagrid('endEdit', editIndex); + editIndex = undefined; + return true; + } else { + return false; + } +} +//单击 +function onClickRow(index) { + if (editIndex != index) { + if (endEditing()) { + $('#materialData').datagrid('selectRow', index).datagrid('beginEdit', index); + editIndex = index; + autoReckon(); + } else { + $('#materialData').datagrid('selectRow', editIndex); + } + } +} +//新增 +function append(){ + if (endEditing()) { + $('#materialData').datagrid('appendRow', {DepotId:defDepotId}); + editIndex = $('#materialData').datagrid('getRows').length - 1; + $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); + autoReckon(); + } +} +//删除 +function batchDel(){ + /** + * 重写一下删除的逻辑 + * 获取所有选中行,直接从列表中移除 + * 点击保存时,将需要后台删除的数据提交到服务器 + * **/ + /** + * create by: qiankunpingtai + * create time: 2019/3/20 16:26 + * description: + * 这个地方比较坑的,花了一个多小时才搞明白为什么 + * 1、删除之前必须先调用endEditing结束编辑 + * 2、如果只是调用endEditing结束编辑那么正在编辑行的被选中状态会被去掉 + * 所以要在调用endEditing先获取选中的行 + */ + //如果编辑的行一开始是选中状态,结束编辑后仍然是选中状态 + var row = $('#materialData').datagrid('getChecked'); + if (endEditing()) { + if (row.length == 0) { + $.messager.alert('删除提示', '没有记录被选中!', 'info'); + return; + } + if (row.length > 0) { + $.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条单据信息吗?', function (r) { + if (r) { + for (var i = 0; i < row.length; i++) { + $('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[i])); + } + } + }); + } + } +} +function removeit(){ + if (editIndex == undefined) { return } + $('#materialData').datagrid('cancelEdit', editIndex) + .datagrid('deleteRow', editIndex); + editIndex = undefined; +} +//撤销 +function reject() { + $('#materialData').datagrid('rejectChanges'); + editIndex = undefined; +} +//判断 +function CheckData(type) { + append(); + removeit(); + var change = $('#materialData').datagrid('getChanges').length; + if(type =="add" && !change) { + $.messager.alert('提示','请输入明细信息!','warning'); + return false; + } + var row = $('#materialData').datagrid('getRows'); + if(!row.length){ + $.messager.alert('提示',"请输入明细信息!",'info'); + return false; + } + var totalRowNum = ""; + for (var i = 0; i < row.length; i++) { + if (row[i].DepotId == "" || row[i].MaterialId == "" || row[i].OperNumber == "" || row[i].UnitPrice === "" || row[i].AllPrice === "") { + totalRowNum += (i + 1) + "、"; + } + } + if (totalRowNum != "") { + var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); + $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); + return false; + } + return true; +} +//保存 +function accept(accepId,fun) { + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type: "post", + url: "/depotItem/saveDetials", + data: { + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + headerId:accepId + }, + success: function (tipInfo) + { + if (tipInfo) { + $.messager.alert('提示','保存成功!','info'); + } + else { + $.messager.alert('提示', '保存失败!', 'error'); + } + fun && fun(); + }, + error: function (XmlHttpRequest, textStatus, errorThrown) + { + $.messager.alert('提示',XmlHttpRequest.responseText,'error'); + fun && fun(); + } + }); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } +} +//获取MaxId +function getMaxId(){ + var depotHeadMax=null; + $.ajax({ + type:"get", + url: "/depotHead/getMaxId", + //设置为同步 + async:false, + dataType: "json", + success: function (res) { + if(res && res.code === 200) { + if(res.data) { + depotHeadMax = res.data.maxId; + } + } + } + }); + + if(depotHeadMax !=null) { + depotHeadMaxId=depotHeadMax; + } +} + +/** + * 新增单据主表及单据子表 + * */ +function addDepotHeadAndDetail(url,infoStr){ + var inserted = null; + if(pageType === "skip") { + inserted = $("#materialData").datagrid('getChanges', "updated"); + } else { + inserted = $("#materialData").datagrid('getChanges', "inserted"); + } + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated) + }), + success: function (tipInfo){ + + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + + + }); +} +/** + * 修改单据主表及单据子表 + * */ +function updateDepotHeadAndDetail(url,infoStr,preTotalPrice){ + var inserted = $("#materialData").datagrid('getChanges', "inserted"); + var deleted = $("#materialData").datagrid('getChanges', "deleted"); + var updated = $("#materialData").datagrid('getChanges', "updated"); + $.ajax({ + type:"post", + url: url, + dataType: "json", + async : false, + data: ({ + id:url.substring(url.lastIndexOf("?id=")+4,url.length), + info:infoStr, + inserted: JSON.stringify(inserted), + deleted: JSON.stringify(deleted), + updated: JSON.stringify(updated), + preTotalPrice:preTotalPrice + }), + success: function (tipInfo){ + if(tipInfo){ + if(tipInfo.code!=200){ + $.messager.alert('提示', tipInfo.msg, 'error'); + return; + } + $.messager.alert('提示','保存成功!','info'); + $('#depotHeadDlg').dialog('close'); + var opts = $("#tableData").datagrid('options'); + showDepotHeadDetails(opts.pageNumber,opts.pageSize); + if (endEditing()) { + $('#materialData').datagrid('acceptChanges'); + } + }else { + $.messager.show({ + title: '错误提示', + msg: '保存信息失败,请稍后重试!' + }); + } + + }, + //此处添加错误处理 + error:function() + { + $.messager.alert('提示','保存信息异常,请稍后再试!','error'); + return; + } + }); +} + + + + diff --git a/erp_web/pages/materials/allocation_out_list.html b/erp_web/pages/materials/allocation_out_list.html index 02924d24..134a0712 100644 --- a/erp_web/pages/materials/allocation_out_list.html +++ b/erp_web/pages/materials/allocation_out_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/assemble_list.html b/erp_web/pages/materials/assemble_list.html index 46ed61d4..c0c6bf88 100644 --- a/erp_web/pages/materials/assemble_list.html +++ b/erp_web/pages/materials/assemble_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/disassemble_list.html b/erp_web/pages/materials/disassemble_list.html index 556d3f80..0458437c 100644 --- a/erp_web/pages/materials/disassemble_list.html +++ b/erp_web/pages/materials/disassemble_list.html @@ -15,7 +15,7 @@ - + - + diff --git a/erp_web/pages/materials/other_out_list.html b/erp_web/pages/materials/other_out_list.html index f803864b..ee6ae1b7 100644 --- a/erp_web/pages/materials/other_out_list.html +++ b/erp_web/pages/materials/other_out_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/purchase_back_list.html b/erp_web/pages/materials/purchase_back_list.html index 1615d388..931098f2 100644 --- a/erp_web/pages/materials/purchase_back_list.html +++ b/erp_web/pages/materials/purchase_back_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/purchase_in_list.html b/erp_web/pages/materials/purchase_in_list.html index d6b6b5aa..52551bec 100644 --- a/erp_web/pages/materials/purchase_in_list.html +++ b/erp_web/pages/materials/purchase_in_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/purchase_orders_list.html b/erp_web/pages/materials/purchase_orders_list.html index af449d7e..ff69c066 100644 --- a/erp_web/pages/materials/purchase_orders_list.html +++ b/erp_web/pages/materials/purchase_orders_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/retail_back_list.html b/erp_web/pages/materials/retail_back_list.html index 5e733352..f35d5205 100644 --- a/erp_web/pages/materials/retail_back_list.html +++ b/erp_web/pages/materials/retail_back_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/retail_out_list.html b/erp_web/pages/materials/retail_out_list.html index 3f9131b7..df9195eb 100644 --- a/erp_web/pages/materials/retail_out_list.html +++ b/erp_web/pages/materials/retail_out_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/sale_back_list.html b/erp_web/pages/materials/sale_back_list.html index 27655db8..5df46e50 100644 --- a/erp_web/pages/materials/sale_back_list.html +++ b/erp_web/pages/materials/sale_back_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/sale_orders_list.html b/erp_web/pages/materials/sale_orders_list.html index 0b790973..c459a56d 100644 --- a/erp_web/pages/materials/sale_orders_list.html +++ b/erp_web/pages/materials/sale_orders_list.html @@ -15,7 +15,7 @@ - + diff --git a/erp_web/pages/materials/sale_out_list.html b/erp_web/pages/materials/sale_out_list.html index fc63c71a..367fab3a 100644 --- a/erp_web/pages/materials/sale_out_list.html +++ b/erp_web/pages/materials/sale_out_list.html @@ -15,7 +15,7 @@ - +