Sp_Check_sPst.md 2.68 KB

Sp_Check_sPst (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_sPst'._

Narrative

Business context: 销售管理 → 销售送货流程 → 成品入库 — post-save validator on pitproductinstoremaster/pitproductinstoreslave. Two-part enforcement: (1) the 入库 qty cannot exceed the 检验合格数 from QC, and (2) overflow across the per-work-order plan qty is auto-shunted into a 余数仓库 by inserting a split-row when the system setting CkxNoRemainderWarehouse is on. Handles 红冲 deduplication as well.

What it does: Sets sCode=1, iFlag=0, clears sReturn. Numbers slave rows via a session variable, reads pitproductinstoremaster.sInstoreType. Detects a 红冲 master and aborts with sCcprkHaveRedData if existing 红冲 rows don't balance. For sInstoreType=1 (normal inbound), aborts with sProductInStoreQtyUpQualified ("产品入库数已超检验合格数,请核查是否重复入库") when the summed dProductQty per sSrcSlaveId exceeds the matching qlyproducttestmaster.dQualifyQty. Reads NetMoney/CkxNoRemainderWarehouse/NetPrice precisions. When CkxNoRemainderWarehouse=1, opens a cursor over slave rows whose warehouse has bRemainder=1; for each row, looks up siswarehouse.sRemainWareHouseId (aborts with sNoRemindWareHouse if not set), then computes overflow against mftworkorderslave.dProductQty (+dReturnProductQty) minus the sum of all in-store rows; on overflow, reduces the original row's qty and INSERT INTO pitproductinstoreslave a new row in the 余数仓库 carrying ABS(overflow). Deletes any dProductQty=0 slave rows, then calls Sp_afterSave_sPst. If the master is a 红冲, also calls Sp_Calc_sPst(1, 0, ...) to immediately drive the audit.

Invocation: Bound to gdsmodule.sSaveProName on 成品入库 (192116810113315228246447250) — 销售管理 → 销售送货流程 (KPI流程操作菜单). Dispatched by BusinessBaseServiceImpl.checkUpdate(..., "sSaveProName") after the save batch commits. Pre-save peer is Sp_beforeSave_sPst. xly-src ships script/标版/30100101/Sp_Check_sPst.sql as the install body.