Sp_Calc_sPit.md 1.97 KB

Sp_Calc_sPit (procedure)

成品期初

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

Parameters

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

Body

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

Narrative

Business context: 系统设置 → 期初设置 → 产品期初单据 — finished-product opening-balance audit on PitProductInitMaster/Slave. The check posts the opening profit/loss quantity into PitProductStore so the closing-period stock report reflects the initial inventory state.

What it does: Guards on bInvalid against PitProductInitMaster. On iFlag=1: resets PitProductInitSlave.dOriginalQty/dOriginalMoney/dProfitLossPrice = 0, then computes dProfitLossQty = dProductQty - dOriginalQty and dProfitLossMoney = dProductMoney - dOriginalMoney; deletes any pre-existing PitProductStore row keyed on sBillId=sGuid and inserts a fresh stock-movement row per non-zero slave line (only when dProfitLossQty <> 0 OR dProfitLossMoney <> 0), backdating tCreateDate by -1 MINUTE to place it before the period start; enforces Sp_calc_productstoreLimit (returns sCode=-8 on stock-shortage); then flips bCheck=1, sStatus=1, sCheckPerson, tCheckDate on the master. iFlag=0 re-runs the limit check and clears the flags.

Invocation: Bound to gdsmodule.sProcName on 产品期初单据 (sId 101251240115015991142363800, parent 期初设置) — dispatched by BusinessBaseServiceImpl.getPrcName(sFormGuid, …) on the audit/un-audit button. script/标版/30100101/Sp_Calc_sPit.sql is the install script.