# `Sp_CombinedOrderList_BtnEventRetGetOrder` (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_BtnEventRetGetOrder`'`._

## Narrative

**Business context:** 销售管理 → 销售订单 — operator "退单/解锁" action on a 组合订单列表 view. Releases the row-lock that `Sp_CombinedOrderList_BtnEventGetOrder` took so other operators can pick up the order again; the `sRipTrue` status is left untouched.

**What it does:** Validates `sProInParam` (delimited `salsalesordermaster.sId` list, returns `Sp_Sis_GetConst('paramsErro', …)` when shorter than 5 chars). Then `UPDATE salsalesordermaster SET sLockPerson = '', bLock = 0 WHERE INSTR(sProInParam, sId) > 0` scoped by `sBrandsId`/`sSubsidiaryId`.

**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_BtnEventRetGetOrder.sql`.
