# 如何配置实现借款占用预算还款释放预算

来源快照：`result_data_new_260518.json`

- 来源 ID：`1232306209845690473`
- 模块：电子费控
- 目录：场景示例 - 借还款
- space ID：`1963167002611772846`
- 原文链接：未提供
- 产品基线：未提供

## 正文

# 场景一

借款流程要生成借款金额，也要占用相应预算。  
报销还款流程要扣减预算或者释放预算。  
常用于出差申请、差旅报销，业务招待申请、业务招待报销等场景；

配置说明

一、借款逻辑和预算占用逻辑是分开的两个逻辑，需要分开配置；

1、

借款流程配置在申请单中，按借款流程的配置实现了借款的生成，在前台借款台账已经可以查到借款数据，至此借款逻辑配置完毕；  
参考文档：[ _如何配置借款流程？_](https://www.e-cology.com.cn/sp/doc/docDetail/1181048004374429705)   
2、将这条借款流程，关联到报销工作流中，按预算报销流程配置方式去配置预算部分的逻辑，两部分逻辑互不干扰，可同时配置使用；  
参考文档：[ _如何配置普通预算报销流程？_](https://www.e-cology.com.cn/sp/doc/docDetail/1201842513723006977)

借款只占用预算，不扣除预算，在关联工作流设置，编辑流程，预算设置中打开事前申请开关，不配置预算扣除动作流即可；  
  
  
二、报销还款流程要扣减预算或者释放预算。  
报销流程一般会有两个明细，一个是报销明细，一个是冲销借款明细；（主表可设置实际打款金额=报销金额合计-还款金额合计，大于0代表公司还需打款给员工，小于0代表员工还款给公司）

报销扣减预算信息填在报销明细，冲销借款信息填在冲销借款明细；  
预算事后报销流程配置参考文档：[ _如何配置预算事后报销流程？_](https://www.e-cology.com.cn/sp/doc/docDetail/1211561917406674969)   
报销还款流程配置参考文档：[ _如何配置报销流程进行还款操作？_](https://www.e-cology.com.cn/sp/doc/docDetail/1182530442378272769)   
 

举例：借款100，占用100的预算；  
**一次性报销：**  
①实际报销80，那报销还款流程中，报销明细填80，是否报销完成选择【报销完成】，流程归档扣除80，并释放剩余20的占用；  
冲销借款明细中，选择借款流程，还款金额应该填100，全部还款完成；  
②实际报销120，那报销还款流程中，报销明细填120，是否报销完成选择【未报销完成】，流程归档扣除120；  
冲销借款明细中，选择借款流程，还款金额应该填100，全部还款完成；

  
**分多次报销：**  
实际报销40，那报销还款流程中，报销明细填40，是否报销完成选择【未报销完成】，流程归档扣除40，  
冲销借款明细中，选择借款流程，还款金额填40，本次还款40；

 

**不报销：**

借款后可能不报销，不走报销还款流程，直接走还款流程；

还款流程配置在还款单，可参考配置文档：[ _如何配置还款流程？_](https://www.e-cology.com.cn/sp/doc/docDetail/1181059493353226250)   
还款流程无法关联预算逻辑，因此要通过动作流dml操作去实现释放冻结金额的逻辑；发起还款流程，关联借款，还款100，在流程归档前，执行动作流的dml接口，把借款流程占用的预算金额改成0；  
相关sql参考：update fexs_budget_reverse set reverse_amount=0 where delete_type=0 and source_request_id=借款流程ID  
 

如saas租户不能执行sql，则可在归档前触发一条子流程，子流程配置两个节点创建和归档，触发自动归档，子流程关联到报销工作流，按预算事后报销流程的配置走，关联借款流程，是否报销完成默认【报销完成】也会释放借款占用的金额；

  
**报销部分再还款：**

先走一条报销还款流程关联借款，还款80，也扣除80的预算；后续20不报销了，走还款还款20并释放20的占用；  
①可再发起一条报销还款流程，还款明细还款金额填20，报销明细报销金额想办法赋值20，（是否报销完成选【未报销完成】）正常走报销还款流程归档，归档执行预算扣减动作之后，再配置一个dml接口，把扣除的20费用抹掉；  
相关sql参考：update fexs_budget_reverse set reverse_amount=0 where delete_type=0 and request_id=当前报销还款流程ID；  
②可再发起一条报销还款流程，还款明细还款金额填20，报销明细不填，（是否报销完成选【报销完成】）正常走报销还款流程归档，归档执行预算扣减动作。这个方式需要前面报销80的报销还款流程先归档。  
③可发起一条专门的还款流程（关联在还款单中），填写还款金额20，还款流程表单可带出已冲抵或者冲抵中的数据，提交后，执行dml接口，将借款流程的占用金额改成【已冲抵+冲抵中】，退回时执行dml接口，将借款流程还原为原占用金额；  
查询【已冲抵+冲抵中】金额sql示例：select sum(reverse_amount) from  fexs_budget_reverse where delete_type=0 and request_id=借款流程ID；  
查询原占用金额sql示例：select sum(reverse_amount) from  fexs_budget_reverse where delete_type=0 and request_id=借款流程ID and source_request_id=借款流程ID；

  
占用金额改成【已冲抵+冲抵中】sql示例：update fexs_budget_reverse set reverse_amount=【已冲抵+冲抵中】 where delete_type=0 and request_id=借款流程ID and source_request_id=借款流程ID；  
借款流程还原为原占用金额sql示例：update fexs_budget_reverse set reverse_amount=【原占用金额】 where delete_type=0 and request_id=借款流程ID and source_request_id=借款流程ID；  
 

# 场景二

借款流程要生成借款金额，也要扣减相应预算。  
还款流程还款要释放相应预算。

常用于备用金借款、备用金还款场景；

配置说明

一、借款逻辑和预算占用逻辑是分开的两个逻辑，需要分开配置；

1、借款流程配置在申请单中，按借款流程的配置实现了借款的生成，在前台借款台账已经可以查到借款数据，至此借款逻辑配置完毕；  
参考文档：[ _如何配置借款流程？_](https://www.e-cology.com.cn/sp/doc/docDetail/1181048004374429705)   
2、将这条借款流程，关联到报销工作流中，按预算报销流程配置方式去配置预算部分的逻辑，两部分逻辑互不干扰，可同时配置使用；  
参考文档：[ _如何配置普通预算报销流程？_](https://www.e-cology.com.cn/sp/doc/docDetail/1201842513723006977)

借款扣除预算，完全按上述文档配置即可；  
上述两个逻辑可配在一张明细表中。  
 

二、还款流程要释放相应预算。  
还款流程需要配置在报销工作流中，按报销还款流程的配置来处理，理论上也是只有一张明细表。  
预算普通报销流程配置参考文档：[ _如何配置普通预算报销流程？_](https://www.e-cology.com.cn/sp/doc/docDetail/1201842513723006977)   
报销还款流程配置参考文档：[ _如何配置报销流程进行还款操作？_](https://www.e-cology.com.cn/sp/doc/docDetail/1182530442378272769)   
其中普通报销流程中，关联工作流设置，编辑流程，预算设置，基础设置中需要打开【报销金额可为负数开关】，其他不变。

 

举例：借款100，扣除100的预算；  
**还款：**  
还款金额填100，报销金额取相反数得到-100，流程归档还款100并生成-100的已发生，与之前扣除的100进行抵消。

  
上述方式可能在费用表中没有关联关系，但从费用表来看是两条无关的数据，但是对于可用预算确实是还原回去了，如要在费用表建立关系，可设置自定义字段，还款流程执行预算动作流时将借款流程的流程编号或者流程ID通过自定义字段写入费用表；  
自定义字段配置方式参考文档：[ _【23899】预算报表支持自定义字段_](https://www.e-cology.com.cn/sp/doc/docDetail/2003565199010430842)
