fix(so): 修复红字发票生成逻辑

This commit is contained in:
mzr 2025-06-06 11:25:32 +08:00
parent 941dec1543
commit 3f135345dd
1 changed files with 13 additions and 3 deletions

View File

@ -204,7 +204,7 @@ public class IAPISaleInvMaitainImpl {
Logger.error("=====================inv-red-audit-end==============="); Logger.error("=====================inv-red-audit-end===============");
// 查询新生成红冲发票的信息 // 查询新生成红冲发票的信息
String newPk = returnApproveSaleInvoiceVOs[0].getParentVO().getCsaleinvoiceid(); String newPk = returnSaveSaleInvoiceVOs[0].getParentVO().getCsaleinvoiceid();
String[] idsNew = {newPk}; String[] idsNew = {newPk};
// String[] idsNew = {"1001A11000000FSB45YA"}; // String[] idsNew = {"1001A11000000FSB45YA"};
SaleInvoiceVO[] redVos = querySaleInvoiceByIds(idsNew); SaleInvoiceVO[] redVos = querySaleInvoiceByIds(idsNew);
@ -503,8 +503,10 @@ public class IAPISaleInvMaitainImpl {
} }
// BIP合同平台的数量对应BIP2312的主数量BIP2312的 数量=主数量*换算关系 // BIP合同平台的数量对应BIP2312的主数量BIP2312的 数量=主数量*换算关系
UFDouble nnum = new UFDouble(bipBvoJson.getString("nnum")); UFDouble nnum = new UFDouble(bipBvoJson.getString("nnum"));
newInvBVO.setNastnum(nnum.multiply(vchangerateNum).setScale(2, 4)); // 数量 UFDouble nastnum = nnum.multiply(vchangerateNum).setScale(2, 4);
newInvBVO.setNastnum(nastnum); // 数量
newInvBVO.setNnum(nnum); // 主数量 newInvBVO.setNnum(nnum); // 主数量
newInvBVO.setNqtunitnum(nastnum); // 报价数量
newInvBVO.setNqtorigtaxprice(new UFDouble(bipBvoJson.getString("nqtorigtaxprice"))); // 含税单价 newInvBVO.setNqtorigtaxprice(new UFDouble(bipBvoJson.getString("nqtorigtaxprice"))); // 含税单价
newInvBVO.setNqtorigprice(new UFDouble(bipBvoJson.getString("nqtorigprice"))); // 无税单价 newInvBVO.setNqtorigprice(new UFDouble(bipBvoJson.getString("nqtorigprice"))); // 无税单价
newInvBVO.setNorigtaxprice(new UFDouble(bipBvoJson.getString("norigtaxprice"))); // 主含税单价 newInvBVO.setNorigtaxprice(new UFDouble(bipBvoJson.getString("norigtaxprice"))); // 主含税单价
@ -528,11 +530,17 @@ public class IAPISaleInvMaitainImpl {
newInvBVO.setNtaxmny(new UFDouble(bipBvoJson.getString("ntaxmny"))); // 本币价税合计 newInvBVO.setNtaxmny(new UFDouble(bipBvoJson.getString("ntaxmny"))); // 本币价税合计
newInvBVO.setNcaltaxmny(new UFDouble(bipBvoJson.getString("nmny"))); // 计税金额=本币无税金额 newInvBVO.setNcaltaxmny(new UFDouble(bipBvoJson.getString("nmny"))); // 计税金额=本币无税金额
newInvBVO.setCopposesrcbid(bipBvoJson.getString("vbdef15")); // 对冲来源子表id newInvBVO.setCopposesrcbid(bipBvoJson.getString("vbdef15")); // 对冲来源子表id
newInvBVO.setNqtunitnum(null); // 报价数量 newInvBVO.setCunitid(bipBvoJson.getString("castunitid"));// 主单位
newInvBVO.setCqtunitid(bipBvoJson.getString("castunitid"));// 报价单位
// 通过 ntaxrate 获取 taxcode
String taxcodeStr = getTaxcode(bipBvoJson.getString("ntaxrate"));
newInvBVO.setCtaxcodeid(taxcodeStr);// 税码
newInvBVO.setCsaleinvoiceid(null); // 发票关联主表id newInvBVO.setCsaleinvoiceid(null); // 发票关联主表id
newInvBVO.setNtotalcostnum(null); // 累计成本结算数量 newInvBVO.setNtotalcostnum(null); // 累计成本结算数量
newInvBVO.setNtotalincomemny(null); // 累计确认应收金额 newInvBVO.setNtotalincomemny(null); // 累计确认应收金额
newInvBVO.setNtotalincomenum(null); // 累计确认应收数量 newInvBVO.setNtotalincomenum(null); // 累计确认应收数量
newSaleInvoiceBVOs[i++] = newInvBVO; newSaleInvoiceBVOs[i++] = newInvBVO;
sumNum = sumNum.add(new UFDouble(bipBvoJson.getString("nnum"))); sumNum = sumNum.add(new UFDouble(bipBvoJson.getString("nnum")));
sumNtax = sumNtax.add(new UFDouble(bipBvoJson.getString("ntax"))); sumNtax = sumNtax.add(new UFDouble(bipBvoJson.getString("ntax")));
@ -558,6 +566,8 @@ public class IAPISaleInvMaitainImpl {
newSaleInvoiceHVO.setCopposesrcid(saleInvoiceHVO.getCsaleinvoiceid()); // 对冲来源发票id newSaleInvoiceHVO.setCopposesrcid(saleInvoiceHVO.getCsaleinvoiceid()); // 对冲来源发票id
newSaleInvoiceHVO.setApprover(null); // 审批人 newSaleInvoiceHVO.setApprover(null); // 审批人
newSaleInvoiceHVO.setTaudittime(null); // 审批日期 newSaleInvoiceHVO.setTaudittime(null); // 审批日期
newSaleInvoiceHVO.setVdef13(null); // 发票号码
newSaleInvoiceHVO.setVdef17(bject.getString("vdef17")); // BIP申请单号
// 组装VO // 组装VO
saleInvoiceVO.setParentVO(newSaleInvoiceHVO); saleInvoiceVO.setParentVO(newSaleInvoiceHVO);