对公报销冲销数据缺失消息提示
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