销售出库保存校验在销售发票业务日期6.26号之前的不参与控制
This commit is contained in:
parent
772c31c693
commit
f7b2ab6dfa
|
@ -18,6 +18,7 @@ import nc.vo.ic.m4c.entity.SaleOutVO;
|
||||||
import nc.vo.pub.BusinessException;
|
import nc.vo.pub.BusinessException;
|
||||||
import nc.vo.pub.lang.UFDouble;
|
import nc.vo.pub.lang.UFDouble;
|
||||||
import nc.vo.pubapp.AppContext;
|
import nc.vo.pubapp.AppContext;
|
||||||
|
import nc.vo.pubapp.pattern.pub.SqlBuilder;
|
||||||
import nc.vo.tmpub.util.ModuleEnum;
|
import nc.vo.tmpub.util.ModuleEnum;
|
||||||
import nc.vo.tmpub.util.ModuleUtil;
|
import nc.vo.tmpub.util.ModuleUtil;
|
||||||
import nccloud.baseapp.core.log.NCCForUAPLogger;
|
import nccloud.baseapp.core.log.NCCForUAPLogger;
|
||||||
|
@ -66,6 +67,14 @@ public class saveBeforeCheck implements IBusinessListener {
|
||||||
if (storedDate.isBefore(targetDate)) {
|
if (storedDate.isBefore(targetDate)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 在销售发票业务日期6.26号之前的不参与控制
|
||||||
|
String invDateStr = (String) valMap.get("dbilldate");
|
||||||
|
String invTargetDateStr = "2025-06-26 00:00:00";
|
||||||
|
LocalDateTime invDate = LocalDateTime.parse(invDateStr, formatter);
|
||||||
|
LocalDateTime invTargetDate = LocalDateTime.parse(invTargetDateStr, formatter);
|
||||||
|
if (invDate.isBefore(invTargetDate)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// ÏúÊÛ·¢Æ±±íÍ·pk_billtypecode=30-Cxx-12
|
// ÏúÊÛ·¢Æ±±íÍ·pk_billtypecode=30-Cxx-12
|
||||||
Set<String> billTypeCodes = Set.of(
|
Set<String> billTypeCodes = Set.of(
|
||||||
"30-Cxx-12", "30-Cxx-02", "30-Cxx-08", "30-Cxx-13", "30-Cxx-16"
|
"30-Cxx-12", "30-Cxx-02", "30-Cxx-08", "30-Cxx-13", "30-Cxx-16"
|
||||||
|
@ -125,19 +134,30 @@ public class saveBeforeCheck implements IBusinessListener {
|
||||||
|
|
||||||
private Map<String, Object> getSaleorderPK(String csourcebillbidStr) throws BusinessException {
|
private Map<String, Object> getSaleorderPK(String csourcebillbidStr) throws BusinessException {
|
||||||
IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
||||||
String sql = " SELECT s.creationtime,bt.pk_billtypecode,sb.csaleorderbid,sb.vbdef2 AS sQty,\n" + "s.vdef11,\n"
|
|
||||||
+ "si.vdef20,\n" + "sbv.nassistnum,\n" + "sbv.ntotaloutnums\n" + "FROM so_saleinvoice_b sib\n"
|
SqlBuilder sqlBuilder = new SqlBuilder();
|
||||||
+ "INNER JOIN so_saleinvoice si ON si.csaleinvoiceid = sib.csaleinvoiceid\n"
|
sqlBuilder.append("SELECT s.creationtime, bt.pk_billtypecode, sb.csaleorderbid, si.dbilldate, ");
|
||||||
+ "INNER JOIN so_saleorder_b sb ON sb.csaleorderbid = sib.csrcbid\n"
|
sqlBuilder.append("sb.vbdef2 AS sQty, s.vdef11, si.vdef20, sbv.nassistnum, sbv.ntotaloutnums ");
|
||||||
+ "left join (SELECT SUM(b.nshouldassistnum) AS ntotaloutnums,sum(nassistnum) as nassistnum,c.csaleorderbid\n"
|
sqlBuilder.append("FROM so_saleinvoice_b sib ");
|
||||||
+ "FROM so_saleorder_b c\n" + "INNER JOIN so_saleinvoice_b a ON c.csaleorderbid = a.csrcbid\n"
|
sqlBuilder.append("INNER JOIN so_saleinvoice si ON si.csaleinvoiceid = sib.csaleinvoiceid ");
|
||||||
+ "INNER JOIN ic_saleout_b b ON b.csourcebillbid = a.csaleinvoicebid\n" + "where a.dr=0 and b.dr=0 \n"
|
sqlBuilder.append("INNER JOIN so_saleorder_b sb ON sb.csaleorderbid = sib.csrcbid ");
|
||||||
+ "GROUP BY c.csaleorderbid) sbv on sbv.csaleorderbid=sb.csaleorderbid\n"
|
sqlBuilder.append("LEFT JOIN ( ");
|
||||||
+ "INNER JOIN so_saleorder s ON s.csaleorderid = sb.csaleorderid\n"
|
sqlBuilder.append(" SELECT SUM(b.nshouldassistnum) AS ntotaloutnums, SUM(nassistnum) AS nassistnum, c.csaleorderbid ");
|
||||||
+ "INNER JOIN bd_billtype bt on bt.pk_billtypeid=s.ctrantypeid\n"
|
sqlBuilder.append(" FROM so_saleorder_b c ");
|
||||||
+ "INNER JOIN so_saleorder_exe se ON sb.csaleorderbid = se.csaleorderbid\n"
|
sqlBuilder.append(" INNER JOIN so_saleinvoice_b a ON c.csaleorderbid = a.csrcbid ");
|
||||||
+ "WHERE sib.csaleinvoicebid = '" + csourcebillbidStr + "' ";
|
sqlBuilder.append(" INNER JOIN ic_saleout_b b ON b.csourcebillbid = a.csaleinvoicebid ");
|
||||||
|
sqlBuilder.append(" WHERE a.dr = 0 AND b.dr = 0 ");
|
||||||
|
sqlBuilder.append(" GROUP BY c.csaleorderbid ");
|
||||||
|
sqlBuilder.append(") sbv ON sbv.csaleorderbid = sb.csaleorderbid ");
|
||||||
|
sqlBuilder.append("INNER JOIN so_saleorder s ON s.csaleorderid = sb.csaleorderid ");
|
||||||
|
sqlBuilder.append("INNER JOIN bd_billtype bt ON bt.pk_billtypeid = s.ctrantypeid ");
|
||||||
|
sqlBuilder.append("INNER JOIN so_saleorder_exe se ON sb.csaleorderbid = se.csaleorderbid ");
|
||||||
|
sqlBuilder.append("WHERE ");
|
||||||
|
sqlBuilder.append("sib.csaleinvoicebid", csourcebillbidStr);
|
||||||
|
|
||||||
|
String sql = sqlBuilder.toString();
|
||||||
Map<String, Object> valList = (Map<String, Object>) queryBS.executeQuery(sql, new MapProcessor());
|
Map<String, Object> valList = (Map<String, Object>) queryBS.executeQuery(sql, new MapProcessor());
|
||||||
|
|
||||||
return valList;
|
return valList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue