From 12bdaf99a9abf9e3930b449c65dd427c861b0ca4 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 20 Jul 2021 14:29:50 +0800
Subject: [PATCH] fix

---
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

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 8fa0fcb..bf08c30 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
@@ -1306,7 +1306,7 @@
         taocanProjUse.setIsCourse(taocanShoppingGoods.getIsCourse());
         taocanProjUse.setIsInfinite(taocanShoppingGoods.getIsInfinite());
         // 赠送和打折后金额为0的都视为赠送项目
-        if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0) {
+        if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0 && !isGiftMoneyPay(order)) {
             taocanProjUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
         } else {
             taocanProjUse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
@@ -1359,8 +1359,10 @@
 
 
         puse.setProjName(sysOrderItem.getShoppingGoods().getName());
+
+
         // 赠送和打折后金额为0的都视为赠送项目
-        if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0) {
+        if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0 && !isGiftMoneyPay(order)) {
             puse.setSource(Dictionary.TAOCAN_SOURCE_GM);
             puse.setPrice(sysOrderItem.getZkPrice());
         } else {
@@ -1380,6 +1382,23 @@
         puse.setFailTime(invalidTime);
         puse.setBalance(sysOrderItem.getShoppingGoods().getSealPice()*puse.getSurplusCount());
         sysProjUseDao.insert(puse);
+    }
+
+    /**
+     * 全是赠送金额,且配置了赠送金额购买计算为赠送
+     * @param order
+     * @return
+     */
+    private boolean isGiftMoneyPay(SysOrder order) {
+        BusParameterSettings giftiIsfree = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_GIFTISFREE, order.getCompanyId());
+        if(giftiIsfree.getParamValue().equals("是")){
+            return  order.getFlows().stream().allMatch(item -> SysOrderFlow.IS_GIFT_Y.equals(item.getIsGift())
+                    && item.getAmount().doubleValue() >0D);
+        }else{
+            return false;
+        }
+
+
     }
 
 
@@ -1704,7 +1723,7 @@
                 List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse);
 
 
-                for (int i = 0; i < item.getCount(); i++) {
+                for (int i = 0; i < sysProjUses.size(); i++) {
 
                     SysProjUse sysProjUse = sysProjUses.get(i);
                     sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);

--
Gitblit v1.9.1