demand: tms-客户账单管理-客户账单定制-批量生成账单时最后回款日算法调整 tms-客户账单管理-月结账单管理-修改账单时最后回款日算法调整
This commit is contained in:
parent
7900b8a314
commit
4ec6ef1a2d
@ -394,8 +394,21 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
|
|||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
Date billMonthDate = DateUtils.parseDate(emisSettleBill.getBillMonth() + "-"+settleDay);
|
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.setCreditPeriod(creditPeriod);
|
||||||
updBill.setSettleDay(settleDay);
|
updBill.setSettleDay(settleDay);
|
||||||
|
|
||||||
// 现金账期从寄件开始10天
|
// 根据账期与结算日计算最后付款时间
|
||||||
Date billMonthDate = DateUtils.parseDate(oldEmisSettleBill.getBillMonth() + "-" + settleDay);
|
Date billMonthDate = DateUtils.parseDate(oldEmisSettleBill.getBillMonth() + "-" + settleDay);
|
||||||
Date paymentDueDate = DateUtils.addMonths(billMonthDate, 1);
|
Date paymentDueDate;
|
||||||
paymentDueDate = DateUtils.addDays(paymentDueDate, creditPeriod.intValue());
|
|
||||||
|
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);
|
updBill.setPaymentDueDate(paymentDueDate);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user