Compare commits
3 Commits
f3453565e9
...
1849dbaac9
Author | SHA1 | Date |
---|---|---|
|
1849dbaac9 | |
|
b1d7b678bc | |
|
70108b2b8b |
|
@ -0,0 +1,117 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
|
||||
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.ec.basedata.common.enums.PayDirectionEnum;
|
||||
import kd.ec.basedata.common.utils.CurrencyHelper;
|
||||
import kd.ec.contract.common.enums.DirectionEnum;
|
||||
import kd.ec.contract.opplugin.AbstractReverseWritingContractOp;
|
||||
import kd.ec.contract.opplugin.validator.OutPerformRecordsValidator;
|
||||
import kd.ec.contract.opplugin.validator.PerformValidator;
|
||||
|
||||
public abstract class AbstractContractPerformOpExt extends AbstractReverseWritingContractOp {
|
||||
public AbstractContractPerformOpExt() {
|
||||
}
|
||||
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
e.getFieldKeys().add("contract");
|
||||
e.getFieldKeys().add("project");
|
||||
e.getFieldKeys().add("org");
|
||||
e.getFieldKeys().add("currency");
|
||||
e.getFieldKeys().add("entryentity");
|
||||
e.getFieldKeys().add("amount");
|
||||
e.getFieldKeys().add("isclaim");
|
||||
e.getFieldKeys().add("exratetable");
|
||||
e.getFieldKeys().add("issettle");
|
||||
e.getFieldKeys().add("isneedsettle");
|
||||
e.getFieldKeys().add("ca");
|
||||
e.getFieldKeys().add("cbs");
|
||||
e.getFieldKeys().add("boq");
|
||||
e.getFieldKeys().add("contpayitem");
|
||||
e.getFieldKeys().add("unitproject");
|
||||
e.getFieldKeys().add("notaxamount");
|
||||
e.getFieldKeys().add("performamount");
|
||||
}
|
||||
|
||||
public void reverseWritingToContract(String operationKey, DynamicObject source) {
|
||||
}
|
||||
|
||||
public abstract String getPayDirection();
|
||||
|
||||
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||
if (this.getPayDirection().equals(PayDirectionEnum.IN.getValue())) {
|
||||
e.addValidator(new PerformValidator());
|
||||
} else if (this.getPayDirection().equals(PayDirectionEnum.OUT.getValue())) {
|
||||
e.addValidator(new PerformValidator());
|
||||
e.addValidator(new OutPerformRecordsValidator());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void updateContractPerformAmt(String opkey, DynamicObject performrecords, DynamicObject contract) {
|
||||
BigDecimal contractPerformtaxamt = contract.getBigDecimal("performtaxamount");
|
||||
BigDecimal performamount = contract.getBigDecimal("performamount");
|
||||
/* BigDecimal totaloftaxamount = contract.getBigDecimal("totaloftaxamount");
|
||||
BigDecimal totalamount = contract.getBigDecimal("totalamount");*///二开注销系统代码
|
||||
BigDecimal amount = this.getTotalPerformTaxAmount(performrecords, "amount");
|
||||
BigDecimal notaxAmount = this.getTotalPerformTaxAmount(performrecords, "notaxamount");
|
||||
DynamicObject contractCurrency = contract.getDynamicObject("currency");
|
||||
DynamicObject currency = performrecords.getDynamicObject("currency");
|
||||
DynamicObject exratetable = performrecords.getDynamicObject("exratetable");
|
||||
BigDecimal targetAmount = CurrencyHelper.getTargetCurrencyAmount((Long) contractCurrency.getPkValue(), (Long) currency.getPkValue(), exratetable, amount);
|
||||
BigDecimal targetNotaxAmount = CurrencyHelper.getTargetCurrencyAmount((Long) contractCurrency.getPkValue(), (Long) currency.getPkValue(), exratetable, notaxAmount);
|
||||
if (StringUtils.equalsIgnoreCase("audit", opkey)) {
|
||||
contract.set("performtaxamount", contractPerformtaxamt.add(targetAmount));
|
||||
contract.set("performamount", performamount.add(targetNotaxAmount));
|
||||
// contract.set("totaloftaxamount", totaloftaxamount.add(targetAmount));//变更后含税总金额
|
||||
// contract.set("totalamount", totalamount.add(targetNotaxAmount));//变更后总金额
|
||||
} else if (StringUtils.equalsIgnoreCase("unaudit", opkey)) {
|
||||
BigDecimal performtaxamount1 = contractPerformtaxamt.subtract(targetAmount);
|
||||
BigDecimal performamount1 = performamount.subtract(targetNotaxAmount);
|
||||
/* BigDecimal totaloftaxamount1 = totaloftaxamount.subtract(targetAmount);
|
||||
BigDecimal totalamount1 = totalamount.subtract(targetNotaxAmount);*///二开注销系统代码
|
||||
contract.set("performtaxamount", performtaxamount1.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : performtaxamount1);
|
||||
contract.set("performamount", performamount1.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : performamount1);
|
||||
/* contract.set("totaloftaxamount", totaloftaxamount1.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : totaloftaxamount1);//变更后含税总金额
|
||||
contract.set("totalamount", totalamount1.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : totalamount1);//变更后总金额*///二开注销系统代码
|
||||
}
|
||||
|
||||
SaveServiceHelper.save(new DynamicObject[]{contract});
|
||||
}
|
||||
|
||||
protected BigDecimal getTotalPerformTaxAmount(DynamicObject source, String amtKey) {
|
||||
DynamicObjectCollection entry = source.getDynamicObjectCollection("entryentity");
|
||||
BigDecimal amount = BigDecimal.ZERO;
|
||||
|
||||
for (int i = 0; i < entry.size(); ++i) {
|
||||
DynamicObject row = (DynamicObject) entry.get(i);
|
||||
if (!row.getBoolean("isclaim")) {
|
||||
DynamicObject payItem = row.getDynamicObject("contpayitem");
|
||||
BigDecimal coe = BigDecimal.ONE;
|
||||
if (payItem != null) {
|
||||
String direction = payItem.getString("direction");
|
||||
if (StringUtils.equals(direction, DirectionEnum.NON.getValue())) {
|
||||
coe = BigDecimal.ZERO;
|
||||
} else if (StringUtils.equals(direction, DirectionEnum.SUB.getValue())) {
|
||||
coe = coe.negate();
|
||||
}
|
||||
}
|
||||
|
||||
amount = amount.add(row.getBigDecimal(amtKey).multiply(coe));
|
||||
}
|
||||
}
|
||||
|
||||
return amount;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
|
||||
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.resource.ResManager;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.ExtendedDataEntity;
|
||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
import kd.bos.entity.validate.AbstractValidator;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.ec.basedata.common.enums.PayDirectionEnum;
|
||||
import kd.ec.contract.opplugin.AbstractContractPerformOp;
|
||||
|
||||
/**
|
||||
* 收入合同履约记录单审核反审核操作系统插件二开
|
||||
**/
|
||||
public class InContractPerformOpExt extends AbstractContractPerformOpExt {
|
||||
public InContractPerformOpExt() {
|
||||
}
|
||||
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
e.getFieldKeys().add("contract");
|
||||
e.getFieldKeys().add("unitproject");
|
||||
}
|
||||
|
||||
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||
super.onAddValidators(e);
|
||||
e.addValidator(new AbstractValidator() {
|
||||
public void validate() {
|
||||
String key = this.getOperateKey();
|
||||
if (StringUtils.equals(key, "submit")) {
|
||||
ExtendedDataEntity[] dataEntities = this.getDataEntities();
|
||||
ExtendedDataEntity[] var3 = dataEntities;
|
||||
int var4 = dataEntities.length;
|
||||
|
||||
for (int var5 = 0; var5 < var4; ++var5) {
|
||||
ExtendedDataEntity dataEntity = var3[var5];
|
||||
DynamicObject contract = dataEntity.getDataEntity().getDynamicObject("contract");
|
||||
DynamicObject unitProject = dataEntity.getDataEntity().getDynamicObject("unitproject");
|
||||
if (contract != null) {
|
||||
DynamicObject contOnunit = BusinessDataServiceHelper.loadSingle("ec_in_contract", "id,onunit", new QFilter[]{new QFilter("id", "=", contract.getPkValue())});
|
||||
if (contOnunit != null) {
|
||||
Boolean onUnit = contOnunit.getBoolean("onunit");
|
||||
if (onUnit && unitProject == null) {
|
||||
this.addErrorMessage(dataEntity, ResManager.loadKDString("请填写单位工程", "InContractPerformOp_0", "ec-contract-opplugin", new Object[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void reverseWritingToContract(String opkey, DynamicObject performrecords) {
|
||||
String selectors = "currency,performtaxamount,performamount,totaloftaxamount,totalamount";
|
||||
DynamicObject contract = BusinessDataServiceHelper.loadSingle(performrecords.getDynamicObject("contract").getPkValue(), "ec_in_contract", selectors);
|
||||
this.updateContractPerformAmt(opkey, performrecords, contract);
|
||||
}
|
||||
|
||||
public String getPayDirection() {
|
||||
return PayDirectionEnum.IN.getValue();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
|
||||
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.ec.basedata.common.enums.PayDirectionEnum;
|
||||
import kd.ec.contract.opplugin.AbstractContractPerformOp;
|
||||
import kd.ec.contract.opplugin.validator.AfterBillInContractAmtControlValidator;
|
||||
import kd.ec.contract.opplugin.validator.PerformAmountValidator;
|
||||
/**
|
||||
* 支出合同履约记录单审核反审核操作系统插件二开
|
||||
**/
|
||||
public class OutContractPerformOpExt extends AbstractContractPerformOpExt {
|
||||
public OutContractPerformOpExt() {
|
||||
}
|
||||
|
||||
public void reverseWritingToContract(String opkey, DynamicObject performrecords) {
|
||||
String selectors = "currency,performtaxamount,performamount,totaloftaxamount,totalamount";
|
||||
DynamicObject contract = BusinessDataServiceHelper.loadSingle(performrecords.getDynamicObject("contract").getPkValue(), "ec_out_contract", selectors);
|
||||
this.updateContractPerformAmt(opkey, performrecords, contract);
|
||||
}
|
||||
|
||||
public String getPayDirection() {
|
||||
return PayDirectionEnum.OUT.getValue();
|
||||
}
|
||||
|
||||
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||
super.onAddValidators(e);
|
||||
e.getValidators().add(new AfterBillInContractAmtControlValidator());
|
||||
e.getValidators().add(new PerformAmountValidator());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue