|
@@ -704,11 +704,33 @@ public class contractServiceAdj {
|
|
|
SERVICE_UNIT_COST = TypeUtil.convert(contractService.get("UNIT_COST_1STMONTH"), BigDecimal.class);
|
|
SERVICE_UNIT_COST = TypeUtil.convert(contractService.get("UNIT_COST_1STMONTH"), BigDecimal.class);
|
|
|
SERVICE_TOTAL_COST = multiply(SERVICE_UNIT_COST, contractService.get("QUANTITY"));
|
|
SERVICE_TOTAL_COST = multiply(SERVICE_UNIT_COST, contractService.get("QUANTITY"));
|
|
|
|
|
|
|
|
- BigDecimal ratio = new BigDecimal(EFFECTIVE_DATE.lengthOfMonth() - EFFECTIVE_DATE.getDayOfMonth() + 1).divide(new BigDecimal(EFFECTIVE_DATE.lengthOfMonth()), 10, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
+ //按月收费,且从1号开始
|
|
|
|
|
+ if (EFFECTIVE_DATE.getDayOfMonth() == 1 && PERIOD_TYPE.equals("610") && boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN")) {
|
|
|
|
|
|
|
|
- COST_1STMONTH = SERVICE_TOTAL_COST.multiply(ratio);
|
|
|
|
|
|
|
+ //下月一号
|
|
|
|
|
+ EFFECTIVE_DATE = EFFECTIVE_DATE.plusMonths(1).withDayOfMonth(1);//下个月1号
|
|
|
|
|
+ BO paymentPlan = new BO();
|
|
|
|
|
+ paymentPlan.set("ORDER_ID", orderId);
|
|
|
|
|
+ paymentPlan.set("PLAN_DATE", teshuchuliBeginDate);
|
|
|
|
|
+ paymentPlan.set("PERIOD_BEGIN_DATE", teshuchuliBeginDate);
|
|
|
|
|
+ paymentPlan.set("PERIOD_END_DATE", EFFECTIVE_DATE.minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
|
|
|
+ paymentPlan.set("PLAN_AMOUNT", SERVICE_TOTAL_COST);
|
|
|
|
|
+ paymentPlan.set("REMAIN_AMOUNT", paymentPlan.get("PLAN_AMOUNT"));
|
|
|
|
|
+ paymentPlan.set("CONTRACT_COST_ID", CONTRACT_COST_ID);
|
|
|
|
|
+ paymentPlan.set("CONTRACT_SERVICE_ID", orgContractService.getId());
|
|
|
|
|
+ paymentPlan.set("PAY_DESC", orgContractService.getString("NAME"));
|
|
|
|
|
+ paymentPlan.set("ACCOUNT_PAYEE", VENDOR_ACCOUNT_ID);//收款单位
|
|
|
|
|
+ ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d", uc.getUID(), "付款计划");
|
|
|
|
|
+ paymentPlan.setBindId(processInstance.getId());
|
|
|
|
|
+ SDK.getBOAPI().create("BO_EU_DNIVT_ORDER_PAYMENT_PLAN", paymentPlan, processInstance, uc, conn);
|
|
|
|
|
+ COST_1STMONTH = BigDecimal.ZERO;
|
|
|
|
|
+ teshuchuli = false;
|
|
|
|
|
|
|
|
- EFFECTIVE_DATE = EFFECTIVE_DATE.plusMonths(1).withDayOfMonth(1);//下个月1号
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
+ BigDecimal ratio = new BigDecimal(EFFECTIVE_DATE.lengthOfMonth() - EFFECTIVE_DATE.getDayOfMonth() + 1).divide(new BigDecimal(EFFECTIVE_DATE.lengthOfMonth()), 10, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ COST_1STMONTH = SERVICE_TOTAL_COST.multiply(ratio);
|
|
|
|
|
+ EFFECTIVE_DATE = EFFECTIVE_DATE.plusMonths(1).withDayOfMonth(1);//下个月1号
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
//首月单独一条
|
|
//首月单独一条
|
|
|
if (boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN_MONTH") && !PERIOD_TYPE.equals("609")) {
|
|
if (boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN_MONTH") && !PERIOD_TYPE.equals("609")) {
|