# `Sp_financialClosing_BtnEventEstimation` (procedure)


- **Type:** PROCEDURE
- **Deterministic:** NO
- **SQL data access:** CONTAINS SQL

## Parameters

| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | `sProInParam` | `longtext` |
| 2 | IN | `sMakePerson` | `varchar(100)` |
| 3 | IN | `sBrId` | `varchar(100)` |
| 4 | IN | `sSuId` | `varchar(100)` |
| 5 | OUT | `sReturn` | `varchar(1000)` |
| 6 | OUT | `sCode` | `int` |

## Body

_Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `Sp_financialClosing_BtnEventEstimation`'`._

## Narrative

**Business context:** 系统设置 → 系统参数 → 财务结账 — generates 本期材料暂估入库 (this-period material estimate-instore) rows during month-end close. Combines the prior-period estimate carry-over, this-period 采购入库, 寄售仓 (consignment) movement adjustments, line-side warehouse transfers, and this-period purchase invoices into the `accmaterialsstore` ledger under `sFormId='192116810113315220315711060'`.

**What it does:** Parses `sCostPeriod` from `sProInParam`. Reads `sysaccountperiod.bCalMaterials` and refuses (`sBtnDepartFinished`) if the period is already finalised. Refuses if any prior-period estimate (`sFormId='16655716110009059536847895097000'`) or current-period purchase invoice (`sFormId='192116810113315220489243410'`) is not yet `bConfirm=1`. Deletes the existing estimate rows for the period, then rebuilds them through temp tables `Sp_instore` and `Sp_instoreSum` populated from `viw_purpurchasecheck`, `viw_purpurchaseinstore`, `accmaterialsstore` (prior-period balance + this-period invoice), and `purpurchasecheckingslave`. Resolves `dMaterialsPrice` from prior-period estimate, then from `viw_purpurchaseorder.dMaterialsNoTaxPrice`, then from `purpurchasecheckingslave`. Skips rows whose `sBillNo` contains `GXKK`. Finally inserts the summed estimate rows into `accmaterialsstore` and back-fills `sSupplyId, tCreateDate` from the source documents.

**Invocation:** Dispatched dynamically by `GenericProcedureCallServiceImpl.doGenericProcedureCall()` from the 财务结帐 form's 本期暂估 toolbar button. Other DB callers: `Sp_System_MaterialsAllSure` (the unified 一键确认 driver) chains it. xly-src ships `script/标版/30100101/cost/Sp_financialClosing_BtnEventEstimation.sql`.
