# `Sp_CombinedOrderList_BtnEventRestart` (procedure)


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

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `sProInParam` | `varchar(10000)` |
| 2 | IN | `sMakePerson` | `varchar(100)` |
| 3 | IN | `sBrId` | `varchar(100)` |
| 4 | IN | `sSuId` | `varchar(100)` |
| 5 | OUT | `sReturn` | `varchar(1000)` |
| 6 | OUT | `sCode` | `int` |

## Body

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

## Narrative

**Business context:** 销售管理 → 销售订单 — operator "重新开始/还原" action on a 组合订单列表 view. Resets the finalize-progress flag on the chosen 销售订单 rows back to the "未处理" (untouched) state so the order can be re-picked.

**What it does:** Validates `sProInParam` (delimited `salsalesordermaster.sId` list, returns `Sp_Sis_GetConst('paramsErro', …)` when shorter than 5 chars). Then `UPDATE salsalesordermaster SET sRipTrue = '未处理' WHERE INSTR(sProInParam, sId) > 0` scoped by `sBrandsId`/`sSubsidiaryId`. Note it leaves `bLock`/`sLockPerson` alone — pair with `Sp_CombinedOrderList_BtnEventRetGetOrder` to also release the lock.

**Invocation:** Dispatched generically by `GenericProcedureCallController.doGenericProcedureCall()` → `GenericProcedureCallServiceImpl` — the front-end posts the proc name directly. No `gdsmodule` hook, no form-master binding. xly-src ships only the install script `script/标版/30100101/Sp_CombinedOrderList_BtnEventRestart.sql`.
