From 7975339e856f7533c7c4c960237520f099c495e8 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Sat, 30 Nov 2024 17:33:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(sales):=20=E4=BF=AE=E5=A4=8D=E6=B5=B7?= =?UTF-8?q?=E5=A4=96=E5=BA=97=E9=93=BA=E7=A8=8E=E7=8E=87=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 SoSaleOutPluginInitializerToB 和 SoSaleReturnPluginInitializerToB 中添加逻辑,当税率为 0 时直接设置为 "0" - 修改销售发票体 DTO 中的税率设置逻辑,取自销售订单的税率 - 优化了税率计算和显示的逻辑,确保海外店铺的税率正确显示为 0 --- .../plugin/sales/SoSaleOutPluginInitializerToB.java | 10 ++++++++-- .../sales/SoSaleReturnPluginInitializerToB.java | 11 +++++++++-- .../sales/SoSaleOutPluginInitializerToBTest.java | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java index acf99a3d..d3e3a3c2 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java @@ -773,6 +773,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { //根据存货基础档案编码,查询当前存货的税率 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(); // 如果是海外的店铺,则税率为零 @@ -837,7 +838,11 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { // saleorderRequestChildrenDto.setNoriginalcurtaxmny(noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额 // saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(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长度不够的问题,已经提交给总部 //TODO 先不传,抛出长度异常,后续再改 // saleorderRequestChildrenDto.setVdef19(header.getCode());//原单单号 @@ -1938,7 +1943,8 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { salesInvoiceBodyDto.setNnumber(detailsDto.getShipQty());//数量 // salesInvoiceBodyDto.setNoriginalcurtaxprice(noriginalcurtaxprice.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.setCoriginalbillcode(soSaleEntity.getVreceiptcode());//源头单据号 salesInvoiceBodyDto.setCsourcebillbodyid(sourceDocumentsV2.getCorderBid());//源头单据明细行主键 (数据字典上是来源单据明细行主键,实际上是源头) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java index da4f443c..252095c4 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java @@ -829,7 +829,12 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { // saleorderRequestChildrenDto.setNoriginalcurtaxmny("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额 // saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(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.setVdef2(bdCostsubjEntity.getCostname());//收支项目 // saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); @@ -1881,7 +1886,9 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { salesInvoiceBodyDto.setNnumber("-" + stockinB.getReceivedQty());//数量 // salesInvoiceBodyDto.setNoriginalcurtaxprice(noriginalcurtaxprice.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.setCoriginalbillcode(soSaleEntity.getVreceiptcode());//源头单据号 salesInvoiceBodyDto.setCsourcebillbodyid(sourceDocumentsV2.getCorderBid());//源头单据明细行主键 (数据字典上是来源单据明细行主键,实际上是源头) diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToBTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToBTest.java index f53aa11b..843a8cac 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToBTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToBTest.java @@ -83,7 +83,7 @@ public class SoSaleOutPluginInitializerToBTest { // 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.startImplementByTranTime("2024-10-28 00:00:00", "2024-10-28 23:59:59");