# `Sp_Insert_fixedassetsprovision` (procedure) - **Type:** PROCEDURE - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `sProInParam` | `longtext` | | 2 | IN | `sMakePerson` | `varchar(255)` | | 3 | IN | `sFormId` | `varchar(50)` | | 4 | IN | `sBrId` | `varchar(50)` | | 5 | IN | `sSuId` | `varchar(50)` | | 6 | OUT | `sReturn` | `text` | | 7 | OUT | `sCode` | `int` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `Sp_Insert_fixedassetsprovision`'`._ ## Narrative **Business context:** 固定资产 / 折旧计提 — generates the period's 固定资产折旧计提 (fixed-asset depreciation provision) rows by snapshotting equipment masters into `elefixedassetsprovision`. The target period is derived from the latest 固定资产→凭证 voucher in `udfvouchermaster`, so it always lines up with the next month after the most-recent depreciation voucher. **What it does:** Parses `$.params` from `sProInParam` (count is read but currently ignored — the commented-out early-return shows an intended "no rows selected" guard). Reads `MAX(tVoucherDate)+1 month` from `udfvouchermaster WHERE sType='固定资产->凭证'` into `p_sCostPeriod`. `DELETE FROM elefixedassetsprovision WHERE sCostPeriod=p_sCostPeriod` to keep it idempotent, then `INSERT INTO elefixedassetsprovision` copying the machine master columns from `elemachine` / `elefixedassets` (machine no/name/style/type/property, work-type/calendar, APS rules, all `sMReserve*`/`dMReserve*`/`iMReserve*` reserves), stamped with the new period. **Invocation:** Status: appears orphaned at the dispatcher level. The signature matches the `GenericProcedureCallServiceImpl.doGenericProcedureCall()` button-event contract (`sProInParam` + `sFormId` + OUT `sReturn`/`sCode`), suggesting it's meant to be wired to a 折旧计提 button on the 固定资产 module, but no form-master/gdsmodule/workflow binding currently references it and no xly-src match exists. Candidate for maintainer audit before relying on it.