Sp_System_CalcCurrentPeriodCost (procedure)
@author:杨恒林 @date:20210523 封存 @describe: 从成本月结表中,拿到工单数据,计算本月成本数据后回写到成本月结表 注意点: 1.本期期初成本从本工单最近一次月结成本表中获取,不一定就是上期 2.在制品是指所有入库数小于工单数的工单
- Type: PROCEDURE
- Deterministic: NO
- SQL data access: CONTAINS SQL
Parameters
| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | tStartDate |
datetime |
| 2 | IN | tEndDate |
datetime |
| 3 | IN | sPeriod |
varchar(100) |
| 4 | IN | sProInParam |
varchar(255) |
| 5 | IN | sMakePerson |
varchar(100) |
| 6 | IN | sBrId |
varchar(100) |
| 7 | IN | sSuId |
varchar(100) |
| 8 | OUT | sReturn |
varchar(1000) |
| 9 | OUT | sCode |
int |
Body
Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURESpSystem_CalcCurrentPeriodCost'._
Narrative
Business context: 成本核算 → 订单成本分析 / 工单本期成本 — period-cost kernel: for every工单 (accordercostanalysis row) inside the requested closing period, recomputes 本期入库金额/数量/直接材料/人工/制造费用 and back-writes them onto the cost month-end table. Header (杨恒林 2021-05-23 封存) flags two subtleties: (1) 期初成本 comes from the work order's most recent prior month-end row, not necessarily the immediately preceding period; (2) 在制品 = orders whose cumulative入库数 still falls short of the order qty.
What it does: Loads the targeted accounting period (resolved from sPeriod/tStartDate/tEndDate against sysaccountperiod). For each accordercostanalysis row in scope, sums the period's 入库金额 from product inflow ledgers, 直接材料 from materials-issue history, 直接人工 from accexpenseentryworkcenterslave, 制造费用 / 部门费用 from accdepart/accexpenseentrydepartmentmaster, applies the carry-over 期初 amount looked up from the most recent prior month-end row of the same工单, and writes the resulting dInMoney/dInQty/dEndMoney/dEndQty/d_*Cost columns back. sProInParam lets the caller scope to a subset of orders; sMakePerson is recorded as the operator.
Invocation: Called by Sp_CalcCost_BtnEventReCalcCost (the 重新计算本期成本 button) and by Sp_Cost_OrderCostAnalysis (the 订单成本分析 entry point). Both upstream callers are dispatched by GenericProcedureCallServiceImpl.doGenericProcedureCall() from the 财务月结 / 成本核算 button toolbars. Install copies: script/标版/30100101/cost/Sp_System_CalcCurrentPeriodCost.sql, Sp_CalcCost_BtnEventReCalcCost.sql, Sp_Cost_OrderCostAnalysis.sql. Dated backup Sp_System_CalcCurrentPeriodCost_1115 retains an older revision of the same proc.