diff --git a/app/Http/Controllers/TransactionController.php b/app/Http/Controllers/TransactionController.php index 51fb532..95b8b1d 100644 --- a/app/Http/Controllers/TransactionController.php +++ b/app/Http/Controllers/TransactionController.php @@ -154,4 +154,29 @@ class TransactionController extends Controller ->get(['id', 'montant' ,'numCarte' ,'commission_ag', 'type' ,'date']); 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); + } } diff --git a/app/Models/WalletTransaction.php b/app/Models/WalletTransaction.php index f0c7f2a..4f45d06 100644 --- a/app/Models/WalletTransaction.php +++ b/app/Models/WalletTransaction.php @@ -101,7 +101,7 @@ class WalletTransaction extends Model public function rules() { return [ - 'montant'=> 'required|numeric|min:1', + 'montant'=> 'required|numeric|min:0|not_in:0', 'numCarte'=>'required|integer', 'cvv'=>'required|integer|min:100|max:9999', 'expiration_date'=>'required|date_format:m/y|after_or_equal:today', diff --git a/routes/web.php b/routes/web.php index ad73916..d703050 100644 --- a/routes/web.php +++ b/routes/web.php @@ -19,6 +19,7 @@ $router->group(['prefix' => '/transactions'] , function () use ($router){ $router->post('','TransactionController@add'); $router->get('{id_wallet}','TransactionController@lastTransactions'); + $router->post('commission','TransactionController@calculateCommission'); }); // Credits routes