Browse Source

修改bug1

zhangyao 2 tháng trước cách đây
mục cha
commit
a49e211a93

+ 13 - 12
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/event/commissionFormBeforeSave.java

@@ -34,20 +34,21 @@ public class commissionFormBeforeSave extends InterruptListener {
         String RULE_CATE = formData.getString("RULE_CATE");//佣金规则
         if (boName.equals("BO_EU_DNCTT_COMMISSION")) {
             BO orgData = SDK.getBOAPI().get(boName, formData.getId());
+            if (orgData != null) {
+                //已审批 不允许修改 开始日期和佣金金额
+                String PERIOD_BEGIN_DATE_MIN = DBSql.getString("SELECT MIN(PERIOD_BEGIN_DATE) FROM BO_EU_DNCTT_COMMISSION_PERIOD WHERE BINDID = '" + bindid + "'");
 
-            //已审批 不允许修改 开始日期和佣金金额
-            String PERIOD_BEGIN_DATE_MIN = DBSql.getString("SELECT MIN(PERIOD_BEGIN_DATE) FROM BO_EU_DNCTT_COMMISSION_PERIOD WHERE BINDID = '" + bindid + "'");
+                if (StringUtils.isNotBlank(PERIOD_BEGIN_DATE_MIN) && !PERIOD_BEGIN_DATE.equals(getLocalDate(PERIOD_BEGIN_DATE_MIN)) || !isApproximatelyEqual(orgData.get("COMMISSION_DOLLARS"), formData.get("COMMISSION_DOLLARS"))) {
+                    //开始日期已修改
 
-            if (StringUtils.isNotBlank(PERIOD_BEGIN_DATE_MIN) && !PERIOD_BEGIN_DATE.equals(getLocalDate(PERIOD_BEGIN_DATE_MIN)) || !isApproximatelyEqual(orgData.get("COMMISSION_DOLLARS"), formData.get("COMMISSION_DOLLARS"))) {
-                //开始日期已修改
+                    //已审批不允许修改
+                    if (DBSql.getInt("select count(1) CNT from BO_EU_DNCTT_COMMISSION_PERIOD where APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1 AND APPROVE_AND_POST_DATE IS NOT NULL AND  BINDID=?", new Object[]{bindid}) > 0) {
+                        throw new BPMNError("500", "已审批不允许修改开始日期和佣金金额");
+                    }
 
-                //已审批不允许修改
-                if (DBSql.getInt("select count(1) CNT from BO_EU_DNCTT_COMMISSION_PERIOD where APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1 AND APPROVE_AND_POST_DATE IS NOT NULL AND  BINDID=?", new Object[]{bindid}) > 0) {
-                    throw new BPMNError("500", "已审批不允许修改开始日期和佣金金额");
-                }
-
-                if (DBSql.getInt("select count(1) CNT from BO_EU_DNCTT_COMMISSION_PERIOD_AGENT where APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1 AND APPROVE_AND_POST_DATE IS NOT NULL AND  BINDID=?", new Object[]{bindid}) > 0) {
-                    throw new BPMNError("500", "已审批不允许修改开始日期和佣金金额");
+                    if (DBSql.getInt("select count(1) CNT from BO_EU_DNCTT_COMMISSION_PERIOD_AGENT where APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1 AND APPROVE_AND_POST_DATE IS NOT NULL AND  BINDID=?", new Object[]{bindid}) > 0) {
+                        throw new BPMNError("500", "已审批不允许修改开始日期和佣金金额");
+                    }
                 }
             }
         } else if (boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
@@ -62,8 +63,8 @@ public class commissionFormBeforeSave extends InterruptListener {
             if (DBSql.getInt("SELECT count(1) FROM BO_EU_DNCTT_COMMISSION_PERIOD_AGENT WHERE APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1 AND APPROVE_AND_POST_DATE IS NOT NULL and BINDID=? AND  PERIOD_END_DATE>=?", new Object[]{formData.get("COMMISSION_BINDID"), EFFECTIVE_DATE_STR}) > 0) {
                 throw new BPMNError("500", EFFECTIVE_DATE_STR + "之后的佣金周期已被审批,则不能修改到当前日期");
             }
-
         }
+        dn.recordFormChanges.execute(param);
         return true;
     }