From 60cc77ae80d5031b99b3dbd4f81a7c483252a50c Mon Sep 17 00:00:00 2001 From: "tanfengling@x-ri.com" <123456> Date: Wed, 16 Jul 2025 13:30:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95-=E7=8E=B0?= =?UTF-8?q?=E8=BF=94=E8=B4=A7=E8=BF=94=E5=88=86=E6=91=8A=E5=88=B0=E6=98=8E?= =?UTF-8?q?=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/PuroderBillShareRefundPlugin.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 lc123/cloud/app/plugin/form/PuroderBillShareRefundPlugin.java diff --git a/lc123/cloud/app/plugin/form/PuroderBillShareRefundPlugin.java b/lc123/cloud/app/plugin/form/PuroderBillShareRefundPlugin.java new file mode 100644 index 0000000..5c0c2a6 --- /dev/null +++ b/lc123/cloud/app/plugin/form/PuroderBillShareRefundPlugin.java @@ -0,0 +1,48 @@ +package tqq9.lc123.cloud.app.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * 采购订单 + * 现返、货返金额分摊 + */ +public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn { + + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String name = e.getProperty().getName(); + DynamicObject dataEntity = this.getModel().getDataEntity(true); + if("tqq9_hsxfsyje".equals(name)){ + //含税现返使用金额 + BigDecimal tqq9_hsxfsyje = dataEntity.getBigDecimal(name); + if(tqq9_hsxfsyje.compareTo(BigDecimal.ZERO) > 0){ + BigDecimal totalallamount = dataEntity.getBigDecimal("totalallamount");//单头价税合计 + DynamicObjectCollection billentries = dataEntity.getDynamicObjectCollection("billentry"); + if(billentries != null && billentries.size() > 0){ + BigDecimal remainRefundAmt = totalallamount;//拆分后剩余的金额 + for (int i = 0; i <= billentries.size() - 1; i++) { + DynamicObject billentry = billentries.get(i); + if(i == billentries.size() - 1){ + billentry.set("tqq9_xfamount", remainRefundAmt);//明细现返使用金额 + }else{ + BigDecimal amountandtax = billentry.getBigDecimal("amountandtax");//明细价税合计 + BigDecimal rate = amountandtax.divide(totalallamount, 2, RoundingMode.HALF_UP);//分录行含税金额比例 + } + } + } + } + } + if("tqq9_hshfsyje".equals(name)){ + //含税货返使用金额 + BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal(name); + } + } +}