From 7ec998fe0bfc7c0366e52ed5389ae48faabf61f1 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 13 Jan 2021 18:02:05 +0800
Subject: [PATCH] modify
---
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java | 52 +++-
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html | 223 ++++++++++++++++-----
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java | 26 ++
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html | 8
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 14
zq-erp/src/main/java/com/matrix/system/hive/bean/SysInstoreInfo.java | 1
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 222 ++++++++++++++-------
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml | 2
8 files changed, 386 insertions(+), 162 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
index e9db49e..cb1407a 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -42,6 +42,7 @@
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.List;
/**
@@ -138,6 +139,7 @@
SysUsers user = getMe();
sysOrder.setShopId(user.getShopId());
sysOrder.setStatu(Dictionary.ORDER_STATU_TK);
+ sysOrder.setOrderTime(new Date());
//校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新
sysOrder = orderService.checkAndSaveOrder(sysOrder);
orderService.refundOrderMoney(sysOrder);
@@ -371,22 +373,18 @@
return "admin/hive/beautySalon/point-order";
}
- /**
- * 跳转 消费流水详情页面
- *
- * @author jyy
- */
- @RequestMapping(value = "/orderItem")
- public String orderItem(SysOrder orderVo) {
+ @RequestMapping(value = "/findOrderDetailByIdOrNo")
+ @ResponseBody
+ public AjaxResult findOrderDetailByIdOrNo(SysOrder orderVo) {
// 根据id查到对应的订单信息
SysOrder order=null;
if(orderVo.getId()!=null){
- order = orderService.findById(orderVo.getId());
+ order = orderService.findById(orderVo.getId());
}else if(StringUtils.isNotBlank(orderVo.getOrderNo())){
- List<SysOrder> byModel = orderService.findByModel(orderVo);
- if(byModel.size()==1){
- order=orderService.findById(byModel.get(0).getId());
- }
+ List<SysOrder> byModel = orderService.findByModel(orderVo);
+ if(byModel.size()==1){
+ order=orderService.findById(byModel.get(0).getId());
+ }
}
List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(order.getId());
order.setItems(sysOrderItems);
@@ -406,12 +404,30 @@
List<SysOrderFlow> payMethods = sysOrderFlowService.findPayMethodsAmount(order.getId());
List<AchieveNew> achieveList = achieveNewService.findOrderItemAchieve(order.getId());
- WebUtil.getRequest().setAttribute("orderItems", orderItems);
- WebUtil.getRequest().setAttribute("order", order);
- WebUtil.getRequest().setAttribute("cards", cards);
- WebUtil.getRequest().setAttribute("vipInfo", vipInfo);
- WebUtil.getRequest().setAttribute("payMethods", payMethods);
- WebUtil.getRequest().setAttribute("achieveList", achieveList);
+
+ AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+ ajaxResult.putInMap("orderItems", orderItems);
+ ajaxResult.putInMap("order", order);
+ ajaxResult.putInMap("cards", cards);
+ ajaxResult.putInMap("vipInfo", vipInfo);
+ ajaxResult.putInMap("payMethods", payMethods);
+ ajaxResult.putInMap("achieveList", achieveList);
+ return ajaxResult;
+ }
+
+ /**
+ * 跳转 消费流水详情页面
+ *
+ * @author jyy
+ */
+ @RequestMapping(value = "/orderItem")
+ public String orderItem(SysOrder orderVo) {
+
+ if(orderVo.getId()!=null){
+ WebUtil.getRequest().setAttribute("orderParam", orderVo.getId());
+ }else if(StringUtils.isNotBlank(orderVo.getOrderNo())){
+ WebUtil.getRequest().setAttribute("orderParam", orderVo.getOrderNo());
+ }
return "admin/hive/beautySalon/orderXq-form";
}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysInstoreInfo.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysInstoreInfo.java
index 5974dbb..266437e 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysInstoreInfo.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysInstoreInfo.java
@@ -18,6 +18,7 @@
private static final long serialVersionUID = 1L;
+ public static final String INSTORE_TYPE_RETURN = "退货入库";
/**
* 序号
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java
index dc1bdea..c572e30 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java
@@ -129,6 +129,32 @@
*/
private int preCount;
+ /**
+ * 是否退库存
+ */
+ private String isReturnStore;
+
+ /**
+ * 退款时,原itemid
+ */
+ private Long oldItemId;
+
+ public Long getOldItemId() {
+ return oldItemId;
+ }
+
+ public void setOldItemId(Long oldItemId) {
+ this.oldItemId = oldItemId;
+ }
+
+ public String getIsReturnStore() {
+ return isReturnStore;
+ }
+
+ public void setIsReturnStore(String isReturnStore) {
+ this.isReturnStore = isReturnStore;
+ }
+
public int getPreCount() {
return preCount;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
index 520998d..98cdde4 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -225,14 +225,6 @@
achieveNewList.add(achieveNew);
}
}
- } else {
- // 如果该订单明细没有设置美疗师则单独设置顾问业绩
- AchieveNew achieveNew = new AchieveNew();
- // 顾问业绩等于收款金额
- achieveNew.setT1(orderItem.getPayMoney() + "");
- buildAchieve(pageOrder, orderItem, achieveNew);
- // 新增顾问业绩
- achieveNewList.add(achieveNew);
}
}
}
@@ -245,6 +237,12 @@
ShoppingGoodsDao shoppingGoodsDao;
private void buildAchieve(SysOrder pageOrder, SysOrderItem orderItem, AchieveNew achieveNew) {
+ if (Dictionary.ORDER_STATU_TK.equals(pageOrder.getStatu())) {
+ achieveNew.setId(null);
+ achieveNew.setProjPercentage(0 - achieveNew.getProjPercentage());
+ achieveNew.setT1((0 - Double.parseDouble(achieveNew.getT1())) + "");
+ }
+
achieveNew.setVipId(pageOrder.getVipId());
achieveNew.setSaleId(pageOrder.getStaffId());
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 2afd6ee..4a5ebcc 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -25,16 +25,14 @@
import com.matrix.system.hive.pojo.CzXkVo;
import com.matrix.system.hive.pojo.ShoppingCarItem;
import com.matrix.system.hive.pojo.ShoppingCarItemsVo;
-import com.matrix.system.hive.service.AchieveNewService;
-import com.matrix.system.hive.service.CodeService;
-import com.matrix.system.hive.service.ShoppingGoodsService;
-import com.matrix.system.hive.service.SysOrderService;
+import com.matrix.system.hive.service.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpSession;
+import javax.validation.constraints.NotEmpty;
import java.util.*;
/**
@@ -95,6 +93,18 @@
@Autowired
private SysOrderFlowDao sysOrderFlowDao;
+
+ @Autowired
+ private SysSupplierInfoDao sysSupplierInfoDao;
+
+ @Autowired
+ private SysInstoreInfoDao sysInstoreInfoDao;
+
+ @Autowired
+ private SysInstoreDetailDao sysInstoreDetailDao;
+
+ @Autowired
+ private SysInstoreInfoService sysInstoreInfoService;
@Override
public int add(SysOrder sysOrder) {
@@ -478,6 +488,7 @@
private void changeOrderStatu(SysOrder sourceOrder) {
int i = 1;
String orderStatus = Dictionary.ORDER_STATU_YFK;
+ String flowType = SysOrderFlow.FLOW_TYPE_BUY;
double cashPayTotal = 0D;
double cardPayTotal = 0D;
for (SysOrderFlow flow : sourceOrder.getFlows()) {
@@ -487,13 +498,16 @@
flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
+ flowType = SysOrderFlow.FLOW_TYPE_REFUND;
+ // 若是退款,则取负数
+ flow.setAmount(flow.getAmount().negate());
flow.setOrderId(sourceOrder.getOldOrderId());
} else {
flow.setOrderId(sourceOrder.getId());
}
flow.setVipId(sourceOrder.getVipId());
- flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY);
+ flow.setFlowType(flowType);
// 若使用储值卡付款
if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
if (flow.getCardId() != null) {
@@ -696,51 +710,46 @@
// 如果购买的是充值卡
if (sysOrderItem.getType().equals(Dictionary.SHOPPING_GOODS_TYPE_CZK)) {
- ShoppingGoods moneyCar = shoppingGoodsDao.selectById(sysOrderItem.getGoodsId());
- MoneyCardUse moneyCardUse = new MoneyCardUse();
- moneyCardUse.setVipId(sourceOrder.getVipId());
- moneyCardUse.setGiftMoney(moneyCar.getReferencePice());
- moneyCardUse.setRealMoney(moneyCar.getSealPice());
- moneyCardUse.setGoodsId(moneyCar.getId());
- moneyCardUse.setIsOver(Dictionary.FLAG_NO_N);
- moneyCardUse.setOrderItemId(sysOrderItem.getId());
- moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
- moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX);
- moneyCardUse.setCardName(moneyCar.getName());
-
- if (Dictionary.FLAG_YES.equals(moneyCar.getCarIsAll())) {
- moneyCardUse.setIsVipCar(Dictionary.FLAG_YES_Y);
- } else {
- // 非会籍卡
- moneyCardUse.setIsVipCar(Dictionary.FLAG_NO_N);
- }
-
- // 是否为赠送
- if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_YES)) {
- moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
- } else {
+ for(int i = 0; i < sysOrderItem.getCount(); i++) {
+ ShoppingGoods moneyCar = shoppingGoodsDao.selectById(sysOrderItem.getGoodsId());
+ MoneyCardUse moneyCardUse = new MoneyCardUse();
+ moneyCardUse.setVipId(sourceOrder.getVipId());
+ moneyCardUse.setGiftMoney(moneyCar.getReferencePice());
+ moneyCardUse.setRealMoney(moneyCar.getSealPice());
+ moneyCardUse.setGoodsId(moneyCar.getId());
+ moneyCardUse.setIsOver(Dictionary.FLAG_NO_N);
+ moneyCardUse.setOrderItemId(sysOrderItem.getId());
moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
- }
- if (moneyCar.getCarUseCount() == null || moneyCar.getCarUseCount() == 0) {
- moneyCardUse.setUseTotal(999999999);
- moneyCardUse.setLastCount(999999999);
- } else {
- moneyCardUse.setUseTotal(moneyCar.getCarUseCount());
- moneyCardUse.setLastCount(moneyCar.getCarUseCount());
- }
- moneyCardUse.setVipId(sourceOrder.getVipId());
-// if (moneyCar.getValidity() == null || moneyCar.getValidity() == 0) {
-// // 设置失效时间
-// Calendar cal = Calendar.getInstance();
-// cal.set(2200, 1, 1);
-// moneyCardUse.setFailTime(cal.getTime());
-// } else {
-// moneyCardUse.setFailTime(DateUtil.nextNDate(new Date(), 30 * moneyCar.getValidity()));
-// }
- Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null);
- moneyCardUse.setFailTime(invalidTime);
+ moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX);
+ moneyCardUse.setCardName(moneyCar.getName());
- moneyCardUseDao.insert(moneyCardUse);
+ if (Dictionary.FLAG_YES.equals(moneyCar.getCarIsAll())) {
+ moneyCardUse.setIsVipCar(Dictionary.FLAG_YES_Y);
+ } else {
+ // 非会籍卡
+ moneyCardUse.setIsVipCar(Dictionary.FLAG_NO_N);
+ }
+
+ // 是否为赠送
+ if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_YES)) {
+ moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
+ } else {
+ moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
+ }
+ if (moneyCar.getCarUseCount() == null || moneyCar.getCarUseCount() == 0) {
+ moneyCardUse.setUseTotal(999999999);
+ moneyCardUse.setLastCount(999999999);
+ } else {
+ moneyCardUse.setUseTotal(moneyCar.getCarUseCount());
+ moneyCardUse.setLastCount(moneyCar.getCarUseCount());
+ }
+ moneyCardUse.setVipId(sourceOrder.getVipId());
+
+ Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null);
+ moneyCardUse.setFailTime(invalidTime);
+
+ moneyCardUseDao.insert(moneyCardUse);
+ }
}
}
}
@@ -1229,50 +1238,69 @@
return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder);
}
+ @Transactional(rollbackFor = Exception.class)
@Override
public void refundOrderMoney(SysOrder pageOrder) {
// 插入订单流水
changeOrderStatu(pageOrder);
+ List<SysOrderItem> returnItems = new ArrayList<>();
for (SysOrderItem item : pageOrder.getItems()) {
SysProjUse queryProjUse = new SysProjUse();
queryProjUse.setIsOver(Dictionary.FLAG_NO_N);
queryProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
- queryProjUse.setOrderItemId(item.getId());
+ queryProjUse.setOrderItemId(item.getOldItemId());
// 修改项目信息
- if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType()) && Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) {
- SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0);
+ if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType()) || Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) {
- int sub = sysProjUse.getSurplusCount() - item.getCount();
- sysProjUse.setSurplusCount(sub);
- if (sub <= 0) {
- sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
- sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
+ if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) {
+ if (Dictionary.FLAG_YES_Y.equals(item.getIsReturnStore())) {
+ returnItems.add(item);
+ }
+ } else {
+ SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0);
+
+ int sub = sysProjUse.getSurplusCount() - item.getCount();
+ sysProjUse.setSurplusCount(sub);
+ if (sub <= 0) {
+ sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
+ sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
+ }
+ sysProjUseDao.update(sysProjUse);
}
- sysProjUseDao.update(sysProjUse);
}
if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType())) {
queryProjUse.setTaocanId(-1L);
- SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0);
- sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
- sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
+ List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse);
+ if (item.getCount() > sysProjUses.size()) {
+ throw new GlobleException("数据异常");
+ }
- sysProjUseDao.update(sysProjUse);
+ for(int i = 0; i < item.getCount(); i++) {
+ SysProjUse sysProjUse = sysProjUses.get(i);
+ sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
+ sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
+
+ sysProjUseDao.update(sysProjUse);
+ }
}
if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) {
MoneyCardUse queryCardUse = new MoneyCardUse();
queryCardUse.setIsOver(Dictionary.FLAG_NO_N);
queryCardUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
- queryCardUse.setOrderItemId(item.getId());
+ queryCardUse.setOrderItemId(item.getOldItemId());
- MoneyCardUse moneyCardUse = moneyCardUseDao.selectByModel(queryCardUse).get(0);
- moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y);
- moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX);
- moneyCardUseDao.update(moneyCardUse);
+ List<MoneyCardUse> moneyCardUses = moneyCardUseDao.selectByModel(queryCardUse);
+ for(int i = 0; i < item.getCount(); i++) {
+ MoneyCardUse moneyCardUse = moneyCardUses.get(i);
+ moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y);
+ moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX);
+ moneyCardUseDao.update(moneyCardUse);
+ }
}
// TODO 综合卡退款
@@ -1280,20 +1308,64 @@
}
+
+ ShoppingGoods goods = shoppingGoodsDao.selectById(item.getGoodsId());
+ goods.setRealSealCount(goods.getRealSealCount() - item.getCount());
+ shoppingGoodsDao.update(goods);
}
- // 设置会员充值卡使用情况
- addMoneyCardUse(pageOrder);
-
- // 新增出库单
- addOutStore(pageOrder);
-
- // 改变客户项目套餐使用情况
- addTaocanProj(pageOrder);
+ // 家居产品退库存
+ if (CollectionUtils.isNotEmpty(returnItems)) {
+ refundInstore(returnItems);
+ }
// 设置业绩
achieveNewService.addAchaeveByOrder(pageOrder);
- setShopSelCount(pageOrder);
+ }
+
+ /**
+ * 退款入库
+ */
+ private void refundInstore(@NotEmpty List<SysOrderItem> items) {
+ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysSupplierInfo supplierInfo = new SysSupplierInfo();
+ supplierInfo.setShopId(user.getShopId());
+ supplierInfo = sysSupplierInfoDao.selectByModel(supplierInfo).get(0);
+
+ Warehouse warehouse = warehouseDao.findShopWarehouse(user.getShopId()).get(0);
+ SysInstoreInfo instoreInfo = new SysInstoreInfo();
+ instoreInfo.setInstoreType(SysInstoreInfo.INSTORE_TYPE_RETURN);
+ instoreInfo.setInstoreDate(new Date());
+ instoreInfo.setSupplierId(supplierInfo.getId().toString());
+ instoreInfo.setStoreId(warehouse.getId());
+ instoreInfo.setCheckStatus(Dictionary.CHECK_STATUS_DSH);
+ // 设置入库单编号
+ instoreInfo.setInstoreId(DateUtil.getTimeMark());
+ instoreInfo.setShopId(user.getShopId());
+ instoreInfo.setCompanyId(user.getCompanyId());
+ sysInstoreInfoDao.insert(instoreInfo);
+
+ Double total = 0.0;
+ List<SysInstoreDetail> instoreDetails = new ArrayList<>();
+ for (SysOrderItem item : items) {
+ ShoppingGoods goods = shoppingGoodsDao.selectById(item.getGoodsId());
+ SysInstoreDetail sysInstoreDetail = new SysInstoreDetail();
+ sysInstoreDetail.setAmount(item.getCount().doubleValue());
+ sysInstoreDetail.setPrice(item.getZkPrice());
+ sysInstoreDetail.setSkuId(goods.getId());
+
+ total = MoneyUtil.add(MoneyUtil.mul(Double.parseDouble(sysInstoreDetail.getAmount() + ""), sysInstoreDetail.getPrice()), total);
+ sysInstoreDetail.setInstoreId(instoreInfo.getId());
+ // 设置小计
+ sysInstoreDetail.setPriceTotal(MoneyUtil.mul(Double.parseDouble(sysInstoreDetail.getAmount() + ""), sysInstoreDetail.getPrice()));
+ instoreDetails.add(sysInstoreDetail);
+
+ }
+ instoreInfo.setSumall(total);
+ sysInstoreInfoDao.update(instoreInfo);
+ sysInstoreDetailDao.batchInsert(instoreDetails);
+
+ sysInstoreInfoService.check(instoreInfo);
}
}
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
index c9ab443..f532adf 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
@@ -129,7 +129,7 @@
<if test="orderId != null and orderId !='' ">
ORDER_ID = #{orderId},
</if>
- <if test="count != null and count !='' ">
+ <if test="count != null and count !='' or count == 0 ">
COUNT = #{count},
</if>
<if test="isFree != null and isFree !='' ">
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
index c81090b..f48645d 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
@@ -868,10 +868,10 @@
_this.order.payMoney += parseFloat(item.payMoney);
});
//计算欠款
- _this.order.arrears = _this.order.zkTotal - _this.order.payMoney;
- if (_this.order.arrears < 0) {
- _this.$message.error("支付金额不能大于应收金额");
- }
+ // _this.order.arrears = _this.order.zkTotal - _this.order.payMoney;
+ // if (_this.order.arrears < 0) {
+ // _this.$message.error("支付金额不能大于应收金额");
+ // }
}
})
}
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html
index bd5cf20..a74d698 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html
@@ -142,9 +142,9 @@
<el-row>
<el-button size="mini" type="primary" @click="openPayMoneyDialog" v-if="isRefund">提交退款</el-button>
<el-button size="mini" type="danger" @click="isRefund = false" v-if="isRefund">取消</el-button>
- <el-button size="mini" type="primary" @click="isRefund = true" v-else>退款</el-button>
+ <el-button size="mini" type="primary" @click="isRefund = true" v-if="order.statu == '已付款' && !isRefund">退款</el-button>
</el-row>
- <el-row v-if="!isRefund">
+ <el-row v-show="!isRefund">
<el-table
:data="orderItems"
style="width: 100%">
@@ -182,7 +182,7 @@
</el-table-column>
</el-table>
</el-row>
- <el-row v-if="isRefund">
+ <el-row v-show="isRefund">
<el-table
:data="orderItems"
style="width: 100%">
@@ -214,12 +214,17 @@
</el-table-column>
<el-table-column label="退款单价">
<template slot-scope="scope">
- <el-input v-model="scope.row.refundPrice"></el-input>
+ <el-input v-model="scope.row.refundPrice" v-if="scope.row.count > 0"></el-input>
</template>
</el-table-column>
<el-table-column label="退款数量">
<template slot-scope="scope">
- <el-input v-model.number="scope.row.refundCount"></el-input>
+ <el-input v-model.number="scope.row.refundCount" v-if="scope.row.count > 0"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="是否退库存" align="center">
+ <template slot-scope="scope">
+ <el-checkbox v-model="scope.row.returnStore" v-if="scope.row.type == '家居产品' && scope.row.count > 0"></el-checkbox>
</template>
</el-table-column>
</el-table>
@@ -262,12 +267,12 @@
</el-table-column>
<el-table-column label="业绩">
<template slot-scope="scope">
- <el-input v-model="scope.row.returnAchieve"></el-input>
+ <el-input v-model="scope.row.returnAchieve" v-if="scope.row.zkTotal != 0"></el-input>
</template>
</el-table-column>
<el-table-column label="提成">
<template slot-scope="scope">
- <el-input v-model="scope.row.returnCommission"></el-input>
+ <el-input v-model="scope.row.returnCommission" v-if="scope.row.zkTotal != 0"></el-input>
</template>
</el-table-column>
<el-table-column
@@ -279,7 +284,7 @@
</el-tab-pane>
<el-tab-pane label="业绩设置" name="second">
<el-row>
- <el-button size="mini" type="primary" @click="saveAchieve">保存</el-button>
+ <el-button size="mini" type="primary" @click="saveAchieve" v-if="order.statu == '已付款'">保存</el-button>
</el-row>
<el-table
:data="achieveItems"
@@ -467,6 +472,7 @@
var app = new Vue({
el : "#app",
data : {
+ orderParam : "",
vipInfo : "",
order : "",
activeName : "first",
@@ -522,63 +528,167 @@
treeSelect : [],
payMoneys : [],
printPaper : true,
- refundMoney : "",
+ refundMoney : 0,
+ data : {},
},
created : function() {
let _this = this;
- this.vipInfo = /*[[${vipInfo}]]*/
- this.order = /*[[${order}]]*/
- this.orderItems = /*[[${orderItems}]]*/
- this.payMethodItems = /*[[${payMethods}]]*/
- this.achieveItems = /*[[${achieveList}]]*/
- this.flowItems = this.order.flows;
-
- this.checkAchieveIsDel(this.achieveItems);
- this.order.orderTime = moment(this.order.orderTime).format("YYYY-MM-DD HH:mm");
-
- var arrears = 0;
- var refund = 0;
- var repay = 0;
- for(var i = 0; i < this.flowItems.length; i++) {
- var item = this.flowItems[i];
- if (item.payMethod === '欠款') {
- arrears += item.amount;
- }
-
- if (item.flowType === '还款') {
- repay += item.amount;
- }
-
- if (item.flowType === '退款') {
- refund += item.amount;
- }
- }
- this.order.arrears = arrears;
- this.order.refund = refund;
- this.order.repay = repay;
-
- //获取用户列表
- AjaxProxy.requst({
- app: _this,
- url: basePath + '/admin/shopAll',
- callback: function (data) {
- _this.userList = data.rows;
- }
- });
- _this.getVipMoneyCards();
+ this.orderParam = /*[[${orderParam}]]*/
+ this.queryOrderDetailData(this.orderParam);
},
methods : {
+ queryOrderDetailData(param) {
+ let _this = this;
+ AjaxProxy.requst({
+ app: _this,
+ data: {id: param, orderNo:param},
+ contentType: 'application/x-www-form-urlencoded',
+ url: basePath + '/admin/order/findOrderDetailByIdOrNo',
+ callback: function (data) {
+ console.log(data);
+ var mapInfo = data.mapInfo;
+ _this.vipInfo = mapInfo.vipInfo;
+ _this.order = mapInfo.order;
+ _this.orderItems = mapInfo.orderItems;
+ _this.payMethodItems = mapInfo.payMethodItems;
+ _this.achieveItems = mapInfo.achieveList;
+
+ _this.flowItems = _this.order.flows;
+
+ _this.checkAchieveIsDel(_this.achieveItems);
+ _this.order.orderTime = moment(_this.order.orderTime).format("YYYY-MM-DD HH:mm");
+
+ var arrears = 0;
+ var refund = 0;
+ var repay = 0;
+ for(var i = 0; i < _this.flowItems.length; i++) {
+ var item = _this.flowItems[i];
+ if (item.payMethod === '欠款') {
+ arrears += item.amount;
+ }
+
+ if (item.flowType === '还款') {
+ repay += item.amount;
+ }
+
+ if (item.flowType === '退款') {
+ refund += item.amount;
+ }
+ }
+ _this.order.arrears = arrears;
+ _this.order.refund = refund;
+ _this.order.repay = repay;
+
+ //获取用户列表
+ AjaxProxy.requst({
+ app: _this,
+ url: basePath + '/admin/shopAll',
+ callback: function (data) {
+ _this.userList = data.rows;
+ }
+ });
+ _this.getVipMoneyCards();
+ }
+ });
+ },
+ confirmSubmit() {
+ let _this = this;
+ _this.data.oldOrderId = _this.order.id;
+ _this.data.vipId = _this.vipInfo.id;
+
+ if(!_this.payMethodFlow()) {
+ return;
+ }
+
+ let orderItems = _this.orderItems;
+ let dataItems = [];
+ for(var i = 0; i < orderItems.length; i++) {
+ let item = orderItems[i];
+ if (item.refundPrice && item.refundCount) {
+ let achieveList = []
+ if (_this.isReturnAchieve) {
+ for(var j = 0; j < _this.achieveItems.length; j++) {
+ let achieveItem = _this.achieveItems[j];
+ if (achieveItem.returnAchieve || achieveItem.returnCommission) {
+ achieveItem.t1 = achieveItem.returnAchieve ? achieveItem.returnAchieve : 0;
+ achieveItem.projPercentage = achieveItem.returnCommission ? achieveItem.returnCommission : 0;
+ achieveList.push(achieveItem);
+ }
+ }
+
+ item.achaeveList = achieveList;
+ }
+ if (item.returnStore) {
+ item.isReturnStore = 'Y';
+ } else {
+ item.isReturnStore = 'N';
+ }
+
+ item.preCount = item.count;
+ item.count = item.refundCount;
+ item.zkPrice = item.refundPrice;
+ item.cashPay = 0;
+ item.cardPay = 0;
+ item.oldItemId = item.id;
+ dataItems.push(item);
+ }
+ }
+
+ _this.data.items = dataItems;
+ AjaxProxy.requst({
+ app: _this,
+ data: _this.data,
+ contentType: 'application/json',
+ url: basePath + '/admin/order/refundOrder',
+ callback: function (data) {
+ _this.isRefund = false;
+ _this.dialogSettleVisible = false;
+ _this.queryOrderDetailData(_this.data.oldOrderId);
+ }
+ });
+
+ },
+ payMethodFlow() {
+ let _this = this;
+ if (_this.payMoneys.length > 0) {
+ let flows = []
+ var total = 0;
+ _this.payMoneys.forEach(item => {
+ let flow = {};
+ flow.payMethod = item.type;
+ if (!item.money) {
+ this.$message.warning("请输入" + item.type + "的付款金额");
+ return false;
+ }
+ flow.amount = parseFloat(item.money);
+ if (item.type == '储值卡'){
+ flow.isGift = item.isGift;
+ flow.cardId = item.id;
+ }
+ total += parseFloat(item.money);
+ flows.push(flow)
+ })
+ if (total != _this.refundMoney) {
+ this.$message.warning("输入付款总金额与应付金额不符");
+ return false;
+ }
+ _this.data.flows = flows;
+ return true;
+ } else {
+ this.$message.warning("请选择支付方式");
+ return false;
+ }
+ },
openPayMoneyDialog() {
let _this = this;
let items = this.orderItems;
+ _this.refundMoney = 0;
for(var i = 0; i < items.length; i++) {
let item = items[i]
if (item.refundPrice && item.refundCount) {
- _this.refundMoney += (item.refundPrice * item.refundCount);
- } else {
if (!item.refundPrice > 0 && !item.refundCount > 0) {
_this.$message.error("退款金额或退款数量须大于0");
return;
@@ -589,9 +699,13 @@
return;
}
- _this.$message.error("退款单价或退款数量不能为空");
- return;
+ _this.refundMoney += parseFloat(item.refundPrice * item.refundCount);
}
+ }
+
+ if (_this.refundMoney == 0) {
+ _this.$message.error("请输入退款金额或退款数量");
+ return;
}
_this.dialogSettleVisible = true;
},
@@ -704,9 +818,6 @@
},
closeFrame() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
- },
- confirmSubmit() {
-
},
saveAchieve() {
let _this = this;
--
Gitblit v1.9.1