# 如何管控合同发票的正确提交

来源快照：`result_data_new_260518.json`

- 来源 ID：`1968992556514641079`
- 模块：低代码平台e-builder
- 目录：专题学习 - 方案专题 - 制造行业CRM管理方案
- space ID：`1157961794811633670`
- 原文链接：未提供
- 产品基线：未提供

## 正文

**一、方案背景**

发票管理作为财务管理过程中重要组成模块，通过记录发票信息，实现发票管理数字化。然而，在这个过程中，记录发票的动作会存在一些误差，如发票金额记录错误，导致财务账目不平等问题出现。因此，实现精细化的发票数据管控是十分重要的，即可以通过系统校验发票录入正确性并在错误时给出提示，阻止发票提交，保证财务数据正确。

**二、设计思路**

第一，需要控制发票范围，即客户需要开票且未开票的报价合同。一般客户采购大型器材都会要求开具销售发票，因此报价合同需要进行是否开发票的记录，便于开票做筛选；第二，针对不同税率的商品，需要开具不同税率的发票，因此一张合同需要支持开具多张发票，来实现不同税率，因此需要校验不同税率的发票金额的总额与合同总金额保持一致，校验不通过则给出提醒且阻止发票提交。

对于第一点，通过关联eb字段的数据过滤功能实现开票范围的限制。

对于第二点，利用动作流逻辑组件-分支，判断发票总金额与合同总金额的值是否相等，如果不相等，则通过页面交互组件及时做出提醒，提醒差额，并阻止发票提交。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157711222320627728&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

**三、搭建过程**  


**1、基础表单、字段搭建、字段属性配置**

方案中主要涉及了销售发票的填报设计。在发票提交过程中，选择合同，根据合同带出相关合同金额及合同信息后，填写发票信息。一份合同可能会对应多张发票，因此发票用明细表设计方式，用于记录多张发票信息。表单设计过程中，用一个字段存储明细发票总金额，用于校验。  


![](https://weapp.eteams.cn/papi/file/preview?fileId=1157711222115737616&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

**2、利用表单控件属性，实现发票提交的范围限制。**

能够提交发票的范围限制为：合同状态为“已通过”，是否开票为“是”的条件下，该合同才能进行发票提交申请。可以通过关联eb字段数据过滤设置属性实现范围控制  


![](https://weapp.eteams.cn/papi/file/preview?fileId=1157711226621157404&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

**3、利用聚合函数  AGGREGATION（{数字}...,{聚合运算类型}），统计明细表的多张发票的总金额，作为校验字段，与合同总金额进行比对**

函数可以统计明细表的发票金额的总和，将该值赋予校验字段上，保存时用于判断合同金额与发票是否一致。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157711226621157421&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

**4、发票提交时配置校验动作流**

利用动作流逻辑组件-分支，判断发票总金额与合同总金额的值是否相等，如果不相等，则通过页面交互组件及时做出提醒，提醒差额，并阻止发票提交。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157711230747615239&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

发票填写完成，点击提交时，执行动作流，开始校验，校验不通过时给出提示，且阻止当前的数据提交

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157711230747615253&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)
