﻿# PRICE-001 报价逻辑说明

## 文档信息

| 字段 | 内容 |
|------|------|
| 文档编号 | PRICE-001 |
| 文档类型 | 报价逻辑说明 |
| 适用版本 | V1.2 / V1.2.1 当前发布口径 |
| 适用对象 | 业务、项目、售前、产品、研发、测试 |
| 关联文档 | PRD-003 / PRD-003A / PRD-003B / UC-003 / OM-001 / OM-002 |
| 状态 | 草稿 |
| 说明 | 本文档用于说明“系统为什么会得出这个报价”，补充操作手册未覆盖的业务计算规则与金额口径。 |

## 1. 文档目的

- 操作手册解决的是“怎么操作系统”。
- 报价逻辑说明解决的是“系统按什么规则生成报价结果”。
- 本文档重点回答以下问题：
  - 报价输入项来自哪里。
  - 系统如何拆分并计算各类金额。
  - 税项、分成、追加、打折分别按什么口径处理。
  - 哪些金额会立即生效，哪些金额需要审核后才生效。

## 2. 适用范围

- 适用于当前报价管理系统发布版本的前后台统一业务口径。
- 适用于报价创建、保存、审核、追加报价、打折、导出、追溯说明等场景。
- 不用于替代详细页面交互说明；页面点击路径、按钮位置、录入方式仍以操作手册为准。

## 3. 报价逻辑总览

一次报价的形成过程，可概括为以下 6 步：

1. 选择项目、产品、模块和参数。
2. 读取后台当前生效的报价配置、工时配置、税项配置和分成比例配置。
3. 按模块分别计算金额，并拆分为 `CG制作费用`、`系统及云服务费用`、`其他专项费用`。
4. 汇总生成金额小计、税项结果、整单结果和分成结果。
5. 保存时固化本次报价快照，确保后续查看、审核、导出均基于同一版数据。
6. 根据权限与状态决定金额是否直接生效，或进入审核后生效。

## 4. 报价输入与数据来源

### 4.1 输入项

- 项目基础信息。
- 所选产品与模块。
- 各模块下的业务参数、数量参数和开关项。
- 项目级分成比例（如有）。
- 报价单资料。

### 4.2 数据来源

- 系统运行时的唯一最终数据源，是后台当前生效的报价配置。
- `PRICE` 文档、PRD 中的价格示例、历史 Excel 仅作为整理与对照材料，不作为运行时最终计价依据。
- 报价首次保存时，系统必须固化本次报价使用的配置快照，包括：
  - 模块参数快照
  - 计价规则快照
  - 模块金额快照
  - 税项快照
  - 分成比例快照
  - 整单金额快照
  - 报价单资料快照

### 4.3 分成比例来源

- 分成比例采用 `系统默认 + 项目级覆盖` 机制。
- 项目未单独配置时，沿用系统默认比例。
- 项目已配置时，优先采用项目级分成比例。

## 5. 金额构成口径

当前系统将报价金额按业务属性拆为 3 类：

### 5.1 CG制作费用

- 指与具体制作工作直接相关的金额。
- 是追加报价、打折计算时最核心的金额基准。
- 在模块维度上可单独追溯生效前、变更额、生效后金额。

### 5.2 系统及云服务费用

- 指系统使用、系统能力或云服务相关费用。
- 正常计入整单报价总价。
- 不参与日本 / 南京分成。
- 不纳入打折范围。

### 5.3 其他专项费用

- 指不归入 `CG制作费用`、也不归入 `系统及云服务费用` 的专项金额。
- 正常计入整单报价总价。
- 是否参与其他业务处理，以当前配置和共享规则为准。

### 5.4 系统费的特殊口径

以下金额统一按 `系统费` 口径处理：

- `楼宇` 模块中的 `BUILDING VISTA 3D`、`BUILDING VISTA Lite`
- `色彩切换` 模块中的 `2D 系统费 200,000 日元`
- `系统收费` 模块下全部收费项

这部分金额：

- 计入整单总价。
- 不参与日本 / 南京分成。
- 不纳入打折范围。

## 6. 核心计算规则

### 6.1 模块计算

- 系统先按模块逐个计算金额。
- 每个模块的结果需能拆分出：
  - `CG制作费用`
  - `系统及云服务费用`
  - `其他专项费用`
- 多实例模块需分别计算每个实例的小计，再参与整单汇总。

### 6.2 整单汇总

- 系统在模块结果基础上，汇总形成：
  - `CG制作项小计`
  - `系统及云服务项小计`
  - `其他专项小计`
  - 税项结果
  - 整单结果
  - 分成结果

### 6.3 税项处理

- 所有税项按当前报价对应的税项快照计算。
- 通用计算口径为：`税额 = 不含税金额 × 税率`。
- 每条税额单独计算，并按日元个位四舍五入。
- 当前发布版前台与导出侧，税项对外统一使用 `契約税務調整費` 文案。
- 当前导出页说明口径为：`具体金额（CG制作+系统+其他专项累计10%金额）`。

### 6.4 当前发布版的前台主展示口径

- 报价预览顶部主金额文案统一为 `合计 （不含税净额）`。
- 报价详情金额汇总统一展示：
  - `CG制作项小计`
  - `系统及云服务项小计`
  - `其他专项小计`
  - `契約税務調整費`
  - `合计 （不含税净额）`
- 报价详情页当前不再展示 `分成比例`、`日本40%`、`南京60%`。
- 当前发布版前台不再单独突出 `含税总价` 文案。
- 因此，对外沟通时应区分：
  - 业务计算层仍保留税项与整单金额口径。
  - 前台展示层当前统一以 `合计 （不含税净额）` 作为主展示名称。

### 6.5 取整规则

- 所有报价金额字段统一按日元整数处理。
- 涉及小数的金额计算，统一按 `四舍五入到个位日元` 处理。
- 系统内部应先按高精度中间值完成计算，再输出最终取整结果。
- 前台展示、审核查看、导出与打印，统一仅展示取整后的整数金额。

### 6.6 大楼交付选项罗列

以下内容用于补充说明 `楼宇 > 大楼交付` 下的各个选项、基础包、报价项介绍和规则。若与历史清单文档存在差异，以当前 `V1.2` 业务口径和后台生效配置为准。

#### 6.6.1 通用规则

- `大楼交付` 按每栋大楼实例分别配置。
- 每栋大楼至少选择 `1` 个大楼交付项。
- 当前一级交付项为：
  - `BUILDING VISTA 3D`
  - `BUILDING VISTA Lite`
  - `大楼追加静态图交付`
- `CITY VISITA` 当前作为 `BUILDING VISTA 3D` 下的二级选配项展示。
- `大楼追加静态图交付` 可单独被选择，并允许继续保存报价。
- 楼宇模块总价不得低于 `500,000 日元`；若保存时低于该金额，系统按最低价 `500,000 日元` 保存。
- `BUILDING VISTA 3D` 与 `BUILDING VISTA Lite` 计入整单报价总价，但按当前规则视为 `系统费`，不参与日本 / 南京分成，也不纳入打折范围。

#### 6.6.2 BUILDING VISTA 3D

- 交付定位：3D 大楼主交付项。
- 基础价格：`500,000 日元`
- 基础包：
  - `楼体展示`
  - `环视相机`
  - `隐藏周边`
  - `操作指南`
- 基础包规则：基础包内容默认收起，支持手动展开和收起。
- 报价项介绍：用于 3D 大楼主体展示及基础交互交付。
- 当前选配项：
  - `CITY VISITA`
  - `户型展示`
  - `外景展示（眺望）`
  - `飞行导航`

`BUILDING VISTA 3D` 下直接选配项规则如下：

- `户型展示`
  - 基础价格：`280,000 日元`
  - 包含范围：`100 户`
  - 报价项介绍：在 3D 大楼建筑上展示住户信息。
  - 规则：最小值为 `100 户`；不超过 `100 户` 时固定按 `280,000 日元` 计费；超过 `100 户` 后，超出部分按 `1,200 日元 / 户` 计费。
- `外景展示（眺望）`
  - 基础价格：`280,000 日元`
  - 包含范围：`100 张`
  - 报价项介绍：用于 3D 大楼外景眺望展示。
  - 规则：最小值为 `100 张`；不超过 `100 张` 时固定按 `280,000 日元` 计费；超过 `100 张` 后，超出部分按 `1,200 日元 / 张` 计费。
- `飞行导航`
  - 单价：`1,200 日元 / 导航点`
  - 报价项介绍：用于 3D 大楼飞行路径导航展示。
  - 规则：最小值为 `1`；按 `数量 × 1,200 日元` 实时计费。

#### 6.6.3 CITY VISITA

- 交付定位：`BUILDING VISTA 3D` 下的 GIS / 城市级扩展交付项。
- 基础价格：`600,000 日元`
- 基础包：
  - `楼体展示`
  - `Google 卫星地图展示`
  - `环视相机`
  - `隐藏周边`
- 基础包规则：基础包内容默认收起，支持手动展开和收起。
- 报价项介绍：用于大楼与城市环境、卫星地图和广域视角联动展示。
- 当前选配项：
  - `3D住户表`
  - `城市数据展示`
  - `外景展示（眺望）`
  - `人视眺望`
  - `飞行导航`

`CITY VISITA` 下选配项规则如下：

- `3D住户表`
  - 基础价格：`280,000 日元`
  - 包含范围：`100 户`
  - 报价项介绍：在城市级展示视图中呈现住户表信息。
  - 规则：最小值为 `100 户`；不超过 `100 户` 时固定按 `280,000 日元` 计费；超过 `100 户` 后，超出部分按 `1,200 日元 / 户` 计费。
- `城市数据展示`
  - 基础价格：`240,000 日元`
  - 报价项介绍：提供城市信息图层展示能力。
  - 规则：当前按固定价格 `240,000 日元` 计费。
- `外景展示（眺望）`
  - 基础价格：`280,000 日元`
  - 包含范围：`100 张`
  - 报价项介绍：用于城市级外景眺望展示。
  - 规则：最小值为 `100 张`；不超过 `100 张` 时固定按 `280,000 日元` 计费；超过 `100 张` 后，超出部分按 `1,200 日元 / 张` 计费。
- `人视眺望`
  - 单价：`1,200 日元 / 眺望点`
  - 报价项介绍：用于人视角眺望点展示。
  - 规则：最小值为 `1`；按 `数量 × 1,200 日元` 实时计费。
- `飞行导航`
  - 单价：`1,200 日元 / 导航点`
  - 报价项介绍：用于城市级飞行路径导航展示。
  - 规则：最小值为 `1`；按 `数量 × 1,200 日元` 实时计费。

#### 6.6.4 BUILDING VISTA Lite

- 交付定位：轻量版大楼交付项。
- 基础价格：`200,000 日元`
- 基础包：
  - `场景搭建`
  - `角度调整`
  - `隐藏周边`
  - `全屏展示`
  - `回到初始视角`
  - `操作指南`
  - `重要提示`
  - `项目导入支援`
- 基础包规则：基础包内容默认收起，支持手动展开和收起。
- 默认选配内容：
  - `键盘操作`
  - `隐藏周边`
  - `全屏展示`
  - `重要提示`
- 报价项介绍：用于 2D / 轻量型大楼展示配置工作。
- 规则：
  - 上述默认选配内容默认选中。
  - 上述默认选配内容当前价格均为 `0 日元`。
  - 允许取消任意默认选配项，且不改变该交付项总价。

#### 6.6.5 大楼追加静态图交付

- 交付定位：独立追加交付项。
- 单价：`120,000 日元 / 张`
- 默认数量：`1 张`
- 基础包：无
- 报价项介绍：用于追加大楼静态图交付内容。
- 规则：
  - 最小值为 `1 张`。
  - 按 `数量 × 120,000 日元` 实时计费。
  - 当前没有可继续拆分的报价子项。

## 7. 分成逻辑

### 7.1 分成基础

- 分成金额按模块总价和当前生效分成比例计算。
- 当项目存在项目级分成比例时，优先按项目级比例计算。
- 若项目未配置项目级比例，则按系统默认比例计算。

### 7.2 分成限制

- `系统费` 不参与日本 / 南京分成。
- 参与分成的模块，需要保留分成前原始计算值，用于后续审计与金额解释。

### 7.3 分成尾差处理

- 分成结果统一按整数日元展示。
- 分成尾差统一归入 `日本金额`。
- 处理规则为：
  - 先计算并取整 `南京金额`
  - 再由 `日本金额 = 模块总价 - 南京金额`
- 这样可以确保 `日本金额 + 南京金额 = 模块总价`。

## 8. 追加报价与打折逻辑

### 8.1 核心原则

- 追加报价与打折的模块选择范围保持不变。
- 但每次追加或打折的金额，只针对“所选模块中的 `CG制作费用`”计算。
- 不作用于以下金额：
  - 该模块中的 `系统及云服务费用`
  - 该模块中的 `其他专项费用`
  - 税项
  - 其他未选择模块

### 8.2 当前可打折金额

- `当前可打折金额` 以本次所选模块中 `CG制作费用` 的已生效金额为基准计算。
- 计算时：
  - 包含已审核通过的追加与打折结果
  - 包含管理员 / 超级管理员直接生效的追加与打折结果
  - 不包含仍处于 `待审核` 的追加记录

### 8.3 生效与记录

- 追加报价与打折生效时，系统需同时记录：
  - 生效前金额
  - 变更金额
  - 生效后金额
- 这些记录既用于页面展示，也用于后续金额解释和审计追溯。

### 8.4 审核影响

- 普通用户发起的 `追加报价` 进入 `待审核` 后，不影响当前有效导出金额。
- 在审核通过前：
  - 报价详情主金额继续沿用上一版已生效金额
  - 导出金额继续沿用上一版已生效金额
  - 待审核追加仅作为独立记录展示，并标记为 `待审核`
- `打折` 当前仅支持管理员和超级管理员操作。

## 9. 状态、生效与追溯逻辑

### 9.1 状态流转

- 保存报价后，状态为 `待提交审核`。
- 提交审核后，状态为 `待审核`。
- 审核通过后，相关金额正式成为当前有效金额。
- 审核不通过后，不进入生效金额，并保留审核记录。

### 9.2 快照机制

- 报价首次保存时，系统固化本次报价的关键配置与金额快照。
- 后续即使后台配置被修改或删除，历史报价仍按自身快照展示，不受影响。

### 9.3 留痕机制

- 报价生命周期内的全部关键操作记录，统一挂在当前报价下保留。
- 至少包括：
  - 创建报价
  - 修改报价
  - 提交审核
  - 审核通过
  - 审核不通过
  - 追加报价
  - 打折
  - 导出报价

### 9.4 删除机制

- 项目删除与报价删除均采用 `逻辑删除`。
- 已删除数据默认不在前后台业务列表展示。
- 但操作日志、审计追溯信息和必要留痕继续保留。

## 10. 典型报价示例

以下示例仅用于解释报价逻辑，便于内部沟通和培训；实际运行金额仍以后台当前生效配置为准。

### 10.1 示例场景

- 某项目选择 `楼宇` 模块中的以下交付内容：
  - `BUILDING VISTA 3D`：`500,000 日元`
  - `CITY VISITA`：`600,000 日元`
  - `CITY VISITA - 城市数据展示`：`240,000 日元`
  - `大楼追加静态图交付 2 张`：`240,000 日元`

### 10.2 计算过程

- 楼宇模块金额 = `500,000 + 600,000 + 240,000 + 240,000 = 1,580,000 日元`
- 若整单仅包含这一项模块，则：
  - `CG制作项小计`：`1,080,000 日元`
  - `系统及云服务项小计`：`500,000 日元`
  - `其他专项小计`：`0 日元`
  - `合计 （不含税净额）`：`1,580,000 日元`
  - `契約税務調整費`：按 `10%` 计算为 `158,000 日元`

### 10.3 解释重点

- `BUILDING VISTA 3D` 按当前规则视为 `系统费`，计入总价，但不参与分成，也不纳入打折范围。
- `CITY VISITA` 及其选配项、`大楼追加静态图交付` 按当前规则参与正常模块金额计算。
- 页面当前主展示金额为 `合计 （不含税净额）`，税项单独展示为 `契約税務調整費`。

## 11. 追加报价示例

### 11.1 示例场景

- 某条已生效报价中，用户选择对 `专有部` 模块发起追加报价。
- 当前该模块已生效金额为：
  - `CG制作费用`：`800,000 日元`
  - `系统及云服务费用`：`100,000 日元`

### 11.2 追加逻辑

- 用户选择追加方式为 `按比例追加 10%`。
- 追加金额只基于该模块中的 `CG制作费用` 计算。
- 因此本次追加金额 = `800,000 × 10% = 80,000 日元`

### 11.3 生效结果

- 追加后该模块金额变为：
  - `CG制作费用`：`880,000 日元`
  - `系统及云服务费用`：仍为 `100,000 日元`
- 该模块合计增加 `80,000 日元`
- 若税率按 `10%` 计算，则税项相应增加 `8,000 日元`

### 11.4 解释重点

- 本次追加不会作用于 `系统及云服务费用`。
- 本次追加不会直接对税项本身做二次追加，而是先变更模块金额，再由整单重新计算税项。
- 若是普通用户发起追加，则在 `待审核` 期间，当前有效导出金额和主金额仍沿用上一版已生效金额。

## 12. 打折示例

### 12.1 示例场景

- 延续上一示例，当前该模块已生效的 `CG制作费用` 已变为 `880,000 日元`。
- 管理员对该模块发起 `按比例打折 5%`。

### 12.2 打折逻辑

- 当前可打折金额基于该模块已生效的 `CG制作费用` 计算。
- 因此本次打折金额 = `880,000 × 5% = 44,000 日元`

### 12.3 生效结果

- 打折后该模块金额变为：
  - `CG制作费用`：`836,000 日元`
  - `系统及云服务费用`：仍为 `100,000 日元`
- 该模块合计减少 `44,000 日元`
- 若税率按 `10%` 计算，则税项相应减少 `4,400 日元`

### 12.4 解释重点

- 打折同样只作用于所选模块中的 `CG制作费用`。
- `系统费`、`其他专项费用`、税项和其他模块金额都不属于本次打折范围。
- 打折当前仅支持管理员和超级管理员操作，且可直接生效。

## 13. 分成示例

### 13.1 示例场景

- 某可参与分成的模块总价为 `1,200,001 日元`
- 项目级分成比例为：
  - `日本 40%`
  - `南京 60%`

### 13.2 计算过程

- `南京金额` 原始值 = `1,200,001 × 60% = 720,000.6`
- 按日元个位四舍五入后，`南京金额 = 720,001 日元`
- `日本金额` 不再单独重新四舍五入，而是按尾差归入规则计算：
  - `日本金额 = 1,200,001 - 720,001 = 480,000 日元`

### 13.3 结果说明

- 最终分成结果为：
  - `日本金额`：`480,000 日元`
  - `南京金额`：`720,001 日元`
- 这样可以确保：
  - `480,000 + 720,001 = 1,200,001`

### 13.4 解释重点

- 分成不是简单把两边各自算完再分别展示，而是需要处理尾差。
- 当前规则是先确定 `南京金额`，再把尾差归入 `日本金额`。
- `系统费` 不参与该分成计算。

## 14. 常见争议口径说明

### 14.1 为什么追加报价或打折只影响一部分金额

- 因为当前规则明确：追加报价与打折只作用于“所选模块中的 `CG制作费用`”。
- `系统及云服务费用`、`其他专项费用`、税项和其他模块金额均不在本次变更范围内。

### 14.2 为什么待审核追加没有立刻改变当前导出金额

- 因为普通用户发起的追加报价在审核通过前，只作为 `待审核` 记录存在。
- 当前有效主金额和导出金额仍沿用上一版已生效金额。

### 14.3 为什么楼宇金额低于 50 万日元，保存后却按 50 万日元算

- 因为楼宇模块存在最低价保护机制。
- 当保存时楼宇模块总价低于 `500,000 日元`，系统会按最低价 `500,000 日元` 保存，并记录原始计算金额和触发原因。

### 14.4 为什么 `BUILDING VISTA 3D` 和 `BUILDING VISTA Lite` 不参与分成

- 因为这两项在当前规则中按 `系统费` 处理。
- `系统费` 正常计入整单总价，但不参与日本 / 南京分成，也不纳入打折范围。
