Sp_Bill_Used.md 2.16 KB

Sp_Bill_Used (procedure)

单据是否被下级使用存储过程

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

Parameters

# Mode Name Type
1 IN sTableName varchar(100)
2 IN sLoginId varchar(100)
3 IN sGuid varchar(100)
4 OUT sReturn varchar(1000)
5 IN sBrId varchar(100)
6 IN sSuId varchar(100)
7 IN sType varchar(100)
8 OUT sCode int
9 OUT sReturnIds text

Body

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

Narrative

Business context: Cross-module / 单据是否被下级使用 — the universal "is this document referenced downstream?" guard, called from every Sp_Calc_s* audit/un-audit proc before allowing a check/uncheck (or delete) to proceed. Comment header: 单据是否被下级使用存储过程.

What it does: Dispatches on sTableName (e.g. SalDeliverGoodsMaster, PurPurchaseOrderMaster, MftWorkOrderMaster, ...) and runs the matching downstream-existence query — counts non-invalidated rows in the consuming slave table whose sSrcSlaveId ties back to this document, and on a hit returns sCode=0 plus a human message in sReturn and the offending IDs in sReturnIds. sType ("Audit", "SaleTrial", "Delete", ...) varies the strictness. The body has dozens of IF sTableName = '...' branches covering AccMaterialsInitMaster, AccProductDoingMaster, CahPayMentMaster, CahReceiptMaster, EleCustomer, EleEmployee, EleMaterialsStock, MftProductionPlanMaster, mftworkordermaster, salsaleschancemaster, and many others.

Invocation: Called by ~60 Sp_Calc_s* audit/un-audit procedures (e.g. Sp_Calc_sDgd, Sp_Calc_sSod, Sp_Calc_sWod, Sp_Calc_sPpa, …) when a user clicks 审核/反审核/作废 on the corresponding document; also called by Sp_AfterPost_sQtt, sp_btn_action, Sp_System_BatchPriceMoney, Sp_UpdateAdd_Check, and the templated sProcName.sql macros in xlyEntry / xlyFlow. Multiple customer overrides at script/客户/{千彩,统兴}/Sp_Bill_Used.sql.