Sp_Check_sMcd.md 1.97 KB

Sp_Check_sMcd (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_sMcd'._

Narrative

Business context: 物料管理 → 仓储管理 → 材料盘点单据 (sMcd = material-count, on mitmaterialscheckmaster/slave) — post-save profit/loss calculator. After a 盘点 saves, computes per-line 盘盈/盘亏 quantity, auxiliary qty, unit price, and money fields from the count entry and the historical material price.

What it does: For each MitMaterialsCheckSlave under sParentId=sGuid (tenant-scoped), sets dProfitLossQty = dMaterialsQty - dOriginalQty, dProfitLossAuxiliaryQty = dAuxiliaryQty - dOriginalAuxiliaryQty, then calls Fun_Cashier_GetMaterialsPrice_new(sMaterialsId, '', sBrId, sSuId) to populate dProfitLossPrice and dMaterialsPrice, and writes dProfitLossMoney = ROUND(price * (dMaterialsQty - dOriginalQty), 2). Note: sMaterialsId is unqualified — it resolves to whichever sMaterialsId is in scope (likely a bug; intended as M.sMaterialsId).

Invocation: Status: appears unbound at module level. The 材料盘点单据 module (192116810113315228128521360) has sSaveProName='' and only sProcName=Sp_Calc_sMcd. No other routine references Sp_Check_sMcd; no xly-src hit (no install script). Likely wired by a customer override or invoked from Sp_Calc_sMcd — verify with the maintainer. Flag: the unqualified sMaterialsId reference is a probable bug.