对公报销冲销数据缺失消息提示
This commit is contained in:
parent
15ce2d2b04
commit
a4fd743f93
|
@ -107,30 +107,44 @@ public class GenerateSKClickPlugln extends AbstractBillPlugIn implements Plugin
|
|||
DynamicObject std_entrycostcenter = expenseentry.getDynamicObject("std_entrycostcenter");//获取成本中心
|
||||
DynamicObject expenseitem = expenseentry.getDynamicObject("expenseitem");//获取费用项目
|
||||
BigDecimal expenseamount = expenseentry.getBigDecimal("expenseamount");//获取报销金额
|
||||
if (std_entrycostcenter != null && expenseitem != null){//当费用项目和成本中心不为空时
|
||||
if (std_entrycostcenter != null && expenseitem != null){//当费用明细的费用项目和成本中心不为空时
|
||||
long ex_centerId = std_entrycostcenter.getLong("id");//成本中心id
|
||||
long ex_itemId = expenseitem.getLong("id");//费用项目id
|
||||
boolean isSelf = true;//判断该明细是否不存在匹配预付
|
||||
DynamicObjectCollection writeoffmoney = this.getModel().getEntryEntity("writeoffmoney");//获取冲借款分录
|
||||
for (DynamicObject prepay : writeoffmoney) {//冲借款分录遍历
|
||||
long wr_centerId = prepay.getDynamicObject("std_srcentrycostcenter").getLong("id");
|
||||
long wr_itemId = prepay.getDynamicObject("sourceexpenseitem").getLong("id");
|
||||
if (Objects.equals(wr_centerId,ex_centerId) && Objects.equals(wr_itemId,ex_itemId)){//当成本中心和费用项目一致时。计算冲销后金额
|
||||
BigDecimal loanamount = prepay.getBigDecimal("loanamount");//获取冲销金额
|
||||
if (loanamount != null){
|
||||
int i = loanamount.compareTo(expenseamount);
|
||||
if (i > 0){//若预付明细的借款余额大于报销金额,则冲销后金额为0
|
||||
expenseentry.set("shkd_verification",BigDecimal.ZERO);
|
||||
}else {//冲销后金额 = 报销金额 - 借款金额
|
||||
BigDecimal subtract = expenseamount.subtract(loanamount);
|
||||
expenseentry.set("shkd_verification",subtract);
|
||||
DynamicObject wr_center = prepay.getDynamicObject("std_srcentrycostcenter");//预付成本中心
|
||||
DynamicObject wr_item = prepay.getDynamicObject("sourceexpenseitem");//预付费用项目
|
||||
if(wr_center != null && wr_item != null){
|
||||
long wr_centerId = prepay.getDynamicObject("std_srcentrycostcenter").getLong("id");
|
||||
long wr_itemId = prepay.getDynamicObject("sourceexpenseitem").getLong("id");
|
||||
if (Objects.equals(wr_centerId,ex_centerId) && Objects.equals(wr_itemId,ex_itemId)){//当成本中心和费用项目一致时。计算冲销后金额
|
||||
BigDecimal loanamount = prepay.getBigDecimal("loanamount");//获取冲销金额
|
||||
if (loanamount != null){
|
||||
int i = loanamount.compareTo(expenseamount);
|
||||
if (i > 0){//若预付明细的借款余额大于报销金额,则冲销后金额为0
|
||||
expenseentry.set("shkd_verification",BigDecimal.ZERO);
|
||||
}else {//冲销后金额 = 报销金额 - 借款金额
|
||||
BigDecimal subtract = expenseamount.subtract(loanamount);
|
||||
expenseentry.set("shkd_verification",subtract);
|
||||
}
|
||||
}else {//若预付明细的借款余额为空则,冲销后金额为费用明细报销金额本身
|
||||
expenseentry.set("shkd_verification",expenseamount);
|
||||
}
|
||||
}else {//若预付明细的借款余额为空则,冲销后金额为费用明细报销金额本身
|
||||
expenseentry.set("shkd_verification",expenseamount);
|
||||
isSelf = false;//找到匹配预付
|
||||
break;
|
||||
}
|
||||
isSelf = false;//找到匹配预付
|
||||
break;
|
||||
}else {
|
||||
if(wr_center == null && wr_item == null){
|
||||
this.getView().showTipNotification("冲预付分录成本中心和费用项目不能为空!");
|
||||
}else if (wr_center == null){
|
||||
this.getView().showTipNotification("冲预付分录成本中心不能为空!");
|
||||
}else {
|
||||
this.getView().showTipNotification("冲预付分录费用项目不能为空!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
if (isSelf){//找不到匹配预付,则冲销后金额为费用明细报销金额本身
|
||||
expenseentry.set("shkd_verification",expenseamount);
|
||||
|
|
Loading…
Reference in New Issue