请款申请
This commit is contained in:
parent
336efdb5ec
commit
12f86885fc
|
|
@ -10,6 +10,7 @@ import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
|||
import kd.bos.entity.validate.AbstractValidator;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import kd.tmc.fbp.common.bean.BizBalanceModelBean;
|
||||
import kd.tmc.fbp.common.enums.TmcAppEnum;
|
||||
|
|
@ -37,30 +38,35 @@ public class ApplyTransBillSaveOperation extends AbstractOperationServicePlugIn
|
|||
ExtendedDataEntity[] entities = this.getDataEntities();
|
||||
for (ExtendedDataEntity entity : entities) {
|
||||
DynamicObject aDo = entity.getDataEntity();
|
||||
DynamicObject currency = aDo.getDynamicObject("currency");
|
||||
Long currencyId = currency.getLong("id");
|
||||
DynamicObject org = aDo.getDynamicObject("company");
|
||||
Long orgId = org.getLong("id");
|
||||
String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue");
|
||||
BalanceModelService balanceModelService = new BalanceModelService();
|
||||
boolean revAmount = aDo.getBoolean("shjh_revamount");//是否已赋值
|
||||
if (!revAmount){
|
||||
DynamicObject currency = aDo.getDynamicObject("currency");
|
||||
Long currencyId = currency.getLong("id");
|
||||
DynamicObject org = aDo.getDynamicObject("company");
|
||||
Long orgId = org.getLong("id");
|
||||
String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue");
|
||||
BalanceModelService balanceModelService = new BalanceModelService();
|
||||
|
||||
DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys");
|
||||
for (DynamicObject entry : entrys) {
|
||||
DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys");
|
||||
for (DynamicObject entry : entrys) {
|
||||
DynamicObject bankAcct = entry.getDynamicObject("subacct");
|
||||
|
||||
DynamicObject bankAcct = entry.getDynamicObject("subacct");
|
||||
BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId);
|
||||
BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额
|
||||
BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额
|
||||
// 如果subcurbalance小于applyamt,则调整applyamt的值
|
||||
if (subcurbalance.compareTo(applyamt) >= 0) {
|
||||
this.addMessage(entity,"子账户即时余额 >= 申请下拨金额,不允许生成请款单!");
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bankAcct.getLong("id"), "bd_accountbanks");
|
||||
BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId);
|
||||
BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额
|
||||
//请款留底金额
|
||||
BigDecimal decimal =dynamicObject.getBigDecimal("shjh_ldje");
|
||||
BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额
|
||||
// 如果subcurbalance小于applyamt,则调整applyamt的值
|
||||
if ((subcurbalance.subtract(decimal)).compareTo(applyamt) >= 0) {
|
||||
this.addMessage(entity,"子账户即时余额-请款留底金额 >= 申请下拨金额,不允许生成请款单!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -71,26 +77,33 @@ public class ApplyTransBillSaveOperation extends AbstractOperationServicePlugIn
|
|||
if("save".equals(eok)){
|
||||
DynamicObject[] dos = e.getDataEntities();
|
||||
for (DynamicObject aDo : dos) {
|
||||
DynamicObject currency = aDo.getDynamicObject("currency");
|
||||
Long currencyId = currency.getLong("id");
|
||||
DynamicObject org = aDo.getDynamicObject("company");
|
||||
Long orgId = org.getLong("id");
|
||||
String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue");
|
||||
BalanceModelService balanceModelService = new BalanceModelService();
|
||||
boolean revAmount = aDo.getBoolean("shjh_revamount");//是否已赋值
|
||||
if (!revAmount) {
|
||||
DynamicObject currency = aDo.getDynamicObject("currency");
|
||||
Long currencyId = currency.getLong("id");
|
||||
DynamicObject org = aDo.getDynamicObject("company");
|
||||
Long orgId = org.getLong("id");
|
||||
String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue");
|
||||
BalanceModelService balanceModelService = new BalanceModelService();
|
||||
|
||||
DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys");
|
||||
for (DynamicObject entry : entrys) {
|
||||
DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys");
|
||||
for (DynamicObject entry : entrys) {
|
||||
|
||||
DynamicObject bankAcct = entry.getDynamicObject("subacct");
|
||||
BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId);
|
||||
BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额
|
||||
DynamicObject bankAcct = entry.getDynamicObject("subacct");
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bankAcct.getLong("id"), "bd_accountbanks");
|
||||
|
||||
BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId);
|
||||
BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额
|
||||
//请款留底金额
|
||||
BigDecimal decimal = dynamicObject.getBigDecimal("shjh_ldje");
|
||||
// BigDecimal subcurbalance = entry.getBigDecimal("subcurbalance");//子账户即时余额
|
||||
BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额
|
||||
// 如果subcurbalance小于applyamt,则调整applyamt的值
|
||||
if (subcurbalance.compareTo(applyamt) < 0) {
|
||||
applyamt = applyamt.subtract(subcurbalance);
|
||||
entry.set("applyamt", applyamt);//重新赋值--申请下拨金额
|
||||
BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额
|
||||
// 如果subcurbalance小于applyamt,则调整applyamt的值
|
||||
if (subcurbalance.subtract(decimal).compareTo(applyamt) < 0) {
|
||||
applyamt = applyamt.subtract(subcurbalance).add(decimal);
|
||||
entry.set("applyamt", applyamt);//重新赋值--申请下拨金额
|
||||
aDo.set("shjh_revamount",true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue