From 93583afb6568c2d8db112b9adf9f2a61d61c4a6b Mon Sep 17 00:00:00 2001
From: iBNu Maksum <me@ibnux.net>
Date: Thu, 31 Oct 2024 14:01:51 +0700
Subject: [PATCH] Allow Customer buy balance with any amount settings

---
 system/lan/indonesia.json       |   4 +-
 ui/ui/app-miscellaneous.tpl     |  62 +++++++++++-------
 ui/ui/customer/orderBalance.tpl | 108 ++++++++++++++++----------------
 3 files changed, 98 insertions(+), 76 deletions(-)

diff --git a/system/lan/indonesia.json b/system/lan/indonesia.json
index 9892be97..f8029c50 100644
--- a/system/lan/indonesia.json
+++ b/system/lan/indonesia.json
@@ -808,5 +808,7 @@
     "Created_on": "Dibuat pada",
     "Expires_on": "Kedaluwarsa pada",
     "Package_Details": "Rincian Paket",
-    "Summary": "Ringkasan"
+    "Summary": "Ringkasan",
+    "Allow_Balance_custom_amount": "Izinkan Saldo jumlah khusus",
+    "Allow_Customer_buy_balance_with_any_amount": "Izinkan Pelanggan membeli saldo dengan jumlah berapa pun"
 }
\ No newline at end of file
diff --git a/ui/ui/app-miscellaneous.tpl b/ui/ui/app-miscellaneous.tpl
index 66cf88fd..df680cb9 100644
--- a/ui/ui/app-miscellaneous.tpl
+++ b/ui/ui/app-miscellaneous.tpl
@@ -14,8 +14,8 @@
                 </div>
                     <div class="panel-body">
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Enable Session Timeout')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Enable Session Timeout')}</label>
+                            <div class="col-md-5">
                                 <label class="switch">
                                     <input type="checkbox" id="enable_session_timeout" value="1"
                                         name="enable_session_timeout" {if $_c['enable_session_timeout']==1}checked{/if}>
@@ -26,8 +26,8 @@
                                 {Lang::T('Logout Admin if not Available/Online a period of time')}</p>
                         </div>
                         <div class="form-group" id="timeout_duration_input" style="display: none;">
-                            <label class="col-md-2 control-label">{Lang::T('Timeout Duration')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Timeout Duration')}</label>
+                            <div class="col-md-5">
                                 <input type="number" value="{$_c['session_timeout_duration']}" class="form-control"
                                     name="session_timeout_duration" id="session_timeout_duration"
                                     placeholder="{Lang::T('Enter the session timeout duration (minutes)')}" min="1">
@@ -37,8 +37,8 @@
                             </p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Single session Admin')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Single session Admin')}</label>
+                            <div class="col-md-5">
                                 <select name="single_session" id="single_session" class="form-control">
                                     <option value="no">
                                         {Lang::T('No')}</option>
@@ -52,8 +52,8 @@
                             </p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('New Version Notification')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('New Version Notification')}</label>
+                            <div class="col-md-5">
                                 <select name="new_version_notify" id="new_version_notify" class="form-control">
                                     <option value="enable" {if $_c['new_version_notify']=='enable' }selected="selected"
                                         {/if}>{Lang::T('Enabled')}
@@ -68,8 +68,8 @@
                             </p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Router Check')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Router Check')}</label>
+                            <div class="col-md-5">
                                 <select name="router_check" id="router_check" class="form-control">
                                     <option value="0" {if $_c['router_check']=='0' }selected="selected" {/if}>
                                         {Lang::T('Disabled')}
@@ -85,8 +85,8 @@
                             </p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Phone OTP Required')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Phone OTP Required')}</label>
+                            <div class="col-md-5">
                                 <select name="allow_phone_otp" id="allow_phone_otp" class="form-control">
                                     <option value="no" {if $_c['allow_phone_otp']=='no' }selected="selected" {/if}>
                                         {Lang::T('No')}</option>
@@ -100,8 +100,8 @@
                             </p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('OTP Method')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('OTP Method')}</label>
+                            <div class="col-md-5">
                                 <select name="phone_otp_type" id="phone_otp_type" class="form-control">
                                     <option value="sms" {if $_c['phone_otp_type']=='sms' }selected="selected" {/if}>
                                         {Lang::T('By SMS')}
@@ -116,8 +116,8 @@
                             {Lang::T('For Registration and Update Phone Number')}</p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Email OTP Required')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Email OTP Required')}</label>
+                            <div class="col-md-5">
                                 <select name="allow_email_otp" id="allow_email_otp" class="form-control">
                                     <option value="no" {if $_c['allow_email_otp']=='no' }selected="selected" {/if}>
                                         {Lang::T('No')}</option>
@@ -131,8 +131,8 @@
                             </p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Show Bandwidth Plan')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Show Bandwidth Plan')}</label>
+                            <div class="col-md-5">
                                 <select name="show_bandwidth_plan" id="show_bandwidth_plan" class="form-control">
                                     <option value="no" {if $_c['show_bandwidth_plan']=='no' }selected="selected" {/if}>
                                         {Lang::T('No')}</option>
@@ -145,8 +145,8 @@
                                 {Lang::T(' for Customer')}</p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Hotspot Auth Method')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Hotspot Auth Method')}</label>
+                            <div class="col-md-5">
                                 <select name="hs_auth_method" id="auth_method" class="form-control">
                                     <option value="api" {if $_c['hs_auth_method']=='api' }selected="selected" {/if}>
                                         {Lang::T('Api')}
@@ -164,8 +164,8 @@
                             </p>
                         </div>
                         <div class="form-group">
-                            <label class="col-md-2 control-label">{Lang::T('Check if Customer Online')}</label>
-                            <div class="col-md-6">
+                            <label class="col-md-3 control-label">{Lang::T('Check if Customer Online')}</label>
+                            <div class="col-md-5">
                                 <select name="check_customer_online" id="check_customer_online" class="form-control">
                                     <option value="no">
                                         {Lang::T('No')}
@@ -180,6 +180,24 @@
                                 {Lang::T('This will show is Customer currently is online or not')}
                             </p>
                         </div>
+                        <div class="form-group has-error">
+                            <label class="col-md-3 control-label">{Lang::T('Allow Balance custom amount')}</label>
+                            <div class="col-md-5">
+                                <select name="allow_balance_custom" id="allow_balance_custom" class="form-control">
+                                    <option value="no">
+                                        {Lang::T('No')}
+                                    </option>
+                                    <option value="yes" {if $_c['allow_balance_custom']=='yes' }selected="selected"
+                                        {/if}>
+                                        {Lang::T('Yes')}
+                                    </option>
+                                </select>
+                            </div>
+                            <p class="help-block col-md-4">
+                                {Lang::T('Allow Customer buy balance with any amount')}
+                                <br>*Maybe still have bug
+                            </p>
+                        </div>
                     </div>
                 </div>
 
diff --git a/ui/ui/customer/orderBalance.tpl b/ui/ui/customer/orderBalance.tpl
index 9769a6e2..4abfddad 100644
--- a/ui/ui/customer/orderBalance.tpl
+++ b/ui/ui/customer/orderBalance.tpl
@@ -3,64 +3,66 @@
 <div class="row">
     <div class="col-sm-12">
         {if $_c['enable_balance'] == 'yes'}
-        <div class="box box-solid box-success bg-gray-light">
-            <div class="box-header">{Lang::T('Buy Balance Plans')}</div>
-            <div class="box-body row">
-                {foreach $plans_balance as $plan}
-                <div class="col col-md-4">
-                    <div class="box box-solid box-default">
-                        <div class="box-header text-bold">{$plan['name_plan']}</div>
-                        <div class="table-responsive">
-                            <div style="margin-left: 5px; margin-right: 5px;">
-                                <table class="table table-bordered table-striped">
-                                    <tbody>
-                                        <tr>
-                                            <td>{Lang::T('Price')}</td>
-                                            <td>{Lang::moneyFormat($plan['price'])}
-                                                {if !empty($plan['price_old'])}
-                                                <sup
-                                                    style="text-decoration: line-through; color: red">{Lang::moneyFormat($plan['price_old'])}</sup>
-                                                {/if}
-                                            </td>
-                                        </tr>
-                                    </tbody>
-                                </table>
-                            </div>
-                        </div>
-                        <div class="box-body">
-                            <a href="{$_url}order/gateway/0/{$plan['id']}"
-                                onclick="return confirm('{Lang::T('Buy Balance')}?')"
-                                class="btn btn-sm btn-block btn-primary">{Lang::T('Buy')}</a>
-                        </div>
-                    </div>
-                </div>
-                {/foreach}
-                <div class="col col-md-4">
-                    <form action="{$_url}order/gateway/0/0" method="post">
-                        <input type="hidden" name="custom" value="1">
-                        <div class="box box-solid box-default">
-                            <div class="box-header text-bold">{Lang::T('Custom Balance')}</div>
-                            <div class="table-responsive">
-                                <div style="margin-left: 5px; margin-right: 5px;">
-                                    <table class="table table-bordered table-striped">
-                                        <tbody>
-                                            <tr>
-                                                <input type="number" name="amount" id="amount" class="form-control"
-                                                    placeholder="{Lang::T('Input Desired Amount')}">
-                                            </tr>
-                                        </tbody>
-                                    </table>
+            <div class="box box-solid box-success bg-gray-light">
+                <div class="box-header">{Lang::T('Buy Balance Plans')}</div>
+                <div class="box-body row">
+                    {foreach $plans_balance as $plan}
+                        <div class="col col-md-4">
+                            <div class="box box-solid box-default">
+                                <div class="box-header text-bold">{$plan['name_plan']}</div>
+                                <div class="table-responsive">
+                                    <div style="margin-left: 5px; margin-right: 5px;">
+                                        <table class="table table-bordered table-striped">
+                                            <tbody>
+                                                <tr>
+                                                    <td>{Lang::T('Price')}</td>
+                                                    <td>{Lang::moneyFormat($plan['price'])}
+                                                        {if !empty($plan['price_old'])}
+                                                            <sup
+                                                                style="text-decoration: line-through; color: red">{Lang::moneyFormat($plan['price_old'])}</sup>
+                                                        {/if}
+                                                    </td>
+                                                </tr>
+                                            </tbody>
+                                        </table>
+                                    </div>
+                                </div>
+                                <div class="box-body">
+                                    <a href="{$_url}order/gateway/0/{$plan['id']}"
+                                        onclick="return confirm('{Lang::T('Buy Balance')}?')"
+                                        class="btn btn-sm btn-block btn-primary">{Lang::T('Buy')}</a>
                                 </div>
                             </div>
-                            <div class="box-body">
-                                <button onclick="return confirm('{Lang::T('Buy Balance')}?')"
-                                    class="btn btn-sm btn-block btn-primary">{Lang::T('Buy')}</button>
-                            </div>
                         </div>
-                    </form>
+                    {/foreach}
+                    {if $_c['allow_balance_custom'] eq 'yes'}
+                        <div class="col col-md-4">
+                            <form action="{$_url}order/gateway/0/0" method="post">
+                                <input type="hidden" name="custom" value="1">
+                                <div class="box box-solid box-default">
+                                    <div class="box-header text-bold">{Lang::T('Custom Balance')}</div>
+                                    <div class="table-responsive">
+                                        <div style="margin-left: 5px; margin-right: 5px;">
+                                            <table class="table table-bordered table-striped">
+                                                <tbody>
+                                                    <tr>
+                                                        <input type="number" name="amount" id="amount" class="form-control"
+                                                            placeholder="{Lang::T('Input Desired Amount')}">
+                                                    </tr>
+                                                </tbody>
+                                            </table>
+                                        </div>
+                                    </div>
+                                    <div class="box-body">
+                                        <button onclick="return confirm('{Lang::T('Buy Balance')}?')"
+                                            class="btn btn-sm btn-block btn-primary">{Lang::T('Buy')}</button>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    {/if}
                 </div>
             </div>
-        </div>
         {/if}
     </div>
 </div>