支出合同结算冲销单生成收入合同结算冲销单功能开发
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