# `Sp_afterSave_sLos` (procedure)

> 物流单保存后反写数量


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

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `sGuid` | `varchar(2000)` |
| 2 | IN | `sBrId` | `varchar(100)` |
| 3 | IN | `sSuId` | `varchar(100)` |
| 4 | OUT | `sCode` | `int` |
| 5 | OUT | `sReturn` | `varchar(4000)` |

## Body

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

## Narrative

**Business context:** 物流单 (logistics / freight bill) — thin save-phase wrapper in the historic `Sp_afterSave_s<Code>` family. Each member is a 1-line delegator to `Sp_saveReturn_s<Code>` with `iFlag=2` (the "after save" phase code). For `_sLos` the worker is `Sp_saveReturn_sLos` ("物流单单据反写") — meant to reverse-write freight info onto upstream 送货 rows after the 物流单 is saved.

**What it does:** Wraps `sGuid` in double-quotes if not already quoted and, when `sGuid` is non-empty, calls `Sp_saveReturn_sLos(sGuid, sBrId, sSuId, 2, @sCode, @sReturn)`. A `-- select aa from bb;` comment is left in the body (debug scaffolding). Does not propagate `@sCode`/`@sReturn` to its own OUT params.

**Invocation:** Status: appears orphaned. No caller found in any channel (`gdsmodule.sSaveProName`/`sCalcProName`/`sProcName`, form-master, other routines, xly-src grep) — same decommissioned-legacy condition as the rest of the `Sp_afterSave_*` family; production save-phase hooks dispatch to `Sp_Check_s<Code>` instead. Candidate for maintainer audit.
