Does anyone know a way to read the currency exchange rates right in laravel?
We develop web exchange currency so I have a problem when I put right rates but get a different results.
Example: Exchange between USD TO EGP : 1 USD = 15.70 EGP So i need to Put the Currency USD TO get 15.70 EGP but if i put this will get Rates - 1 USD = 4 EGP not 15.70
Follow the pictures to understand
1-
2-
3-
4-
So my question is:
Does anybody know a way to solve these rates?
Home Blade
<form class="exchange-form" method="POST" action="{{ route('user.exchange') }}">
@csrf
<div class="form-group">
<label for="send">@lang('You Send')</label>
<input type="text" name="send_amount" id="send_val" placeholder="@lang('Send')" required
onkeyup="this.value = this.value.replace (/^\.|[^\d\.]/g, '')">
<select class="select-bar" name="send" id="send">
<option value="">@lang('Select Currency')</option>
@foreach ($currencys_sell as $currency)
<option value="{{ $currency->id }}"
data-min_max="{{ filterCollection($currency, 'rate', 'sell_at', 'buy_at', 'fixed_charge', 'percent_charge', 'reserve', 'min_exchange', 'max_exchange', 'cur_sym', 'payment_type_sell') }}">
{{ $currency->name }} {{$currency->cur_sym}}
</option>
@endforeach
</select>
<div class="exchange-limit exchange-buy d-none">
<div class="item">
<span class="subtitle">@lang('Min')</span>
<span class="amount min-amount"></span>
</div>
<div class="item">
<span class="subtitle">@lang('Max')</span>
<span class="amount max-amount"></span>
</div>
</div>
</div>
<div class="form-group receiveData">
<label for="receive">@lang('You Get')</label>
<input type="text" name="receive_amount" id="receive_val" min="0" placeholder="@lang('Receive')"
readonly>
<select class="select-bar" name="receive" id="receive">
<option value="" class="wrap">@lang('Select Currency')</option>
@foreach ($currencys_buy as $currency)
<option value="{{ $currency->id }}"
data-min_max="{{ filterCollection($currency, 'cur_sym', 'rate', 'sell_at', 'buy_at', 'fixed_charge', 'percent_charge', 'reserve', 'min_exchange', 'max_exchange', 'payment_type_sell') }}">
{{ $currency->name }} {{$currency->cur_sym}}
</option>
@endforeach
</select>
<div class="exchange-limit reserve-section d-none">
<div class="item reserve">
<span class="subtitle">@lang('Reserve')</span>
<span class="amount"></span>
</div>
<div class="item reserve">
<span class="subtitle">@lang('Rate')</span>
<span class="amount conversion"></span>
</div>
</div>
</div>
Home Controller
public function exchange(Request $request)
{
session()->forget('Track');
$receive = Currency::find($request->receive);
$send = Currency::find($request->send);
if ($receive == null) {
$notify[] = ['error', 'Select any method that we send u the money'];
return back()->withNotify($notify);
}
if ($send == null) {
$notify[] = ['error', 'Select any method that we get money'];
return back()->withNotify($notify);
}
$field = json_decode($receive->user_input);
$validate_array = [
'send' => 'required|numeric',
'send_amount' => 'required|numeric|gt:0',
'receive' => 'required|numeric',
'receive_amount' => 'required|numeric|gt:0',
];
foreach ($field as $value) {
if (strtolower($value->type) === 'email') {
$validate_array[$value->field_name] = "sometimes|{$value->validation}|email";
continue;
}
$validate_array[$value->field_name] = "sometimes|{$value->validation}";
}
$this->validate($request, $validate_array);
// new Calculation for covert amount
$percentCharge = ($request->send_amount * $send->percent_charge) / 100;
$totalCharge = $percentCharge + $send->fixed_charge;
$totalSendAmount = $request->send_amount - $totalCharge;
$sendAmountConvertInBaseCurrency = $totalSendAmount * $send->buy_at;
$userReceiveAmount = $sendAmountConvertInBaseCurrency / $receive->sell_at;