160 lines
6.9 KiB
Java
160 lines
6.9 KiB
Java
|
|
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);
|
||
|
|
}
|
||
|
|
}
|