+ Add new route : cacul de commission

This commit is contained in:
DJERY-TOM 2020-05-02 15:43:28 +01:00
parent 17e39a5982
commit 43fde01352
3 changed files with 27 additions and 1 deletions

View File

@ -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);
}
} }

View File

@ -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',

View File

@ -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