diff --git a/app/Http/Controllers/TransactionController.php b/app/Http/Controllers/TransactionController.php index ef46221..4776036 100644 --- a/app/Http/Controllers/TransactionController.php +++ b/app/Http/Controllers/TransactionController.php @@ -56,7 +56,8 @@ class TransactionController extends Controller { $frais = $transaction->montant * $config->taux_com_client_depot / 100 ; - if($walletAgent->balance_princ >= ($transaction->montant + $frais + $config->frais_min_banque_depot)){ + // Verification faites au niveau du frontend +// if($walletAgent->balance_princ >= ($transaction->montant + $frais + $config->frais_min_banque_depot)){ $response = $client->post('https://ilink-app.com/mobilebackendtest/interacted/MembersAction.php'); $code = $response->getStatusCode(); @@ -68,6 +69,7 @@ class TransactionController extends Controller //dépôt client) et créditer sa carte visa de cette valeur $banqueCommission = floatval($config->frais_min_banque_depot * $config->part_banque_depot / 100); + $transaction->commission_banque = $banqueCommission; // 2---> Emmètre via API sécurisé SSL une requête de débit de notre //compte marchand du (Part de la banque partenaire en % //pour le dépôtqui s’applique sur les frais minimum) et créditer @@ -85,9 +87,9 @@ class TransactionController extends Controller $walletHyperviseur->balance_com += $hyperviseurCommission; } - }else{ - return $this->errorResponse('Solde agent inferieur au montant de depot + frais + frais minimun de depot de la banque', Response::HTTP_BAD_REQUEST); - } +// }else{ +// return $this->errorResponse('Solde agent inferieur au montant de depot + frais + frais minimun de depot de la banque', Response::HTTP_BAD_REQUEST); +// } // Procedure de retrait d'argent }elseif ($transaction->type == 'debit') @@ -104,6 +106,7 @@ class TransactionController extends Controller //sa carte et créditer notre compte marchand $banqueCommission = floatval($transaction->montant * $config->part_banque_retrait / 100); + $transaction->commission_banque = $banqueCommission; // 2---> Emmètre via API sécurisé SSL une requête de débit de notre //compte marchand du (montant de la transaction multiplié //par la Part de la banque partenaire en % ) et créditer le @@ -131,6 +134,6 @@ class TransactionController extends Controller $walletSuperviseur->save(); $walletHyperviseur->save(); $transaction->save(); - return $this->successResponse($transaction); + return $this->successResponse($walletAgent); } } diff --git a/app/Http/Controllers/WalletController.php b/app/Http/Controllers/WalletController.php index f0e7eb4..b0fe7a6 100644 --- a/app/Http/Controllers/WalletController.php +++ b/app/Http/Controllers/WalletController.php @@ -25,17 +25,30 @@ class WalletController extends Controller public function activated($id_agent) { - $networks = DB::select('SELECT na.network_id ,ne.name as network , countries.name AS country,ne.country_id , wallets.* FROM agents ag - INNER JOIN networks_agents na ON ag.id=na.agent_id INNER JOIN codeGenerer cg ON cg.id=na.codeGenerer_id INNER JOIN networks ne ON ne.id=na.network_id INNER JOIN countries ON ne.country_id=countries.id LEFT JOIN wallets ON na.id = wallets.id_networkAgent WHERE ag.id= :id AND network_id IN ( + $networks = DB::select('SELECT na.network_id ,ne.name as network , countries.name AS country,ne.country_id , w.id, w.balance_princ , w.balance_com, w.created_date, na.id AS id_networkAgent ,cw.taux_com_client_retrait, cw.taux_com_client_depot , cw.frais_min_banque_depot FROM agents ag + INNER JOIN networks_agents na ON ag.id=na.agent_id INNER JOIN codeGenerer cg ON cg.id=na.codeGenerer_id INNER JOIN networks ne ON ne.id=na.network_id INNER JOIN configWallet cw ON ne.id = cw.id_network + INNER JOIN countries ON ne.country_id=countries.id LEFT JOIN wallets w ON na.id = w.id_networkAgent WHERE ag.id= :id AND network_id IN ( SELECT networks.id FROM networks LEFT JOIN configWallet ON configWallet.id_network = networks.id WHERE status = 1 AND id_network IS NOT NULL)', ['id' => $id_agent]); - return $this->successResponse($this->formatResponse(Response::HTTP_OK,$networks,null)); + return $this->successResponse($networks); } public function show($id_wallet) { $wallet = Wallet::findOrFail($id_wallet); - return $this->successResponse($this->formatResponse(Response::HTTP_OK,$wallet,null)); + return $this->successResponse($$wallet); } + public function create(Request $request) + { + $rules = [ + 'id_networkAgent'=>'required|integer|min:1' + ]; + + $this->validate($request,$rules); + + DB::insert('INSERT INTO wallets (id_networkAgent) VALUES (?);', [$request->id_networkAgent]); + return $this->successResponse('Nouveau wallet ajoute'); + + } } diff --git a/app/Models/WalletTransaction.php b/app/Models/WalletTransaction.php index 4da6686..ba6f3eb 100644 --- a/app/Models/WalletTransaction.php +++ b/app/Models/WalletTransaction.php @@ -17,7 +17,7 @@ use phpDocumentor\Reflection\Types\Integer; * @property float $montant * @property string $numCarte * @property Carbon expiration_date - * @property int cvv + * @property string commission_banque * @property string $type * @property Carbon $date * @property string $statut @@ -35,7 +35,6 @@ class WalletTransaction extends Model protected $casts = [ 'montant' => 'float', - 'cvv' => 'int', 'id_wallet' => 'int' ]; @@ -48,7 +47,7 @@ class WalletTransaction extends Model 'montant', 'numCarte', 'expiration_date', - 'cvv', + 'commission_banque', 'type', 'date', 'statut', @@ -61,22 +60,22 @@ class WalletTransaction extends Model return $this->belongsTo(Wallet::class, 'id_wallet'); } - public function getTaxeAttribute($value) - { - return ucfirst($value); - } - - public function setTaxeAttribute($value) - { - $this->attributes['taxe'] = (int) $value; - } +// public function getTaxeAttribute($value) +// { +// return ucfirst($value); +// } +// +// public function setTaxeAttribute($value) +// { +// $this->attributes['taxe'] = (int) $value; +// } public function rules() { return [ 'montant'=> 'required|numeric|min:1', 'numCarte'=>'required|integer', - 'cvv'=>'required|integer|min:100|max:999', + 'cvv'=>'required|integer|min:100|max:9999', 'expiration_date'=>'required|date_format:m/Y|after_or_equal:today', 'type' =>'required|in:credit,debit', 'id_wallet' => 'required|integer|min:0' diff --git a/app/Traits/ApiResponser.php b/app/Traits/ApiResponser.php index 2ab4e1d..08c7557 100644 --- a/app/Traits/ApiResponser.php +++ b/app/Traits/ApiResponser.php @@ -8,7 +8,7 @@ trait ApiResponser { public function successResponse($data , $code = Response::HTTP_OK) { - return response($data , $code)->header('Content-Type', 'application/json'); + return response($this->formatResponse($code,$data,null) , $code)->header('Content-Type', 'application/json'); } public function errorResponse($message , $code) @@ -21,7 +21,7 @@ trait ApiResponser return response($message ,$code)->header('Content-Type', 'application/json'); } - public function formatResponse(int $status, $response = null , $error = null) + private function formatResponse(int $status, $response = null , $error = null) { return ['status' => $status , 'response' => $response , 'error' => $error]; } diff --git a/routes/web.php b/routes/web.php index beb413a..99d6da8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,4 +22,5 @@ $router->post('/virement','CommissionController@virement'); $router->group(['prefix' => '/wallets'] , function () use ($router){ $router->get('{id_agent}/activated', 'WalletController@activated'); $router->get('{id_wallet}', 'WalletController@show'); + $router->post('', 'WalletController@create'); });