|
|
@@ -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;
|
|
|
}
|
|
|
|