openerp/erp_web/js/pages/bill/in_out.js
2020-12-15 23:24:01 +08:00

1592 lines
58 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//初始化界面
var defDepotId = null;
var kid = sessionStorage.getItem("userId");
var pageType = getUrlParam('t'); //获取页面类型传值
var depotList = null;
var userBusinessList=null;
var userdepot=null;
var url;
var editIndex = undefined;
var depotHeadID = 0;
var preTotalPrice = 0; //前一次加载的金额
var listTitle = ""; //单据标题
var listType = ""; //入库 出库
var listSubType = ""; //采购 销售等
var payTypeTitle = "";//付款 收款
var organUrl = ""; //组织数据接口地址
var amountNum = ""; //单据编号开头字符
var depotString = ""; //店铺id列表
var orgDefaultId=''; //单位默认编号
var orgDefaultList; //存储查询出来的会员列表
var accountList; //账户列表
var outItemList; //支出项目列表
var oldNumber = ""; //编辑前的单据编号
var oldId = 0; //编辑前的单据Id
var otherColumns = true; //明细中的‘别名’列是否显示
var btnEnableList = getBtnStr(); //获取按钮的权限
var mPropertyList = ""; //商品属性列表
var defaultAccountId = 0; //默认账户id
var roleType = ""; //角色类型
var inOutService = {
getRoleType: function () {
$.ajax({
type:"get",
url: "/user/getRoleTypeByUserId",
async: false,
success: function (res) {
if (res && res.code === 200) {
roleType = res.data.roleType;
}
else {
roleType = null;
}
}
});
},
//初始化系统基础信息
initSystemData_UB: function () {
$.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;
if(userBusinessList !=null) {
if(userBusinessList.length>0) {
//用户对应的仓库列表 [1][2][3]...
userdepot =userBusinessList[0].value;
}
}
}
else {
userBusinessList = null;
}
}
});
},
//初始化系统仓库信息
initSystemData_depot: function () {
var config = getSystemConfig();
var depotList = getSystemDepot();
if(depotList !=null) {
for(var i = 0 ;i < depotList.length;i++) {
var depot = depotList[i];
if(config && config.depotFlag == "1") {
if(userdepot!=null) {
if(userdepot.indexOf("["+depot.id+"]")!=-1) {
if(depot.isDefault){
defDepotId = depot.id;
}
depotString = depotString + depot.id + ",";
}
}
} else {
if(depot.isDefault){
defDepotId = depot.id;
}
}
}
depotString = depotString.substring(0, depotString.length-1);
}
},
//初始化供应商、客户、散户信息
initSupplier: function () {
$('#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 value="预付款">预付款(' + rec.advanceIn + ')</option>';
option += '<option value="现付">现付</option>';
}
else {
option += '<option value="现付">现付</option>';
}
$("#payType").empty().append(option);
}
}
});
},
//初始化销售人员
initSalesman: function () {
$('#Salesman').combobox({
url: "/person/getPersonByNumType?type=1",
valueField:'id',
textField:'name',
multiple: true
});
},
//初始化收入项目列表
initOutItemList: function () {
$.ajax({
type:"get",
url: "/inOutItem/findBySelect?type=out",
//设置为同步
async:false,
dataType: "json",
success: function (res){
if(res){
outItemList = res;
}
},
error:function(){
}
});
},
//初始化商品属性
initMProperty: function () {
$.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;
}
});
},
//获取账户信息
initSystemData_account: function () {
$.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;
var options = "";
if(accountList !=null){
options = "<option value=''>(空)</option>";
options += "<option value='many' class='many' data-manyAmount=''>多账户</option>";
for(var i = 0 ;i < accountList.length;i++) {
var account = accountList[i];
options += '<option value="' + account.id + '" data-currentAmount="' + account.currentAmount + '">' + account.name + '</option>';
if(account.isDefault) {
defaultAccountId = account.id; //给账户赋值默认id
}
}
$("#AccountId").empty().append(options);
}
}
}
}
});
},
//防止表单提交重复
initForm: function () {
$('#depotHeadFM').form({
onSubmit: function(){
return false;
}
});
},
//查找库存的方法
findStockNumById: function (depotId, meId, monthTime, currentRowDom, input, ratio, type) {
var thisRatio = 1; //比例
$.ajax({
url: "/material/findByIdWithBarCode",
type: "get",
dataType: "json",
data: {
meId: meId,
mpList: mPropertyList
},
success: function (rec) {
if(rec && rec.code === 200) {
var info = rec.data;
var commodityUnit = info.commodityUnit; //商品单位
var loadRatio = 1; //在单位输入框上面加载比例字段
if(info.unit) { //如果存在计量单位信息
loadRatio = 1;
}
else{
var unitName = info.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]; //副单位
if(basicUnit==commodityUnit){ //基础单位等于选择的单位
loadRatio = 1;
}
else if(otherUnit==commodityUnit){ //副单位等于选择的单位
loadRatio = thisRatio;
}
}
//查询库存
$.ajax({
type: "get",
url: '/depotItem/findStockNumById',
data:{
depotId: depotId,
mId: info.id
},
dataType: "json",
success: function (res) {
if(res && res.code === 200) {
if (res.data) {
var thisStock = res.data.stock;
if (type == "select") { //选择下拉框的时候
if (ratio != undefined && ratio != 1) {
loadRatio = ratio;
}
}
else if (type == "click") { //点击库存的时候
if (ratio != undefined) {
loadRatio = ratio;
}
}
thisStock = (thisStock / loadRatio).toFixed(2);
currentRowDom.find("[field='Stock']").find(input).val(thisStock).attr("data-stock", thisStock); //加载库存数据
}
else {
currentRowDom.find("[field='Stock']").find(input).val(0).attr("data-stock", 0); //加载库存数据
}
currentRowDom.find("[field='Stock']").find(input).prop("readonly", "readonly"); //设置库存数据为只读
}
},
error:function() {
$.messager.alert('查询提示','查询数据后台异常请稍后再试','error');
}
});
}
},
error: function () {
$.messager.alert('查询提示', '查询数据后台异常请稍后再试', 'error');
}
});
},
getInfoByBarCode: function(barCode){
var materialExtendId = "";
$.ajax({
type: "get",
url: '/materialsExtend/getInfoByBarCode',
data:{
barCode: barCode
},
async:false,
dataType: "json",
success: function (res) {
if(res && res.code === 200) {
materialExtendId = res.data.id;
}
},
error: function () {
$.messager.alert('查询提示', '查询数据后台异常请稍后再试', 'error');
}
});
return materialExtendId;
},
//优惠率、合计的统计方法
statisticsFun: function (body,UnitPrice,OperNumber,footer,taxRate) {
var TotalPrice = 0;
var taxLastMoneyTotal = 0;
//金额的合计
body.find("[field='AllPrice']").each(function(){
if($(this).find("input").val()!==""){
TotalPrice = TotalPrice + parseFloat($(this).find("input").val().toString());
}
});
footer.find("[field='AllPrice']").find("div").text((TotalPrice).toFixed(2)); //金额的合计
//价税合计的总计
body.find("[field='TaxLastMoney']").each(function(){
if($(this).find("input").val()!==""){
taxLastMoneyTotal = taxLastMoneyTotal + (parseFloat($(this).find("input").val().toString())-0);
}
});
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"){
var otherMoney = $("#OtherMoney").val()-0;
var changeAmount = discountLastMoney-0+otherMoney;
$("#ChangeAmount").val(changeAmount.toFixed(2)); //本次付、收款
}
var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款
$("#Debt").val((discountLastMoney-0+otherMoney-changeAmountNum).toFixed(2)); //本次欠款
if(listSubType == "零售" || listSubType == "零售退货") {
$("#ChangeAmount, #getAmount").val((TotalPrice).toFixed(2));
$("#backAmount").val(0);
}
},
//分页信息处理
ininPager: function () {
var self = this;
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
});
self.showDepotHeadDetails(pageNum,pageSize);
}
});
}
catch (e) {
$.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error');
}
},
//删除单据信息
deleteDepotHead: function (depotHeadID, thisOrganId, totalPrice, status) {
if(status == "1" || status == "2") {
$.messager.alert('删除提示','已审核和已转的单据不能删除','warning');
return;
}
$.messager.confirm('删除确认','确定要删除此单据信息吗',function(r) {
if (r) {
$.ajax({
type:"post",
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;
}
});
}
}
});
},
//批量删除单据信息
batDeleteDepotHead: function () {
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/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');
}
}
});
}
},
//批量审核|反审核
setStatusFun: function (status) {
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: status,
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');
}
}
});
}
},
//生成单据编号
buildNumber: function () {
$.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');
}
});
},
//绑定操作事件
bindEvent: function () {
var self = this;
//重置按钮
$("#searchResetBtn").unbind().bind({
click:function(){
$("#searchNumber").textbox("clear");
$("#searchMaterial").textbox("clear");
$("#searchBeginTime").datebox("clear");
$("#searchEndTime").datebox("clear");
//加载完以后重新初始化
$("#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;
}
//打印单据
$("#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=="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"){
var otherMoney = $("#OtherMoney").val()-0;
var changeAmount = discountLastMoney-0+otherMoney;
$("#ChangeAmount").val(changeAmount.toFixed(2)); //本次付、收款
}
var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款
$("#Debt").val((discountLastMoney-0+otherMoney-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"){
var otherMoney = $("#OtherMoney").val()-0;
var changeAmount = discountLastMoney-0+otherMoney;
$("#ChangeAmount").val(changeAmount.toFixed(2)); //本次付、收款
}
var changeAmountNum = $("#ChangeAmount").val()-0; //本次付款或者收款
$("#Debt").val((discountLastMoney-0+otherMoney-changeAmountNum).toFixed(2)); //本次欠款
});
//付款、收款输入框事件
$("#ChangeAmount").off("keyup").on("keyup",function(){
var discountLastMoney = $("#DiscountLastMoney").val()-0;
var otherMoney = $("#OtherMoney").val()-0;
var changeAmount = $(this).val();
var debtMoney = (discountLastMoney + otherMoney - changeAmount).toFixed(2);
$("#Debt").val(debtMoney); //本次欠款
});
//多账户结算窗口弹出事件
function depotHeadAccountDlgFun(){
$('#depotHeadAccountDlg').dialog('open').dialog('setTitle','<img src="/js/easyui/themes/icons/pencil.png"/>&nbsp;多账户结算');
$("#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 += '<option value="' + account.id + '" data-currentAmount="' + account.currentAmount + '">' + account.name + '</option>';
}
$(".account-id-dlg").empty().append("<option></option>").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); //给付款或者收款金额赋值
}
var otherMoney = $("#OtherMoney").val()-0;
$("#Debt").val((discountLastMoneyNum+otherMoney-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','<img src="/js/easyui/themes/icons/pencil.png"/>&nbsp;其它费用');
$("#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 += '<option value="' + money.Id + '">' + money.InOutItemName + '</option>';
}
$(".money-id-dlg").empty().append("<option></option>").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);
var itemMoneyObj = {};
itemMoneyObj.otherId = thisId;
itemMoneyObj.otherMoney = thisMoney;
itemMoneyArr.push(itemMoneyObj);
}
});
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); //给其它费用赋值
var discountLastMoney = $("#DiscountLastMoney").val()-0;
var changeAmount = (discountLastMoney + otherMoneyTotal).toFixed(2);
$("#ChangeAmount").val(changeAmount); //付款或者收款
$("#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");
if(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"){
for(var k =0;k<itemMoneyArr.length; k++) {
if (itemMoneyArr[k].otherId == itemArr[index]) {
$(this).find(".other-money-dlg").val(itemMoneyArr[k].otherMoney);
}
}
}
});
}
$("#otherMoneyTotalDlg").text($("#OtherMoney").val());
});
},
//查询单据列表信息
showDepotHeadDetails: function (pageNo,pageSize) {
var materialParam = $.trim($("#searchMaterial").val());
var beginTime = $.trim($("#searchBeginTime").val());
var endTime = $.trim($("#searchEndTime").val());
if(beginTime) {
beginTime = beginTime + ' 00:00:00';
}
if(endTime) {
endTime = endTime + ' 23:59:59';
}
$.ajax({
type: "get",
url: "/depotHead/list",
dataType: "json",
data: ({
search: JSON.stringify({
type: listType,
subType: listSubType,
roleType: roleType,
status: "",
number: $.trim($("#searchNumber").val()),
beginTime: beginTime,
endTime: endTime,
materialParam: materialParam,
depotIds: depotString
}),
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;
}
});
},
//自动计算事件
autoReckon: function () {
var self = this;
var inputDom = $("#depotHeadFM .panel.datagrid .datagrid-view2 .datagrid-body");
var appendDom = $("#depotHeadDlg #append");
autoJumpNextInput(inputDom, appendDom); //敲回车键自动跳转到下一个文本框
var body =$("#depotHeadFM .datagrid-view2 .datagrid-body");
var footer =$("#depotHeadFM .datagrid-view2 .datagrid-footer");
var input = "input[type=text]";
body.find(".datagrid-row").find("input").off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
});
body.find("[field='MaterialExtendId']").find(".textbox-text").focus().select(); //默认选择商品框
//点击商品下拉框,自动加载数量、单价、金额
body.find("[field='name'],[field='standard'],[field='model'],[field='materialOther'],[field='Stock'],[field='Unit']")
.find(input).prop("readonly","readonly");
//点击商品名称
body.find("[field='MaterialExtendId']").find(input).next().off("mouseup").on("mouseup",function(){
var that = $(this);
var meId = that.find('input.textbox-text').val()-0;
if(myIsNaN(meId)) {
$.ajax({
type: "get",
url: '/material/getMaterialByMeId',
data: {
meId: meId,
mpList: mPropertyList
},
dataType: "json",
success: function (res) {
if (res && res.MaterialName) {
that.find('input.textbox-value').val(meId);
that.find('input.textbox-text').val(res.MaterialName);
}
}
});
}
});
//单击删除按钮
body.find("[field='op']").find("img").off("click").on("click",function() {
$(this).closest(".datagrid-cell").click(); //点击操作
var row = $('#materialData').datagrid('getChecked');
$('#materialData').datagrid('deleteRow', $('#materialData').datagrid("getRowIndex", row[0]));
self.statisticsFun(body,0,0,footer,0);
});
//修改数量,自动计算金额和合计,另外计算含税单价、税额、价税合计
body.find("[field='OperNumber']").find(input).off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var UnitPrice = rowDom.find("[field='UnitPrice']").find(input).val(); //单价
var taxRate = rowDom.find("[field='TaxRate']").find(input).val(); //税率
var OperNumber =$(this).val()-0; //数量
rowDom.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额
rowDom.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价
rowDom.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额
rowDom.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计
self.statisticsFun(body,UnitPrice,OperNumber,footer,taxRate);
});
//修改单价,自动计算金额和合计
body.find("[field='UnitPrice']").find(input).off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var UnitPrice =$(this).val()-0; //单价
var taxRate = rowDom.find("[field='TaxRate']").find(input).val(); //税率
var OperNumber = rowDom.find("[field='OperNumber']").find(input).val(); //数量
rowDom.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额
rowDom.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价
rowDom.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额
rowDom.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计
self.statisticsFun(body,UnitPrice,OperNumber,footer,taxRate);
});
//修改含税单价,自动计算单价、金额、税额、价税合计和合计
body.find("[field='TaxUnitPrice']").find(input).off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var TaxUnitPrice =$(this).val()-0; //含税单价
var taxRate = rowDom.find("[field='TaxRate']").find(input).val(); //税率
var UnitPrice = TaxUnitPrice/(1+taxRate/100); //计算单价
rowDom.find("[field='UnitPrice']").find(input).val((UnitPrice).toFixed(2)); //单价
var OperNumber = currentRowDom.find("[field='OperNumber']").find(input).val(); //数量
rowDom.find("[field='AllPrice']").find(input).val((UnitPrice*OperNumber).toFixed(2)); //金额
rowDom.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额
rowDom.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计
self.statisticsFun(body,UnitPrice,OperNumber,footer,taxRate);
});
//修改金额,自动计算单价、税额、价税合计和合计
body.find("[field='AllPrice']").find(input).off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var OperNumber = rowDom.find("[field='OperNumber']").find(input).val(); //数量
var taxRate = rowDom.find("[field='TaxRate']").find(input).val(); //税率
var AllPrice =$(this).val()-0; //金额
var UnitPrice = (AllPrice/OperNumber).toFixed(2);
rowDom.find("[field='UnitPrice']").find(input).val(UnitPrice); //单价
rowDom.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价
rowDom.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额
rowDom.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计
self.statisticsFun(body,UnitPrice,OperNumber,footer,taxRate);
});
//修改税率,自动计算含税单价、税额、价税合计和合计
body.find("[field='TaxRate']").find(input).off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var taxRate =$(this).val()-0; //税率
var OperNumber = rowDom.find("[field='OperNumber']").find(input).val(); //数量
var UnitPrice = rowDom.find("[field='UnitPrice']").find(input).val(); //单价
rowDom.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价
rowDom.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额
rowDom.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计
self.statisticsFun(body,UnitPrice,OperNumber,footer,taxRate);
});
//修改税额,自动计算税率、含税单价、价税合计和合计
body.find("[field='TaxMoney']").find(input).off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var taxMoney =$(this).val()-0; //税额
var AllPrice = rowDom.find("[field='AllPrice']").find(input).val(); //金额
var taxRate = taxMoney/AllPrice*100; //税率
var OperNumber = rowDom.find("[field='OperNumber']").find(input).val(); //数量
var UnitPrice = rowDom.find("[field='UnitPrice']").find(input).val(); //单价
rowDom.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价
rowDom.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率
rowDom.find("[field='TaxLastMoney']").find(input).val((UnitPrice*OperNumber*(1+taxRate/100)).toFixed(2)); //价税合计
self.statisticsFun(body,UnitPrice,OperNumber,footer,taxRate);
});
//修改价税合计,自动计算税率、含税单价、税额和合计
body.find("[field='TaxLastMoney']").find(input).off("keyup").on("keyup",function(){
editIndex = $(this).closest(".datagrid-row").attr("datagrid-row-index");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var taxLastMoney =$(this).val()-0; //价税合计
var AllPrice = rowDom.find("[field='AllPrice']").find(input).val(); //金额
var taxRate = (taxLastMoney-AllPrice)/AllPrice*100; //税率
var OperNumber = rowDom.find("[field='OperNumber']").find(input).val(); //数量
var UnitPrice = rowDom.find("[field='UnitPrice']").find(input).val(); //单价
rowDom.find("[field='TaxUnitPrice']").find(input).val((UnitPrice*(1+taxRate/100)).toFixed(2)); //含税单价
rowDom.find("[field='TaxRate']").find(input).val((taxRate).toFixed(2)); //税率
rowDom.find("[field='TaxMoney']").find(input).val((UnitPrice*OperNumber*(taxRate/100)).toFixed(2)); //税额
self.statisticsFun(body,UnitPrice,OperNumber,footer,taxRate);
});
setTimeout(function(){
var body =$("#depotHeadFM .datagrid-view2 .datagrid-body");
var input = "input[type=text]";
//默认税率为0
var taxRateDom = body.find(".datagrid-row").eq(editIndex).find("[field='TaxRate']").find(input);
if(taxRateDom.val() == "") {
taxRateDom.val(0);
}
//在商品类型加载 组装件、普通子件
var mType = body.find(".datagrid-row").eq(editIndex).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");
}
},100);
},
//新增明细
append: function () {
$('#materialData').datagrid('appendRow', {DepotId:defDepotId});
editIndex = $('#materialData').datagrid('getRows').length - 1;
$('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex);
this.autoReckon();
},
//新增仓库
appendDepot: function () {
$('#depotDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui/themes/icons/edit_add.png"/>&nbsp;增加仓库信息');
$(".window-mask").css({width: webW, height: webH});
$('#depotFM').form('clear');
bindDepotEvent();
},
//扫码
switchToBarCode: function () {
if($('#sweepBarCode').css('display') == "none") {
$("#sweepBarCode").show().val("");
$("#sweepBarCode").off("keyup").on("keyup",function(e){
var evt = window.event || e;
if (evt.keyCode == 13) {
var meId = inOutService.getInfoByBarCode($("#sweepBarCode").val());
var rec = {}; rec.Id = meId;
var body =$("#depotHeadFM .datagrid-view2 .datagrid-body");
var rowDom = body.find(".datagrid-row").eq(editIndex);
var materialName = rowDom.find("[field='name']").find("input[type=text]").val();
if(materialName){
inOutService.append(); //新增行
}
inOutService.materialSelect(rec, getNowFormatMonth());
}
});
} else {
$("#sweepBarCode").hide();
}
},
//新增商品
appendMaterial: function () {
js.addTabPage(null, "商品信息", "/pages/materials/material.html");
},
//判断明细
CheckData: function (type) {
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].barCode == "" || 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;
},
//商品选择列表
initMaterialSelectData: function(){
var self = this;
$('#materialSelectData').datagrid({
height: 480,
rownumbers: false,
//动画效果
animate: false,
pagination: true,
//选中单行
singleSelect: true,
collapsible: false,
//交替出现背景
striped: true,
pageSize: 10,
pageList: initPageNum,
columns: [[
{field: 'id',width:35,align:"center",checkbox:true},
{field: 'mBarCode', title: '条码', width: 120},
{field: 'name', title: '名称', width: 140},
{field: 'categoryName', title: '类别', width: 80},
{field: 'standard', title: '规格', width: 80},
{field: 'model', title: '型号', width: 80},
{field: 'unit', title: '单位', width: 60},
{field: 'stock', title: '库存', width: 50},
{field: 'expand', title: '扩展信息', width: 80}
]],
onBeforeLoad: function(param){
param.mpList = mPropertyList; //商品属性
},
onDblClickRow: function (index, row) {
var monthTime = getNowFormatMonth();
$('#materialSelectDlg').dialog('close');
self.materialSelect(row,monthTime);
}
});
},
//商品选择列表-分页
initMaterialSelectPager: function(depotId){
var self = this;
try {
var opts = $("#materialSelectData").datagrid('options');
var pager = $("#materialSelectData").datagrid('getPager');
pager.pagination({
onSelectPage: function (pageNum, pageSize) {
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh', {
pageNumber: pageNum,
pageSize: pageSize
});
self.showMaterialSelect(depotId, pageNum, pageSize);
}
});
}
catch (e) {
$.messager.alert('异常处理提示', "分页信息异常 : " + e.name + ": " + e.message, 'error');
}
},
//商品选择列表-查询
showMaterialSelect: function(depotId, pageNo, pageSize){
$.ajax({
type: "get",
url: "/material/findBySelect",
dataType: "json",
data: ({
categoryId: $("#searchMaterialCategory").combotree("getValue"),
q: $("#searchBarCode").textbox("getValue"),
mpList: mPropertyList,
depotId: depotId,
page: pageNo,
rows: pageSize
}),
success: function (res) {
if(res) {
$("#materialSelectData").datagrid('loadData', res);
}
},
//此处添加错误处理
error: function () {
$.messager.alert('查询提示', '查询数据后台异常请稍后再试', 'error');
return;
}
});
},
//商品选择列表-事件
materialSelectFun: function(depotId){
var self = this;
var monthTime = getNowFormatMonth();
$("#searchBarCode").textbox("setValue","");
$("#searchMaterialBtn").off("click").on("click",function(){
self.showMaterialSelect(depotId,1,initPageSize);
var opts = $("#materialSelectData").datagrid('options');
var pager = $("#materialSelectData").datagrid('getPager');
opts.pageNumber = 1;
opts.pageSize = initPageSize;
pager.pagination('refresh', {
pageNumber: 1,
pageSize: initPageSize
});
});
//重置按钮
$("#searchMaterialResetBtn").unbind().bind({
click: function () {
$("#searchMaterialCategory").combotree("setValue","");
$("#searchBarCode").textbox("setValue","");
$("#searchMaterialBtn").click();
}
});
$("#appendMaterial").off("click").on("click",function(){
js.addTabPage(null, "商品信息", "/pages/materials/material.html");
});
$("#checkMaterial").off("click").on("click",function(){
var rowData = $("#materialSelectData").datagrid('getChecked')[0];
$('#materialSelectDlg').dialog('close');
self.materialSelect(rowData,monthTime);
});
$("#searchMaterialBtn").click();
},
//选择商品
materialSelect: function(rec,monthTime) {
var self = this;
var body,footer,input; //定义表格和文本框
var ratio = 1; //比例-名称专用
var loadRatio = 1; //在单位输入框上面加载比例字段
if(rec) {
var meId = rec.Id;
$.ajax({
url: "/material/findByIdWithBarCode",
type: "get",
dataType: "json",
data: {
meId: meId,
mpList: mPropertyList
},
success: function (res) {
if(res && res.code === 200) {
var info = res.data;
var commodityDecimal = info.commodityDecimal-0; //零售价
var purchaseDecimal = info.purchaseDecimal-0; //采购价
var wholesaleDecimal = info.wholesaleDecimal-0; //销售价
var lowDecimal = info.lowDecimal-0; //最低售价
var commodityUnit = info.commodityUnit; //商品单位
body =$("#depotHeadFM .datagrid-view2 .datagrid-body");
footer =$("#depotHeadFM .datagrid-view2 .datagrid-footer");
input = "input[type=text]";
var currentRowDom = body.find(".datagrid-row").eq(editIndex);
currentRowDom.find("[field='barCode']").find(".datagrid-editable-input").textbox("setValue",info.mBarCode).prop("readonly","readonly");
currentRowDom.find("[field='name']").find(input).val(info.name).prop("readonly","readonly");
currentRowDom.find("[field='standard']").find(input).val(info.standard).prop("readonly","readonly");
currentRowDom.find("[field='model']").find(input).val(info.model).prop("readonly","readonly");
currentRowDom.find("[field='materialOther']").find(input).val(info.materialOther).prop("readonly","readonly");
currentRowDom.find("[field='Unit']").find(input).prop("readonly","readonly"); //设置计量单位为只读
currentRowDom.find("[field='Unit']").find(input).val(commodityUnit); //设置单位
if(info.unit){ //如果存在计量单位信息
ratio = 1; //重置比例为1
loadRatio = ratio;
}
else {
var unitName = info.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]; //副单位
if(basicUnit==commodityUnit){ //基础单位等于选择的单位
loadRatio = 1;
}
else if(otherUnit==commodityUnit){ //副单位等于选择的单位
loadRatio = ratio;
}
}
var detailPrice = 0; //明细列表-单价
if(listSubType == "零售" || listSubType == "零售退货") {
detailPrice = commodityDecimal;
}
else if(listTitle == "采购订单列表" || listTitle == "采购入库列表" || listTitle == "采购退货列表" || listTitle == "其它入库列表") {
detailPrice = purchaseDecimal;
}
else if(listTitle == "销售订单列表" || listTitle == "销售出库列表" || listTitle == "销售退货列表" || listTitle == "其它出库列表" || listTitle == "调拨出库列表") {
detailPrice = wholesaleDecimal;
}
//单价和总价赋值
if(!detailPrice) {
detailPrice = 0;
}
var operNumber = 1;
currentRowDom.find("[field='OperNumber']").find(input).val(operNumber); //数量初始化
if($('#sweepBarCode').css('display') == "none") {
currentRowDom.find("[field='OperNumber']").find(input).focus().select();
} else {
$("#sweepBarCode").val("").focus().select();
}
currentRowDom.find("[field='UnitPrice']").find(input).val(detailPrice);
currentRowDom.find("[field='AllPrice']").find(input).val(detailPrice);
var taxRate = currentRowDom.find("[field='TaxRate']").find(input).val()-0; //获取税率
currentRowDom.find("[field='TaxUnitPrice']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //含税单价
currentRowDom.find("[field='TaxMoney']").find(input).val((detailPrice*(taxRate/100)).toFixed(2)); //税额
currentRowDom.find("[field='TaxLastMoney']").find(input).val((detailPrice*(1+taxRate/100)).toFixed(2)); //价税合计
self.statisticsFun(body,detailPrice,1,footer,taxRate);
//查询库存信息
var depotId = currentRowDom.find("[field='DepotId']").find(".textbox-value").val();
if(depotId) {
var type = "select"; //type 类型:点击 click选择 select
self.findStockNumById(depotId, meId, monthTime, currentRowDom, input, loadRatio, type);
}
}
},
error: function() {
$.messager.alert('页面加载提示','页面加载异常请稍后再试','error');
}
});
}
},
//结束全部的编辑
endAllEdit: function(){
var rowLen = $("#materialData").datagrid('getRows').length;
for(var i=0; i<rowLen; i++){
$('#materialData').datagrid('endEdit', i);
}
},
//新增单据主表及单据子表
addDepotHeadAndDetail: function (url,infoStr) {
var self = this;
if(pageType=="skip") {
sessionStorage.removeItem("rowInfo");
}
this.endAllEdit();
var rows = $("#materialData").datagrid('getRows');
$.ajax({
type:"post",
url: url,
contentType:"application/json",
dataType: "json",
async : false,
data: JSON.stringify({
info:infoStr,
rows: JSON.stringify(rows)
}),
success: function (tipInfo){
if(tipInfo){
if(tipInfo.code!=200){
$.messager.alert('提示', tipInfo.msg, 'warning');
for(var i=0; i<rows.length; i++){
$('#materialData').datagrid('selectRow', i).datagrid('beginEdit', i);
self.autoReckon();
}
return;
}
$.messager.alert('提示','保存成功','info');
$('#depotHeadDlg').dialog('close');
var opts = $("#tableData").datagrid('options');
self.showDepotHeadDetails(opts.pageNumber,opts.pageSize);
}else {
$.messager.show({
title: '错误提示',
msg: '保存信息失败请稍后重试!'
});
}
},
//此处添加错误处理
error:function() {
$.messager.alert('提示','保存信息异常请稍后再试','error');
return;
}
});
},
//修改单据主表及单据子表
updateDepotHeadAndDetail: function (url,infoStr,preTotalPrice) {
var self = this;
this.endAllEdit();
var rows = $("#materialData").datagrid('getRows');
$.ajax({
type:"post",
url: url,
contentType:"application/json",
dataType: "json",
async : false,
data: JSON.stringify({
id:url.substring(url.lastIndexOf("?id=")+4,url.length),
info:infoStr,
rows: JSON.stringify(rows),
preTotalPrice:preTotalPrice
}),
success: function (tipInfo){
if(tipInfo){
if(tipInfo.code!=200){
$.messager.alert('提示', tipInfo.msg, 'warning');
for(var i=0; i<rows.length; i++){
$('#materialData').datagrid('selectRow', i).datagrid('beginEdit', i);
self.autoReckon();
}
return;
}
$.messager.alert('提示','保存成功','info');
$('#depotHeadDlg').dialog('close');
var opts = $("#tableData").datagrid('options');
self.showDepotHeadDetails(opts.pageNumber,opts.pageSize);
$('#materialData').datagrid('acceptChanges');
}else {
$.messager.show({
title: '错误提示',
msg: '保存信息失败请稍后重试!'
});
}
},
//此处添加错误处理
error:function() {
$.messager.alert('提示','保存信息异常请稍后再试','error');
return;
}
});
}
}