优化支出合同结算按入库运费结算逻辑,提交删除合同支付项中的当期合同计量金额行,撤销反审核新增合同支付项中的当期合同计量金额行逻辑和刷新页面逻辑
This commit is contained in:
parent
b18123694a
commit
4e39c9b866
|
|
@ -6,7 +6,9 @@ import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
|
|||
import kd.bos.entity.datamodel.events.ChangeData;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.form.control.events.ItemClickEvent;
|
||||
import kd.bos.form.events.AfterDoOperationEventArgs;
|
||||
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||
import kd.bos.list.BillList;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
|
|
@ -28,7 +30,15 @@ public class CostAllocatorBillPlugin extends AbstractFormPlugin {
|
|||
this.addItemClickListeners("payitemdetaitoolap");//合同支付项明细工具栏
|
||||
this.addItemClickListeners("entrytoolbar1");//入库单明细工具栏
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
||||
super.afterDoOperation(afterDoOperationEventArgs);
|
||||
String operateKey = afterDoOperationEventArgs.getOperateKey();
|
||||
if (operateKey.equals("submit") || operateKey.equals("unsubmit") || operateKey.equals("unaudit")) {
|
||||
// 刷新列表
|
||||
this.getView().invokeOperation("refresh");
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void itemClick(ItemClickEvent evt) {
|
||||
super.itemClick(evt);
|
||||
|
|
|
|||
|
|
@ -347,6 +347,10 @@ public class OutContractSettleEditPluginExt extends AbstractBillPlugIn implement
|
|||
|
||||
protected void sumMaterialInAmountToItemEntry() {
|
||||
this.getModel().updateCache();
|
||||
Object contract = this.getModel().getValue("contract");//合同名称
|
||||
if (contract == null) {
|
||||
return;
|
||||
}
|
||||
DynamicObjectCollection materialInEntry = this.getModel().getEntryEntity("materialinentry");//入库单分录
|
||||
if (materialInEntry != null && materialInEntry.size() != 0) {
|
||||
BigDecimal amount = BigDecimal.ZERO;//入库单明细-材料不含税金额汇总
|
||||
|
|
@ -574,10 +578,24 @@ public class OutContractSettleEditPluginExt extends AbstractBillPlugIn implement
|
|||
//二开添加逻辑↓
|
||||
} else if (StringUtils.equals(name, "zcgj_transset")) {
|
||||
//按入库运费结算
|
||||
Object contract = this.getModel().getValue("contract");//合同名称
|
||||
if (contract == null) {
|
||||
return;
|
||||
}
|
||||
boolean issettlebymatin = (boolean) this.getModel().getValue("issettlebymatin");//按入库单结算
|
||||
boolean zcgj_transset = (boolean) changeData.getNewValue();//按入库运费结算新值
|
||||
DynamicObject transSettleItem1 = this.getModel().getEntryRowEntity("itementry", 1);
|
||||
DynamicObject payItem1 = transSettleItem1.getDynamicObject("payitem");//合同支付项-名称
|
||||
boolean hasSettleTrans1 = "YFJS".equals(payItem1.getString("number"));
|
||||
if (!issettlebymatin && !zcgj_transset && hasSettleTrans1) {
|
||||
this.getModel().setValue("oftaxamount", BigDecimal.ZERO, 1);//合同支付项-价税合计
|
||||
this.getModel().setValue("amount", BigDecimal.ZERO, 1);//合同支付项-金额
|
||||
this.getModel().deleteEntryRow("itementry", 1);
|
||||
return;
|
||||
}
|
||||
this.autoFetch();
|
||||
this.sumMaterialInAmountToItemEntry();
|
||||
SettleUpdateAmtUtils.calAllTypeAmount(this.getModel());
|
||||
Boolean zcgj_transset = (Boolean) changeData.getNewValue();//按入库运费结算新值
|
||||
DynamicObjectCollection materialInEntry = this.getModel().getEntryEntity("materialinentry");//入库单分录
|
||||
if (materialInEntry != null && materialInEntry.size() != 0) {
|
||||
BigDecimal amount = BigDecimal.ZERO;//入库单明细-材料不含税金额汇总
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 支出合同结算提交操作插件
|
||||
*/
|
||||
public class OutContractSubmitOp extends AbstractOperationServicePlugIn {
|
||||
|
||||
@Override
|
||||
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||
super.afterExecuteOperationTransaction(e);
|
||||
DynamicObject[] dataEntities = e.getDataEntities();
|
||||
List<DynamicObject> modifiedEntities = new ArrayList<>();
|
||||
for (DynamicObject model : dataEntities) {
|
||||
long id = model.getLong("id");
|
||||
QFilter f1 = new QFilter("id", "=", id);
|
||||
DynamicObject ec_out_contract_settle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle", new QFilter[]{f1});//支出合同结算
|
||||
boolean zcgj_transset = ec_out_contract_settle.getBoolean("zcgj_transset");//按入库运费结算
|
||||
if (zcgj_transset) {
|
||||
DynamicObjectCollection itemEntryCollection = ec_out_contract_settle.getDynamicObjectCollection("itementry");//支付项分录
|
||||
if (itemEntryCollection != null && itemEntryCollection.size() > 0) {
|
||||
Iterator<DynamicObject> iterator = itemEntryCollection.iterator();//迭代器
|
||||
while (iterator.hasNext()) {
|
||||
DynamicObject itemEntry = iterator.next();
|
||||
DynamicObject payItem1 = itemEntry.getDynamicObject("payitem");//合同支付项-名称
|
||||
boolean hasSettleTrans1 = "HTJL".equals(payItem1.getString("number"));
|
||||
if (hasSettleTrans1) {
|
||||
iterator.remove();//注意一定要用迭代器remove
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SaveServiceHelper.save(new DynamicObject[]{ec_out_contract_settle});//保存
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
|
||||
/**
|
||||
* 支出合同结算撤销反审核操作插件
|
||||
*/
|
||||
public class OutContractUnSubmitUnAuditOp extends AbstractOperationServicePlugIn {
|
||||
@Override
|
||||
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||
super.afterExecuteOperationTransaction(e);
|
||||
DynamicObject[] dataEntities = e.getDataEntities();
|
||||
for (DynamicObject model : dataEntities) {
|
||||
long id = model.getLong("id");
|
||||
QFilter f1 = new QFilter("id", "=", id);
|
||||
DynamicObject ec_out_contract_settle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle", new QFilter[]{f1});//支出合同结算
|
||||
boolean zcgj_transset = ec_out_contract_settle.getBoolean("zcgj_transset");//按入库运费结算
|
||||
if (zcgj_transset) {
|
||||
DynamicObjectCollection itemEntryCollection = ec_out_contract_settle.getDynamicObjectCollection("itementry");//支付项分录
|
||||
if (itemEntryCollection != null && itemEntryCollection.size() > 0) {
|
||||
DynamicObject itemEntry = itemEntryCollection.get(0);
|
||||
DynamicObject payItem1 = itemEntry.getDynamicObject("payitem");//合同支付项-名称
|
||||
boolean hasSettleTrans1 = "YFJS".equals(payItem1.getString("number"));
|
||||
if (hasSettleTrans1) {
|
||||
DynamicObjectType entrytype = ec_out_contract_settle.getDynamicObjectCollection("itementry").getDynamicObjectType();
|
||||
DynamicObject newItemEntry = new DynamicObject(entrytype);
|
||||
newItemEntry.set("payitem", "506427748873442304");
|
||||
itemEntryCollection.add(0, newItemEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
SaveServiceHelper.save(new DynamicObject[]{ec_out_contract_settle});//保存
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue