# `Sp_Quotation_CalcDataSetStd` (procedure)


- **Type:** PROCEDURE
- **Deterministic:** NO
- **SQL data access:** CONTAINS SQL

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `sGuid` | `varchar(100)` |
| 2 | IN | `bChangeRate` | `int` |
| 3 | IN | `sLoginId` | `varchar(100)` |
| 4 | IN | `sBrId` | `varchar(100)` |
| 5 | IN | `sSuId` | `varchar(100)` |
| 6 | OUT | `sCode` | `int` |
| 7 | OUT | `sReturn` | `varchar(5000)` |

## Body

_Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `Sp_Quotation_CalcDataSetStd`'`._

## Narrative

**Business context:** 销售管理 → 销售单据 — quotation calculator for the 套装产品 (product-set) form variant 报价单单据(通用)(兼容停用). Companion to `Sp_Quotation_CalcDataStd` but adds combine-control handling (`quoquotationcontrolcombine_tmp`) so a single slave can carry several bundled control groups.

**What it does:** Mirrors the standard calc loop — walks slave/control/material/process/print-process cursors against the Quo*_Tmp staging set, reads element rates from `eleproduct`/`EleProcess`, system toggles from `SysSystemSettings`/`sysformsetting`, expands formulas via `Sp_System_ReplaceField`/`Sp_Sis_GetConst`, and writes back into the staging tables. The set-specific block additionally updates `quoquotationControlCombine_Tmp` and uses `p_SlaveMoneyTable` / `p_TmpWorkOrderSlave` temp tables to aggregate per-combine totals before rolling them into `quoquotationmaster_tmp`.

**Invocation:** Dispatched by `BusinessBaseServiceImpl` via `CaclProNameEnum.SP_QUOTATION_CALCDATASETSTD` — selected when a form's `gdsmodule.sCalcProName='Sp_Quotation_CalcDataSetStd'`. Currently bound to 报价单单据(通用)(兼容停用) `101251240115016244276286330` (the bundled-product quote form). Install: `script/标版/30100101/Sp_Quotation_CalcDataSetStd.sql`.
