Sp_System_CalcMaterialsPrice.md 2.91 KB

Sp_System_CalcMaterialsPrice (procedure)

@author:杨恒林 @date:20210521 封存 @describe:全月加权计算价格后 期初金额 + 采购入库金额+期它入库金额/ 期初数量 + 采购入库金额+期它入库金额 更新到其它各单据 bUpdate = 0:第一次分摊,分切单主表分摊到从表。 第二次正常分摊

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

Parameters

# Mode Name Type
1 IN tStartDate datetime
2 IN tEndDate datetime
3 IN bUpdate int
4 IN sBrId varchar(100)
5 IN sSuId varchar(100)
6 OUT sReturn varchar(4000)
7 OUT sCode int

Body

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

Narrative

Business context: 成本核算 / 财务月结 → 计算材料价格 — period-level materials weighted-average pricer. For the closing period, computes 全月加权 unit price per material as (期初金额 + 采购入库金额 + 其它入库金额) / (期初数量 + 采购入库数量 + 其它入库数量), then propagates that price back onto every materials movement in the period (生产领料、生产退料、材料调拨、材料报废、来料入库、其它入库、分切单, etc.). Header (杨恒林 2021-05-21 封存) notes bUpdate=0 is the first pass — 分切单 master price split to slaves first; the second pass does the normal propagation.

What it does: Walks every material with a [tStartDate, tEndDate] movement. Loads 期初金额/期初数量 from the prior month-end materials store (accmaterialsstore), sums本期 input money/qty from mitpurchaseinmaster/mitothermaterialsinmaster/mitmaterialsinmaster etc., divides for the weighted-average unit price (dMaterialsPrice). Writes that price back onto each in-period materials slave (and the viw_mitmaterialscheck underlying tables), refreshing dMaterialsMoney = qty * price with SysSystemSettings decimal rounding. bUpdate=1 月末结帐 path additionally stores the period roll-up to the closing table; bUpdate=0 is the materials-stock-value preview path that only updates prices.

Invocation: Called by Sp_financialClosing_BtnEventCalcMaterialPrice (the 计算材料价格 button on 财务月结), Sp_CalcCost_BtnEventReCalcCost, Sp_CommonList_BtnEventCheck, Sp_Cost_CheckBusinessData, and Sp_financialClosing_BtnEventCalcYM_New — each dispatched via GenericProcedureCallServiceImpl.doGenericProcedureCall() from the corresponding 月结 toolbar buttons. Install: script/标版/30100101/cost/Sp_System_CalcMaterialsPrice.sql (+ Sp_CalcCost_BtnEventReCalcCost.sql, Sp_financialClosing_BtnEventCalcMaterialPrice.sql, Sp_CommonList_BtnEventCheck.sql). Dated backups _220709, _221111 retain older revisions.