# `Sp_check_MaterialsStockLimitNew` (procedure) > 校验材料库存是否够用 - **Type:** PROCEDURE - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `sGuid` | `varchar(100)` | | 2 | IN | `sFormGuid` | `varchar(100)` | | 3 | IN | `tCreateDate` | `datetime` | | 4 | IN | `sBrId` | `varchar(100)` | | 5 | IN | `sSuId` | `varchar(100)` | | 6 | IN | `sTbName` | `varchar(100)` | | 7 | IN | `iFlag` | `int` | | 8 | OUT | `sCode` | `int` | | 9 | OUT | `sReturn` | `longtext` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `Sp_check_MaterialsStockLimitNew`'`._ ## Narrative **Business context:** Generic reusable check 校验材料库存是否够用 — intended to prevent an outbound material movement (issue / sale / shipment) from being saved when the resulting inventory would go negative, scoped to the current accounting period. **What it does:** Looks up the form's in/out direction via `Sp_Sis_GetMertialsInventoryFormGuid` (inferring `p_iAdd ∈ {1: 入库, 2: 出库}` from `INSTR` against the form lists); skips the check on `入库` and inverts the direction when `iFlag = 0` (消审 / un-check). For outbound saves, queries `sysaccountperiod` for the brand's closed-period boundary, then dynamically tallies on-hand material against the document's required quantities and emits the offending material names in `sReturn` with `sCode = -1` when stock is insufficient. **Invocation:** Status: appears orphaned. No caller found in any channel — no `gdsmodule` hook, no `gdsconfigformmaster` embed, no other-routine call, no xly-src reference. Designed as a save-time check but never linked; the older `Sp_check_MaterialsStockLimit` (without `New` suffix) may be the active version. Candidate for maintainer audit.