fix(sales): 修复海外店铺税率显示问题

- 在 SoSaleOutPluginInitializerToB 和 SoSaleReturnPluginInitializerToB 中添加逻辑,当税率为 0 时直接设置为 "0"
- 修改销售发票体 DTO 中的税率设置逻辑,取自销售订单的税率
- 优化了税率计算和显示的逻辑,确保海外店铺的税率正确显示为 0
This commit is contained in:
liuy 2024-11-30 17:33:05 +08:00
parent 6b7c4aabaf
commit 7975339e85
3 changed files with 18 additions and 5 deletions

View File

@ -773,6 +773,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
//根据存货基础档案编码查询当前存货的税率 //根据存货基础档案编码查询当前存货的税率
BdTaxitemsEntity bdTaxitemsEntity1 = queryBdTaxitems(bdInvbasdocEntity.getInvcode()); BdTaxitemsEntity bdTaxitemsEntity1 = queryBdTaxitems(bdInvbasdocEntity.getInvcode());
//取存货默认税率0如果是海外店铺税率这为0
String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
// 如果是海外的店铺则税率为零 // 如果是海外的店铺则税率为零
@ -837,7 +838,11 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
// saleorderRequestChildrenDto.setNoriginalcurtaxmny(noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额 // saleorderRequestChildrenDto.setNoriginalcurtaxmny(noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额
// saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价 // saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价
// saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 // saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价
// saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 if ("0".equals(tax)) {
saleorderRequestChildrenDto.setNtaxrate("0");//税率
} else {
saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率
}
//2024年8月30日 10:52:55 抛出异常pk_defxxx长度不够的问题已经提交给总部 //2024年8月30日 10:52:55 抛出异常pk_defxxx长度不够的问题已经提交给总部
//TODO 先不传抛出长度异常后续再改 //TODO 先不传抛出长度异常后续再改
// saleorderRequestChildrenDto.setVdef19(header.getCode());//原单单号 // saleorderRequestChildrenDto.setVdef19(header.getCode());//原单单号
@ -1938,7 +1943,8 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
salesInvoiceBodyDto.setNnumber(detailsDto.getShipQty());//数量 salesInvoiceBodyDto.setNnumber(detailsDto.getShipQty());//数量
// salesInvoiceBodyDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 // salesInvoiceBodyDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价
salesInvoiceBodyDto.setNoriginalcursummny(new BigDecimal(totalPayAmount).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 新逻辑 salesInvoiceBodyDto.setNoriginalcursummny(new BigDecimal(totalPayAmount).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 新逻辑
// salesInvoiceBodyDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 //取销售订单是上的税率
salesInvoiceBodyDto.setNtaxrate(sourceDocumentsV2.getNtaxrate());
salesInvoiceBodyDto.setBlargessflag(isblargessflag); salesInvoiceBodyDto.setBlargessflag(isblargessflag);
salesInvoiceBodyDto.setCoriginalbillcode(soSaleEntity.getVreceiptcode());//源头单据号 salesInvoiceBodyDto.setCoriginalbillcode(soSaleEntity.getVreceiptcode());//源头单据号
salesInvoiceBodyDto.setCsourcebillbodyid(sourceDocumentsV2.getCorderBid());//源头单据明细行主键 (数据字典上是来源单据明细行主键实际上是源头) salesInvoiceBodyDto.setCsourcebillbodyid(sourceDocumentsV2.getCorderBid());//源头单据明细行主键 (数据字典上是来源单据明细行主键实际上是源头)

View File

@ -829,7 +829,12 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
// saleorderRequestChildrenDto.setNoriginalcurtaxmny("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额 // saleorderRequestChildrenDto.setNoriginalcurtaxmny("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额
// saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价 // saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价
// saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 // saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价
// saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 //税率
if ("0".equals(tax)) {
saleorderRequestChildrenDto.setNtaxrate("0");
} else {
saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());
}
saleorderRequestChildrenDto.setVdef20(stockinB.getId());//原单明细主键 saleorderRequestChildrenDto.setVdef20(stockinB.getId());//原单明细主键
// saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 // saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目
// saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); // saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj());
@ -1881,7 +1886,9 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
salesInvoiceBodyDto.setNnumber("-" + stockinB.getReceivedQty());//数量 salesInvoiceBodyDto.setNnumber("-" + stockinB.getReceivedQty());//数量
// salesInvoiceBodyDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 // salesInvoiceBodyDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价
salesInvoiceBodyDto.setNoriginalcursummny("-" + new BigDecimal(totalPayAmount).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 新逻辑 salesInvoiceBodyDto.setNoriginalcursummny("-" + new BigDecimal(totalPayAmount).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 新逻辑
salesInvoiceBodyDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 // salesInvoiceBodyDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率
//税率:取对应销售订单税率
salesInvoiceBodyDto.setNtaxrate(sourceDocumentsV2.getNtaxrate());
salesInvoiceBodyDto.setBlargessflag(isblargessflag);//是否赠品 salesInvoiceBodyDto.setBlargessflag(isblargessflag);//是否赠品
salesInvoiceBodyDto.setCoriginalbillcode(soSaleEntity.getVreceiptcode());//源头单据号 salesInvoiceBodyDto.setCoriginalbillcode(soSaleEntity.getVreceiptcode());//源头单据号
salesInvoiceBodyDto.setCsourcebillbodyid(sourceDocumentsV2.getCorderBid());//源头单据明细行主键 (数据字典上是来源单据明细行主键实际上是源头) salesInvoiceBodyDto.setCsourcebillbodyid(sourceDocumentsV2.getCorderBid());//源头单据明细行主键 (数据字典上是来源单据明细行主键实际上是源头)

View File

@ -83,7 +83,7 @@ public class SoSaleOutPluginInitializerToBTest {
// soSaleOutPluginInitializerToB.startImplementByStockTime("2024-10-23 16:09:59", "2024-10-23 16:10:01"); // soSaleOutPluginInitializerToB.startImplementByStockTime("2024-10-23 16:09:59", "2024-10-23 16:10:01");
String aaa = "LETS-SH2024102200156975"; String aaa = "LETS-SH2024103100026169";
soSaleOutPluginInitializerToB.startImplementByCode(aaa, "tran"); soSaleOutPluginInitializerToB.startImplementByCode(aaa, "tran");
// soSaleOutPluginInitializerToB.startImplementByTranTime("2024-10-28 00:00:00", "2024-10-28 23:59:59"); // soSaleOutPluginInitializerToB.startImplementByTranTime("2024-10-28 00:00:00", "2024-10-28 23:59:59");