Feature: Custom Balance

Add custom balance in customer dashboard

Note: i only test it with Paystack and Razorpay payment gateway and it works as expected

test it very well and report any error or bug
This commit is contained in:
Focuslinkstech
2024-10-29 08:46:03 +01:00
parent df7293e3d0
commit 70d8cd8e01
4 changed files with 366 additions and 183 deletions

View File

@ -3,39 +3,64 @@
<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 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>
{/foreach}
<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>
</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>
</div>
</div>
{/if}
</div>
</div>

View File

@ -2,25 +2,26 @@
<div class="row">
{if file_exists("$PAGES_PATH/Payment_Info.html")}
<div class="col-md-6">
<div class="panel panel-warning panel-hovered">
<div class="panel-heading">{Lang::T('Payment Info')}</div>
<div class="panel-body">{include file="$PAGES_PATH/Payment_Info.html"}</div>
</div>
<div class="col-md-6">
<div class="panel panel-warning panel-hovered">
<div class="panel-heading">{Lang::T('Payment Info')}</div>
<div class="panel-body">{include file="$PAGES_PATH/Payment_Info.html"}</div>
</div>
</div>
{/if}
<div class="{if file_exists("$PAGES_PATH/Payment_Info.html")}col-md-6{else}col-md-6 col-md-offset-3{/if}">
<div class="{if file_exists(" $PAGES_PATH/Payment_Info.html")}col-md-6{else}col-md-6 col-md-offset-3{/if}">
<div class="panel panel-success panel-hovered">
<div class="panel-heading">{Lang::T('Available Payment Gateway')}</div>
<div class="panel-footer">
{if !$custom}
<form method="post" action="{$_url}order/buy/{$route2}/{$route3}">
<div class="form-group row">
<label class="col-md-4">{Lang::T('Payment Gateway')}</label>
<div class="col-md-8">
<select name="gateway" id="gateway" class="form-control">
{foreach $pgs as $pg}
<option value="{$pg}">
{ucwords($pg)}</option>
<option value="{$pg}">
{ucwords($pg)}</option>
{/foreach}
</select>
</div>
@ -28,14 +29,15 @@
</div>
<div class="panel-body">
<center><b>{Lang::T('Package Details')}</b></center>
<ul class="list-group list-group-unbordered">
<li class="list-group-item">
<b>{Lang::T('Plan Name')}</b> <span class="pull-right">{$plan['name_plan']}</span>
</li>
{if $plan['is_radius'] or $plan['routers']}
<li class="list-group-item">
<b>{Lang::T('Location')}</b> <span class="pull-right">{if
$plan['is_radius']}Radius{else}{$plan['routers']}
<li class="list-group-item">
<b>{Lang::T('Location')}</b> <span class="pull-right">{if
$plan['is_radius']}Radius{else}{$plan['routers']}
{/if}</span>
</li>
{/if}
@ -47,69 +49,70 @@
</li>
<li class="list-group-item">
<b>{Lang::T('Plan Price')}</b> <span class="pull-right">
{if !empty($plan['price_old'])}
<sup style="text-decoration: line-through; color: red">{Lang::moneyFormat($plan['price_old'])}</sup>
{/if}
{Lang::moneyFormat($plan['price'])}
{if !empty($plan['price_old'])}
<sup
style="text-decoration: line-through; color: red">{Lang::moneyFormat($plan['price_old'])}</sup>
{/if}
{Lang::moneyFormat($plan['price'])}
</span>
</li>
{if $plan['validity']}
<li class="list-group-item">
<b>{Lang::T('Validity Periode')}</b> <span class="pull-right">{$plan['validity']}
{$plan['validity_unit']}</span>
</li>
<li class="list-group-item">
<b>{Lang::T('Validity Periode')}</b> <span class="pull-right">{$plan['validity']}
{$plan['validity_unit']}</span>
</li>
{/if}
</ul>
<center><b>{Lang::T('Summary')}</b></center>
<ul class="list-group list-group-unbordered">
{if $tax}
<li class="list-group-item">
<b>{Lang::T('Tax')}</b> <span class="pull-right">{Lang::moneyFormat($tax)}</span>
</li>
{if $add_cost!=0}
{foreach $bills as $k => $v}
<li class="list-group-item">
<b>{$k}</b> <span class="pull-right">{Lang::moneyFormat($v)}</span>
</li>
{/foreach}
<li class="list-group-item">
<b>{Lang::T('Additional Cost')}</b> <span
class="pull-right">{Lang::moneyFormat($add_cost)}</span>
</li>
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <small>({Lang::T('Plan Price')}
+{Lang::T('Additional Cost')})</small><span class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price']+$add_cost+$tax)}</span>
</li>
{else}
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <small>({Lang::T('Plan Price')} + {Lang::T('Tax')})</small><span
class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price']+$tax)}</span>
</li>
{/if}
<li class="list-group-item">
<b>{Lang::T('Tax')}</b> <span class="pull-right">{Lang::moneyFormat($tax)}</span>
</li>
{if $add_cost!=0}
{foreach $bills as $k => $v}
<li class="list-group-item">
<b>{$k}</b> <span class="pull-right">{Lang::moneyFormat($v)}</span>
</li>
{/foreach}
<li class="list-group-item">
<b>{Lang::T('Additional Cost')}</b> <span
class="pull-right">{Lang::moneyFormat($add_cost)}</span>
</li>
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <small>({Lang::T('Plan Price')}
+{Lang::T('Additional Cost')})</small><span class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price']+$add_cost+$tax)}</span>
</li>
{else}
{if $add_cost!=0}
{foreach $bills as $k => $v}
<li class="list-group-item">
<b>{$k}</b> <span class="pull-right">{Lang::moneyFormat($v)}</span>
</li>
{/foreach}
<li class="list-group-item">
<b>{Lang::T('Additional Cost')}</b> <span
class="pull-right">{Lang::moneyFormat($add_cost)}</span>
</li>
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <small>({Lang::T('Plan Price')}
+{Lang::T('Additional Cost')})</small><span class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price']+$add_cost)}</span>
</li>
{else}
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <span class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price'])}</span>
</li>
{/if}
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <small>({Lang::T('Plan Price')} + {Lang::T('Tax')})</small><span
class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price']+$tax)}</span>
</li>
{/if}
{else}
{if $add_cost!=0}
{foreach $bills as $k => $v}
<li class="list-group-item">
<b>{$k}</b> <span class="pull-right">{Lang::moneyFormat($v)}</span>
</li>
{/foreach}
<li class="list-group-item">
<b>{Lang::T('Additional Cost')}</b> <span
class="pull-right">{Lang::moneyFormat($add_cost)}</span>
</li>
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <small>({Lang::T('Plan Price')}
+{Lang::T('Additional Cost')})</small><span class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price']+$add_cost)}</span>
</li>
{else}
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <span class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($plan['price'])}</span>
</li>
{/if}
{/if}
</ul>
<center>
@ -117,6 +120,40 @@
<a class="btn btn-link" href="{$_url}home">{Lang::T('Cancel')}</a>
</center>
</form>
{else}
<br>
<form method="post" action="{$_url}order/buy/{$route2}/{$route3}">
<div class="form-group row">
<label class="col-md-4">{Lang::T('Payment Gateway')}</label>
<div class="col-md-8">
<select name="gateway" id="gateway" class="form-control">
{foreach $pgs as $pg}
<option value="{$pg}">
{ucwords($pg)}</option>
{/foreach}
</select>
</div>
</div>
<ul class="list-group list-group-unbordered">
<input type="hidden" name="custom" value="1">
<input type="hidden" name="amount" value="{$amount}">
<li class="list-group-item">
<b>{Lang::T('Custom Balance')}</b> <span
class="pull-right">{Lang::moneyFormat($amount)}</span>
</li>
<br> <br> <br>
<li class="list-group-item">
<b>{Lang::T('Total')}</b> <span class="pull-right"
style="font-size: large; font-weight:bolder; font-family: 'Courier New', Courier, monospace; ">{Lang::moneyFormat($amount)}</span>
</li>
</ul>
<center>
<button type="submit" class="btn btn-primary">{Lang::T('Pay Now')}</button><br>
<a class="btn btn-link" href="{$_url}home">{Lang::T('Cancel')}</a>
</center>
</form>
{/if}
<br>
</div>
</div>
</div>