# `Sp_PurchasePriceChart` (procedure) - **Type:** PROCEDURE - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `tStartDate` | `datetime` | | 2 | IN | `tEndDate` | `datetime` | | 3 | IN | `sLoginId` | `varchar(100)` | | 4 | IN | `sBrId` | `varchar(100)` | | 5 | IN | `sSuId` | `varchar(100)` | | 6 | OUT | `sReturn` | `varchar(1000)` | | 7 | OUT | `sCode` | `int` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `Sp_PurchasePriceChart`'`._ ## Narrative **Business context:** 采购管理 → 采购分析 — paper-material price trend chart procedure. Same intent as `Sp_PurchasePriceChar` but written before the JSON envelope was wired up: builds the wide pivot table `DT` for chart consumption without returning JSON in `sReturn`. **What it does:** Builds temp `T` from `viw_purpurchaseorder` joined to `elematerials`/`sismaterialsclassify` filtered to `bCheck=1 AND sMaterialsType='paper'` in the date window. Then opens a cursor over `DT` — but `DT` is never populated from `T` (the `CREATE TEMPORARY TABLE DT Select Distinct …` line present in the sibling `Sp_PurchasePriceChar` is missing here), so the cursor reads from an undeclared/empty `DT`. The nested loop dynamically ALTERs `DT` with per-date columns `t MMDD` and writes per-material prices, but with no rows the work is wasted. `sReturn` is left empty. **Invocation:** Status: appears orphaned. No caller found in any channel (form-master, gdsmodule hooks, other routines, xly-src grep across all extensions) — candidate for maintainer audit. The missing `DT` population makes this look like a broken/half-rewritten alternative to `Sp_PurchasePriceChar`; flag for deletion or repair.