diff --git a/lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java b/lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java new file mode 100644 index 0000000..9eaaa83 --- /dev/null +++ b/lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java @@ -0,0 +1,160 @@ +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.dataentity.utils.StringUtils; +import kd.bos.entity.datamodel.events.AfterAddRowEventArgs; +import kd.bos.entity.datamodel.events.BeforeAddRowEventArgs; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.events.AfterDoOperationEventArgs; +import kd.bos.form.events.BeforeDoOperationEventArgs; +import kd.bos.form.events.ClosedCallBackEvent; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.form.operate.FormOperate; +import kd.bos.list.ListShowParameter; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; + +import java.math.BigDecimal; +import java.util.EventObject; +import java.util.Objects; + +/** + * 采购退货界面插件 异地退货 + */ +public class PurRefundApplyFormPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { + private final static Log logger = LogFactory.getLog(PurorderEntryIntroPaybillPlugin.class); + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("tbmain"); + BasedataEdit tqq9_thck_ydth = this.getControl("tqq9_thck_ydth"); + tqq9_thck_ydth.addBeforeF7SelectListener(this); + } + + @Override + public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { + super.closedCallBack(closedCallBackEvent); + + } + + /** + * 异地退货返回事件 + */ + + + @Override + public void beforeDoOperation(BeforeDoOperationEventArgs args) { + super.beforeDoOperation(args); + FormOperate operate = (FormOperate) args.getSource(); + String operateKey = operate.getOperateKey(); + if ("tqq9_newentry_ydth".equals(operateKey)) { + int index = this.getModel().getEntryCurrentRowIndex("billentry"); + DynamicObjectCollection billentry = this.getModel().getEntryEntity("billentry"); + if (billentry.size() > index) { + DynamicObject dynamicObject = billentry.get(index); + DynamicObjectCollection tqq9_entryentity = this.getModel().getEntryEntity("tqq9_entryentity"); + DynamicObject addNew = tqq9_entryentity.addNew(); + addNew.set("tqq9_material_ydth", dynamicObject.get("material")); + addNew.set("tqq9_materialname_ydth", dynamicObject.get("materialname")); + addNew.set("tqq9_goods_ydth", dynamicObject.get("tqq9_goods")); + addNew.set("tqq9_brand_ydth", dynamicObject.get("tqq9_brand")); + addNew.set("tqq9_unit_ydth", dynamicObject.get("unit")); + addNew.set("tqq9_registration_ydth", dynamicObject.get("tqq9_registration")); + addNew.set("tqq9_licenseno_ydth", dynamicObject.get("tqq9_licenseno")); + addNew.set("tqq9_priceandtax_ydth", dynamicObject.get("priceandtax")); + addNew.set("tqq9_amountandtax_ydth", dynamicObject.get("amountandtax")); + addNew.set("tqq9_ph_ydth", dynamicObject.get("tqq9_ph")); + addNew.set("tqq9_productdate_ydth", dynamicObject.get("tqq9_productdate")); + addNew.set("tqq9_expiredate_ydth", dynamicObject.get("tqq9_expiredate")); + addNew.set("tqq9_cgthflid", dynamicObject.get("id")); + + this.getModel().updateEntryCache(tqq9_entryentity); + this.getView().updateView("tqq9_entryentity"); + } + } + } + + @Override + public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { + super.afterDoOperation(afterDoOperationEventArgs); + + + } + + /** + * 出库批号根据了做筛选 + */ + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String name = beforeF7SelectEvent.getProperty().getName(); + if (StringUtils.equals("tqq9_thck_ydth", name)) { + QFilter qFilter = null; + DynamicObject tqq9_basedatafield = (DynamicObject) this.getModel().getValue("tqq9_basedatafield"); + if (null != tqq9_basedatafield) { + qFilter = new QFilter("id", QCP.not_equals, tqq9_basedatafield.getLong("id")); + } + ListShowParameter param = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + param.getListFilterParameter().getQFilters().add(qFilter); + + + } + } + + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String name = e.getProperty().getName(); + if ("tqq9_qty_ydth".equals(name)) { + ChangeData changeData = e.getChangeSet()[0]; + int rowIndex = changeData.getRowIndex(); + DynamicObject tqq9_material_ydth = (DynamicObject) this.getModel().getValue("tqq9_material_ydth", rowIndex); + if (null != tqq9_material_ydth) { + DynamicObjectCollection billentry = this.getModel().getEntryEntity("billentry"); + BigDecimal billentry_qty = BigDecimal.ZERO;//物料明细数量 + for (DynamicObject dynamicObject : billentry) { + DynamicObject material = dynamicObject.getDynamicObject("material"); + if (Objects.equals(tqq9_material_ydth, material)) { + BigDecimal qty = dynamicObject.getBigDecimal("qty") == null ? BigDecimal.ZERO : dynamicObject.getBigDecimal("qty"); + billentry_qty = billentry_qty.add(qty); + break; + } + } + DynamicObjectCollection tqq9_entryentity = this.getModel().getEntryEntity("tqq9_entryentity"); + BigDecimal ydth_qty = BigDecimal.ZERO;//异地退货数量 + for (DynamicObject dynamicObject : tqq9_entryentity) { + DynamicObject ydth_material = dynamicObject.getDynamicObject("tqq9_material_ydth"); + if (Objects.equals(tqq9_material_ydth, ydth_material)) { + BigDecimal tqq9_qty_ydth = dynamicObject.getBigDecimal("tqq9_qty_ydth") == null ? BigDecimal.ZERO : dynamicObject.getBigDecimal("tqq9_qty_ydth"); + ydth_qty = ydth_qty.add(tqq9_qty_ydth); + } + } + if (ydth_qty.compareTo(billentry_qty) > 0) { + this.getView().showMessage("异地退货明细中物料为:" + tqq9_material_ydth.getDynamicObject("masterid").getString("name") + "的数量不能超过物料明细对应的数量"); + } + } + + + } + } + + @Override + public void beforeAddRow(BeforeAddRowEventArgs e) { + super.beforeAddRow(e); + + } + + @Override + public void afterAddRow(AfterAddRowEventArgs e) { + super.afterAddRow(e); + } +} \ No newline at end of file diff --git a/lc123/cloud/app/plugin/operate/pm/PurRefundApplyValidOpPlugin.java b/lc123/cloud/app/plugin/operate/pm/PurRefundApplyValidOpPlugin.java new file mode 100644 index 0000000..a6f758d --- /dev/null +++ b/lc123/cloud/app/plugin/operate/pm/PurRefundApplyValidOpPlugin.java @@ -0,0 +1,48 @@ +package tqq9.lc123.cloud.app.plugin.operate.pm; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.args.BeforeOperationArgs; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; +import tqq9.lc123.cloud.app.plugin.utils.AutoFixLinkUtil; + +import java.util.stream.Collectors; + +/** + * 采购退货单保存操作插件 + */ + + +public class PurRefundApplyValidOpPlugin extends AbstractOperationServicePlugIn implements Plugin { + private final static Log logger = LogFactory.getLog(PurRefundApplyValidOpPlugin.class); + + + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + e.addValidator(new AbstractValidator() { + @Override + public void validate() { + ExtendedDataEntity[] dataEntities = this.getDataEntities(); + for (ExtendedDataEntity extendeDataEntity : dataEntities) { + DynamicObject dataEntity = extendeDataEntity.getDataEntity(); + + DynamicObjectCollection billentry = dataEntity.getDynamicObjectCollection("billentry"); + + DynamicObjectCollection tqq9_entryentity = dataEntity.getDynamicObjectCollection("tqq9_entryentity"); + + } + } + }); + } +} \ No newline at end of file