This commit is contained in:
linfso 2024-09-03 07:40:12 +08:00
parent 111b4cb02c
commit 047700e947
2 changed files with 52 additions and 1 deletions

View File

@ -136,7 +136,7 @@ public class EmisCustomerUser extends BaseEntity
/* 付款期类型 1-天 2-月 */
private String creditPeriodType;
/* 付款期 默认10天 */
private Integer creditPeriod;
private BigDecimal creditPeriod;
/* 账单日 1-31 */
private Integer settleDay;
/* 启用状态 1-启用 0-未启用 */

View File

@ -11,13 +11,16 @@
package com.xdadan.erp.emis.service.impl;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import cn.hutool.core.collection.CollectionUtil;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.StringUtils;
import com.xdadan.erp.emis.domain.EmisCustomerUser;
import com.xdadan.erp.emis.domain.EmisSettleSubBill;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
@ -126,6 +129,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
// /* 合计金额 */
BigDecimal sendMoneySum= BigDecimal.ZERO;
Date sendDate = null;
for (EmisSettleSubBill subBill: emisSettleBill.getSubBillList()
) {
EmisSettleSubBill subBllOld = getSettleSubBillBySubBillNo(subBill.getBillNo());
@ -162,8 +167,11 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
emisSettleBill.setCustomerName(subBllOld.getCustomerName());
emisSettleBill.setPayee(subBllOld.getPayee());
emisSettleBill.setSalesmen(subBllOld.getSalesmen());
sendDate=subBllOld.getWaybillDetail().getSendDate();
}
sendMoneySum=totalRecMoney;
emisSettleBill.setSendPieceSum(sendPieceSum);
@ -179,6 +187,49 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
emisSettleBill.setConfirmSiteManCode("1");
emisSettleBill.setConfirmSiteCode("88888");
emisSettleBill.setConfirmSiteNote("现金账单系统自动确认");
// 现金账期从寄件开始10天
emisSettleBill.setCreditPeriodType("1");
emisSettleBill.setCreditPeriod(BigDecimal.valueOf(Long.valueOf(10)));
// 现金账期日从当天开始
sendDate=WaybillHelper.removeTimeHMS(sendDate);
Calendar sendDateCal=Calendar.getInstance();
sendDateCal.setTime(sendDate);
emisSettleBill.setSettleDay(sendDateCal.get(Calendar.DAY_OF_MONTH));// 每月1-31日
// 10天时间
emisSettleBill.setPaymentDueDate(DateUtils.addDays(sendDate,10));
}else{
// 计算月结客户的最后付款日期
EmisCustomerUser monthUser=getCustomerUserByMonthlyPayCode(emisSettleBill.getCustNo());
if(monthUser!=null) {
// 默认30天,从1号开始
BigDecimal creditPeriod = BigDecimal.valueOf(30D);
Integer settleDay=1;
if(monthUser.getCreditPeriod() !=null){
creditPeriod=monthUser.getCreditPeriod();
}
if(monthUser.getSettleDay()!=null){
settleDay=monthUser.getSettleDay();
}
// 现金账期从寄件开始10天
emisSettleBill.setCreditPeriodType("1");
emisSettleBill.setCreditPeriod(creditPeriod);
emisSettleBill.setSettleDay(settleDay);
Date billMonthDate = DateUtils.parseDate(emisSettleBill.getBillMonth() + "-"+settleDay);
Date paymentDueDate = DateUtils.addMonths(billMonthDate,1);
paymentDueDate= DateUtils.addDays(paymentDueDate,creditPeriod.intValue());
// 最后时间
emisSettleBill.setPaymentDueDate(paymentDueDate);
}
}