/** * 外卖计算餐盒费 */ var getBoxFee = function(order) { var boxFee = 0.0; if (order) { for (var key in order.dishes) { var dish = order.dishes[key]; if (!dish.isSuit) { // 非套餐模式计算餐盒费 if (dish.boxPrice) { boxFee = parseFloat(boxFee + dish.boxPrice * dish.num); } } else { // 套餐模式计算餐盒费 console.log(dish); var specs = dish.specs; for (var ckey in specs) { var cValues = specs[ckey]; var suitDetails = cValues.suitDetails; for (var i = 0; i < suitDetails.length; i++) { var tDetail = suitDetails[i]; if (tDetail.boxPrice) { boxFee = parseFloat(boxFee + dish.boxPrice * dish.num); } } } } } } return boxFee.toFixed(2); } /** * 外卖计算配送费 */ var getDeliverFee = function(store) { var deliverFee = 0.0; if (store) { if (store.deliverFee) { deliverFee = store.deliverFee; } } return deliverFee.toFixed(2); } /** * 订单封装增加餐盒费+配送费 */ var getTotal = function(order) { var total = 0.0; var memberAmount = 0.0; for (var key in order.dishes) { var dish = order.dishes[key]; total = total + dish.amount; console.log("订单总金额:", dish); memberAmount = memberAmount + dish.memberAmount; } console.log("订单总金额:", total); if (order.busMode == 1) { // 外带 total = total + parseFloat(order.boxFee); memberAmount = memberAmount + parseFloat(order.boxFee); } else if (order.busMode == 2) { // 外卖 total = total + parseFloat(order.boxFee) + parseFloat(order.distributionFee); memberAmount = memberAmount + parseFloat(order.boxFee) + parseFloat(order.distributionFee); } console.log("订单总金额:", total); order.totalCash = parseFloat(total).toFixed(2); order.totalMemberCash = parseFloat(memberAmount).toFixed(2); } /** * 规则 */ var getDefaultOrderTicket = function() { var orderTicket = {}; orderTicket.sumCount = 0; orderTicket.sumMoney = 0; orderTicket.storeName = ""; orderTicket.storeId = ""; orderTicket.storeNo = ""; orderTicket.people = 1; orderTicket.ext2 = ""; orderTicket.discount = 0; orderTicket.openId = wx.getStorageSync("openId"); orderTicket.orderList = []; return orderTicket; } module.exports = { getBoxFee: getBoxFee, getDeliverFee: getDeliverFee, getTotal: getTotal, getDefaultOrderTicket: getDefaultOrderTicket }