#include "..\script_component.hpp"

/*
 * Function: forge_client_admin_fnc_handleTransfer
 * Author: IDSolutions
 *
 * [Description]
 * Handles fund transfers through the admin interface.
 * This function retrieves the selected player's UID and amount
 * from the admin dialog, then sends it to the server-side admin store.
 * Supports multiple transfer types: advance (to single player),
 * deduct (from single player), advanceAll (to all players),
 * and payday (distribute based on paygrade).
 *
 * Arguments:
 * 0: Condition <STRING> - The type of transfer to perform ("advance", "deduct", "advanceAll", "payday")
 *
 * Return Value:
 * None
 *
 * Examples:
 * ["advance"] call forge_client_admin_fnc_handleTransfer;
 * ["payday"] call forge_client_admin_fnc_handleTransfer;
 *
 * Public: No - Called from admin dialog controls
 */

params [["_condition", "", [""]]];

private _dialog = findDisplay 202303;
private _list = _dialog displayCtrl 2023001;
private _index = lbCurSel _list;
private _uid = _list lbData _index;
private _amount = round (parseNumber (ctrlText 2023005));

if ({_condition in ["advance", "deduct"]} && ((isNil "_uid") || { _uid isEqualTo "" })) exitWith { hint "You did not select a player!"; };

["forge_server_admin_handleEvents", ["ADMIN::TRANSFER", [_condition, _amount, _uid]]] call CFUNC(serverEvent);

ctrlSetText [2023005, ""];