支出合同结算冲销单生成收入合同结算冲销单功能开发
This commit is contained in:
parent
b867001265
commit
8d14b23087
|
@ -0,0 +1,57 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.ExtendedDataEntity;
|
||||||
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||||
|
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||||
|
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||||
|
import kd.bos.entity.validate.AbstractValidator;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支出合同结算冲销单反审核校验是否生成收入合同冲销单
|
||||||
|
*/
|
||||||
|
public class OutContractSettleUnauditCheckOp extends AbstractOperationServicePlugIn {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||||
|
super.onPreparePropertys(e);
|
||||||
|
e.getFieldKeys().add("zcgj_is_reversabillid");
|
||||||
|
e.getFieldKeys().add("billno");
|
||||||
|
|
||||||
|
//e.getFieldKeys().add("contract.zcgj_pricetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||||
|
super.onAddValidators(e);
|
||||||
|
//当前所在的组织是属于矿山下的
|
||||||
|
e.getValidators().add(new ValidatorExt());
|
||||||
|
}
|
||||||
|
|
||||||
|
class ValidatorExt extends AbstractValidator {
|
||||||
|
@Override
|
||||||
|
public void validate() {
|
||||||
|
ExtendedDataEntity[] extendedDataEntities = this.getDataEntities();
|
||||||
|
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
|
||||||
|
DynamicObject dataEntity = extendedDataEntity.getDataEntity();
|
||||||
|
String billId = dataEntity.getString("id");
|
||||||
|
String billno = dataEntity.getString("billno");
|
||||||
|
//冲销单据
|
||||||
|
boolean isReversabillid = dataEntity.getBoolean("zcgj_is_reversabillid");
|
||||||
|
if (isReversabillid) {
|
||||||
|
DynamicObject[] load = BusinessDataServiceHelper.load("ec_in_contract_settle", "id,zcgj_reversabillid", new QFilter[]{new QFilter("zcgj_ec_outsettleid", QCP.equals, billId)});
|
||||||
|
if (load != null && load.length > 0) {
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, "支出合同结算冲销单【"+billno+"】存在收入合同结算冲销单,请删除收入合同结算冲销单后再进行反审核操作。");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.workflow;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.operate.result.OperationResult;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
import kd.bos.workflow.api.AgentExecution;
|
||||||
|
import kd.bos.workflow.engine.extitf.IWorkflowPlugin;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支出合同结算单-冲销审核通过工作流插件
|
||||||
|
*/
|
||||||
|
public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notify(AgentExecution execution) {
|
||||||
|
String eventName = execution.getEventName();
|
||||||
|
String businessKey = execution.getBusinessKey();
|
||||||
|
String entityNumber = execution.getEntityNumber();
|
||||||
|
DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(businessKey, entityNumber);
|
||||||
|
//如果时冲销单据
|
||||||
|
boolean isReversabillid = outContractSettle.getBoolean("zcgj_is_reversabillid");
|
||||||
|
if(isReversabillid) {
|
||||||
|
//收入合同
|
||||||
|
DynamicObject contractInfo = outContractSettle.getDynamicObject("zcgj_in_contract");
|
||||||
|
//收入合同结算
|
||||||
|
DynamicObject inContractSettle =BusinessDataServiceHelper.newDynamicObject("ec_in_contract_settle");
|
||||||
|
|
||||||
|
inContractSettle.set("contract",contractInfo);
|
||||||
|
inContractSettle.set("org", outContractSettle.getDynamicObject("org"));
|
||||||
|
inContractSettle.set("billstatus","C");
|
||||||
|
inContractSettle.set("begindate",outContractSettle.getDate("begindate"));
|
||||||
|
inContractSettle.set("enddate",outContractSettle.getDate("enddate"));
|
||||||
|
inContractSettle.set("period",outContractSettle.getDynamicObject("period"));
|
||||||
|
inContractSettle.set("zcgj_jscustomer",contractInfo.getDynamicObject("parta"));
|
||||||
|
inContractSettle.set("contattr",outContractSettle.getDynamicObject("contattr"));
|
||||||
|
inContractSettle.set("project",outContractSettle.getDynamicObject("project"));
|
||||||
|
inContractSettle.set("conttotaloftaxamount",outContractSettle.getBigDecimal("conttotaloftaxamount"));
|
||||||
|
inContractSettle.set("description",outContractSettle.getString("description"));
|
||||||
|
inContractSettle.set("currency",outContractSettle.getString("currency"));
|
||||||
|
String number = CodeRuleServiceHelper.getNumber("ec_in_contract_settle", inContractSettle, null);
|
||||||
|
inContractSettle.set("paydirection","in");
|
||||||
|
inContractSettle.set("billno",number);
|
||||||
|
inContractSettle.set("billname", outContractSettle.getString("billname"));
|
||||||
|
inContractSettle.set("zcgj_ec_outsettleid", outContractSettle.getLong("id"));
|
||||||
|
inContractSettle.set("taxrate", outContractSettle.getDynamicObject("taxrate"));
|
||||||
|
inContractSettle.set("isonlist", outContractSettle.getBoolean("isonlist"));
|
||||||
|
inContractSettle.set("conttotaloftaxamount", outContractSettle.getBoolean("conttotaloftaxamount"));
|
||||||
|
inContractSettle.set("zcgj_is_reversabillid", true);
|
||||||
|
|
||||||
|
DynamicObject payitem = BusinessDataServiceHelper.loadSingle("ec_payitem", new QFilter[]{new QFilter("number", QCP.equals,"HTCX")});
|
||||||
|
|
||||||
|
DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry");
|
||||||
|
DynamicObjectCollection entryEntity = inContractSettle.getDynamicObjectCollection("itementry");
|
||||||
|
|
||||||
|
BigDecimal settleamount = BigDecimal.ZERO;
|
||||||
|
BigDecimal taxamount = BigDecimal.ZERO;
|
||||||
|
BigDecimal settleoftaxamount = BigDecimal.ZERO;
|
||||||
|
for (DynamicObject dynamicObject : itementry) {
|
||||||
|
DynamicObject item = entryEntity.addNew();
|
||||||
|
item.set("payitem",payitem);
|
||||||
|
BigDecimal oftaxamount = dynamicObject.getBigDecimal("oftaxamount");
|
||||||
|
item.set("oftaxamount",oftaxamount);
|
||||||
|
BigDecimal amount = dynamicObject.getBigDecimal("amount");
|
||||||
|
item.set("amount",amount);
|
||||||
|
item.set("rate",dynamicObject.getBigDecimal("rate"));
|
||||||
|
BigDecimal taxamt = dynamicObject.getBigDecimal("taxamt");
|
||||||
|
item.set("taxamt",taxamt);
|
||||||
|
item.set("remark",dynamicObject.getString("remark"));
|
||||||
|
|
||||||
|
settleamount = settleamount.add(amount);
|
||||||
|
taxamount = taxamount.add(taxamt);
|
||||||
|
settleoftaxamount = settleoftaxamount.add(oftaxamount);
|
||||||
|
}
|
||||||
|
inContractSettle.set("settleamount",settleamount);
|
||||||
|
inContractSettle.set("taxamount",taxamount);
|
||||||
|
inContractSettle.set("settleoftaxamount",settleoftaxamount);
|
||||||
|
|
||||||
|
OperationResult ecInContractSettle = SaveServiceHelper.saveOperate("ec_in_contract_settle", new DynamicObject[]{inContractSettle}, null);//支出合同实体
|
||||||
|
}
|
||||||
|
IWorkflowPlugin.super.notify(execution);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue