Sp_Check_sSmi.md 2.12 KB

Sp_Check_sSmi (procedure)

半成品入库保存之前数据校验

  • Type: PROCEDURE
  • Deterministic: NO
  • SQL data access: CONTAINS SQL

Parameters

# Mode Name Type
1 IN sTableName varchar(100)
2 IN sGuid varchar(100)
3 IN sFormGuid varchar(100)
4 IN sLoginId varchar(100)
5 IN sBrId varchar(100)
6 IN sSuId varchar(100)
7 IN iFlag int
8 OUT sCode int
9 OUT sReturn varchar(4000)

Body

Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURESpCheck_sSmi'._

Narrative

Business context: 半成品入库 (semi-goods inbound) post-save validator on sgdsemigoodsinstoremaster/sgdsemigoodsinstoreslave. Two-part enforcement: (1) 红冲 (red-strike reversal) entries must net to zero against the source bill, and (2) the inbound qty per sSrcSlaveId cannot exceed the upstream 半成品入库申请 (sgdsemigoodsinstoreapplyslave.dProcessQty).

What it does: Sets defaults. Reads sMinusSrcId from the master; if set, sums all linked reversal-slave dProcessQty against the original — non-zero net triggers sCcprkHaveRedData ("已存在红冲数据,不允许重复提交"). Opens a cursor over slave rows; for each sSrcSlaveId joins sgdsemigoodsinstoreapplyslave and accumulates over-quantity with bill numbers, emits localized sSmiProductNameInBcp[Order] + sSmiQtyUpApply ("数量已超过申请数量") on overage. Aborts with sCode=-1 if sReturn non-empty, otherwise chains Sp_afterSave_sSmi.

Invocation: Status: appears orphaned. No gdsmodule.sSaveProName/sSaveProNameBefore hook, no gdsconfigformmaster binding, no other-routine caller in the live DB. The matching Sp_beforeSave_sSmi, Sp_afterSave_sSmi, Sp_Calc_sSmi siblings are all present (full family registered) and xly-src ships script/标版/30100101/Sp_Check_sSmi.sql as the install body — likely a 半成品入库 module wired only in deployments where the semi-goods workflow is enabled. Candidate for maintainer audit.