收入合同计算与供应商变更

This commit is contained in:
xiaoshi 2024-12-10 16:02:06 +08:00
parent d597a997da
commit 9be2440b6d
2 changed files with 129 additions and 29 deletions

View File

@ -8,6 +8,7 @@ import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.entity.operate.result.OperationResult; import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.control.Control; import kd.bos.form.control.Control;
import kd.bos.form.control.events.BeforeClickEvent; import kd.bos.form.control.events.BeforeClickEvent;
import kd.bos.form.control.events.BeforeItemClickEvent;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper;
@ -39,46 +40,57 @@ public class ContractSettleBillPlugin extends AbstractBillPlugIn implements Plug
public void registerListener(EventObject e) { public void registerListener(EventObject e) {
super.registerListener(e); super.registerListener(e);
// 注册按钮点击事件 // 注册按钮点击事件
this.addClickListeners("bar_save"); this.addClickListeners("bar_audit");
this.addItemClickListeners("bar_audit");
} }
@Override @Override
public void beforeClick(BeforeClickEvent evt) { public void beforeClick(BeforeClickEvent evt) {
super.beforeClick(evt); super.beforeClick(evt);
}
@Override
public void click(EventObject evt) {
super.click(evt);
}
@Override
public void beforeItemClick(BeforeItemClickEvent evt) {
super.beforeItemClick(evt);
Control source = (Control) evt.getSource(); Control source = (Control) evt.getSource();
if (StringUtils.equals("bar_save", source.getKey())) { if (StringUtils.equals("bar_audit", source.getKey())) {
// 在此添加业务逻辑 // 在此添加业务逻辑
Object changetype = this.getModel().getValue("changetype"); Object changetype = this.getModel().getValue("changetype");
if (changetype != null) { if (changetype != null) {
if (changetype.toString().equals("03")) { if (changetype.toString().equals("03")) {
Object contract = this.getModel().getValue("contract"); Object contract = this.getModel().getValue("contract");
DynamicObject contractInfo = (DynamicObject) contract; DynamicObject contractInfo = (DynamicObject) contract;
String billName = contractInfo.getDataEntityType().getName(); String billName = contractInfo.getDataEntityType().getName();
DynamicObject zcgjParta = (DynamicObject)this.getModel().getValue("zcgj_parta"); DynamicObject zcgjParta = (DynamicObject)this.getModel().getValue("zcgj_parta");
Object zcgjOtherpart = this.getModel().getValue("zcgj_otherpart"); Object zcgjOtherpart = this.getModel().getValue("zcgj_otherpart");
if (billName.equals("ec_out_contract_f7")) { if (billName.equals("ec_out_contract_f7")) {
QFilter f1 = new QFilter("number", "=", contractInfo.getString("number")); QFilter f1 = new QFilter("number", "=", contractInfo.getString("number"));
DynamicObject outContractF7 = BusinessDataServiceHelper.loadSingle("ec_out_contract_f7", new QFilter[]{f1}); DynamicObject outContractF7 = BusinessDataServiceHelper.loadSingle("ec_out_contract_f7", new QFilter[]{f1});
outContractF7.set("parta",zcgjParta); outContractF7.set("parta",zcgjParta);
OperationResult saveOperationResult = SaveServiceHelper.saveOperate("ec_out_contract_f7", new DynamicObject[]{outContractF7}, null);//支出合同F7实体 OperationResult saveOperationResult = SaveServiceHelper.saveOperate("ec_out_contract_f7", new DynamicObject[]{outContractF7}, null);//支出合同F7实体
QFilter f2 = new QFilter("billno", "=", contractInfo.getString("number"));
DynamicObject outContract = BusinessDataServiceHelper.loadSingle("ec_out_contract", new QFilter[]{f2});
outContract.set("parta",zcgjParta);
if(zcgjOtherpart!=null){
DynamicObjectCollection otherpart = (DynamicObjectCollection) this.getModel().getValue("zcgj_otherpart");
outContract.set("otherpart",otherpart);
outContract.set("ismulticontract",true);
}
OperationResult saveOperationResult1 = SaveServiceHelper.saveOperate("ec_out_contract", new DynamicObject[]{outContractF7}, null);//支出合同实体
System.out.println(saveOperationResult1);
}else{
QFilter f2 = new QFilter("billno", "=", contractInfo.getString("number"));
DynamicObject outContract = BusinessDataServiceHelper.loadSingle("ec_out_contract", new QFilter[]{f2});
outContract.set("parta",zcgjParta);
if(zcgjOtherpart!=null){
DynamicObjectCollection otherpart = (DynamicObjectCollection) this.getModel().getValue("zcgj_otherpart");
outContract.set("otherpart",otherpart);
outContract.set("ismulticontract",true);
} }
OperationResult saveOperationResult1 = SaveServiceHelper.saveOperate("ec_out_contract", new DynamicObject[]{outContractF7}, null);//支出合同实体
System.out.println(saveOperationResult1);
}else{
} }
} }
}
evt.setCancel(true); // 取消后续处理将不会再触发click事件 evt.setCancel(true); // 取消后续处理将不会再触发click事件
} }
} }

View File

@ -1,8 +1,12 @@
package zcgj.zcdev.zcdev.pr.plugin.form; package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
import java.util.EventObject; import java.util.EventObject;
/** /**
@ -15,4 +19,88 @@ public class EcContractFromPlugin extends AbstractBillPlugIn implements Plugin {
super.afterCreateNewData(e); super.afterCreateNewData(e);
} }
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
String name = e.getProperty().getName();
ChangeData changeData = e.getChangeSet()[0];
Object taxrate = this.getModel().getValue("taxrate");
if (taxrate != null) {
DynamicObject taxrateInfo = (DynamicObject) taxrate;
BigDecimal trate = taxrateInfo.getBigDecimal("taxrate");
BigDecimal pRate = trate.divide(new BigDecimal(100)).add(new BigDecimal(1));
BigDecimal amount = new BigDecimal(0);
BigDecimal ofamount = new BigDecimal(0);
BigDecimal rate = new BigDecimal(0);
DynamicObject dataEntity = this.getModel().getDataEntity(true);
if (name.equals("zcgj_pjnhhshte")) {
Object zcgjPjnhbhshte = this.getModel().getValue("zcgj_pjnhhshte");
System.out.println();
if (zcgjPjnhbhshte != null) {
ofamount = new BigDecimal(zcgjPjnhbhshte.toString());
}
amount = ofamount.divide(pRate, 6, BigDecimal.ROUND_HALF_UP);
rate = ofamount.subtract(amount);
dataEntity.set("zcgj_pjnhbhshte", amount);
dataEntity.set("zcgj_pjnhse", rate);
// this.getModel().setValue("zcgj_pjnhbhshte", amount);
// this.getModel().setValue("zcgj_pjnhse", rate);
} else if (name.equals("zcgj_pjnhbhshte")) {
Object zcgjPjnhhshte = this.getModel().getValue("zcgj_pjnhbhshte");
System.out.println();
if (zcgjPjnhhshte != null) {
amount = new BigDecimal(zcgjPjnhhshte.toString());
}
ofamount = amount.multiply(pRate);
rate = ofamount.subtract(amount);
// this.getModel().setValue("zcgj_pjnhhshte", ofamount);
// this.getModel().setValue("zcgj_pjnhse", rate);
dataEntity.set("zcgj_pjnhhshte", ofamount);
dataEntity.set("zcgj_pjnhse", rate);
}else if (name.equals("zcgj_yjhshtsr")) {
Object zcgjyjhshtsr = this.getModel().getValue("zcgj_yjhshtsr");
System.out.println();
if (zcgjyjhshtsr != null) {
ofamount = new BigDecimal(zcgjyjhshtsr.toString());
}
amount = ofamount.divide(pRate, 6, BigDecimal.ROUND_HALF_UP);
rate = ofamount.subtract(amount);
// this.getModel().setValue("zcgj_yjbhshtsr", amount);
// this.getModel().setValue("zcgj_yjzse", rate);
dataEntity.set("zcgj_yjbhshtsr", amount);
dataEntity.set("zcgj_yjzse", rate);
} else if (name.equals("zcgj_yjbhshtsr")) {
Object zcgjyjbhshtsr = this.getModel().getValue("zcgj_yjbhshtsr");
System.out.println();
if (zcgjyjbhshtsr != null) {
amount = new BigDecimal(zcgjyjbhshtsr.toString());
}
ofamount = amount.multiply(pRate);
rate = ofamount.subtract(amount);
// this.getModel().setValue("zcgj_yjhshtsr", ofamount);
// this.getModel().setValue("zcgj_yjzse", rate);
dataEntity.set("zcgj_yjhshtsr", ofamount);
dataEntity.set("zcgj_yjzse", rate);
}else if (name.equals("zcgj_hshtdj")) {
Object zcgjhshtdj = this.getModel().getValue("zcgj_hshtdj");
if (zcgjhshtdj != null) {
ofamount = new BigDecimal(zcgjhshtdj.toString());
}
amount = ofamount.divide(pRate,6, BigDecimal.ROUND_HALF_UP);
dataEntity.set("zcgj_bhshtdj", amount);
// this.getModel().setValue("zcgj_bhshtdj", ofamount);
}else if (name.equals("zcgj_bhshtdj")) {
Object zcgjbhshtdj = this.getModel().getValue("zcgj_bhshtdj");
if (zcgjbhshtdj != null) {
amount = new BigDecimal(zcgjbhshtdj.toString());
}
ofamount = amount.multiply(pRate);
dataEntity.set("zcgj_hshtdj", ofamount);
// this.getModel().setValue("zcgj_hshtdj", ofamount);
}
this.getView().updateView();
}
}
} }