From 940d77c017b8206c370d85d5367e8203f6502691 Mon Sep 17 00:00:00 2001 From: "tanfengling@x-ri.com" <123456> Date: Fri, 18 Jul 2025 17:16:36 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E3=80=91=E5=88=86=E5=BD=95=E7=9A=84=E4=BC=98=E6=83=A0=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E5=88=86=E6=91=8A=EF=BC=8C=E5=88=86=E5=BD=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=AE=A1=E7=AE=97=E8=BF=94=E5=88=A9=E5=92=8C=E4=B8=8D?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E8=BF=94=E5=88=A9=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/pm/PuroderBillShareRefundPlugin.java | 25 +++++++++++ .../form/pm/PurorderEntryBtnPlugin.java | 43 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 lc123/cloud/app/plugin/form/pm/PurorderEntryBtnPlugin.java diff --git a/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java b/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java index 0c14934..d4cf4ab 100644 --- a/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java +++ b/lc123/cloud/app/plugin/form/pm/PuroderBillShareRefundPlugin.java @@ -70,5 +70,30 @@ public class PuroderBillShareRefundPlugin extends AbstractBillPlugIn { } this.getView().updateView("billentry"); } + if("tqq9_disamount".equals(name)){ + //优惠金额 + BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal(name);//单头优惠金额 + if(tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0){ + BigDecimal totalallamount = dataEntity.getBigDecimal("totalallamount");//单头价税合计 + DynamicObjectCollection billentries = dataEntity.getDynamicObjectCollection("billentry"); + if(billentries != null && billentries.size() > 0){ + BigDecimal remainRefundAmt = tqq9_hshfsyje;//拆分后剩余的金额 + for (int i = 0; i <= billentries.size() - 1; i++) { + DynamicObject billentry = billentries.get(i); + if(i == billentries.size() - 1){ + //如果是最后一行 + this.getModel().setValue("tqq9_hfamount", remainRefundAmt, i);//明细货返使用金额 + }else{ + //如果不是最后一行 + BigDecimal amountandtax = billentry.getBigDecimal("amountandtax");//明细价税合计 + BigDecimal tqq9_hfamount = tqq9_hshfsyje.multiply(amountandtax).divide(totalallamount, 2, RoundingMode.HALF_UP);//分录行含税金额比例 + this.getModel().setValue("tqq9_hfamount", tqq9_hfamount, i);//明细货返使用金额 + remainRefundAmt = remainRefundAmt.subtract(tqq9_hfamount); + } + } + } + } + this.getView().updateView("billentry"); + } } } diff --git a/lc123/cloud/app/plugin/form/pm/PurorderEntryBtnPlugin.java b/lc123/cloud/app/plugin/form/pm/PurorderEntryBtnPlugin.java new file mode 100644 index 0000000..c795506 --- /dev/null +++ b/lc123/cloud/app/plugin/form/pm/PurorderEntryBtnPlugin.java @@ -0,0 +1,43 @@ +package tqq9.lc123.cloud.app.plugin.form.pm; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +import java.util.EventObject; + +/** + * 采购订单界面插件 + * 明细计算返利、不计算返利两个按钮的逻辑 + */ +public class PurorderEntryBtnPlugin extends AbstractBillPlugIn { + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("tbmainentry"); + } + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + DynamicObject dataEntity = this.getModel().getDataEntity(true); + if("tqq9_calrefundbtn".equals(itemKey)){ + //分录计算返利按钮 + DynamicObjectCollection billentries = dataEntity.getDynamicObjectCollection("billentry"); + for (int i = 0; i < billentries.size(); i++) { + this.getModel().setValue("tqq9_calrefund", true, i); + } + }else if("tqq9_nocalrefundbtn".equals(itemKey)){ + DynamicObjectCollection billentries = dataEntity.getDynamicObjectCollection("billentry"); + for (int i = 0; i < billentries.size(); i++) { + this.getModel().setValue("tqq9_calrefund", false, i); + } + } +// this.getView().updateView("billentry"); + } +}