|
@@ -0,0 +1,64 @@
|
|
|
|
+package nckd.poc602.plugin.form;
|
|
|
|
+
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+
|
|
|
|
+import kd.bos.bill.AbstractBillPlugIn;
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
|
+import kd.bos.entity.datamodel.events.ChangeData;
|
|
|
|
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
|
+import kd.bos.form.field.events.BeforeF7SelectEvent;
|
|
|
|
+import kd.bos.form.field.events.BeforeF7SelectListener;
|
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author xiaobing_wu
|
|
|
|
+ * @date 2025-4-25
|
|
|
|
+ */
|
|
|
|
+public class RecBillFormPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void propertyChanged(PropertyChangedArgs e) {
|
|
|
|
+ super.propertyChanged(e);
|
|
|
|
+
|
|
|
|
+ String key = e.getProperty().getName();
|
|
|
|
+
|
|
|
|
+ //核心单据号
|
|
|
|
+ if("e_corebillno".equals(key) || "nckd_payname".equals(key)) {
|
|
|
|
+ ChangeData[] changeValue = e.getChangeSet();
|
|
|
|
+ int changeRow = changeValue[0].getRowIndex();
|
|
|
|
+ String e_corebillno = (String) this.getModel().getValue("e_corebillno", changeRow);
|
|
|
|
+ QFilter qf = new QFilter("billno",QCP.equals,e_corebillno);
|
|
|
|
+ DynamicObject xsdd = BusinessDataServiceHelper.loadSingle("sm_salorder", "id,nckd_refbillfield,recplanentry.r_itemname,recplanentry.r_recadvanceamount,recplanentry.r_recamount", qf.toArray());
|
|
|
|
+ if(xsdd != null) {
|
|
|
|
+ DynamicObject xsht = xsdd.getDynamicObject("nckd_refbillfield");
|
|
|
|
+ if(xsht != null) {
|
|
|
|
+ this.getView().getModel().setValue("nckd_refbillfield1", xsht, changeRow);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Object nckd_paynameobj = this.getModel().getValue("nckd_payname", changeRow);
|
|
|
|
+ DynamicObject nckd_payname = null;
|
|
|
|
+ if(nckd_paynameobj != null) {
|
|
|
|
+ nckd_payname = (DynamicObject) nckd_paynameobj;
|
|
|
|
+ DynamicObjectCollection plans = xsdd.getDynamicObjectCollection("recplanentry");
|
|
|
|
+ for(DynamicObject plan : plans) {
|
|
|
|
+ DynamicObject r_itemname = plan.getDynamicObject("r_itemname");
|
|
|
|
+ BigDecimal r_recadvanceamount = plan.getBigDecimal("r_recadvanceamount");
|
|
|
|
+ BigDecimal r_recamount = plan.getBigDecimal("r_recamount");
|
|
|
|
+ if(r_itemname != null && r_itemname.getPkValue().equals(nckd_payname.getPkValue())) {
|
|
|
|
+ this.getView().getModel().setValue("e_receivableamt", r_recadvanceamount.subtract(r_recamount), changeRow);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|