Sp_System_CheckMaterialsInvalid.md 2.06 KB

Sp_System_CheckMaterialsInvalid (procedure)

材料作废校验

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

Parameters

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

Body

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

Narrative

Business context: 材料作废校验 — blocks save of a 工单 / 报价单 when any referenced material has been retired (elematerials.bInvalid=1) and additionally blocks 工单 save when its upstream 销售订单 has been unaudited/deleted. Used by the standard post-save validator hook to keep retired-material work-orders out of production.

What it does: On sTableName='mftworkordermaster' joins mftworkordermaterials to elematerials and collects GROUP_CONCAT(sMaterialsName) where bInvalid=1; on quoquotationmaster does the same against quoquotationmaterials. If any names come back, returns sCode=-8 with '<names>:材料已作废,不能保存'. Then counts salsalesordermaster rows referenced by mftworkorderslave.sSrcId whose bCheck=1; zero means the source order has been retracted or deleted, so it returns sCode=-1 with '订单已消审/或已删除 不能保存工单数据 请核查订单数据'.

Invocation: Standard gdsmodule.sSaveProName post-save validator, dispatched by BusinessBaseServiceImpl.checkUpdate(..., "sSaveProName") (which delegates to checkSaveService.getCheckSaveUpd). The install script script/标版/30100101/Sp_System_CheckMaterialsInvalid.sql is the only deployed copy; no current gdsmodule.sSaveProName row in this DB instance binds it, so it ships as a customer-configurable check. The L variant drops the salsalesorder check.