Sp_AdjustMoney_BtnRepair (procedure)
费用报销单调整金额
- Type: PROCEDURE
- Deterministic: NO
- SQL data access: CONTAINS SQL
Parameters
| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | sProInParam |
varchar(10000) |
| 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 PROCEDURESpAdjustMoney_BtnRepair'._
Narrative
Business context: 报销申请 (expense-reimbursement) module — batch-edit button proc for the general expense reimbursement form. Header says 费用报销单调整金额. When the user multi-selects reimbursement detail rows and clicks the BtnBsOperation.BtnRepair dialog, the proc was expected to apply a single dAdjustMoney value (with an sAdjustMemo justification) to every selected expensereimbursementslave row, recomputing dMaterialsMoney = dAccountMoney + dAdjustMoney. Follows the canonical _BtnRepair template signature (sProInParam JSON + sMakePerson/sBrId/sSuId IN, sCode/sReturn OUT).
What it does: Parses sProInParam JSON; reads $.changeValue.dAdjustMoney and $.changeValue.sAdjustMemo; validates sAdjustMemo is non-empty (returns Fun_Sis_GetConstNew('sAdjReasonCantEmpty'), sCode=-1 otherwise); iterates $.params[*].value[*].sId and runs UPDATE expensereimbursementslave SET dAdjustMoney=…, dMaterialsMoney = dAccountMoney + dAdjustMoney, sAdjustMemo=… WHERE sId=… for each selected id.
Invocation: Status: appears orphaned. No caller found in any channel (form-master sSqlStr/sConfigSqlStr, gdsmodule hooks, gdsconfigformslave.sButtonParam / sButtonEnabled, other routines, xly-src grep) — candidate for maintainer audit. _BtnRepair procs are normally dispatched dynamically via sButtonParam on a button row, but no row in gdsconfigformslave currently references this proc name; either the button was removed during a refactor or the form was decommissioned.
Caveat: validation sets sCode=-1 but does not LEAVE top, so the empty-memo branch still continues and applies the update regardless — bug worth flagging.