# `Fun_GetAuxiliaryQtyUnit` (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_GetAuxiliaryQtyUnit`'`._ ## Narrative **Business context:** Inverse of `Fun_GetMaterialsQtyUnit` — given an **auxiliary** quantity (the purchasing/storage unit, e.g. 张/PCS/m) plus a material spec, returns either the equivalent **stocking-unit** quantity (when `iType=0`) or the auxiliary-unit name (when `iType=1`). Used during reverse formula calculation: `sFormulaIdType = sReComputeId`. **What it does:** reads the material's `EleMaterials` row (`sMaterialsUnit`, `sAuxiliaryUnit`, `dGramWeight`, `sConversionUnit`, `bReel`, `dCoefficient`, `bInverse`) plus tenant system settings `CbxMaterialsUnit` (MM/CM/INCH), `NetSquareM` (m² rounding decimals), `NetConversionRate` (inch conversion). Branches by spec format (`W*L`, `W*L*H`, plain numeric, blank) × unit family (Ton/吨/噸, KG, M2, M3, m, reel) × MM/CM/INCH dimension base. Each branch derives `dMaterialsQty` from `dAuxiliaryQty` using gram-weight or sheet-area math, picks a default `sAuxiliaryUnit` (`张`/`張`/`PCS`/`m`), and finally rounds: 张/PCS → `CEILING`; m → `ROUND(qty, NetSquareM)` (or CEILING if NetSquareM=0). Returns the quantity (iType=0) or unit string (iType=1). **Invocation:** invoked by `ReplaceFieldServiceImpl.getReplaceFieldReslut()` when the formula type is `sReComputeId` — the Java service synthesizes `SELECT Fun_GetAuxiliaryQtyUnit(...)` from material + slave-row context and runs it through `businessBaseDao.getByMap`. Also referenced by the bill-check family (`Sp_Check_sCmt`, `sLok`, `sMpa`, `sOis`, `sOpc`, `sOpi`, `sOpkg`, `sOpn`, `sOpn1`, `sOpp`, `sPca`, `sPca1`, `sPis`, `sPkg`, `sPmd`, `sPod`, `sPpa`) and inventory in/out procs (`SP_Inventory_InOutWarehouse`, `_All`, `_220709`, `_221111`).