//初始化界面 $(function(){ 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 = ""; //店铺列表 var orgDefaultId = 0; //单位默认编号 //初始化系统基础信息 getType(); initSystemData_UB(); initSelectInfo_UB(); initSystemData_depot(); initSelectInfo_depot(); initSystemData_person(); initSelectInfo_person(); initSystemData_account(); initSelectInfo_account(); initSupplier(); //供应商 initTableData(); ininPager(); initForm(); bindEvent();//绑定操作事件 }); //根据单据名称获取类型 function getType(){ listTitle = $("#tablePanel").prev().text(); depotString = "|"; //改变宽度和高度 $("#searchPanel").panel({width:webW-2}); $("#tablePanel").panel({width:webW-2}); var supUrl = path + "/supplier/findBySelect_sup.action"; //供应商接口 var cusUrl = path + "/supplier/findBySelect_cus.action"; //客户接口 var retailUrl = path + "/supplier/findBySelect_retail.action"; //散户接口 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 = "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"; } } //初始化系统基础信息 function initSystemData_UB(){ $.ajax({ type:"post", url: path + "/userBusiness/getBasicData.action", data: ({ KeyId:kid, Type:"UserDepot" }), //设置为同步 async:false, dataType: "json", success: function (systemInfo) { if(systemInfo) { userBusinessList = systemInfo.showModel.map.userBusinessList; var msgTip = systemInfo.showModel.msgTip; if(msgTip == "exceptoin") { $.messager.alert('提示','查找UserBusiness异常,请与管理员联系!','error'); return; } } 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:"post", url: path + "/depot/getBasicData.action", //设置为同步 async:false, dataType: "json", success: function (systemInfo) { depotList = systemInfo.showModel.map.depotList; var msgTip = systemInfo.showModel.msgTip; if(msgTip == "exceptoin") { $.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) { options += ''; 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', onLoadSuccess: function(res) { var data = $(this).combobox('getData'); for(var i = 0; i<= data.length; i++){ if(data[i].supplier === "非会员"){ orgDefaultId = data[i].id; } } }, onSelect: function(rec){ if(listSubType === "零售"){ var option = ""; if(rec.supplier !== "非会员" && rec.advanceIn >0){ option = ''; option += ''; } else { option += ''; } $("#payType").empty().append(option); } } }); } //初始化系统基础信息 function initSystemData_person(){ $.ajax({ type:"post", url: path + "/person/getBasicData.action", //设置为同步 async:false, dataType: "json", success: function (systemInfo) { personList = systemInfo.showModel.map.personList; var msgTip = systemInfo.showModel.msgTip; if(msgTip == "exceptoin") { $.messager.alert('提示','查找系统基础信息异常,请与管理员联系!','error'); return; } } }); } //初始化页面选项卡 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:"post", url: path + "/account/getAccount.action", //设置为同步 async:false, dataType: "json", success: function (systemInfo) { accountList = systemInfo.showModel.map.accountList; var msgTip = systemInfo.showModel.msgTip; if(msgTip == "exceptoin") { $.messager.alert('提示','查找账户信息异常,请与管理员联系!','error'); return; } } }); } //获取账户信息 function initSelectInfo_account(){ var options = ""; if(accountList !=null) { options = ""; for(var i = 0 ;i < accountList.length;i++) { var account = accountList[i]; options += ''; } $("#AccountId").empty().append(options); } } //防止表单提交重复 function initForm(){ $('#depotHeadFM').form({ onSubmit: function(){ return false; } }); } //初始化表格数据 function initTableData(){ var hideType = undefined; if(payTypeTitle === "隐藏"){ hideType = true; //隐藏当前列 } $('#tableData').datagrid({ //iconCls:'icon-save', //width:700, height:heightInfo, rownumbers: false, //动画效果 animate:false, //选中单行 singleSelect : true, collapsible:false, selectOnCheck:false, //fitColumns:true, //单击行是否选中 //checkOnSelect : false, //url: path + '/depotHead/findBy.action?pageSize=' + initPageSize, pagination: true, //交替出现背景 striped : true, //loadFilter: pagerFilter, pageSize: 5, pageList: initPageNum, columns:[[ { field: 'Id',width:35,align:"center",checkbox:true}, {field: 'OrganId',width:5, hidden:true}, { title: '单据编号',field: 'Number',width:100}, { title: '单据日期 ',field: 'OperTime',width:100}, { title: '创建时间',field: 'CreateTime',width:100}, { title: '操作员',field: 'OperPersonName',width:80}, { title: '合计',field: 'TotalPrice',width:50}, { title: payTypeTitle,field: 'ChangeAmount',width:50,hidden:hideType}, { title: '单据备注',field: 'Remark',width:100}, { title: '操作',field: 'op',align:"center",width:180,formatter:function(value,rec) { var str = ''; var rowInfo = rec.Id + 'AaBb' + rec.ProjectId+ 'AaBb' + rec.Number+ 'AaBb' + rec.OperPersonName + 'AaBb' + rec.OperTime+ '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; if(1 == value) { str += '查看'; str += '编辑'; str += '删除'; } return str; } } ]], toolbar:[ { id:'addDepotHead', text:'增加', iconCls:'icon-add', handler:function() { addDepotHead(); } }, { id:'deleteDepotHead', text:'删除', iconCls:'icon-remove', handler:function() { batDeleteDepotHead(); } } ], onLoadError:function() { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); return; } }); } //初始化表格数据-商品列表-编辑状态 function initTableData_material(type,TotalPrice){ $('#materialData').datagrid({ height:300, rownumbers: false, //动画效果 animate:false, //选中单行 singleSelect : true, collapsible:false, selectOnCheck:false, //fitColumns:true, //单击行是否选中 //checkOnSelect : false, pagination: true, //交替出现背景 striped : true, showFooter: true, //loadFilter: pagerFilter, onClickRow: onClickRow, pageSize: 50, pageList: [50,100,150], columns:[[ { field: 'Id',width:35,align:"center",checkbox:true}, { title: '商品名称',field: 'MaterialId',width:230, formatter:function(value,row,index){ return row.MaterialName; }, editor:{ type:'combobox', options:{ valueField:'Id', textField:'MaterialName', method:'get', url: path + "/material/findBySelect.action", onSelect:function(rec){ if(rec) { $.ajax({ url: path + "/material/findById.action", type: "get", dataType: "json", data: { "MaterialID": rec.Id }, success: function (res) { if(res && res.rows && res.rows[0]) { var retailPrice = res.rows[0].RetailPrice; //零售价格 var presetPriceOne = res.rows[0].PresetPriceOne; //价格1 var presetPriceTwo = res.rows[0].PresetPriceTwo; //价格2 var TotalPrice = 0; var allPrice = 0; var body =$("#depotHeadFM .datagrid-body"); var footer =$("#depotHeadFM .datagrid-footer"); var input = ".datagrid-editable-input"; body.find("[field='OperNumber']").find(input).val(1); if(listSubType == "零售" || listSubType == "零售退货") { body.find("[field='UnitPrice']").find(input).val(retailPrice); body.find("[field='AllPrice']").find(input).val(retailPrice); allPrice = retailPrice; } else if(listTitle == "销售出库列表" || listTitle == "采购退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") { body.find("[field='UnitPrice']").find(input).val(presetPriceOne); body.find("[field='AllPrice']").find(input).val(presetPriceOne); allPrice = presetPriceOne; } body.find("[field='AllPrice']").each(function(){ if($(this).find("div").text()!==""){ TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); } }); TotalPrice = TotalPrice + allPrice; footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); if(listSubType == "零售" || listSubType == "零售退货") { $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); $("#backAmount").val(0); } } }, error: function() { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); } }); } } } } }, { title: '数量',field: 'OperNumber',editor:'validatebox',width:50}, { title: '单价',field: 'UnitPrice',editor:'validatebox',width:50}, { title: '金额',field: 'AllPrice',editor:'validatebox',width:50}, { title: '备注',field: 'Remark',editor:'validatebox',width:150} ]], toolbar:[ { id:'append', text:'新增', iconCls:'icon-add', handler:function() { append(); //新增 } }, { id:'delete', text:'删除', iconCls:'icon-remove', handler:function() { removeit(); //删除 } }, { id:'reject', text:'撤销', iconCls:'icon-undo', handler:function() { reject(); //撤销 } } ], onLoadError:function() { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); return; } }); $.ajax({ type:"post", url: path + '/depotItem/findBy.action?HeaderId=' + depotHeadID, dataType: "json", success: function (res) { var AllPrice = 0 if(type === "edit") { AllPrice = TotalPrice; } var array = []; array.push({ "AllPrice": AllPrice }); res.footer = array; $("#materialData").datagrid('loadData',res); }, error:function() { $.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error'); } }); } //初始化表格数据-商品列表-查看状态 function initTableData_material_show(TotalPrice){ $('#materialDataShow').datagrid({ height:300, rownumbers: true, //动画效果 animate:false, //选中单行 singleSelect : true, collapsible:false, selectOnCheck:false, //fitColumns:true, //单击行是否选中 //checkOnSelect : false, pagination: true, //交替出现背景 striped : true, showFooter: true, //loadFilter: pagerFilter, onClickRow: onClickRow, pageSize: 50, pageList: [50,100,150], columns:[[ { title: '商品名称',field: 'MaterialName',width:230}, { title: '数量',field: 'OperNumber',width:50}, { title: '单价',field: 'UnitPrice',width:50}, { title: '金额',field: 'AllPrice',width:50}, { title: '备注',field: 'Remark',width:150} ]], onLoadError:function() { $.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error'); return; } }); $.ajax({ type:"post", url: path + '/depotItem/findBy.action?HeaderId=' + depotHeadID, dataType: "json", success: function (res) { var AllPrice = TotalPrice; var array = []; array.push({ "AllPrice": AllPrice }); res.footer = array; $("#materialDataShow").datagrid('loadData',res); }, 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){ $.messager.confirm('删除确认','确定要删除此单据信息吗?',function(r) { if (r) { $.ajax({ type:"post", url: path + "/depotHead/delete.action", dataType: "json", data: ({ depotHeadID : depotHeadID, clientIp: clientIp }), success: function (tipInfo) { var msg = tipInfo.showModel.msgTip; if(msg == '成功') { //加载完以后重新初始化 $("#searchBtn").click(); } else $.messager.alert('删除提示','删除单据信息失败,请稍后再试!','error'); }, //此处添加错误处理 error:function() { $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); return; } }); //更新会员的预收款信息 if(listSubType === "零售") { $.ajax({ type:"post", url: path + "/supplier/updateAdvanceIn.action", dataType: "json", data:{ SupplierID: thisOrganId, //会员id AdvanceIn: totalPrice //删除时同时返还用户的预付款 }, success: function(res){ if(res) { //保存会员预收款成功 } }, error: function(){ $.messager.alert('提示','保存信息异常,请稍后再试!','error'); return; } }); } } }); } //批量删除单据信息 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) { ids += row[i].Id; break; } //alert(row[i].id); ids += row[i].Id + ","; } //批量更新会员的预收款信息 for(var i = 0;i < row.length; i ++) { if(listSubType === "零售") { $.ajax({ type:"post", url: path + "/supplier/updateAdvanceIn.action", dataType: "json", data:{ SupplierID: row[i].OrganId, //会员id AdvanceIn: row[i].TotalPrice //删除时同时返还用户的预付款 }, success: function(res){ if(res) { //保存会员预收款成功 } }, error: function(){ $.messager.alert('提示','保存信息异常,请稍后再试!','error'); return; } }); } } //批量删除 $.ajax({ type:"post", url: path + "/depotHead/batchDelete.action", dataType: "json", async : false, data: ({ depotHeadIDs : ids, clientIp: clientIp }), success: function (tipInfo) { var msg = tipInfo.showModel.msgTip; if(msg == '成功') { //加载完以后重新初始化 $("#searchBtn").click(); $(":checkbox").attr("checked",false); } else $.messager.alert('删除提示','删除单据信息失败,请稍后再试!','error'); }, //此处添加错误处理 error:function() { $.messager.alert('删除提示','删除单据信息异常,请稍后再试!','error'); return; } }); } }); } } //新增信息 function addDepotHead(){ $("#clientIp").val(clientIp); $('#depotHeadFM').form('clear'); var thisDate = getNowFormatDate(); //当前日期 $("#OperTime").val(thisDate); var thisNumber = getNowFormatDateNum(); //根据时间生成编号 $("#Number").val(amountNum + thisNumber).focus(); var addTitle = listTitle.replace("列表","信息"); $('#depotHeadDlg').dialog('open').dialog('setTitle',' 增加' + addTitle); $(".window-mask").css({ width: webW ,height: webH}); orgDepotHead = ""; depotHeadID = 0; initTableData_material("add"); //商品列表 reject(); //撤销下、刷新商品列表 url = path + '/depotHead/create.action'; //零售单据修改收款时,自动计算找零 if(listSubType == "零售" || listSubType == "零售退货") { $("#payType").val("现付"); $("#OrganId").combobox("setValue", orgDefaultId); //自动默认选择非会员 //当会员卡号长度超过10位后,自动点击下拉框,用于兼容刷卡器 $("#OrganId").next().find("input").off("keyup").on("keyup",function(){ if($(this).val().length === 10){ setTimeout(function(){ $(".combo-panel .combobox-item-selected").click(); },500); } }); 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(depotHeadTotalInfo){ var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); $("#clientIp").val(clientIp); $("#ProjectId").focus().val(depotHeadInfo[1]); var ProjectId=depotHeadInfo[1]; if(ProjectId!='') { initSystemData_person(ProjectId); initSelectInfo_person(); } $("#Number").val(depotHeadInfo[2]); $("#OperTime").val(depotHeadInfo[4]); $('#OrganId').combobox('setValue', depotHeadInfo[5]); $("#HandsPersonId").val(depotHeadInfo[6]); $("#AccountId").val(depotHeadInfo[7]); $("#ChangeAmount").val(depotHeadInfo[8]); $("#ChangeAmount").attr("data-changeamount", depotHeadInfo[8]); $("#Remark").val(depotHeadInfo[9]); var TotalPrice = depotHeadInfo[14]; preTotalPrice = depotHeadInfo[14]; //记录前一次合计金额,用于扣预付款 $("#AllocationProjectId").val(depotHeadInfo[15]); //orgDepotHead = depotHeadInfo[1]; var editTitle = listTitle.replace("列表","信息"); $('#depotHeadDlg').dialog('open').dialog('setTitle',' 编辑' + editTitle); $(".window-mask").css({ width: webW ,height: webH}); depotHeadID = depotHeadInfo[0]; if(listSubType === "零售" ){ var option = ""; if(depotHeadInfo[17] === "预付款"){ option = ''; option += ''; } else { option += ''; } $("#payType").empty().append(option); } initTableData_material("edit",TotalPrice); //商品列表 reject(); //撤销下、刷新商品列表 url = path + '/depotHead/update.action?depotHeadID=' + depotHeadInfo[0]; } //查看信息 function showDepotHead(depotHeadTotalInfo){ var depotHeadInfo = depotHeadTotalInfo.split("AaBb"); $("#ProjectIdShow").text(depotHeadInfo[10]); $("#NumberShow").text(depotHeadInfo[2]); $("#OperTimeShow").text(depotHeadInfo[4]); $('#OrganIdShow').text(depotHeadInfo[11]); $("#HandsPersonIdShow").text(depotHeadInfo[12]); $("#AccountIdShow").text(depotHeadInfo[13]); $("#ChangeAmountShow").text(depotHeadInfo[8]); $("#RemarkShow").text(depotHeadInfo[9]); $("#payTypeShow").text(depotHeadInfo[17]); var TotalPrice = depotHeadInfo[14]; $("#AllocationProjectIdShow").text(depotHeadInfo[16]); var showTitle = listTitle.replace("列表","信息"); $('#depotHeadDlgShow').dialog('open').dialog('setTitle',' 查看' + showTitle); $(".window-mask").css({ width: webW ,height: webH}); depotHeadID = depotHeadInfo[0]; initTableData_material_show(TotalPrice); //商品列表-查看状态 //零售单据修改收款时,自动计算找零 if(listSubType == "零售"){ $("#depotHeadDlgShow .get-amount-show").text($("#depotHeadDlgShow .change-amount-show").text()); $("#depotHeadDlgShow .back-amount-show").text(0); } } //绑定操作事件 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(); } }); //保存信息 $("#saveDepotHead").unbind().bind({ click:function() { if(!$('#depotHeadFM').form('validate')) return; else { //输入框提示 if(listTitle === "采购入库列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择收货仓库!','warning'); return; } if(!$('#OrganId').combobox('getValue')){ $.messager.alert('提示','请选择供货单位!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } if(!$('#AccountId').val()){ $.messager.alert('提示','请选择付款账户!','warning'); return; } } else if(listTitle === "零售退货列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择收货仓库!','warning'); return; } if(!$('#AccountId').val()){ $.messager.alert('提示','请选择付款账户!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } } else if(listTitle === "销售退货列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择收货仓库!','warning'); return; } if(!$('#OrganId').combobox('getValue')){ $.messager.alert('提示','请选择退货单位!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } if(!$('#AccountId').val()){ $.messager.alert('提示','请选择付款账户!','warning'); return; } } else if(listTitle === "其它入库列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择收货仓库!','warning'); return; } if(!$('#OrganId').combobox('getValue')){ $.messager.alert('提示','请选择往来单位!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } } else if(listTitle === "零售出库列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择发货仓库!','warning'); return; } if(!$('#AccountId').val()){ $.messager.alert('提示','请选择收款账户!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } } else if(listTitle === "销售出库列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择发货仓库!','warning'); return; } if(!$('#OrganId').combobox('getValue')){ $.messager.alert('提示','请选择购买单位!','warning'); return; } if(!$('#AccountId').val()){ $.messager.alert('提示','请选择收款账户!','warning'); return; } } else if(listTitle === "采购退货列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择发货仓库!','warning'); return; } if(!$('#OrganId').combobox('getValue')){ $.messager.alert('提示','请选择收货单位!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } if(!$('#AccountId').val()){ $.messager.alert('提示','请选择收款账户!','warning'); return; } } else if(listTitle === "其它出库列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择发货仓库!','warning'); return; } if(!$('#OrganId').combobox('getValue')){ $.messager.alert('提示','请选择往来单位!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } } else if(listTitle === "调拨出库列表"){ if(!$("#ProjectId").val()){ $.messager.alert('提示','请选择发货仓库!','warning'); return; } if(!$('#HandsPersonId').val()){ $.messager.alert('提示','请选择经手人!','warning'); return; } if(!$("#AllocationProjectId").val()){ $.messager.alert('提示','请选择收货仓库!','warning'); return; } } var OrganId = null, AllocationProjectId = null; var ChangeAmount = $.trim($("#ChangeAmount").val()); var TotalPrice = $("#depotHeadFM .datagrid-footer [field='AllPrice'] div").text(); if(listSubType !=="调拨"){ OrganId = $('#OrganId').combobox('getValue'); } else { AllocationProjectId = $.trim($("#AllocationProjectId").val()); //收货仓库-对方 } if(listSubType === "采购"||listSubType === "零售退货"||listSubType === "销售退货"){ //付款为负数 ChangeAmount = 0 - ChangeAmount; TotalPrice = 0 - TotalPrice; } //零售时候,可以从会员预付款中扣款 var thisPayType = "现付"; if(listSubType === "零售") { if($("#payType").val() ==="预付款") { thisPayType = "预付款"; } } $.ajax({ type:"post", url: url, dataType: "json", async : false, data: ({ Type: listType, SubType: listSubType, ProjectId: $.trim($("#ProjectId").val()), AllocationProjectId: AllocationProjectId, Number: $.trim($("#Number").val()), OperTime: $("#OperTime").val(), OrganId: OrganId, HandsPersonId: $.trim($("#HandsPersonId").val()), AccountId: $.trim($("#AccountId").val()), ChangeAmount: ChangeAmount, //付款/收款 TotalPrice: TotalPrice, //合计 PayType: thisPayType, //现付/预付款 Remark: $.trim($("#Remark").val()), clientIp: clientIp }), 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: path + "/supplier/updateAdvanceIn.action", dataType: "json", data:{ SupplierID: OrganId, //会员id AdvanceIn: 0 - advanceIn //保存的同时扣掉用户的预付款 }, success: function(res){ if(res) { //保存会员预收款成功 } }, 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; } }); } } }); //初始化键盘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")) { $("#searchBtn").click(); } }); } function showDepotHeadDetails(pageNo,pageSize){ $.ajax({ type:"post", url: path + "/depotHead/findBy.action", dataType: "json", data: ({ ProjectId:$.trim($("#searchProjectId").val()), DepotIds: depotString, Type: listType, SubType:listSubType, State:$.trim($("#searchState").val()), Number:$.trim($("#searchNumber").val()), BeginTime:$("#searchBeginTime").val(), EndTime:$("#searchEndTime").val(), pageNo:pageNo, pageSize:pageSize }), success: function (data) { $("#tableData").datagrid('loadData',data); }, //此处添加错误处理 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='UnitPrice']").find(input).off("keyup").on("keyup",function(){ var UnitPrice =$(this).val()-0; //单价 var TotalPrice = 0; var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); 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)); if(listSubType == "零售" || listSubType == "零售退货") { $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); $("#backAmount").val(0); } }); //点击单价,自动提示参考价格列表 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: path + "/material/findById.action", type: "get", dataType: "json", data: { "MaterialID": 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 +="
"; if($('.price-list').length){ $('.price-list').remove(); //如果存在价格列表先移除 } else { $(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='OperNumber']").find(input).off("keyup").on("keyup",function(){ var UnitPrice = body.find("[field='UnitPrice']").find(input).val(); //单价 var TotalPrice = 0; var OperNumber =$(this).val()-0; //数量 body.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); 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)); if(listSubType == "零售" || listSubType == "零售退货") { $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); $("#backAmount").val(0); } }); //修改金额,自动计算单价和合计 body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){ var OperNumber = body.find("[field='OperNumber']").find(input).val(); //数量 var TotalPrice = 0; var AllPrice =$(this).val()-0; //金额 body.find("[field='UnitPrice']").find(input).val((AllPrice/OperNumber).toFixed(2)); body.find("[field='AllPrice']").each(function(){ if($(this).find("div").text()!==""){ TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString()); } }); TotalPrice = TotalPrice + AllPrice; footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); if(listSubType == "零售" || listSubType == "零售退货") { $("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2)); $("#backAmount").val(0); } }); },500); } //结束编辑 function endEditing() { if (editIndex == undefined) { return true } if ($('#materialData').datagrid('validateRow', editIndex)) { var ed = $('#materialData').datagrid('getEditor', {index:editIndex,field:'MaterialId'}); var MaterialName = $(ed.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', {}); editIndex = $('#materialData').datagrid('getRows').length - 1; $('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex); autoReckon(); } } //删除 function removeit(){ if (editIndex == undefined) { return } $('#materialData').datagrid('cancelEdit', editIndex) .datagrid('deleteRow', editIndex); editIndex = undefined; } //撤销 function reject() { $('#materialData').datagrid('rejectChanges'); editIndex = undefined; } //判断 function CheckData() { var row = $('#materialData').datagrid('getRows'); var totalRowNum = ""; for (var i = 0; i < row.length; i++) { if (row[i].MaterialId == "") { totalRowNum += (i + 1) + "、"; } } if (totalRowNum != "") { var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1); $.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整!",'info'); return false; } return true; } //保存 function accept(accepId) { append(); removeit(); if ($("#materialData").datagrid('getChanges').length) { if (!CheckData()) return false; var inserted = $("#materialData").datagrid('getChanges', "inserted"); var deleted = $("#materialData").datagrid('getChanges', "deleted"); var updated = $("#materialData").datagrid('getChanges', "updated"); $.ajax({ type: "post", url: path + "/depotItem/saveDetials.action", data: { Inserted: JSON.stringify(inserted), Deleted: JSON.stringify(deleted), Updated: JSON.stringify(updated), HeaderId:accepId, clientIp: clientIp }, success: function (tipInfo) { if (tipInfo) { $.messager.alert('提示','保存成功!','info'); } else $.messager.alert('提示','保存失败!','error'); }, error: function (XmlHttpRequest, textStatus, errorThrown) { $.messager.alert('提示',XmlHttpRequest.responseText,'error'); } }); } if (endEditing()) { $('#materialData').datagrid('acceptChanges'); } } //获取MaxId function getMaxId(){ var depotHeadMax=null; $.ajax({ type:"post", url: path + "/depotHead/getMaxId.action", //设置为同步 async:false, dataType: "json", success: function (systemInfo) { if(systemInfo) { depotHeadMax = systemInfo.showModel.map.depotHeadMax; var msgTip = systemInfo.showModel.msgTip; if(msgTip == "exceptoin") { $.messager.alert('提示','查找最大的Id异常,请与管理员联系!','error'); return; } } else { depotHeadMax=null; } } }); if(depotHeadMax !=null) { if(depotHeadMax.length>0) { depotHeadMaxId=depotHeadMax[0]; } } }