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.