# 合同管理（变更、关闭等）

来源快照：`result_data_new_260518.json`

- 来源 ID：`1172514372420976646`
- 模块：采购管理
- 目录：采购方功能介绍 - 合同管理
- space ID：`1157959398195183695`
- 原文链接：未提供
- 产品基线：未提供

## 正文

# 一、功能背景及价值用途

在采购管理系统中，合同管理功能是围绕采购合同的全生命周期（从起草、审批、签订到履约跟踪、归档、变更、终止）进行数字化管控的模块。通过此模块可规范合同流程、降低合同风险、提升采购效率。

# 二、业务流程图

![](https://weapp.eteams.cn/papi/file/preview?fileId=1172532411275034634&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.1

## 合同新建

1.1、1

### 功能详细描述

合同新建支持手工新建、任务转合同、寻源转合同；

1.1、2

### 核心字段及逻辑

【合同状态】枚举值待生效、已生效、已过期，未审批通过的合同状态为已过期，审批通过根据生效日期、失效日期判断合同状态；

【需求类型】枚举值：物资、服务、设备、劳务；

【合同类型】枚举值：普通合同、框架合同、子合同、补充合同、其他合同；默认普通合同和子合同单价、数量、需求日期、税率必填、框架合同数量不必填，单价、需求日期、税率必填；其他合同单价、数量、需求日期、税率都不必填；补充合同默认关联主合同必填；子合同默认关联主合同”必填，补充合同的字段属性跟着关联主合同走。

【结算类型】枚举值：合同验收结算、合同直接结算、订单直接结算、订单验收结算、订单收货结算、无需结算”；

合同验收结算：显示【验收类型】，支持按照阶段和标的行进行验收，合同审批通过后，阶段或标的进入待验收，验收审批通过后，验收单进入结算池；

合同直接结算：隐藏【验收类型】，不支持验收，合同审批通过后，合同标的行直接进入结算池；

订单直接结算：隐藏【验收类型】，不支持验收，合同审批通过后，在合同有效期内，支持合同转订单，订单默认直接结算，即订单标的行进入结算池；

订单验收结算：隐藏【验收类型】，不支持验收，合同审批通过后，在合同有效期内，支持合同转订单，订单默认验收结算，即订单标的行支持验收，验收单进入结算池；

订单收货结算：隐藏【验收类型】，不支持验收，合同审批通过后，在合同有效期内，支持合同转订单，订单收货单进入结算池；

无需结算：隐藏【验收类型】，不支持验收，此合同无需结算；

【验收类型】枚举值：按阶段验收、按标的验收，默认为“按阶段验收”，只有选择“按阶段验收”时，显示【合同阶段】明细，其他时候不显示【合同阶段】明细；

若合同无此字段，默认按照“按阶段验收”规则执行；

【验收人】当显示【验收类型】时，显示【验收人】，验收人默认等于上游单据的采购员，若无上游单据，则默认等于登录人，验收人后续有验收的权限；当不显示【验收类型】时，隐藏【验收人】字段；当系统无【验收人】字段，且有验收数据时，默认为单据创建人是验收人，有验收的权限；

【生效日期】合同生效开始日期；用于判断合同状态；

【失效日期】合同生效截止日期，用于判断合同状态；校验失效日期晚于等于生效日期；

【供应商名称】选择非淘汰供应商，选择后，带出供应商名称、签约联系人、联系方式

【合同阶段】当验收类型选择”按阶段验收“时，显示【合同阶段】,必填，校验付款比例加和等于100%；当【合同阶段】勾选了“预付款”则此阶段直接进入结算池，不进入待验收；

【合同文件】默认“合同是否套用模版”值为“是”，显示“合同模版”字段，选择模版，套用后，生成“合同文件”，“合同文件”不可编辑；当值为“否”时，隐藏“合同模版字段”，“合同文件”可编辑，支持上传附件；

【涨跌幅】默认等于[（含税单价-最新成交价（含税））/最新成交价（含税）]*100%

【最低成交价（含税）】取历史价格中来源类型为采购合同、采购订单的价格中最低含税单价；

【最新成交价（含税）】取历史价格中来源类型为采购合同、采购订单的价格中最新的含税单价；

 

**以下字段****与合同创建本身无关，只是合同中控制与其他模块交互的逻辑；**

【是否转订单】控制合同是否可以转订单，即合同在履约中时，是否显示在“合同转订单”的表里；

【是否强控】转其他单据时，流水数量是否可以超过合同数量；

【推价格库】合同的单价是否插入价格库，方便后续引用；

【占用上有数据】默认为所有的都是“是”；与合同创建本身无关，只是合同中控制与其他模块交互的逻辑；

1.1、3

### 功能使用介绍

一、

新建合同

合同管理页面点击【新建】按钮，进入合同创建页面；

![](https://weapp.eteams.cn/papi/file/preview?fileId=1172532415639404555&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=1172532415645499395&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、合同审批状态、合同状态逻辑：

**审批流操作**| **生效日期**| **失效日期**| **审批状态**| **合同状态**  
---|---|---|---|---  
**新建保存**|  /| /| 新建| 待生效  
创建提交| /| /| 审批中| 待生效  
退回到创建节点| /| /| 审批退回| 待生效  
审批通过| 未到达| 未到达| 审批通过| 待生效  
审批通过| 已到达| 未超过| 审批通过| 已生效  
审批通过| 已超过| 已超过| 审批通过| 已过期  
  
2、新建合同，需求类型默认物资，选择需求类型带出合同类型等默认值，合同类型支持修改：

**条件**| **默认值**  
---|---  
**需求类型**| **合同类型**  
服务| 普通合同  
物资| 框架合同  
设备| 普通合同  
劳务| 框架合同  
  
3、新建合同，选择需求类型和合同类型带出结算类型和验收类型的默认值：

**条件**| **默认值**| **说明**  
---|---|---  
**条件：需求类型**| **条件：合同类型**| **结算类型**| **验收类型**  
服务| 普通合同| 合同验收结算| 按阶段验收|    
服务| 框架合同| 合同验收结算| 按阶段验收| 1、框架合同本身不结算；  
2、因选的“合同验收结算”，默认任务转合同；  
3、此结算类型作为子合同的结算类型；  
服务| 其他合同| 无需结算|  |    
服务| 子合同| 主合同带入| 主合同带入| 主合同带入  
服务| 补充合同| 主合同带入|  | 主合同带入，结算类型同主合同，且不可编辑  
设备| 普通合同| 合同验收结算| 按阶段验收|    
设备| 框架合同| 合同验收结算| 按阶段验收| 1、框架合同本身不结算；2、因选的“合同验收结算”，默认是转合同；3、此结算类型作为子合同的结算类型；  
设备| 其他合同| 无需结算|  |    
设备| 子合同| 主合同带入| 主合同带入| 主合同带入  
设备| 补充合同| 主合同带入|  | 主合同带入，结算类型同主合同，且不可编辑  
物资| 普通合同| 订单收货结算|  |    
物资| 框架合同| 订单收货结算|  | 1、框架合同本身不结算；  
2、因选的“订单收货结算”，默认任务转订单，3、转的订单结算类型为“订单收货结算”  
物资| 其他合同| 无需结算|  |    
物资| 子合同| 主合同带入|  | 主合同带入  
物资| 补充合同| 主合同带入|  | 主合同带入，结算类型同主合同，且不可编辑  
劳务| 普通合同| 合同验收结算| 按标的验收|    
劳务| 框架合同| 合同验收结算| 按标的验收| 1、框架合同本身不结算；  
2、因选的“合同验收结算”，默认是转合同；  
3、此结算类型作为子合同的结算类型；  
劳务| 其他合同| 无需结算|  |    
劳务| 子合同| 主合同带入| 主合同带入| 主合同带入  
劳务| 补充合同| 主合同带入|  | 主合同带入，结算类型同主合同，且不可编  
  
4、新建合同是否强控、推价格库字段根据合同类型展示默认值：

**条件：合同类型**| **是否强控：默认值**| **推价格库：默认值**  
---|---|---  
普通合同| 是| 否  
框架合同| 否（但超出的时候需要有预警，上下游逻辑里有写）| 是（目前不支持无物料编码进价格库）  
其他合同| 否| 否  
补充合同| 主合同值带入| 主合同值带入  
子合同| 是| 否  
  
5、是否转订单字段根据服务类型、合同类型、结算类型展示默认值，罗列如下：

①非框架合同，选择了跟订单相关的结算，则系统需要转订单；

②设备类的并且选择验收结算时，默认转订单；

③其他情况都不转订单（补充合同是否转订单与“主合同”一致）；

④补充合同逻辑同关联主合同；

**条件**| **默认值**  
---|---  
**需求类型**| **合同类型**| **结算类型**| **是否转订单**  
服务| 框架合同/普通合同/其他合同/子合同| 合同验收结算| 否  
服务| 框架合同/普通合同/其他合同/子合同| 合同直接结算| 否  
服务| 框架合同/普通合同/其他合同/子合同| 订单直接结算| 是  
服务| 框架合同/普通合同/其他合同/子合同| 订单验收结算| 是  
服务| 框架合同/普通合同/其他合同/子合同| 订单收货结算| 是  
服务| 框架合同/普通合同/其他合同/子合同| 无需结算| 否  
设备| 框架合同| 合同验收结算| 否  
设备| 普通合同/其他合同/子合同| 合同验收结算| 是  
设备| 框架合同/普通合同/其他合同/子合同| 合同直接结算| 否  
设备| 框架合同/普通合同/其他合同/子合同| 订单直接结算| 是  
设备| 框架合同/普通合同/其他合同/子合同| 订单验收结算| 是  
设备| 框架合同/普通合同/其他合同/子合同| 订单收货结算| 是  
设备| 框架合同/普通合同/其他合同/子合同| 无需结算| 否  
物资| 框架合同/普通合同/其他合同/子合同| 合同验收结算| 否  
物资| 框架合同/普通合同/其他合同/子合同| 合同直接结算| 否  
物资| 框架合同/普通合同/其他合同/子合同| 订单直接结算| 是  
物资| 框架合同/普通合同/其他合同/子合同| 订单验收结算| 是  
物资| 框架合同/普通合同/其他合同/子合同| 订单收货结算| 是  
物资| 框架合同/普通合同/其他合同/子合同| 无需结算| 否  
劳务| 框架合同/普通合同/其他合同/子合同| 合同验收结算| 否  
劳务| 框架合同/普通合同/其他合同/子合同| 合同直接结算| 否  
劳务| 框架合同/普通合同/其他合同/子合同| 订单直接结算| 是  
劳务| 框架合同/普通合同/其他合同/子合同| 订单验收结算| 是  
劳务| 框架合同/普通合同/其他合同/子合同| 订单收货结算| 是  
劳务| 框架合同/普通合同/其他合同/子合同| 无需结算| 否  
  
二、

补充合同

合同详情页，可以点击【补充协议】直接创建补充合同；

![](https://weapp.eteams.cn/papi/file/preview?fileId=1172532415645499393&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=1172532402777374725&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=1172532406915784708&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=1172532411277328384&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=1172532411404189704&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=1172532402771279876&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=1172532407050502152&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=1172532402771279881&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=1172532407050502147&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=1172532415639404544&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=1172532411404189696&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.1

## 合同关闭

1.1、1

### 功能详细描述

审批通过且未关闭、未终止的合同允许关闭，关闭合同则下游单据待处理无需处理，关闭合同数量需回写至上游单据；

1.1、2

### 核心字段及逻辑

【关闭原因】记录关闭合同的原因；

【合同关闭数量】可转订单时，剩余可转订单的数量；依据此数量回退上游；

【合同关闭金额】可转订单时，剩余可转订单的数量对应含税金额；

【验收关闭数量】按标的验收时，待验收的数量；依据此数量回退上游；

【验收关闭金额】按标的验收时，待验收的数量对应含税金额，按阶段验收时，待结算的含税金额；

【结算关闭数量】合同直接结算时，待结算金额对应的数量；依据此数量回退上游；

【结算关闭金额】合同直接结算时，待结算金额；

1.1、3

### 功能使用介绍

六、

合同详情页面点击【关闭】，进入合同关闭流程页面；

![](https://weapp.eteams.cn/papi/file/preview?fileId=1172532406915784715&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、关闭合同提交，合同状态更新为关闭中；

关闭合同审批退回，合同状态恢复原状态；

关闭合同审批通过，合同状态更新为已关闭；

**合同关闭时校验剩余可执行金额不小于已预付款金额；**

七、

关闭合同审批通过，关闭数量需释放至上游单据；

八、

关闭合同相关逻辑：

①合同关闭审批，未审批通过前，无影响，不做冻结；

②合同关闭，若合同选择了推价格库，此条价格状态需要更新为“失效”；

③合同关闭，若合同选择了转订单，此合同剩余数量不可继续转订单，从转订单中间表隐藏；

④合同关闭，关联主合同中，选择不到此合同；

⑤合同关闭，剩余待验收隐藏；

⑥合同关闭，合同直接结算或有预付款；结算池合同数据从结算池隐藏（默认直接结算的合同，若有结算数据，不支持关闭，除非取消结算相关数据）；

 

**结算类型/验收类型**| **能否关闭合同**| **关闭逻辑**  
---|---|---  
合同直接结算| 1、合同存在结算数据，不可以关闭；2、合同无结算数据，可以关闭，合同数量回写到上游单据| 1、关闭合同提交（关闭中/已关闭），结算池不展示待结算数据；2、关闭合同审批拒绝，结算池展示待结算数据，数据结算状态为未开始；  
合同验收结算-按阶段验收（预付款）| 1、合同存在结算数据，不可以关闭；  
2、合同存在验收数据，不可以关闭；  
3、合同无结算数据且无验收数据，可以关闭，合同数量回写到任务；| 1、关闭合同提交（关闭中/已关闭），结算池不展示待结算数据；待验收列表不展示待验收数据；2、关闭合同审批拒绝，结算池展示待结算数据，数据结算状态为未开始；待验收列表恢复展示待验收数据；  
合同验收结算-按标的验收| 1、存在待验收数量，可以关闭，关闭待验收的数量；2、待验收=0，校验不可关闭；| 1、合同提交关闭（关闭中/已关闭），关闭数量=待验收数量，待验收列表不展示待验收数据；已有验收单不可被撤销；2、关闭合同流程审批拒绝，关闭数量释放至待验收数量，待验收列表展示待验收数据；  
订单直接结算  
订单验收结算  
订单收货结算| 1、存在待转数量，可以关闭，关闭待转数量；2、待转数量=0，校验不可关闭| 1、合同提交关闭（关闭中/已关闭），关闭数量=待转数量，合同转订单列表不展示待转数据；已有订单不支持关闭；2、关闭合同流程审批拒绝，关闭数量释放到待转数量，合同转订单列表展示待转数据；  
  
 

1.1

## 合同终止

1.1、1

### 功能详细描述

审批通过且未关闭、未终止的合同允许终止，终止合同则下游单据待处理无需处理，终止合同数量不回写至上游单据；

1.1、2

### 核心字段及逻辑

【终止原因】记录终止合同的原因；

【合同终止数量】可转订单时，剩余可转订单的数量；依据此数量回退上游；

【合同终止金额】可转订单时，剩余可转订单的数量对应含税金额；

【验收终止数量】按标的验收时，待验收的数量；依据此数量回退上游；

【验收终止金额】按标的验收时，待验收的数量对应含税金额，按阶段验收时，待结算的含税金额；

【结算终止数量】合同直接结算时，待结算金额对应的数量；依据此数量回退上游；

【结算终止金额】合同直接结算时，待结算金额；

 

1.1、3

### 功能使用介绍

九、

合同详情页面点击【终止】，进入合同终止流程页面；

![](https://weapp.eteams.cn/papi/file/preview?fileId=1172532411277328390&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、终止合同提交，合同状态更新为终止中；

终止合同审批退回，合同状态恢复原状态；

终止合同审批通过，合同状态更新为已终止；

**合同终止时校验剩余可执行金额不小于已预付款金额；**

十、

终止合同，终止数量无需释放至上游单据；

十一、

终止合同相关逻辑：

①合同终止审批，未审批通过前，无影响，不做冻结；

②合同终止，若合同选择了推价格库，此条价格状态需要更新为“失效”；

③合同终止，若合同选择了转订单，此合同剩余数量不可继续转订单，从转订单中间表隐藏；

④合同终止，关联主合同中，选择不到此合同；

⑤合同终止，剩余待验收隐藏；

⑥合同终止，合同直接结算或有预付款；结算池合同数据结算状态更新为已终止；

 

**结算类型/验收类型**| **能否终止合同**| **终止逻辑**  
---|---|---  
合同直接结算| 1、存在结算待处理金额，可以终止，终止待结算的数据；2、结算待处理金额=0，校验不可终止；| 1、终止合同提交（终止中/已终止），结算池结算状态为已终止，终止含税金额=原待处理含税金额；已有结算单不可被撤销；2、终止合同审批拒绝，结算池数据结算状态为未开始/进行中，终止含税金额释放至结算池待处理含税金额；；3、合同提交终止（终止中/已终止），已有结算单不可被撤销；  
合同验收结算-按阶段验收（预付款）| 1、存在结算待处理金额或者待验收金额，可以终止，终止待结算待处理金额和待验收金额，2、结算待处理金额=0且待验收=0时，校验不可终止；| 1、合同提交终止（终止中/已终止），结算池结算状态为已终止，终止含税金额=原待处理含税金额；已有结算单不可被撤销；2、合同提交终止（终止中/已终止），待验收列表不展示剩余待处理数据；已有验收单不可被撤销；3、终止合同流程审批拒绝，终止含税金额释放至结算待处理金额，结算状态更新为未开始/进行中；4、终止合同流程审批拒绝，待验收列表恢复展示待验收数据；  
合同验收结算-按标的验收| 1、存在待验收金额，可以终止，终止待验收的金额；  
2、待验收金额=0，校验不可终止；| 1、合同提交终止（终止中/已终止），待验收列表不展示剩余待处理数据；已有验收单不可被撤销；2、终止合同流程审批拒绝，待验收列表恢复展示待验收数据；  
订单直接结算  
订单验收结算  
订单收货结算| 1、存在待转订单数量，可以终止；2、待转数量=0，校验不可终止；| 1、合同提交终止（终止中/已终止），终止数量=待转数量，合同转订单列表不展示待转数据；2、终止合同流程审批拒绝，终止数量释放到待转数量，合同转订单列表展示待转数据；  
  
 

 

 

1.1

## 合同付款

1.1、1

### 功能详细描述

审批通过的非框架合同，结算类型不为无需结算，展示在合同付款列表，可查看合同具体付款金额及进度。

1.1、2

### 核心字段及逻辑

【未付款金额】默认等于合同含税总金额-付款中金额-已付款金额；

【付款中金额】对应合同下审批中的付款单本次付款金额之和；

【已付款金额】对应合同下审批通过的付款单本次付款金额之和；

【付款进度】默认等于（已付款金额/合同含税总金额）*100%

1.1、3

### 功能使用介绍

合同付款列表可查看具体需求类型、结算类型的合同未付款金额、付款中金额、已付款金额、付款进度；

![](https://weapp.eteams.cn/papi/file/preview?fileId=1172532415656714254&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.2

## 合同变更

1.2、1

### 功能详细描述

已生效状态的合同支持发起变更，允许对合同的生效日期、失效日期、需求数量、需求日期、价格、税率、合同阶段等进行变更。

1.2、2

### 核心字段及逻辑

【合同变更编号】只能选到合同状态为“已生效”的合同（即排除“待生效”“已过期”“已关闭”“已终止”“变更中”等其他状态的合同），单选；

【生效日期】【失效日期】支持变更生效日期、失效日期，需要校验失效日期晚于等于生效日期；

【不含税单价】若为上游带入，则不可编辑（任务转合同、寻源转合同、子合同（选择主合同带入明细））；若为手工新建（非子合同），且无直接下游执行数据（根据结算类型，看是否有直接下游数据，结算池、验收、订单、子合同），可调整不含税单价；

【税率编码（税率值）】，若为上游带入，则不可编辑（任务转合同、寻源转合同、子合同（选择主合同带入明细））；若为手工新建（非子合同），且无直接下游执行数据（根据结算类型，看是否有直接下游数据，结算池、验收、订单、子合同），可调整税编码，带出税率值；

【合同阶段】当合同结算类型为“合同验收结算”、“按阶段验收”，且此合同完全无下游数据（若有预付款阶段，无结算数据且无验收数据；若无预付阶段，无验收数据），则允许变更合同阶段；若合同有下游数据，则合同阶段不允许变更，隐藏明细表操作按钮，所有字段不可编辑；

【合同文件】上游带入，支持编辑，同原本新建逻辑；

【需求数量】物料行上需求数量变更遵循以下逻辑：

十二、

针对合同本身，若结算类型为“合同直接结算”“合同验收结算-按阶段验收”，只要此合同有执行，则物料行需求数量不允许变更；

十三、

合同占用上游数据（此合同作为其他单据的流水），则此合同变更时，若上游单据强控，则需求数量需要大于等于此物料行的执行数量，小于等于此物料行原本数量加上上游待处理数量，超过则不允许继续执行；若上游单据不强控，则需求数量需要大于等于此物料行的执行数量，校验是否小于等于此物料行原本数量加上上游待处理数量，若超过，则提示，提示确认后可继续执行；

十四、

合同不占用上游数据，则合同变更时，需要数量大于等于此物料行的执行数据即可；

十五、

若“需求数量”字段不允许变更，则默认不可编辑，允许变更时，可编辑

1.1、1

### 功能使用介绍

合同变更菜单下能发起变更，也支持从合同详情发起变更。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1172532415656714256&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=1172532411404189700&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=1172532406915784711&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)

 

**合同变更提交，校验变更后可执行金额不可小于预付款金额；**

合同变更提交，合同状态为"变更中"，此合同【推价格库】字段值若为“是”，则此合同插入价格库的价格状态为“更新中”，待合同变更审批通过，生效日期和失效日期若有更新，需要去价格库更新这俩字段的值，然后此合同生成价格的状态根据原本逻辑调整为“生效”或“失效”；

合同变更提交，合同状态更新为“变更中”，变更审批通过，合同状态根据原本合同规则更新状态，更新合同内容；变更审批退回，合同状态根据原本合同规则更新状态；

合同处于变更中状态，待处理数据隐藏，变更审批退回，原本隐藏的待处理数据显示，变更审批通过，更新待处理数据（可能会删除原待处理数据，重新插入新的数据）；

合同变更提交，若合同原本占用上游数据，则形成上游流水，审批通过，成为上游流水，审批退回从上游流水中去除。

 

合同变更提交上下游逻辑罗列如下：

合同手工新建  
---  
**结算类型**| **下游执行数量**| **合同变更逻辑**| **备注**  
无需结算| C（转订单）| 1、校验需求数量大于等于C| 若为框架合同/框架合同的补充合同，可能存在转订单数据；  
普通合同时，无需转订单C=0  
合同直接结算| C=0| 1、校验需求数量大于等于0，  
2、合同变更中，待结算数据隐藏；  
3、合同变更审批通过后，更新待结算数据；| 若为框架合同/框架合同的补充合同，按结算类型为无需结算实现  
C>0| 不允许变更  
合同验收结算-按阶段验收| C=0（预付款结算+验收）| 1、校验需求数量大于等于0  
2、合同变更中，待验收数据隐藏；  
3、合同变更审批通过后，更新待验收数据；  
C>0（预付款结算+验收）| 不允许变更  
合同验收结算-按标的验收| C| 1、校验需求数量大于等于C，  
2、合同变更中，待验收数据隐藏；  
3、合同变更审批通过后，更新待验收数据；  
订单直接结算/  
订单收货结算/  
订单验收结算| C（转订单）| 1、校验需求数量大于等于C  
2、合同变更中，待验收数据隐藏；  
3、合同变更审批通过后，更新待转订单数据；  
  
 

**占用寻源结果数量A**  
**寻源待转数量B**| **寻源强控；合同占用；**  
---|---  
**结算类型**| **下游执行数量**| **合同变更逻辑**|  备注  
无需结算| C（转订单）| 1、校验需求数量大于等于C，小于等于A+B；  
2、回写寻源结果执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；| 若为框架合同/框架合同的补充合同，可能存在转订单数据；  
普通合同时，无需转订单C=0  
合同直接结算| C=0| 1、校验需求数量大于等于0，小于等于A+B；  
2、回写寻源结果执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待结算数据隐藏；  
4、合同变更审批通过后，更新待结算数据；| 若为框架合同/框架合同的补充合同，按结算类型为无需结算实现  
C>0| 不允许变更  
合同验收结算-按阶段验收| C=0| 1、校验需求数量大于等于0，小于等于A+B；  
2、回写寻源结果执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待验收数据隐藏；  
4、合同变更审批通过后，更新待验收数据；  
C>0| 不允许变更  
合同验收结算-按标的验收| C| 1、校验需求数量大于等于C，小于等于A+B；  
2、回写寻源结果执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待验收数据隐藏；  
4、合同变更审批通过后，更新待验收数据；  
订单直接结算/  
订单收货结算/  
订单验收结算| C（转订单）| 1、校验需求数量大于等于C，小于等于A+B；  
2、回写寻源结果执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待验收数据隐藏；  
4、合同变更审批通过后，更新待转订单数据；  
  
 

**占用任务数量A**  
**待转任务数量D**| **任务强控；合同占用；**  
---|---  
**占用框架合同数量B**  
**框架合同待转E**| **框架合同不强控，合同占用**  
**结算类型**| **下游执行数量**| **合同变更逻辑**|  备注  
无需结算| C（转订单）| 1、校验需求数量大于等于C，小于等于A+D，小于等于B+E（确认后可继续执行）；  
2、回写任务执行流水/合同执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；| 若为框架合同/框架合同的补充合同，可能存在转订单数据；  
普通合同时，无需转订单C=0  
合同直接结算| C=0| 1、校验需求数量大于等于0，小于等于A+D，小于等于B+E（确认后可继续执行）；  
2、回写任务执行流水/合同执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待结算数据隐藏；  
4、合同变更审批通过后，更新待结算数据；| 若为框架合同/框架合同的补充合同，按结算类型为无需结算实现  
C>0| 不允许变更  
合同验收结算-按阶段验收| C=0| 1、校验需求数量大于等于0，小于等于A+D，小于等于B+E（确认后可继续执行）；  
2、回写任务执行流水/合同执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待验收数据隐藏；  
4、合同变更审批通过后，更新待验收数据；  
C>0| 不允许变更  
合同验收结算-按标的验收| C| 1、校验需求数量大于等于C，小于等于A+D，小于等于B+E（确认后可继续执行）；  
2、回写任务执行流水/合同执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待验收数据隐藏；  
4、合同变更审批通过后，更新待验收数据；  
订单直接结算/  
订单收货结算/  
订单验收结算| C（转订单）| 1、校验需求数量大于等于C，小于等于A+D，小于等于B+E（确认后可继续执行）；  
2、回写任务执行流水/合同执行流水；-数量变大，提交即回写流水；数量变小，归档后回写流水；  
3、合同变更中，待验收数据隐藏；  
4、合同变更审批通过后，更新待转订单数据；  
  
一、

# 四、上下游关联功能点

任务、寻源结果支持转为合同。合同支持转为订单，框架合同的物料单价默认转入价格库。
