Sp_System_InitCurrentPeriodCost.md 2.95 KB

Sp_System_InitCurrentPeriodCost (procedure)

@author:杨恒林 @date:20210523 封存 @describe: 获取当前月份要进行成本核算的工单号,在月末结帐时并存入成本月结表,只有结构数据, 暂无成本数据,等实际的费用分摊单据数据出来后,调用成本核算过程,更新成本数据 主要思路如下: 1.月末结帐时调用本过程 2.本月核算工单 = 本月成品入库+发外对帐对应的工单号和本月装配单号从表对应的工单 + 没有完工的工单号(入库数<工单数 或者单据完工) 3.把上面工单存入本月月度成本表,为成本核算做准备

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

Parameters

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

Body

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

Narrative

Business context: 成本核算 / 月末结帐 — populates the per-period cost ledger skeleton at month-end close. Per the procedure COMMENT (杨恒林, 2021-05-23): the current period's 工单 set = (this-period 成品入库) + (this-period 发外对帐 工单) + (this-period 装配单从表 工单) + (open 工单 where 入库数<工单数 or marked 完工). The proc selects those 工单s and inserts structure-only rows into the 成本月结表 family (CotOrderCostAnalysis/accordercostanalysis*), ready for the subsequent Sp_System_MaterialsCost / Sp_System_ProductionCost runs to fill in money.

What it does: Pulls tStartDate/tEndDate/sPeriodId, looks up DATABASE() and EleWorkCenter / EleCostFrame counts (refuses to run when either base table is empty), then assembles dynamic SQL (p_sSumSql, p_sSumSqlBl, p_updateSql, p_sSetSql) that joins mftworkordermaster to pitproductstoremaster, mftvinvoiceslave (发外发票), mftassemblyslave (装配从表) and the prior period's 成本月结 row, and bulk-inserts the in-scope 工单s into accordercostanalysis / cost-frame slaves with iType codes for each category. Mostly INSERT-with-cost-zero placeholders; later cost procs UPDATE them.

Invocation: Called by Sp_financialClosing_BtnEventCalcMaterialPrice (月末结帐 button — after Sp_System_CalcMaterialsPrice and Sp_System_CalcProductPrice_new), and additionally by Sp_CalcCost_BtnEventReCalcCost, Sp_Cost_CheckBusinessData, Sp_System_ReCostStructure, and Sp_System_ReCostStructure_new. Install scripts at script/标版/30100101/cost/Sp_System_InitCurrentPeriodCost.sql plus an financialClosing_BtnEventCalcMaterialPrice.sql upgrade copy.