|
|
|
|
const myOrder = require('../../../utils/myOrder.js');
|
|
|
|
|
const card = require('../../../utils/card.js');
|
|
|
|
|
const md5 = require('../../../utils/md5.js');
|
|
|
|
|
const des = require('../../../utils/des.js');
|
|
|
|
|
const util = require('../../../utils/util.js');
|
|
|
|
|
const utils = require('../../../utils/utils.js');
|
|
|
|
|
const log = require('../../../utils/log.js');
|
|
|
|
|
const app = getApp();
|
|
|
|
|
Page({
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 页面的初始数据
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
data: {
|
|
|
|
|
hidden: true,
|
|
|
|
|
payFlag: true,
|
|
|
|
|
isPasswd: true,
|
|
|
|
|
passwd: "",
|
|
|
|
|
queryCount: 0,
|
|
|
|
|
busMode: 1,
|
|
|
|
|
boxFee: 0,
|
|
|
|
|
deliverType: 0,
|
|
|
|
|
deliverFee: 0,
|
|
|
|
|
comment: "",
|
|
|
|
|
payMode: "02",
|
|
|
|
|
outTime: "",
|
|
|
|
|
receiveAddress: "选择收货地址",
|
|
|
|
|
receiveName: "收货人",
|
|
|
|
|
receiveMobile: "联系方式",
|
|
|
|
|
address: null,
|
|
|
|
|
jsonString: null,
|
|
|
|
|
order: {},
|
|
|
|
|
coupon: null,
|
|
|
|
|
couponList: [],
|
|
|
|
|
formId: "",
|
|
|
|
|
is_member_pay: 0,
|
|
|
|
|
orgPrice: 0,
|
|
|
|
|
isSubmit: true,
|
|
|
|
|
isBoxFee: 0,
|
|
|
|
|
isShowPhone: true,
|
|
|
|
|
inter: "",
|
|
|
|
|
isEnablePromotion: 0,
|
|
|
|
|
promotionPrice: 0,
|
|
|
|
|
promotionReceivable: 0,
|
|
|
|
|
reduceCost: 0
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
|
*/
|
|
|
|
|
onLoad: function (options) {
|
|
|
|
|
console.log(app.orderTicket);
|
|
|
|
|
var store = wx.getStorageSync("store");
|
|
|
|
|
var deliverFee = 0.0;
|
|
|
|
|
app.orderTicket.isMember = 0;
|
|
|
|
|
app.orderTicket.ext2 = "";
|
|
|
|
|
app.orderTicket.coupon = this.data.coupon;
|
|
|
|
|
var nowDate = new Date();
|
|
|
|
|
nowDate.setMinutes(nowDate.getMinutes() + 2);
|
|
|
|
|
app.orderTicket.busMode = wx.getStorageSync('mode') || app.orderTicket.busMode;
|
|
|
|
|
log.info('app.orderTicket.busMode: ' + app.orderTicket.busMode);
|
|
|
|
|
if (app.orderTicket.busMode == undefined || app.orderTicket.busMode == '') {
|
|
|
|
|
app.orderTicket.busMode = 0;
|
|
|
|
|
}
|
|
|
|
|
app.orderTicket.reserveTime = utils.getFormatTime(nowDate, 0);
|
|
|
|
|
|
|
|
|
|
var sumMoney = app.orderTicket.receivable;
|
|
|
|
|
if (app.orderTicket.busMode == 3) {
|
|
|
|
|
this.data.deliverType = store.deliverType;
|
|
|
|
|
deliverFee = store.deliverFee;
|
|
|
|
|
sumMoney = parseFloat(app.orderTicket.receivable) + parseFloat(app.orderTicket.boxFee) + parseFloat(deliverFee);
|
|
|
|
|
this.cy_getProgramAddressList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 0) {
|
|
|
|
|
if (store.busModes.indexOf(app.orderTicket.busMode) == -1) {
|
|
|
|
|
app.orderTicket.busMode = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (app.globalData.memberPayEnabled != 1) {
|
|
|
|
|
this.setData({
|
|
|
|
|
is_member_pay: 0
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.computePromotion();
|
|
|
|
|
log.info('busMode的值: ' + app.orderTicket.busMode);
|
|
|
|
|
this.setData({
|
|
|
|
|
busMode: app.orderTicket.busMode,
|
|
|
|
|
busModes: options.storeBusModes,
|
|
|
|
|
storeName: app.orderTicket.storeName,
|
|
|
|
|
storeAddress: app.orderTicket.storeAddress,
|
|
|
|
|
outTime: app.orderTicket.reserveTime,
|
|
|
|
|
startTime: app.orderTicket.reserveTime,
|
|
|
|
|
time: app.orderTicket.reserveTime,
|
|
|
|
|
tableName: app.orderTicket.tableName,
|
|
|
|
|
tableNo: app.orderTicket.tableNo,
|
|
|
|
|
phone: app.orderTicket.phone,
|
|
|
|
|
list: app.orderTicket.orderList,
|
|
|
|
|
boxFee: parseFloat(app.orderTicket.boxFee).toFixed(2),
|
|
|
|
|
deliverFee: deliverFee,
|
|
|
|
|
receivable: parseFloat(app.orderTicket.receivable).toFixed(2),
|
|
|
|
|
sumMoney: parseFloat(sumMoney).toFixed(2),
|
|
|
|
|
promotionReceivable: parseFloat(app.orderTicket.promotionReceivable).toFixed(2),
|
|
|
|
|
orgPrice: parseFloat(sumMoney).toFixed(2),
|
|
|
|
|
color: app.globalData.color,
|
|
|
|
|
takeOutBoxFeeFlag: app.globalData.takeOutBoxFeeFlag,
|
|
|
|
|
isBoxFee: app.globalData.userIsFee
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 查询优惠券
|
|
|
|
|
this.cy_queryCoupon();
|
|
|
|
|
//加载餐桌 去判断堂食是否必选桌号
|
|
|
|
|
|
|
|
|
|
this.cy_loadTableArea();
|
|
|
|
|
//清除兑换券的商品
|
|
|
|
|
// this.cy_clear_gift_product(app.orderTicket.orderList);
|
|
|
|
|
//console.error(" app.orderTicket ", app.orderTicket)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//计算订单促销价
|
|
|
|
|
computePromotion: function () {
|
|
|
|
|
var orderTicket = app.orderTicket;
|
|
|
|
|
var promotionPrice = 0;
|
|
|
|
|
for (var item of orderTicket.orderList) {
|
|
|
|
|
item.price = item.specList[0].price;
|
|
|
|
|
promotionPrice += myOrder.promotionComputePrice(item);
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
promotionPrice: promotionPrice
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
cy_click_promotion: function () {
|
|
|
|
|
if (this.data.isEnablePromotion == 0) {
|
|
|
|
|
this.setData({
|
|
|
|
|
isEnablePromotion: 1,
|
|
|
|
|
sumMoney: this.data.sumMoney - this.data.promotionPrice
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
this.setData({
|
|
|
|
|
isEnablePromotion: 0,
|
|
|
|
|
sumMoney: this.data.sumMoney + this.data.promotionPrice
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
*查询默认收货地址
|
|
|
|
|
*/
|
|
|
|
|
cy_getProgramAddressList: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
var params = {
|
|
|
|
|
method: "program.useraddress.list",
|
|
|
|
|
programId: app.globalData.programId,
|
|
|
|
|
openId: app.openId,
|
|
|
|
|
pageNumber: 1,
|
|
|
|
|
pageSize: 100,
|
|
|
|
|
};
|
|
|
|
|
console.log(params);
|
|
|
|
|
var ignores = ["openId", "pageNumber", "pageSize"];
|
|
|
|
|
app.jsapi.memberApi(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var list = data.list;
|
|
|
|
|
if (list.length != 0) {
|
|
|
|
|
for (var item of list) {
|
|
|
|
|
if (item.defaultFlag == 1) {
|
|
|
|
|
var store = wx.getStorageSync("store");
|
|
|
|
|
var distance = app.utils.getDistance(store.latitude, store.longitude, item.latitude, item.longitude);
|
|
|
|
|
|
|
|
|
|
var deliverKilometre = 5;
|
|
|
|
|
if (store.deliverKilometre) {
|
|
|
|
|
deliverKilometre = parseFloat(store.deliverKilometre);
|
|
|
|
|
}
|
|
|
|
|
if (distance > deliverKilometre) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '注意:默认地址超过' + deliverKilometre + "公里不支持配送, 请重新选择地址",
|
|
|
|
|
icon: "none",
|
|
|
|
|
duration: 3500
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
that.cy_loadAddress(item);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}, function (err) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '网络异常,请检查',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 餐桌区域
|
|
|
|
|
*/
|
|
|
|
|
cy_loadTableArea: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
var params = {
|
|
|
|
|
"method": "store.table.area",
|
|
|
|
|
"storeId": app.orderTicket.storeId,
|
|
|
|
|
}
|
|
|
|
|
var ignores = [];
|
|
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores,
|
|
|
|
|
function (json) {
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var list = data.list;
|
|
|
|
|
if (list.length > 0) {
|
|
|
|
|
that.setData({
|
|
|
|
|
isTables: true
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
that.setData({
|
|
|
|
|
isTables: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
function (err) {
|
|
|
|
|
console.log("=-=-=", err);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 优惠券
|
|
|
|
|
*/
|
|
|
|
|
cy_queryCoupon: function () {
|
|
|
|
|
var store = wx.getStorageSync("store");
|
|
|
|
|
var that = this;
|
|
|
|
|
var status = 1;
|
|
|
|
|
var property = "memberId";
|
|
|
|
|
var keyword = app.globalData.memberId;
|
|
|
|
|
var params = {
|
|
|
|
|
"property": property,
|
|
|
|
|
"keyword": keyword,
|
|
|
|
|
"status": status,
|
|
|
|
|
"shopNo": store.storeNo,
|
|
|
|
|
"posNo": app.globalData.posNo,
|
|
|
|
|
"useFlag": 1,
|
|
|
|
|
"amount": parseInt(parseFloat(app.orderTicket.receivable) * 100),
|
|
|
|
|
"amountFilter": 0
|
|
|
|
|
}
|
|
|
|
|
console.log(params);
|
|
|
|
|
card.queryGroupCouponsList(params, function success(json) {
|
|
|
|
|
console.log(json)
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var list = [];
|
|
|
|
|
if (data.list.length > 0) {
|
|
|
|
|
var sumMoney = that.data.sumMoney;
|
|
|
|
|
var reduceCost = 0;
|
|
|
|
|
for (var item of data.list) {
|
|
|
|
|
|
|
|
|
|
if (item.useFlag == 0) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (item.cardType == "DISCOUNT") {
|
|
|
|
|
item.unitName = "折";
|
|
|
|
|
item.amount = item.discount;
|
|
|
|
|
item.size = "60rpx";
|
|
|
|
|
item.height = "90rpx;";
|
|
|
|
|
} else if (item.cardType == "CASH") {
|
|
|
|
|
item.unitName = "¥";
|
|
|
|
|
item.size = "60rpx";
|
|
|
|
|
item.height = "90rpx;";
|
|
|
|
|
item.amount = app.utils.getOne(parseFloat(item.reduceCost) / 100);
|
|
|
|
|
} else if (item.cardType == "GIFT") {
|
|
|
|
|
item.unitName = "兑";
|
|
|
|
|
item.amount = "换券";
|
|
|
|
|
item.size = "45rpx";
|
|
|
|
|
item.height = "80rpx;";
|
|
|
|
|
} else if (item.cardType = "PRODUCT") {
|
|
|
|
|
item.unitName = "商品";
|
|
|
|
|
item.amount = "券";
|
|
|
|
|
item.size = "45rpx";
|
|
|
|
|
item.height = "80rpx;";
|
|
|
|
|
}
|
|
|
|
|
item.bgImage = "http://pos.juweiyun.cn/373001/file/wechatAppnewCoupon.png";
|
|
|
|
|
if (item.status == 1) {
|
|
|
|
|
item.useStatus = "立即使用";
|
|
|
|
|
item.type = 1;
|
|
|
|
|
item.color = app.globalData.color
|
|
|
|
|
} else if (item.status == 2) {
|
|
|
|
|
item.useStatus = "已使用";
|
|
|
|
|
item.type = 2;
|
|
|
|
|
item.color = "#999";
|
|
|
|
|
} else if (item.status == 3) {
|
|
|
|
|
item.useStatus = "已过期";
|
|
|
|
|
item.color = "#999";
|
|
|
|
|
item.type = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
item.condition = "满" + app.utils.getOne(parseFloat(item.leastCost) / 100) + "可用";
|
|
|
|
|
item.effective = item.beginTimestamp.split(" ")[0] + " 至 " + item.endTimestamp.split(" ")[0];
|
|
|
|
|
|
|
|
|
|
if (item.cardType == "CASH") { // 代金券
|
|
|
|
|
var reduceCost = parseFloat(app.utils.getZero(parseFloat(item.reduceCost) / 100));
|
|
|
|
|
var leastCost = parseFloat(app.utils.getOne(parseFloat(item.leastCost) / 100));
|
|
|
|
|
|
|
|
|
|
if (sumMoney >= leastCost) {
|
|
|
|
|
list.push(item);
|
|
|
|
|
}
|
|
|
|
|
} else if (item.cardType == "DISCOUNT") { // 折扣券
|
|
|
|
|
var leastCost = parseFloat(app.utils.getOne(parseFloat(item.leastCost) / 100)); // 启用金额
|
|
|
|
|
if (sumMoney >= leastCost) {
|
|
|
|
|
list.push(item);
|
|
|
|
|
}
|
|
|
|
|
} else if (item.cardType == "GIFT") {
|
|
|
|
|
if (item.giftType == "2") {
|
|
|
|
|
list.push(item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
that.setData({
|
|
|
|
|
couponList: list
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}, function fail(err) {
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 外卖模式选择收货地址
|
|
|
|
|
*/
|
|
|
|
|
cy_selectAddress: function () {
|
|
|
|
|
console.log("外卖选择收货地址");
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: "../../mine/managerAddress?busMode=3",
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 加载收货地址
|
|
|
|
|
*/
|
|
|
|
|
cy_loadAddress: function (address) {
|
|
|
|
|
if (!address) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var receiveAddress = address.receiveAddress + address.receiveDoor;
|
|
|
|
|
this.setData({
|
|
|
|
|
receiveAddress: receiveAddress,
|
|
|
|
|
receiveName: address.receiveName,
|
|
|
|
|
receiveMobile: address.receiveMobile,
|
|
|
|
|
address: address
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 就餐时间
|
|
|
|
|
*/
|
|
|
|
|
cy_selectTime: function (e) {
|
|
|
|
|
var nowDate = new Date();
|
|
|
|
|
nowDate.setMinutes(nowDate.getMinutes() + 2);
|
|
|
|
|
nowDate = utils.getFormatTime(nowDate, 0);
|
|
|
|
|
if (e.detail.value < nowDate) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '时间选择错误',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
app.orderTicket.reserveTime = e.detail.value;
|
|
|
|
|
this.setData({
|
|
|
|
|
outTime: app.orderTicket.reserveTime,
|
|
|
|
|
time: app.orderTicket.reserveTime,
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 取消
|
|
|
|
|
*/
|
|
|
|
|
cy_cancelTime: function (e) {
|
|
|
|
|
var nowDate = new Date();
|
|
|
|
|
nowDate.setMinutes(nowDate.getMinutes() + 2);
|
|
|
|
|
this.setData({
|
|
|
|
|
startTime: utils.getFormatTime(nowDate, 0),
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 就餐桌号
|
|
|
|
|
*/
|
|
|
|
|
cy_tapSelectTable: function () {
|
|
|
|
|
// var url = "../table/table?storeId=" + app.orderTicket.storeId;
|
|
|
|
|
// wx.navigateTo({
|
|
|
|
|
// url: url,
|
|
|
|
|
// })
|
|
|
|
|
},
|
|
|
|
|
cy_click_boxFee: function () {
|
|
|
|
|
if (this.data.isBoxFee == 0) {
|
|
|
|
|
var sumMoney = parseFloat(parseFloat(this.data.sumMoney) + parseFloat(app.orderTicket.boxFee)).toFixed(2);
|
|
|
|
|
var promotionReceivable = 0;
|
|
|
|
|
if (app.orderTicket.promotionFlag == 1) {
|
|
|
|
|
promotionReceivable = parseFloat(parseFloat(this.data.promotionReceivable) + parseFloat(app.orderTicket.boxFee)).toFixed(2);
|
|
|
|
|
}
|
|
|
|
|
app.globalData.userIsFee = 1;
|
|
|
|
|
this.setData({
|
|
|
|
|
isBoxFee: 1,
|
|
|
|
|
boxFee: app.orderTicket.boxFee,
|
|
|
|
|
sumMoney: sumMoney,
|
|
|
|
|
promotionReceivable: promotionReceivable
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
var sumMoney = parseFloat(parseFloat(this.data.sumMoney) - parseFloat(app.orderTicket.boxFee)).toFixed(2);
|
|
|
|
|
var promotionReceivable = 0;
|
|
|
|
|
if (app.orderTicket.promotionFlag == 1) {
|
|
|
|
|
promotionReceivable = parseFloat(parseFloat(this.data.promotionReceivable) - parseFloat(app.orderTicket.boxFee)).toFixed(2);
|
|
|
|
|
}
|
|
|
|
|
app.globalData.userIsFee = 0;
|
|
|
|
|
this.setData({
|
|
|
|
|
isBoxFee: 0,
|
|
|
|
|
boxFee: 0,
|
|
|
|
|
sumMoney: sumMoney,
|
|
|
|
|
promotionReceivable: promotionReceivable
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 就餐方式
|
|
|
|
|
*/
|
|
|
|
|
cy_tapSelectEatType: function (e) {
|
|
|
|
|
var store = wx.getStorageSync("store");
|
|
|
|
|
var busMode = e.currentTarget.dataset.busmode;
|
|
|
|
|
if (store.busModes.indexOf(busMode) == -1) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '当前门店不支持该模式',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
app.orderTicket.busMode = busMode;
|
|
|
|
|
// var sumMoney = 0;
|
|
|
|
|
var sumMoney = this.data.sumMoney;
|
|
|
|
|
var promotionReceivable = this.data.promotionReceivable;
|
|
|
|
|
var boxFee = 0;
|
|
|
|
|
if (app.orderTicket.busMode == 0) { // 堂食
|
|
|
|
|
sumMoney = this.data.sumMoney;
|
|
|
|
|
promotionReceivable = this.data.promotionReceivable;
|
|
|
|
|
if (app.globalData.takeOutBoxFeeFlag == 1 || this.data.isBoxFee == 1) {
|
|
|
|
|
sumMoney = parseFloat(parseFloat(sumMoney) - parseFloat(app.orderTicket.boxFee));
|
|
|
|
|
promotionReceivable = parseFloat(parseFloat(promotionReceivable) - parseFloat(app.orderTicket.boxFee));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 1) { // 外带
|
|
|
|
|
if (app.globalData.takeOutBoxFeeFlag == 1 || this.data.isBoxFee == 1) {
|
|
|
|
|
sumMoney = parseFloat(parseFloat(sumMoney) + parseFloat(app.orderTicket.boxFee));
|
|
|
|
|
promotionReceivable = parseFloat(parseFloat(promotionReceivable) + parseFloat(app.orderTicket.boxFee));
|
|
|
|
|
boxFee = app.orderTicket.boxFee;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
|
boxFee: parseFloat(boxFee).toFixed(2),
|
|
|
|
|
receivable: parseFloat(app.orderTicket.receivable).toFixed(2),
|
|
|
|
|
sumMoney: parseFloat(sumMoney).toFixed(2),
|
|
|
|
|
promotionReceivable: parseFloat(promotionReceivable).toFixed(2),
|
|
|
|
|
busMode: app.orderTicket.busMode
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 手动输入手机号
|
|
|
|
|
*/
|
|
|
|
|
cy_bindblur: function (e) {
|
|
|
|
|
console.log(e);
|
|
|
|
|
app.orderTicket.phone = e.detail.value;
|
|
|
|
|
this.setData({
|
|
|
|
|
phone: app.orderTicket.phone,
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取手机号
|
|
|
|
|
*/
|
|
|
|
|
cy_getPhoneNumber: function (e) {
|
|
|
|
|
var that = this;
|
|
|
|
|
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
|
|
|
|
var iv = e.detail.iv;
|
|
|
|
|
var encryptedData = e.detail.encryptedData;
|
|
|
|
|
card.wx_getPhoneNumber(iv, encryptedData, function (json) {
|
|
|
|
|
var result = json.data;
|
|
|
|
|
if (result.status == '1') {
|
|
|
|
|
var data = result.data.data;
|
|
|
|
|
wx.setStorageSync("phone", data.purePhoneNumber);
|
|
|
|
|
app.orderTicket.phone = data.purePhoneNumber;
|
|
|
|
|
app.globalData.phone = data.purePhoneNumber;
|
|
|
|
|
that.setData({
|
|
|
|
|
phone: data.purePhoneNumber,
|
|
|
|
|
isShowPhone: false
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '手机号获取失败,请手动输入',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}, function (err) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '手机号获取失败,请手动输入',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '手机号获取失败,请手动输入',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 备注信息
|
|
|
|
|
*/
|
|
|
|
|
cy_tapInputCommont: function () {
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: 'userComment',
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 支付
|
|
|
|
|
*/
|
|
|
|
|
cy_tapGoPay: function (e) {
|
|
|
|
|
console.error(" app.orderTicket.order ", app.orderTicket)
|
|
|
|
|
this.data.formId = e.detail.formId;
|
|
|
|
|
var tenantId = app.globalData.tenantId;
|
|
|
|
|
|
|
|
|
|
if ("0|1".indexOf(app.orderTicket.busMode) != -1) { // 堂食和外带
|
|
|
|
|
if (tenantId != "571022") {
|
|
|
|
|
if (this.data.isTables) {
|
|
|
|
|
if (app.orderTicket.busMode == 0 && app.orderTicket.tableName == "选择餐桌") {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '请选择餐桌',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/*if (app.orderTicket.busMode == 1 && app.orderTicket.phone.length != 11) {
|
|
|
|
|
var title = '手机号码格式错误';
|
|
|
|
|
if (app.orderTicket.phone.length == 0) {
|
|
|
|
|
title = '请填写联系方式';
|
|
|
|
|
}
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: title,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}*/
|
|
|
|
|
console.log("堂食和外带");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 3) { // 外卖
|
|
|
|
|
console.log("外卖");
|
|
|
|
|
if (!this.data.address) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '请选择收货地址',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
app.orderTicket.reserveTime = this.data.outTime;
|
|
|
|
|
var ticket_deliver = {};
|
|
|
|
|
ticket_deliver.id = "";
|
|
|
|
|
ticket_deliver.orderTel = this.data.receiveMobile;
|
|
|
|
|
ticket_deliver.name = this.data.receiveName;
|
|
|
|
|
ticket_deliver.address = this.data.receiveAddress;
|
|
|
|
|
ticket_deliver.latitude = this.data.address.latitude;
|
|
|
|
|
ticket_deliver.longitude = this.data.address.longitude;
|
|
|
|
|
ticket_deliver.deliverType = this.data.deliverType;
|
|
|
|
|
ticket_deliver.deliverFee = this.data.deliverFee;
|
|
|
|
|
app.orderTicket.ticket_deliver = ticket_deliver;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.data.sumMoney == 0) {
|
|
|
|
|
var that = this;
|
|
|
|
|
if (app.globalData.deliverMoney > 0 && app.orderTicket.busMode == 3) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '不满足外卖起送金额 ¥' + app.globalData.deliverMoney + ' 元 ',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
that.cy_tapWxPay();
|
|
|
|
|
} else {
|
|
|
|
|
//计算会员卡支付优惠价格
|
|
|
|
|
var memberPayDiscountsAmount = 0;
|
|
|
|
|
var wechatPayDisCountsAmount = 0;
|
|
|
|
|
var discountsAmount = 0;
|
|
|
|
|
var jsonString = myOrder.getMemberCreateOrder();
|
|
|
|
|
console.error("jsonString ",jsonString)
|
|
|
|
|
|
|
|
|
|
if (this.data.memberPriceEnabled == 1) {
|
|
|
|
|
for (var map of jsonString.ticket_info) {
|
|
|
|
|
if (map.type == 3) {
|
|
|
|
|
discountsAmount = parseFloat(map.discountMoney);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (app.globalData.deliverMoney > 0 && app.orderTicket.busMode == 3) {
|
|
|
|
|
if (app.globalData.deliverMoney > (this.data.orgPrice - this.data.deliverFee)) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '不满足外卖起送金额 ¥' + app.globalData.deliverMoney + ' 元 ',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (app.globalData.deliverMoney > 0 && app.orderTicket.busMode == 3) {
|
|
|
|
|
if (app.globalData.deliverMoney > (this.data.orgPrice - this.data.deliverFee)) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '不满足外卖起送金额 ¥' + app.globalData.deliverMoney + ' 元 ',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var actualAmount = 0;
|
|
|
|
|
if (this.data.promotionReceivable > 0) {
|
|
|
|
|
//判断优惠为0元的情况
|
|
|
|
|
if (discountsAmount >= this.data.promotionReceivable) {
|
|
|
|
|
//判断是否是堂食打包
|
|
|
|
|
if (this.data.busMode == 1 && this.data.isBoxFee == 1) {
|
|
|
|
|
actualAmount = parseFloat(app.orderTicket.boxFee);
|
|
|
|
|
}
|
|
|
|
|
//判断是否是外卖
|
|
|
|
|
if (this.data.busMode == 3) {
|
|
|
|
|
actualAmount = (parseFloat(app.orderTicket.boxFee) + parseFloat(app.orderTicket.deliverFee)).toFixed(2);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
actualAmount = (parseFloat(this.data.promotionReceivable) - parseFloat(discountsAmount)).toFixed(2)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
actualAmount = parseFloat(this.data.sumMoney - discountsAmount).toFixed(2);
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
payFlag: false,
|
|
|
|
|
discountsAmount: parseFloat(discountsAmount).toFixed(2),
|
|
|
|
|
actualAmount: actualAmount,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.data.is_member_pay == "1") {
|
|
|
|
|
app.orderTicket.isMember = 1;
|
|
|
|
|
}
|
|
|
|
|
app.globalData.isEnablePromotion = this.data.isEnablePromotion;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 零元支付上传
|
|
|
|
|
*/
|
|
|
|
|
cy_uploadOrder: function () {
|
|
|
|
|
console.log("支付上传");
|
|
|
|
|
var that = this;
|
|
|
|
|
var saleDate = app.utils.getFormatTime(new Date(), 1);
|
|
|
|
|
var jsonString = myOrder.getMemberOrder();
|
|
|
|
|
jsonString.paid = 0;
|
|
|
|
|
jsonString.money = 0;
|
|
|
|
|
jsonString.cardNo = "";
|
|
|
|
|
jsonString.payNo = "";
|
|
|
|
|
jsonString.payDate = saleDate;
|
|
|
|
|
jsonString.voucherNo = "";
|
|
|
|
|
jsonString.payTypeNo = "02"; // 付款方式编号
|
|
|
|
|
jsonString.payType = "会员支付"; //会员卡支付
|
|
|
|
|
jsonString.memo = "会员支付"; //
|
|
|
|
|
console.log(jsonString);
|
|
|
|
|
var params = {
|
|
|
|
|
method: "program.order.pay",
|
|
|
|
|
programId: app.globalData.programId, //
|
|
|
|
|
openId: app.openId, //
|
|
|
|
|
busNo: app.orderTicket.tradeNo, //
|
|
|
|
|
jsonString: JSON.stringify(jsonString)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var ignores = ["programId", "openId", "jsonString"];
|
|
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var result = data.data;
|
|
|
|
|
console.log(result);
|
|
|
|
|
if (that.data.coupon) {
|
|
|
|
|
that.cy_elecCouponConsume(app.orderTicket.tradeNo);
|
|
|
|
|
}
|
|
|
|
|
that.cy_programuserweixinformid(app.orderTicket.tradeNo,1);
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 0 || app.orderTicket.busMode == 1) {
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: "paySuccess?init=true&no=" + result.busNo,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 3) {
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: "payOrderSuccess?init=true&no=" + result.busNo,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: data.message,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
function (err) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "网络连接失败,订单上传异常",
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 关闭支付
|
|
|
|
|
*/
|
|
|
|
|
cy_closePay: function () {
|
|
|
|
|
this.setData({
|
|
|
|
|
payFlag: true,
|
|
|
|
|
is_member_pay: 0
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
cy_pay_select: function (e) {
|
|
|
|
|
if (e.currentTarget.dataset.memberpay == "1") {
|
|
|
|
|
if (app.globalData.memberPayEnabled != 1) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "暂不支持会员卡支付",
|
|
|
|
|
icon: "none",
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
app.orderTicket.isMember = 1;
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
app.orderTicket.isMember = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var jsonString = myOrder.getOrder();
|
|
|
|
|
var discountsAmount = 0;
|
|
|
|
|
for (var map of jsonString.ticket_info) {
|
|
|
|
|
if (map.type == 3) {
|
|
|
|
|
discountsAmount = parseFloat(map.discountMoney);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
is_member_pay: e.currentTarget.dataset.memberpay,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
cy_goto_pay: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
if (that.data.isSubmit) {
|
|
|
|
|
that.data.isSubmit = false;
|
|
|
|
|
var int = setTimeout(function () {
|
|
|
|
|
that.data.isSubmit = true;
|
|
|
|
|
}, 2500)
|
|
|
|
|
if (that.data.is_member_pay == 1) {
|
|
|
|
|
var cardInfo = wx.getStorageSync('cardInfo');
|
|
|
|
|
if (cardInfo) {
|
|
|
|
|
if (cardInfo.status != 1) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '会员卡状态不合法,暂无法支付',
|
|
|
|
|
icon: 'none'
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (app.globalData.memberPayEnabled == 1) {
|
|
|
|
|
that.cy_tapMemberPay();
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '暂不支持会员卡支付',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
that.cy_tapWxPay();
|
|
|
|
|
}
|
|
|
|
|
that.cy_closePay();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 会员支付
|
|
|
|
|
*/
|
|
|
|
|
cy_tapMemberPay: function () {
|
|
|
|
|
var cardInfo = wx.getStorageSync("cardInfo");
|
|
|
|
|
if (!cardInfo) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '您还不是会员去注册',
|
|
|
|
|
success: function (res) {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: '../../tabbar/mine',
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (this.data.actualAmount > cardInfo.availableAmount) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '会员余额不足去充值',
|
|
|
|
|
success: function (res) {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: '../../mine/memberBalance',
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var that = this;
|
|
|
|
|
|
|
|
|
|
that.setData({
|
|
|
|
|
msg: "处理中...",
|
|
|
|
|
hidden: false
|
|
|
|
|
})
|
|
|
|
|
app.orderTicket.isMember = 1;
|
|
|
|
|
that.cy_createProgramOrder();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 微信支付
|
|
|
|
|
*/
|
|
|
|
|
cy_tapWxPay: function () {
|
|
|
|
|
this.setData({
|
|
|
|
|
msg: "处理中...",
|
|
|
|
|
hidden: false
|
|
|
|
|
})
|
|
|
|
|
app.orderTicket.isMember = 0;
|
|
|
|
|
this.cy_createProgramOrder();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 创建订单
|
|
|
|
|
*/
|
|
|
|
|
cy_createProgramOrder: function () {
|
|
|
|
|
var jsonString = myOrder.getOrder();
|
|
|
|
|
this.data.jsonString = jsonString;
|
|
|
|
|
console.log("小程序订单创建", jsonString);
|
|
|
|
|
|
|
|
|
|
var payMoney = parseFloat(jsonString.receivable).toFixed(2);
|
|
|
|
|
var sumMoney = 0;
|
|
|
|
|
for (var product of jsonString.order_product) {
|
|
|
|
|
if (product.isSuit != 3) {
|
|
|
|
|
sumMoney = parseFloat(sumMoney) + parseFloat(product.receivableTotal);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sumMoney = parseFloat(sumMoney).toFixed(2);
|
|
|
|
|
|
|
|
|
|
console.log(sumMoney, payMoney);
|
|
|
|
|
|
|
|
|
|
if (payMoney != sumMoney) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '订单金额异常,删除后请重新下单',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!jsonString) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '订单信息异常,删除后请重新下单',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var that = this;
|
|
|
|
|
//校验商品规格库存
|
|
|
|
|
if (jsonString.order_product && jsonString.order_product.length > 0) {
|
|
|
|
|
var productList = jsonString.order_product;
|
|
|
|
|
var specIds = "";
|
|
|
|
|
var counts = "";
|
|
|
|
|
var storeId = jsonString.storeId;
|
|
|
|
|
for (var productItem of productList) {
|
|
|
|
|
specIds += "," + productItem.specId;
|
|
|
|
|
counts += "," + productItem.count;
|
|
|
|
|
}
|
|
|
|
|
var params = {
|
|
|
|
|
method: "program.spec.stock.check",
|
|
|
|
|
storeId: storeId,
|
|
|
|
|
specIds: specIds,
|
|
|
|
|
// counts:counts
|
|
|
|
|
};
|
|
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, [], function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status != 1) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "" + data.message,
|
|
|
|
|
icon: "none",
|
|
|
|
|
duration: 3000
|
|
|
|
|
})
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
|
|
|
|
if (app.orderTicket.isMember == 0) { // 微信支付
|
|
|
|
|
if (app.globalData.deductionRate && app.globalData.deductionRate != undefined) {
|
|
|
|
|
jsonString.deductionRate = app.globalData.deductionRate;
|
|
|
|
|
jsonString.chargeBack = that.data.sumMoney * app.globalData.deductionRate
|
|
|
|
|
}
|
|
|
|
|
} else if (app.orderTicket.isMember == 1) { //会员卡支付
|
|
|
|
|
if (app.globalData.memberDeductionRate && app.globalData.memberDeductionRate != undefined) {
|
|
|
|
|
jsonString.deductionRate = app.globalData.memberDeductionRate;
|
|
|
|
|
jsonString.chargeBack = jsonString.receivable * app.globalData.memberDeductionRate
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log("--------------", jsonString);
|
|
|
|
|
var params = {
|
|
|
|
|
method: "program.order.create",
|
|
|
|
|
programId: app.globalData.programId,
|
|
|
|
|
openId: app.openId,
|
|
|
|
|
jsonString: JSON.stringify(jsonString)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var ignores = ["programId", "openId", "jsonString"];
|
|
|
|
|
// app.globalData.serverUrl
|
|
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
app.orderTicket.tradeNo = data.data.busNo;
|
|
|
|
|
app.orderTicket.ticketId = data.data.ticketId;
|
|
|
|
|
|
|
|
|
|
if (that.data.sumMoney == 0) {
|
|
|
|
|
that.cy_uploadOrder();
|
|
|
|
|
} else {
|
|
|
|
|
if (app.orderTicket.isMember == 0) { // 微信支付
|
|
|
|
|
that.cy_programWeixinPay();
|
|
|
|
|
} else if (app.orderTicket.isMember == 1) { //会员卡支付
|
|
|
|
|
that.cy_memberCreateVoucherNoPlatform();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: data.message,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}, function (err) {
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}, function (err) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '网络异常',
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '订单信息异常,下单商品有问题请重新下单',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 统一订单创建
|
|
|
|
|
*/
|
|
|
|
|
cy_memberCreateVoucherNoPlatform: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
that.setData({
|
|
|
|
|
msg: "处理中...",
|
|
|
|
|
hidden: false
|
|
|
|
|
})
|
|
|
|
|
var saleDate = app.utils.getFormatTime(new Date(), 1);
|
|
|
|
|
var goodsDetails = [];
|
|
|
|
|
for (var product of this.data.jsonString.order_product) {
|
|
|
|
|
var detail = {};
|
|
|
|
|
detail.goodsId = product.productId;
|
|
|
|
|
detail.name = product.productName;
|
|
|
|
|
detail.spec = product.specName;
|
|
|
|
|
detail.quantity = product.count;
|
|
|
|
|
detail.discountMoney = product.discountTotal;
|
|
|
|
|
detail.money = product.receivable;
|
|
|
|
|
goodsDetails.push(detail);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var money = parseInt((this.data.jsonString.receivable * 100).toFixed(2));
|
|
|
|
|
if (app.orderTicket.busMode == 1) {
|
|
|
|
|
money = parseInt((this.data.jsonString.receivable * 100).toFixed(2)) + parseInt((this.data.jsonString.packageFee * 100).toFixed(0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 3) {
|
|
|
|
|
money = parseInt((this.data.jsonString.receivable * 100).toFixed(0)) + parseInt((this.data.jsonString.deliverFee * 100).toFixed(0)) + parseInt((this.data.jsonString.packageFee * 100).toFixed(0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var params = {
|
|
|
|
|
method: "jw.trade.create.voucherNo.platform",
|
|
|
|
|
tradeNo: app.orderTicket.tradeNo,
|
|
|
|
|
saleDate: saleDate,
|
|
|
|
|
subject: app.openId,
|
|
|
|
|
totalAmount: money,
|
|
|
|
|
amount: money,
|
|
|
|
|
shopId: app.orderTicket.storeId,
|
|
|
|
|
cardNo: app.globalData.cardNo,
|
|
|
|
|
body: "微信小程序点餐",
|
|
|
|
|
sourceSign: "wechat",
|
|
|
|
|
goodsDetails: JSON.stringify(goodsDetails)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(params);
|
|
|
|
|
var ignores = ["body", "sourceSign", "goodsDetails"];
|
|
|
|
|
// app.globalData.memberUrl
|
|
|
|
|
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret, app.globalData.memberUrl).ajax(params, ignores,
|
|
|
|
|
function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var result = data.data;
|
|
|
|
|
that.cy_memberJwtradepayplatform(result);
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: data.errMessage,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
function (err) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '网络连接异常',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 会员卡统一收单支付
|
|
|
|
|
*/
|
|
|
|
|
cy_memberJwtradepayplatform: function (tempData) {
|
|
|
|
|
var that = this;
|
|
|
|
|
var cardInfo = wx.getStorageSync("cardInfo");
|
|
|
|
|
// 卡支付明细
|
|
|
|
|
var cardPayInfo = [{
|
|
|
|
|
prepayment: tempData.prepayment,
|
|
|
|
|
cardNo: app.globalData.cardNo,
|
|
|
|
|
amount: tempData.totalAmount
|
|
|
|
|
}];
|
|
|
|
|
// 支付方式
|
|
|
|
|
var pays = [{
|
|
|
|
|
payTypeNo: "02",
|
|
|
|
|
payType: "会员卡",
|
|
|
|
|
money: tempData.totalAmount,
|
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
// 优惠券明细
|
|
|
|
|
var coupon = that.data.coupon;
|
|
|
|
|
var coupons = [];
|
|
|
|
|
console.log(coupon)
|
|
|
|
|
if (coupon) {
|
|
|
|
|
var tempCoupon = {
|
|
|
|
|
couponId: coupon.couponId,
|
|
|
|
|
couponType: coupon.cardType,
|
|
|
|
|
title: coupon.title,
|
|
|
|
|
code: coupon.code,
|
|
|
|
|
cash: parseFloat(coupon.amount)
|
|
|
|
|
}
|
|
|
|
|
coupons.push(tempCoupon);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var params = {
|
|
|
|
|
method: "jw.trade.pay.platform",
|
|
|
|
|
tradeVoucherNo: tempData.tradeVoucherNo, // 交易参考号(预支付生成的订单号)
|
|
|
|
|
tradeNo: tempData.tradeNo, // 商户订单号
|
|
|
|
|
totalAmount: tempData.totalAmount, // 订单总金额(精确到分)
|
|
|
|
|
payCardAmount: tempData.totalAmount, // 刷卡总金额(精确到分)
|
|
|
|
|
pointAmount: tempData.totalAmount, // 参与积分运算总金额(精确到分)
|
|
|
|
|
shopId: app.orderTicket.storeId, //
|
|
|
|
|
memberId: cardInfo.memberId,
|
|
|
|
|
mobile: cardInfo.mobile, //
|
|
|
|
|
realAmount: tempData.totalAmount, // 实收总金额(精确到分)
|
|
|
|
|
programId:app.globalData.programId,
|
|
|
|
|
// couponTotalAmount: "", // 优惠券总金额(精确到分)
|
|
|
|
|
cardPayInfo: JSON.stringify(cardPayInfo), // 卡支付明细(参数值为JSON字符串,如果刷卡金额大于0,此项必填)
|
|
|
|
|
pays: JSON.stringify(pays), // 支付方式明细(参数值为JSON字符串)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (coupon) {
|
|
|
|
|
params.coupons = JSON.stringify(coupons);
|
|
|
|
|
params.couponTotalAmount = coupon.reduceCost;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log("----------------", params);
|
|
|
|
|
var ignores = ["memberId", "mobile", "realAmount", "cardPayInfo", "pays", "coupons", "couponTotalAmount"];
|
|
|
|
|
// app.globalData.memberUrl
|
|
|
|
|
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret, app.globalData.memberUrl).ajax(params, ignores,
|
|
|
|
|
function (json) {
|
|
|
|
|
console.log("会员卡统一支付");
|
|
|
|
|
console.log("------------", json);
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var result = data.data;
|
|
|
|
|
if (that.data.coupon) {
|
|
|
|
|
that.cy_elecCouponConsume(app.orderTicket.tradeNo);
|
|
|
|
|
}
|
|
|
|
|
that.cy_programuserweixinformid(app.orderTicket.tradeNo,1);
|
|
|
|
|
var data = JSON.stringify(result);
|
|
|
|
|
if (app.orderTicket.busMode == 0 || app.orderTicket.busMode == 1) {
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: "paySuccess?init=true&isMemberPay=true&tempData=" + data,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 3) {
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: "payOrderSuccess?init=true&isMemberPay=true&tempData=" + data,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: data.message,
|
|
|
|
|
icon: "none",
|
|
|
|
|
})
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
function (err) {
|
|
|
|
|
console.log(err);
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 支付点上传
|
|
|
|
|
*/
|
|
|
|
|
cy_programorderpay: function (tempData) {
|
|
|
|
|
console.log("支付上传");
|
|
|
|
|
var that = this;
|
|
|
|
|
var saleDate = app.utils.getFormatTime(new Date(), 1);
|
|
|
|
|
var payCard = tempData.cardList[0];
|
|
|
|
|
var jsonString = myOrder.getMemberOrder();
|
|
|
|
|
jsonString.paid = app.utils.getTwo(payCard.amount / 100);
|
|
|
|
|
jsonString.money = app.utils.getTwo(payCard.amount / 100);
|
|
|
|
|
jsonString.cardNo = payCard.cardNo;
|
|
|
|
|
jsonString.payNo = payCard.tradeVoucherNo;
|
|
|
|
|
jsonString.payDate = saleDate;
|
|
|
|
|
jsonString.voucherNo = tempData.tradeVoucherNo;
|
|
|
|
|
console.log(jsonString);
|
|
|
|
|
var params = {
|
|
|
|
|
method: "program.order.pay",
|
|
|
|
|
programId: app.globalData.programId, //
|
|
|
|
|
openId: app.openId, //
|
|
|
|
|
busNo: tempData.tradeNo, //
|
|
|
|
|
jsonString: JSON.stringify(jsonString)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var ignores = ["programId", "openId", "jsonString"];
|
|
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var result = data.data;
|
|
|
|
|
console.log(result);
|
|
|
|
|
if (app.orderTicket.busMode == 0 || app.orderTicket.busMode == 1) {
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: "paySuccess?init=true&no=" + result.busNo,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 3) {
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: "payOrderSuccess?init=true&no=" + result.busNo,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: data.message,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
function (err) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: "网络连接失败,订单上传异常",
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取微信JSAPI支付参数
|
|
|
|
|
*/
|
|
|
|
|
cy_programWeixinPay: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
var amount = parseFloat(that.data.jsonString.receivable);
|
|
|
|
|
if (app.orderTicket.busMode == 1) { // 外带
|
|
|
|
|
amount = parseFloat(that.data.jsonString.receivable) + parseFloat(this.data.jsonString.packageFee);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 3) { // 外卖
|
|
|
|
|
amount = parseFloat(this.data.jsonString.receivable) + parseFloat(this.data.jsonString.deliverFee) + parseFloat(this.data.jsonString.packageFee);
|
|
|
|
|
}
|
|
|
|
|
console.log("amount", amount);
|
|
|
|
|
|
|
|
|
|
var params = {
|
|
|
|
|
method: "program.weixin.pay",
|
|
|
|
|
storeId: app.orderTicket.storeId,
|
|
|
|
|
programId: app.globalData.programId,
|
|
|
|
|
appid: app.globalData.appid,
|
|
|
|
|
openId: app.openId,
|
|
|
|
|
tradeNo: app.orderTicket.tradeNo,
|
|
|
|
|
amount: parseFloat(amount).toFixed(2),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log("获取微信JSAPI支付参数", params);
|
|
|
|
|
var ignores = ["appid", "openId", "tradeNo", "amount"];
|
|
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
var param = data.data;
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
that.cy_wxpay(param);
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: data.message,
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}, function (err) {
|
|
|
|
|
console.log(err);
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 拉起微信支付
|
|
|
|
|
*/
|
|
|
|
|
cy_wxpay: function (param) {
|
|
|
|
|
console.log(param);
|
|
|
|
|
var that = this;
|
|
|
|
|
wx.requestPayment({
|
|
|
|
|
'timeStamp': param.timeStamp,
|
|
|
|
|
'nonceStr': param.nonceStr,
|
|
|
|
|
'package': param.package,
|
|
|
|
|
'signType': param.signType,
|
|
|
|
|
'paySign': param.paySign,
|
|
|
|
|
success: function (res) {
|
|
|
|
|
console.log("cy_wxpay-success", res);
|
|
|
|
|
var num = 0;
|
|
|
|
|
that.data.inter = setInterval(function () {
|
|
|
|
|
if (num < 25) {
|
|
|
|
|
that.cy_queryWXPayReult();
|
|
|
|
|
} else {
|
|
|
|
|
clearInterval(that.data.inter);
|
|
|
|
|
}
|
|
|
|
|
}, 300)
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
fail: function (res) {
|
|
|
|
|
app.msg.showMsg("提示", "微信支付失败");
|
|
|
|
|
},
|
|
|
|
|
complete: function (res) {
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true,
|
|
|
|
|
});
|
|
|
|
|
console.log("cy_wxpay-complete", res);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询微信支付结果
|
|
|
|
|
*/
|
|
|
|
|
cy_queryWXPayReult: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
var params = {
|
|
|
|
|
method: "program.weixin.pay.query",
|
|
|
|
|
storeId: app.orderTicket.storeId,
|
|
|
|
|
programId: app.globalData.programId,
|
|
|
|
|
tradeNo: app.orderTicket.tradeNo
|
|
|
|
|
}
|
|
|
|
|
console.log(params);
|
|
|
|
|
var ignores = ["tradeNo"];
|
|
|
|
|
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
var data = json.data;
|
|
|
|
|
if (data.status == 1) {
|
|
|
|
|
if (that.data.coupon) {
|
|
|
|
|
that.cy_elecCouponConsume(app.orderTicket.tradeNo);
|
|
|
|
|
}
|
|
|
|
|
that.cy_programuserweixinformid(app.orderTicket.tradeNo,2);
|
|
|
|
|
if (app.orderTicket.busMode == 0 || app.orderTicket.busMode == 1) {
|
|
|
|
|
clearInterval(that.data.inter);
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: 'paySuccess?init=true&no=' + app.orderTicket.tradeNo,
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (app.orderTicket.busMode == 3) {
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url: "payOrderSuccess?init=true&no=" + app.orderTicket.tradeNo,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console.error(json);
|
|
|
|
|
}
|
|
|
|
|
}, function (err) {
|
|
|
|
|
console.log(err);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 提交fromId
|
|
|
|
|
*/
|
|
|
|
|
cy_programuserweixinformid: function (busNo,consumeType) {
|
|
|
|
|
var that=this;
|
|
|
|
|
wx.requestSubscribeMessage({
|
|
|
|
|
tmplIds:app.globalData.diancanTemplateMsgList,
|
|
|
|
|
success: function (params) {
|
|
|
|
|
var amount = 0;
|
|
|
|
|
var type = "";
|
|
|
|
|
if (consumeType== 1) {
|
|
|
|
|
amount = that.data.actualAmount;
|
|
|
|
|
type = "会员卡支付"
|
|
|
|
|
} else {
|
|
|
|
|
amount = that.data.sumMoney;
|
|
|
|
|
type = "微信支付";
|
|
|
|
|
}
|
|
|
|
|
var data = {
|
|
|
|
|
'openId': wx.getStorageSync('openId'),
|
|
|
|
|
'formId': that.data.formId,
|
|
|
|
|
'wid': app.globalData.memberWid,
|
|
|
|
|
'sendType': "consume",
|
|
|
|
|
'method': 'get.smweixin.formId',
|
|
|
|
|
'amount': amount,
|
|
|
|
|
'busNo': busNo,
|
|
|
|
|
'message': that.data.storeName+"("+type+")",
|
|
|
|
|
'memberId': wx.getStorageSync('memberId')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var ignores = ["message"];
|
|
|
|
|
// app.globalData.memberUrl
|
|
|
|
|
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret,app.globalData.memberUrl ).ajax(data, ignores,
|
|
|
|
|
function (json) { },
|
|
|
|
|
function (error) { })
|
|
|
|
|
},
|
|
|
|
|
fail: function (params) {
|
|
|
|
|
console.error(" error ", params)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************************** */
|
|
|
|
|
|
|
|
|
|
cy_clear_gift_product: function (list) {
|
|
|
|
|
//先清除上次的赠送商品
|
|
|
|
|
if (list && list.length > 0) {
|
|
|
|
|
var tagList = [];
|
|
|
|
|
for (var index = 0; index < list.length; index++) {
|
|
|
|
|
if (!list[index].giftProduct || list[index].giftProduct != "1") {
|
|
|
|
|
tagList.push(list[index]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
list: tagList
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
//清除订单商品
|
|
|
|
|
app.orderTicket.orderList = tagList;
|
|
|
|
|
return tagList;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 使用优惠券
|
|
|
|
|
*/
|
|
|
|
|
cy_selectUseCoupon: function (coupon) {
|
|
|
|
|
console.error("券-----", coupon)
|
|
|
|
|
//先清除上次的赠送商品
|
|
|
|
|
var list = this.data.list;
|
|
|
|
|
list = this.cy_clear_gift_product(list);
|
|
|
|
|
|
|
|
|
|
console.log(app.orderTicket);
|
|
|
|
|
if (coupon.cardType == "CASH" && parseFloat(coupon.amount) > app.orderTicket.receivable) {
|
|
|
|
|
coupon.amount = app.orderTicket.amount;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (coupon.cardType == "GIFT" && coupon.giftType == "2") {
|
|
|
|
|
var gift = JSON.parse(coupon.gift);
|
|
|
|
|
if (coupon.totalBoxPrice && coupon.totalBoxPrice > 0) {
|
|
|
|
|
app.orderTicket.boxFee = (parseFloat(app.orderTicket.boxFee) + parseFloat(coupon.totalBoxPrice)).toFixed(2);
|
|
|
|
|
this.setData({
|
|
|
|
|
boxFee: app.orderTicket.boxFee
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
list = myOrder.giftProductAddOrderProduct(gift, list, coupon);
|
|
|
|
|
this.setData({
|
|
|
|
|
list: list
|
|
|
|
|
});
|
|
|
|
|
coupon.amount = 0;
|
|
|
|
|
}
|
|
|
|
|
app.orderTicket.coupon = coupon;
|
|
|
|
|
this.setData({
|
|
|
|
|
coupon: coupon
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
onShow: function () {
|
|
|
|
|
//this.cy_selectCardInfo();
|
|
|
|
|
app.orderTicket.busMode = wx.getStorageSync('mode') || app.orderTicket.busMode;
|
|
|
|
|
log.info('app.orderTicket.busMode: ' + app.orderTicket.busMode);
|
|
|
|
|
this.setData({
|
|
|
|
|
busMode: app.orderTicket.busMode
|
|
|
|
|
});
|
|
|
|
|
var coupon = this.data.coupon;
|
|
|
|
|
var reduceCost = 0;
|
|
|
|
|
var sumMoney = parseFloat(parseFloat(app.orderTicket.receivable).toFixed(2));
|
|
|
|
|
var promotionReceivable = parseFloat(parseFloat(app.orderTicket.promotionReceivable).toFixed(2));
|
|
|
|
|
if (coupon) {
|
|
|
|
|
if (coupon.cardType == "CASH") {
|
|
|
|
|
reduceCost = parseFloat(coupon.amount);
|
|
|
|
|
} else if (coupon.cardType == "DISCOUNT") {
|
|
|
|
|
reduceCost = parseFloat(app.orderTicket.receivable) * (1 - parseFloat(coupon.amount) / 10);
|
|
|
|
|
}
|
|
|
|
|
//判断促销商品使用了兑换券 且兑换券的金额大于促销价直接价格为0 并且券的金额为促销价金额
|
|
|
|
|
if (app.orderTicket.promotionFlag == 1 && app.orderTicket.promotionReceivable > 0) {
|
|
|
|
|
if (reduceCost >= app.orderTicket.promotionReceivable) {
|
|
|
|
|
reduceCost = parseFloat(app.orderTicket.promotionReceivable);
|
|
|
|
|
sumMoney = 0;
|
|
|
|
|
coupon.amount = reduceCost;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.data.busMode == 0) { // 堂食
|
|
|
|
|
if (app.orderTicket.promotionFlag == 1) {
|
|
|
|
|
promotionReceivable = parseFloat((promotionReceivable - reduceCost).toFixed(2));
|
|
|
|
|
} else sumMoney = parseFloat((sumMoney - reduceCost).toFixed(2));
|
|
|
|
|
} else if (this.data.busMode == 1) { // 打包
|
|
|
|
|
if (app.globalData.takeOutBoxFeeFlag == 1 || this.data.isBoxFee == 1) {
|
|
|
|
|
if (this.data.isBoxFee == 1) {
|
|
|
|
|
sumMoney = (sumMoney + parseFloat(app.orderTicket.boxFee)).toFixed(2);
|
|
|
|
|
if (app.orderTicket.promotionFlag == 1) {
|
|
|
|
|
promotionReceivable = (promotionReceivable + parseFloat(app.orderTicket.boxFee)).toFixed(2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
boxFee: parseFloat(app.orderTicket.boxFee)
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
if (this.data.isBoxFee != 1) {
|
|
|
|
|
this.setData({
|
|
|
|
|
boxFee: 0
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (app.orderTicket.promotionFlag == 1) {
|
|
|
|
|
promotionReceivable = parseFloat((promotionReceivable - reduceCost).toFixed(2));
|
|
|
|
|
} else sumMoney = parseFloat((sumMoney - reduceCost).toFixed(2));
|
|
|
|
|
} else if (this.data.busMode == 3) { // 外卖
|
|
|
|
|
if (app.orderTicket.promotionFlag == 1) {
|
|
|
|
|
var store = wx.getStorageSync("store");
|
|
|
|
|
var deliverFee = store.deliverFee;
|
|
|
|
|
if (!coupon) {
|
|
|
|
|
sumMoney = parseFloat(app.orderTicket.receivable) + parseFloat(app.orderTicket.boxFee) + parseFloat(deliverFee);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
promotionReceivable = (promotionReceivable + parseFloat(app.orderTicket.boxFee) + parseFloat(app.orderTicket.deliverFee)).toFixed(2);
|
|
|
|
|
promotionReceivable = parseFloat((promotionReceivable - reduceCost).toFixed(2));
|
|
|
|
|
} else {
|
|
|
|
|
sumMoney = (sumMoney + parseFloat(app.orderTicket.boxFee) + parseFloat(app.orderTicket.deliverFee)).toFixed(2);
|
|
|
|
|
sumMoney = parseFloat((sumMoney - reduceCost).toFixed(2));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
deliverFee: parseFloat(app.orderTicket.deliverFee),
|
|
|
|
|
reduceCost: reduceCost.toFixed(2),
|
|
|
|
|
sumMoney: sumMoney,
|
|
|
|
|
tableName: app.orderTicket.tableName,
|
|
|
|
|
tableNo: app.orderTicket.tableNo,
|
|
|
|
|
memberPriceEnabled: app.globalData.memberPriceEnabled,
|
|
|
|
|
promotionReceivable: promotionReceivable
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 查询卡信息
|
|
|
|
|
*/
|
|
|
|
|
cy_selectCardInfo: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
card.wx_cardInfo(app.globalData.cardNo, function (json) {
|
|
|
|
|
console.log(json);
|
|
|
|
|
var result = json.data;
|
|
|
|
|
if (result.status == 1) {
|
|
|
|
|
var cardInfo = result.data;
|
|
|
|
|
wx.setStorageSync("cardInfo", cardInfo);
|
|
|
|
|
app.globalData.cardInfo = cardInfo;
|
|
|
|
|
that.setData({
|
|
|
|
|
availableAmount: cardInfo.availableAmount,
|
|
|
|
|
totalPoint: cardInfo.totalPoint,
|
|
|
|
|
level: cardInfo.level,
|
|
|
|
|
couponNum: cardInfo.couponNum
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '错误',
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}, function (err) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: '网络链接失败',
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 使用代金券
|
|
|
|
|
*/
|
|
|
|
|
cy_useCoupon: function () {
|
|
|
|
|
if (this.data.couponList.length == 0) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '暂无可用优惠券',
|
|
|
|
|
icon: "none"
|
|
|
|
|
})
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (this.data.isEnablePromotion == 1) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: "促销价不能跟其他优惠叠加是否继续使用 ? ",
|
|
|
|
|
success(res) {
|
|
|
|
|
if (!res.confirm) {
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
this.setData({
|
|
|
|
|
isEnablePromotion: 0
|
|
|
|
|
});
|
|
|
|
|
this.cy_click_promotion();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
var url = "useCoupon?money=" + this.data.sumMoney + "&list=" + JSON.stringify(this.data.couponList);
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: url,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 备注
|
|
|
|
|
*/
|
|
|
|
|
cy_inputComment: function () {
|
|
|
|
|
var url = "userComment?comment=" + this.data.comment + "&busMode=" + this.data.busMode;
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: url,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 优惠券核销
|
|
|
|
|
*/
|
|
|
|
|
cy_elecCouponConsume: function (tradeNo) {
|
|
|
|
|
var that = this;
|
|
|
|
|
var coupon = that.data.coupon;
|
|
|
|
|
|
|
|
|
|
var worth = coupon.reduceCost;
|
|
|
|
|
if (worth && worth > 0) {
|
|
|
|
|
worth = parseInt(coupon.reduceCost);
|
|
|
|
|
} else {
|
|
|
|
|
worth = 0;
|
|
|
|
|
}
|
|
|
|
|
var params = {
|
|
|
|
|
"method": "elec.coupon.consume.mobile",
|
|
|
|
|
"tradeNo": tradeNo,
|
|
|
|
|
"code": coupon.code,
|
|
|
|
|
"cardNo": app.globalData.cardNo,
|
|
|
|
|
"openid": app.openId,
|
|
|
|
|
"type": "zizhu",
|
|
|
|
|
"amount": parseInt(app.orderTicket.amount * 100), // 消费金额
|
|
|
|
|
"worth": worth, // 优惠券价值
|
|
|
|
|
"shopNo": app.orderTicket.storeNo, //
|
|
|
|
|
"posNo": app.globalData.posNo, //
|
|
|
|
|
"workerNo": app.globalData.workerNo, //
|
|
|
|
|
"sourceSign": "wechat", //
|
|
|
|
|
};
|
|
|
|
|
console.log(params);
|
|
|
|
|
var ignores = ["tradeNo"];
|
|
|
|
|
//
|
|
|
|
|
app.jsapi.memberApi(app.globalData.memberAppKey, app.globalData.memberAppSecret, app.globalData.memberUrl).ajax(params, ignores,
|
|
|
|
|
function (json) {
|
|
|
|
|
console.log("优惠券核销", json);
|
|
|
|
|
},
|
|
|
|
|
function (error) {
|
|
|
|
|
that.setData({
|
|
|
|
|
hidden: true,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
onHide: function () { },
|
|
|
|
|
|
|
|
|
|
onUnload: function () {
|
|
|
|
|
var that = this;
|
|
|
|
|
clearInterval(that.data.inter);
|
|
|
|
|
app.orderTicket.busMode = that.data.busMode;
|
|
|
|
|
that.data.busMode = 0;
|
|
|
|
|
that.data.isBoxFee = 0;
|
|
|
|
|
app.globalData.userIsFee = 0;
|
|
|
|
|
that.cy_clear_gift_product(that.data.list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
})
|