# `Sp_afterSave_sDgn` (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_sDgn`'`._ ## Narrative **Business context:** 送货通知单 (delivery-notify) — thin save-phase wrapper in the historic `Sp_afterSave_s` family. Each member is a 1-line delegator to `Sp_saveReturn_s` with `iFlag=2` (the "after save" phase code). For `_sDgn` the worker is `Sp_saveReturn_sDgn` ("送货通知单反写") — meant to reverse-write notified-qty onto upstream sales-order rows after the notify-bill is saved. **What it does:** Wraps `sGuid` in double-quotes if not already quoted and, when `sGuid` is non-empty, calls `Sp_saveReturn_sDgn(sGuid, sBrId, sSuId, 2, @sCode, @sReturn)`. 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` instead. Candidate for maintainer audit.