+ Add new route : cacul de commission
This commit is contained in:
parent
17e39a5982
commit
43fde01352
|
@ -154,4 +154,29 @@ class TransactionController extends Controller
|
||||||
->get(['id', 'montant' ,'numCarte' ,'commission_ag', 'type' ,'date']);
|
->get(['id', 'montant' ,'numCarte' ,'commission_ag', 'type' ,'date']);
|
||||||
return $this->successResponse($transactions);
|
return $this->successResponse($transactions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function calculateCommission(Request $request)
|
||||||
|
{
|
||||||
|
$rules = [
|
||||||
|
'id_wallet' => 'required|integer|min:1',
|
||||||
|
'montant'=> 'required|numeric|min:0|not_in:0',
|
||||||
|
'type' =>'required|in:credit,debit',
|
||||||
|
];
|
||||||
|
|
||||||
|
$this->validate($request,$rules);
|
||||||
|
|
||||||
|
$walletAgent = Wallet::findOrFail($request->get('id_wallet'));
|
||||||
|
$network_agent = NetworksAgent::findOrFail( $walletAgent->id_networkAgent);
|
||||||
|
// Configuratrion du wallet
|
||||||
|
$config = ConfigWallet::where('id_network',$network_agent->network_id)->firstOrFail();
|
||||||
|
$commission = null;
|
||||||
|
if($request->type == 'credit') {
|
||||||
|
$commission = ( $request->montant * $config->taux_com_client_depot / 100 ) + $config->frais_min_banque_depot;
|
||||||
|
}elseif ($request->type == 'debit'){
|
||||||
|
$commission = $request->montant * $config->taux_com_client_retrait / 100 ;
|
||||||
|
}
|
||||||
|
$data['montant_calcule'] = $request->montant - $commission;
|
||||||
|
$data['commission'] = $commission ;
|
||||||
|
return $this->successResponse($data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ class WalletTransaction extends Model
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'montant'=> 'required|numeric|min:1',
|
'montant'=> 'required|numeric|min:0|not_in:0',
|
||||||
'numCarte'=>'required|integer',
|
'numCarte'=>'required|integer',
|
||||||
'cvv'=>'required|integer|min:100|max:9999',
|
'cvv'=>'required|integer|min:100|max:9999',
|
||||||
'expiration_date'=>'required|date_format:m/y|after_or_equal:today',
|
'expiration_date'=>'required|date_format:m/y|after_or_equal:today',
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
$router->group(['prefix' => '/transactions'] , function () use ($router){
|
$router->group(['prefix' => '/transactions'] , function () use ($router){
|
||||||
$router->post('','TransactionController@add');
|
$router->post('','TransactionController@add');
|
||||||
$router->get('{id_wallet}','TransactionController@lastTransactions');
|
$router->get('{id_wallet}','TransactionController@lastTransactions');
|
||||||
|
$router->post('commission','TransactionController@calculateCommission');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Credits routes
|
// Credits routes
|
||||||
|
|
Loading…
Reference in New Issue