You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

871 lines
22 KiB

// pages/orderinfo/orderinfo.js
var app = getApp()
var network = require("../../../utils/net.js")
var dateTimePicker = require('../../../utils/dateTimePicker.js');
var utilll = require('../../../utils/util.js');
var timechage = require("../../../utils/dateTimeUtil.js")
var orderID=0;
var getAccountingUnit = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetAccountingUnit";
var getCustomer = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetCustomer";
var getDept = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetDepartment";
var getGoods = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetGoodsWithUnitPrice";
var getSaleKind = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetSaleKind";
var getEmployee = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetEmployee";
var getStore = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetStore"
var getTakeGoodsType = "/MainSystem/B3MiniProgramRpc/Rpcs/BaseInfoRpc/GetTakeGoods_Type"
var load = "/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/OrderRpc/Load";
let update = '/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/OrderRpc/Update';
function setTime(that){
// 获取完整的年月日 时分秒,以及默认显示的数组
var obj1 = dateTimePicker.dateTimePicker(that.data.startYear, that.data.endYear, that.data.loadTime);
// 精确到分的处理,将数组的秒去掉
var lastArray = obj1.dateTimeArray.pop();
var lastTime = obj1.dateTime.pop();
that.setData({
dateTimeArray1: obj1.dateTimeArray,
dateTime1: obj1.dateTime
});
}
function GetAccountingUnit(that, inputValue) {
let method = getAccountingUnit;
let params = [{
"InputValue": inputValue,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function (res) {
that.setData({
currency: res.result,
unit: res.result
})
})
that.setData({
which: "会计部门"
})
}
function GetCustomer(that, inputValue) {
let method = getCustomer;
let params = [{
"InputValue": inputValue,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function (res) {
that.setData({
currency: res.result,
customer: res.result
})
})
that.setData({
which: "购货客户"
})
}
function GetDepartment(that, inputValue) {
let method = getDept;
let params = [{
"InputValue": inputValue,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function (res) {
that.setData({
currency: res.result,
department: res.result
})
})
that.setData({
which: "部门"
})
}
function GetSaleKind(that, v) {
let method = getSaleKind;
let params = [{
"InputValue": v,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function (res) {
that.setData({
currency: res.result,
saletype: res.result
})
})
that.setData({
which: "销售类型"
})
}
function GetEmployee(that, v) {
let method = getEmployee;
let params = [{
"InputValue": v,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function (res) {
that.setData({
currency: res.result,
employee: res.result
})
})
that.setData({
which: "业务员"
})
}
function GetStore(that, v) {
let method = getStore;
let params = [{
"InputValue": v,
"PageIndex": 0,
"PageSize": 100
}];
network.transfer_request(method, params, function (res) {
that.setData({
currency: res.result,
store: res.result
})
})
that.setData({
which: "仓库"
})
}
function GetTakeGoodsType(that, v) {
let method = getTakeGoodsType;
let params = [];
network.transfer_request(method, params, function (res) {
console.log(res);
that.setData({
currency: res.result,
takeGoodsType: res.result
})
})
that.setData({
which: "配送方式"
})
}
function GetGoodsWithUnitPrice(that, v, date) {
let unitID = that.data.unit[that.data.isUnit].ID;
let customerID = that.data.customer[that.data.customerIndex].ID;
let method = getGoods;
let params = [{
"Input": v,
"PageIndex": 0,
"PageSize": 100,
"Customer_ID": customerID,
"AccountingUnit_ID": unitID,
"Date": date
}];
network.transfer_request(method, params, function (res) {
that.setData({
goods: res.result,
})
})
}
Page({
/**
* 页面的初始数据
*/
data: {
/**
* 页面配置
*/
which: "",
winWidth: 0,
winHeight: app.globalData.winHeight,
// tab切换
currentTab: 0,
obj: [],
goods: [],
idx: 0,
currency: [],
saletypeIndex: 0,
saletype: [{
ID: 0,
Name: "请选择销售类型"
}],
departmentIndex: 0,
department: [{
ID: 0,
Name: "请选择销售部门"
}],
customerIndex: 0,
customer: [{
ID: 0,
Name: "请选择客户"
}],
isUnit: 0,
unit: [{
ID: 0,
Name: "请选择会计单位"
}],
empIndex: 0,
employee: [{
ID: 0,
Name: "请选择业务员"
}],
storeIndex: 0,
store: [{
ID: 0,
Name: "请选择仓库"
}],
takeGoodsTypeIndex: 0,
takeGoodsType: [{
ID: 0,
Name: "请选择配送方式"
}],
addrs: "",
remark: "",
dateTimeArray1: null,
dateTime1: null,
startYear: 2018,
endYear: 2030,
loadTime:""
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this;
let ID = Number(options.ID);
orderID = ID;
let method = load;
let params = [ID];
network.transfer_request(method, params, function (res) {
let customerOld=[{
ID: res.result.Customer_ID,
Name: res.result.Customer_Name
}]
let unitOld=[{
ID: res.result.AccountingUnit_ID,
Name: res.result.AccountingUnit_Name
}]
let departmentOld=[{
ID: res.result.Department_ID,
Name: res.result.Department_Name
}]
let saletypeOld =[{
ID: res.result.SaleKind_ID,
Name: res.result.SaleKind_Name
}]
let employeeOld = [{
ID: res.result.Employee_ID,
Name: res.result.Employee_Name
}]
let storeOld = [{
ID: res.result.Store_ID,
Name: res.result.Store_Name
}]
let takeGoodsTypeOld = [{
Name: res.result.TakeGoods_Type
}]
let addrrrr = res.result.DeliverAddress
let remark=res.result.Remark
let loadtimee = timechage.formatTimeTwo(res.result.LoadTime.substring(6, 19), 'Y-M-D h:m')
let details=[];
for(var i =0;i<res.result.Details.length;i++){
if (res.result.Details[i].RightRatio==null){
var rightRatio = 1
}
if (res.result.Details[i].LeftRatio==null){
var leftRatio =1
}
var dmo={
"Goods_Name": res.result.Details[i].Goods_Name,
"SaleGoods_ID": res.result.Details[i].SaleGoods_ID,
"goodsNum": res.result.Details[i].UnitNum,
"goodsSecondNum": res.result.Details[i].SecondNumber,
"Price": res.result.Details[i].Price,
"PolicyPrice": res.result.Details[i].PolicyPrice,
"Goods_MainUnitRatio": res.result.Details[i].Goods_MainUnitRatio,
"Goods_SecondUnitRatio": res.result.Details[i].Goods_SecondUnitRatio,
"Goods_UnitConvertDirection": res.result.Details[i].Goods_UnitConvertDirection,
"RightRatio": rightRatio,
"LeftRatio": leftRatio,
"ID":res.result.Details[i].ID
}
details.push(dmo)
}
that.setData({
customer: customerOld,
unit: unitOld,
department: departmentOld,
saletype: saletypeOld,
employee:employeeOld,
store:storeOld,
takeGoodsType:takeGoodsTypeOld,
addrs: addrrrr,
remark: remark,
loadTime: loadtimee,
obj: details
})
setTime(that)
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 滑动切换tab
*/
bindChange: function (e) {
var that = this;
that.setData({
currentTab: e.detail.current
});
},
/**
* 点击tab切换
*/
swichNav: function (e) {
var that = this;
if (this.data.currentTab === e.target.dataset.current) {
return false;
} else {
that.setData({
currentTab: e.target.dataset.current
})
}
},
getAddrs: function (e) {
this.data.addrs = e.detail.value;
},
getRemark: function (e) {
this.data.remark = e.detail.value;
},
add: function (e) {
let newobj = {
Goods_Name: "请选择存货"
};
this.data.obj.push(newobj)
let aaa = this.data.obj;
this.setData({
obj: aaa,
})
},
deleteItem: function (e) {
let idx = e.target.dataset.idx;
let deleteobj = this.data.obj;
deleteobj.splice(idx, 1)
this.setData({
obj: deleteobj
})
},
getGoodsNum: function (e) {
//值:
//e.detail.value
//设置的id
//e.target.dataset.index
let value = e.detail.value;
let idx = e.target.dataset.idx;
let end = value.charAt(value.length - 1)
if (end != ".") {
this.data.obj[idx].goodsNum = Number(value);
let Goods_MainUnitRatio = this.data.obj[idx].Goods_MainUnitRatio
let Goods_SecondUnitRatio = this.data.obj[idx].Goods_SecondUnitRatio
let Goods_UnitConvertDirection = this.data.obj[idx].Goods_UnitConvertDirection
let RightRatio = this.data.obj[idx].RightRatio
let LeftRatio = this.data.obj[idx].LeftRatio
var numberNumber = Number(value) / RightRatio * LeftRatio;
if (Goods_UnitConvertDirection == 0 || Goods_UnitConvertDirection == 1) {
let secondNumber = numberNumber / (Goods_MainUnitRatio) * (Goods_SecondUnitRatio);
this.data.obj[idx].goodsSecondNum = Number(secondNumber)
this.setData({
obj: this.data.obj
})
}
}
},
getSecondNum: function (e) {
let value = e.detail.value;
let idx = e.target.dataset.idx;
let end = value.charAt(value.length - 1)
if (end != ".") {
this.data.obj[idx].goodsSecondNum = Number(value);
let Goods_MainUnitRatio = this.data.obj[idx].Goods_MainUnitRatio
let Goods_SecondUnitRatio = this.data.obj[idx].Goods_SecondUnitRatio
let Goods_UnitConvertDirection = this.data.obj[idx].Goods_UnitConvertDirection
let RightRatio = this.data.obj[idx].RightRatio
let LeftRatio = this.data.obj[idx].LeftRatio
var numberNumber = Number(value) / LeftRatio * RightRatio;
if (Goods_UnitConvertDirection == 0 || Goods_UnitConvertDirection == 2) {
let unitnumber = numberNumber / (Goods_SecondUnitRatio) * (Goods_MainUnitRatio);
this.data.obj[idx].goodsNum = Number(unitnumber)
this.setData({
obj: this.data.obj
})
}
}
},
getPrice: function (e) {
let value = e.detail.value;
let idx = e.target.dataset.idx;
this.data.obj[idx].Price = Number(value);
},
powerDrawer: function (e) {
let that = this;
let x = e.currentTarget.dataset.x;
if (x == "会计部门") {
GetAccountingUnit(that, "")
} else if (x == "购货客户") {
GetCustomer(that, "")
} else if (x == "部门") {
GetDepartment(that, "")
} else if (x == "销售类型") {
GetSaleKind(that, "")
} else if (x == "业务员") {
GetEmployee(that, "")
} else if (x == "仓库") {
GetStore(that, "")
} else if (x == "配送方式") {
GetTakeGoodsType(that, "")
}
let currentStatu = e.currentTarget.dataset.statu;
this.util(currentStatu)
},
powerDrawer1: function (e) {
let that = this;
let currentStatu = e.currentTarget.dataset.statu;
let timestamp = Date.parse(new Date());
let date = "/Date(" + timestamp + "+0800)/";
GetGoodsWithUnitPrice(that, "", date)
if (e.currentTarget.dataset.idx != null) {
let idxx = e.currentTarget.dataset.idx;
this.setData({
idx: idxx
})
}
this.util1(currentStatu)
},
itemclick: function (e) {
var that = this;
var name = e.currentTarget.dataset.name;
var id = e.currentTarget.dataset.id;
var which = e.currentTarget.dataset.item;
var idx = e.currentTarget.dataset.idx;
if (which == "会计部门") {
that.setData({
isUnit: idx
})
} else if (which == "购货客户") {
that.setData({
customerIndex: idx
})
} else if (which == "部门") {
that.setData({
departmentIndex: idx
})
} else if (which == "销售类型") {
that.setData({
saletypeIndex: idx
})
} else if (which == "业务员") {
that.setData({
empIndex: idx
})
} else if (which == "仓库") {
that.setData({
storeIndex: idx
})
} else if (which == "配送方式") {
that.setData({
takeGoodsTypeIndex: idx
})
}
this.setData({
showModalStatus: false,
})
},
itemclick1: function (e) {
var that = this;
var name = e.currentTarget.dataset.name;
var id = e.currentTarget.dataset.data.SaleGoods_ID;
var pp = e.currentTarget.dataset.policyprice;
var price = e.currentTarget.dataset.data.Price;
var Goods_MainUnitRatio = e.currentTarget.dataset.data.Goods_MainUnitRatio
var Goods_SecondUnitRatio = e.currentTarget.dataset.data.Goods_SecondUnitRatio
var Goods_UnitConvertDirection = e.currentTarget.dataset.data.Goods_UnitConvertDirection
if (e.currentTarget.dataset.data.RightRatio == null) {
this.data.obj[this.data.idx].RightRatio = Number(1)
}
if (e.currentTarget.dataset.data.LeftRatio == null) {
this.data.obj[this.data.idx].LeftRatio = Number(1)
}
this.data.obj[this.data.idx].Goods_MainUnitRatio = Number(Goods_MainUnitRatio)
this.data.obj[this.data.idx].Goods_SecondUnitRatio = Number(Goods_SecondUnitRatio)
this.data.obj[this.data.idx].SaleGoods_ID = Number(id);
this.data.obj[this.data.idx].Goods_Name = name;
this.data.obj[this.data.idx].Price = Number(price)
this.data.obj[this.data.idx].PolicyPrice = Number(pp);
this.data.obj[this.data.idx].Goods_UnitConvertDirection = Number(Goods_UnitConvertDirection)
this.setData({
showModalStatus1: false,
obj: that.data.obj
})
},
select: function (e) {
var that = this;
var which = e.currentTarget.dataset.item;
var value = e.detail.value;
if (which == "会计部门") {
GetAccountingUnit(that, value)
} else if (which == "购货客户") {
GetCustomer(that, value)
} else if (which == "部门") {
GetDepartment(that, value)
} else if (which == "销售类型") {
GetSaleKind(that, value)
} else if (which == "业务员") {
GetEmployee(that, value)
} else if (which == "仓库") {
GetStore(that, value)
} else if (which == "配送方式") {
GetTakeGoodsType(that, value)
}
},
select1: function (e) {
var that = this;
var value = e.detail.value;
let timestamp = Date.parse(new Date());
let date = "/Date(" + timestamp + "+0800)/";
GetGoodsWithUnitPrice(that, value, date)
},
submitForm: function () {
let unitID = this.data.unit[this.data.isUnit].ID;
let customerID = this.data.customer[this.data.customerIndex].ID;
let departmentID = this.data.department[this.data.departmentIndex].ID;
let saletypeID = this.data.saletype[this.data.saletypeIndex].ID;
let employeeID = this.data.employee[this.data.empIndex].ID;
let storeID = this.data.store[this.data.storeIndex].ID;
let takeGoodsTypeName = this.data.takeGoodsType[this.data.takeGoodsTypeIndex].Name;
let year = this.data.dateTimeArray1[0][this.data.dateTime1[0]]
let month = this.data.dateTimeArray1[1][this.data.dateTime1[1]]
let date = this.data.dateTimeArray1[2][this.data.dateTime1[2]]
let hour = this.data.dateTimeArray1[3][this.data.dateTime1[3]]
let minu = this.data.dateTimeArray1[4][this.data.dateTime1[4]]
let stringTime = year + "/" + month + "/" + date + " " + hour + ":" + minu + ":00"
let timestamp2 = Date.parse(new Date(stringTime));
let loadTime = "/Date(" + timestamp2 + "+0800)/";
if (customerID == 0) {
wx.showToast({
title: '请选择购货客户'
})
return;
}
if (unitID == 0) {
wx.showToast({
title: '请选择会计单位'
})
return;
}
if (departmentID == 0) {
wx.showToast({
title: '请选择销售部门',
})
return;
}
if (employeeID == 0) {
wx.showToast({
title: '请选择业务员',
})
return;
}
if (storeID == 0) {
wx.showToast({
title: '请选择仓库',
})
return;
}
if (saletypeID == 0) {
wx.showToast({
title: '请选择销售类型',
})
return;
}
if (takeGoodsTypeName == "") {
wx.showToast({
title: '请选择配送方式',
})
return;
}
if (this.data.addrs == "") {
wx.showToast({
title: '请填写送货地址',
})
return;
}
let detailsArray = [];
for (var i = 0; i < this.data.obj.length; i++) {
if (this.data.obj[i].Goods_Name == "请选择存货") {
wx.showToast({
title: '存货不能为空',
})
return;
}
if (this.data.obj[i].goodsNum == null) {
wx.showToast({
title: '报货数量不能为空',
})
return;
}
if (this.data.obj[i].goodsSecondNum == null) {
wx.showToast({
title: '辅数量不能为空',
})
return;
}
var olddID=0;
if(this.data.obj[i].ID==null){
olddID = 0
}else{
olddID = Number(this.data.obj[i].ID)
}
var dmo = {
SaleGoods_ID: this.data.obj[i].SaleGoods_ID,
UnitNum: this.data.obj[i].goodsNum,
SecondNumber: this.data.obj[i].goodsSecondNum,
Price: this.data.obj[i].Price,
PolicyPrice: this.data.obj[i].PolicyPrice,
ID:olddID
}
detailsArray.push(dmo)
}
let method = update;
let params = [{
"Customer_ID": customerID,
"LoadTime": loadTime,
"AccountingUnit_ID": unitID,
"Department_ID": departmentID,
"SaleKind_ID": saletypeID,
"Employee_ID":employeeID,
"Store_ID":storeID,
"TakeGoods_Type":takeGoodsTypeName,
"DeliverAddress": this.data.addrs,
"Remark":this.data.remark,
"Details": detailsArray,
"ID": orderID
}];
network.transfer_request(method, params, function (res) {
if (res.result == null) {
wx.showModal({
title: '提示',
content: '修改成功,是否返回上级列表',
success: function (res) {
if (res.cancel) {
} else {
wx.navigateBack({
delta: 1
})
}
},
fail: function (res) { }
})
}
})
},
changeDateTime1(e) {
this.setData({
dateTime1: e.detail.value
});
},
util: function (currentStatu) {
/* 动画部分 */
// 第1步:创建动画实例
var animation = wx.createAnimation({
duration: 200, //动画时长
timingFunction: "linear", //线性
delay: 0 //0则不延迟
});
// 第2步:这个动画实例赋给当前的动画实例
this.animation = animation;
// 第3步:执行第一组动画
animation.opacity(0).rotateX(-100).step();
// 第4步:导出动画对象赋给数据对象储存
this.setData({
animationData: animation.export()
})
// 第5步:设置定时器到指定时候后,执行第二组动画
setTimeout(function () {
// 执行第二组动画
animation.opacity(1).rotateX(0).step();
// 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象
this.setData({
animationData: animation
})
//关闭
if (currentStatu == "close") {
this.setData({
showModalStatus: false,
});
}
}.bind(this), 200)
// 显示
if (currentStatu == "open") {
// 调用函数时,传入new Date()参数,返回值是日期和时间
// var timet = utilll.formatTime(new Date());
// 再通过setData更改Page()里面的data,动态更新页面的数据
this.setData({
// time: timet,
showModalStatus: true,
});
}
},
util1: function (currentStatu) {
/* 动画部分 */
// 第1步:创建动画实例
var animation = wx.createAnimation({
duration: 200, //动画时长
timingFunction: "linear", //线性
delay: 0 //0则不延迟
});
// 第2步:这个动画实例赋给当前的动画实例
this.animation = animation;
// 第3步:执行第一组动画
animation.opacity(0).rotateX(-100).step();
// 第4步:导出动画对象赋给数据对象储存
this.setData({
animationData: animation.export()
})
// 第5步:设置定时器到指定时候后,执行第二组动画
setTimeout(function () {
// 执行第二组动画
animation.opacity(1).rotateX(0).step();
// 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象
this.setData({
animationData: animation
})
//关闭
if (currentStatu == "close") {
this.setData({
showModalStatus1: false
});
}
}.bind(this), 200)
// 显示
if (currentStatu == "open") {
// 调用函数时,传入new Date()参数,返回值是日期和时间
// var timet = utilll.formatTime(new Date());
// 再通过setData更改Page()里面的data,动态更新页面的数据
this.setData({
// time: timet,
showModalStatus1: true
});
}
}
})