# `Fun_GetMaterialsQtyUnit` (function) - **Type:** FUNCTION - **Returns:** `varchar(100)` - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `sMaterialsGuid` | `varchar(100)` | | 2 | IN | `sMaterialsStyle` | `varchar(100)` | | 3 | IN | `dAuxiliaryQty` | `decimal(18,6)` | | 4 | IN | `iType` | `int` | | 5 | IN | `sBrId` | `varchar(100)` | | 6 | IN | `sSuId` | `varchar(100)` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTION `Fun_GetMaterialsQtyUnit`'`._ ## Narrative **Business context:** Material-quantity / unit conversion core — given an auxiliary qty in sheets (张/PCS), the material spec (size `WxH` or `WxHxThickness` and `EleMaterials` row), returns either the **converted material qty** in the storage unit (`iType=0`) or the **resolved auxiliary unit name** (`iType=1`). Drives every quotation, work-order, inventory, and check procedure that needs to translate between purchase units (吨/Ton/KG/M2/M3/M) and counting units (张/PCS). **What it does:** Reads `EleMaterials.dGramWeight`, `sMaterialsUnit`, `sAuxiliaryUnit`, `bReel`, `dCoefficient`, `bInverse`; parses the `*`-delimited style; branches on (dimension count, reel flag, material unit) and applies the appropriate area×gram-weight formula scaled by the global `CbxMaterialsUnit` system setting (`MM`/`CM`/`INCH`) — `INCH` uses `NetConversionRate` to convert to metric. **Invocation:** Called dynamically by Java service code — `CalculationStdServiceImpl` builds `Select Fun_GetMaterialsQtyUnit(...)` SQL during quotation/work-order standard-cost calculation, and `ReplaceFieldServiceImpl` substitutes the function name as `sFunName` when resolving derived columns. Also called from many `Sp_Calc_s*` / `Sp_Check_s*` / `Sp_Quotation_Calc*` / `Sp_WorkOrder_Calc*` / `SP_Inventory_InOutWarehouse*` procedures (52 stored-routine callers). Sibling: `Fun_GetMaterialsQtyUnitSupple` (board-with-thickness variant).