demand: tms-客户账单管理-客户账单定制-批量生成账单时最后回款日算法调整 tms-客户账单管理-月结账单管理-修改账单时最后回款日算法调整
This commit is contained in:
parent
7900b8a314
commit
4ec6ef1a2d
@ -394,8 +394,21 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
|
||||
}
|
||||
else{
|
||||
Date billMonthDate = DateUtils.parseDate(emisSettleBill.getBillMonth() + "-"+settleDay);
|
||||
paymentDueDate = DateUtils.addMonths(billMonthDate,1);
|
||||
paymentDueDate= DateUtils.addDays(paymentDueDate,creditPeriod.intValue());
|
||||
|
||||
// credit_period 为 30/60/90 且结算日为每月 1 号时,按对应月份月末作为最后付款日
|
||||
if ((creditPeriod.intValue() == 30 || creditPeriod.intValue() == 60 || creditPeriod.intValue() == 90)
|
||||
&& monthUser.getSettleDay() == 1) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(billMonthDate);
|
||||
// 30 -> 加 1 个月,60 -> 加 2 个月,90 -> 加 3 个月
|
||||
cal.add(Calendar.MONTH, creditPeriod.intValue() / 30);
|
||||
// 设置为该月的最后一天
|
||||
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
paymentDueDate = cal.getTime();
|
||||
} else {
|
||||
paymentDueDate = DateUtils.addMonths(billMonthDate,1);
|
||||
paymentDueDate= DateUtils.addDays(paymentDueDate,creditPeriod.intValue());
|
||||
}
|
||||
}
|
||||
|
||||
// 最后付款时间
|
||||
@ -441,10 +454,21 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
|
||||
updBill.setCreditPeriod(creditPeriod);
|
||||
updBill.setSettleDay(settleDay);
|
||||
|
||||
// 现金账期从寄件开始10天
|
||||
// 根据账期与结算日计算最后付款时间
|
||||
Date billMonthDate = DateUtils.parseDate(oldEmisSettleBill.getBillMonth() + "-" + settleDay);
|
||||
Date paymentDueDate = DateUtils.addMonths(billMonthDate, 1);
|
||||
paymentDueDate = DateUtils.addDays(paymentDueDate, creditPeriod.intValue());
|
||||
Date paymentDueDate;
|
||||
|
||||
if ((creditPeriod.intValue() == 30 || creditPeriod.intValue() == 60 || creditPeriod.intValue() == 90)
|
||||
&& settleDay == 1) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(billMonthDate);
|
||||
cal.add(Calendar.MONTH, creditPeriod.intValue() / 30);
|
||||
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
paymentDueDate = cal.getTime();
|
||||
} else {
|
||||
paymentDueDate = DateUtils.addMonths(billMonthDate, 1);
|
||||
paymentDueDate = DateUtils.addDays(paymentDueDate, creditPeriod.intValue());
|
||||
}
|
||||
|
||||
// 最后付款时间
|
||||
updBill.setPaymentDueDate(paymentDueDate);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user