From 95127012a80d2537cb0c2569b45c205642ba10f2 Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Tue, 7 Jul 2020 19:17:07 +0100 Subject: [PATCH] + Change Agent - Retrait en cash method --- app/Http/Controllers/CommissionController.php | 9 +++ .../iLinkTransactionController.php | 14 ++++- app/Models/TransfertCommissionTransaction.php | 59 +++++++++++++++++++ routes/web.php | 2 +- 4 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 app/Models/TransfertCommissionTransaction.php diff --git a/app/Http/Controllers/CommissionController.php b/app/Http/Controllers/CommissionController.php index 9634066..48e3a2e 100755 --- a/app/Http/Controllers/CommissionController.php +++ b/app/Http/Controllers/CommissionController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\Models\ConfigWallet; use App\Models\Network; use App\Models\NetworksAgent; +use App\Models\TransfertCommissionTransaction; use App\Models\Wallet; use App\Models\WalletTransaction; use App\Traits\ApiResponser; @@ -33,9 +34,17 @@ class CommissionController extends Controller if($wallet->balance_com <=0 ) return $this->errorResponse(trans('messages.empty_com_balance') , Response::HTTP_BAD_REQUEST); + $transaction = new TransfertCommissionTransaction(); + $transaction->balance_princ_init = $wallet->balance_princ; + $transaction->balance_com_init = $wallet->balance_com; $wallet->balance_princ += $wallet->balance_com; $wallet->balance_com = 0; + $transaction->balance_princ_final = $wallet->balance_princ; + $transaction->balance_com_final = $wallet->balance_com; + $transaction->id_wallet_ag = $wallet->id; + $transaction->date = new \DateTime(); $wallet->save(); + $transaction->save(); return $this->successResponse($wallet); diff --git a/app/Http/Controllers/iLinkTransactionController.php b/app/Http/Controllers/iLinkTransactionController.php index 64336a3..fafeac7 100755 --- a/app/Http/Controllers/iLinkTransactionController.php +++ b/app/Http/Controllers/iLinkTransactionController.php @@ -1076,13 +1076,19 @@ class iLinkTransactionController extends Controller $this->validate($request, [ 'id_transaction' => 'required', 'id_wallet_agent' => 'required|integer|min:0|not_in:0', + 'code_retrait' => 'required', ]); - $transaction = WalletIlinkTransaction::select('nom_destinataire', 'prenom_destinataire', 'type_document_destinataire', 'id_document_destinataire', 'type', - 'id_wallet_user', 'init_country', 'final_country', 'network_destinataire' ,'id_transaction')->where('id_transaction', $request->id_transaction)->first(); + + $transaction = WalletIlinkTransaction::select('nom_destinataire', 'prenom_destinataire', 'type_document_destinataire', 'id_document_destinataire', 'type','encrypted_code_retrait','code_retrait_salt', + 'id_wallet_user', 'init_country', 'final_country', 'network_destinataire' ,'id_transaction', 'montant_net_final_country')->where('id_transaction', $request->id_transaction)->first(); if (!$transaction) return $this->errorResponse(trans('errors.transaction_not_exist'), Response::HTTP_NOT_FOUND); + if(!$this->checkPassword($request->code_retrait, $transaction->encrypted_code_retrait, $transaction->code_retrait_salt)) + return $this->errorResponse(trans('errors.invalid_withdrawal_code')); + + //Verifier que le reseau payeur est de type iLink if (in_array($transaction->type, [3, 17])) { $configPayeur = ConfigWallet::where('id_network', $transaction->network_destinataire)->firstOrFail(); @@ -1113,7 +1119,9 @@ class iLinkTransactionController extends Controller $data->id_document_destinataire = $identification->id_identity_document; // $data->user_code = $transaction->wallet_user->user->user_code; } - unset($data->type, $data->init_country, $data->final_country, $data->id_wallet_user, $data->network_destinataire); + $data->montant = $transaction->type == 11 ? $transaction->montant_net : $transaction->montant_net_final_country; + unset($data->type, $data->init_country, $data->final_country, $data->id_wallet_user, $data->network_destinataire,$data->code_retrait_salt, + $data->encrypted_code_retrait,$data->montant_net_final_country, $data->montant_net); return $this->successResponse($data); } diff --git a/app/Models/TransfertCommissionTransaction.php b/app/Models/TransfertCommissionTransaction.php new file mode 100644 index 0000000..dba6534 --- /dev/null +++ b/app/Models/TransfertCommissionTransaction.php @@ -0,0 +1,59 @@ + 'int', + 'balance_princ_init' => 'float', + 'balance_com_init' => 'float', + 'balance_princ_final' => 'float', + 'balance_com_final' => 'float', + 'id_wallet_ag' => 'int' + ]; + + protected $dates = [ + 'date' + ]; + + protected $fillable = [ + 'balance_princ_init', + 'balance_com_init', + 'balance_princ_final', + 'balance_com_final', + 'date', + 'id_wallet_ag' + ]; + + public function wallet() + { + return $this->belongsTo(Wallet::class, 'id_wallet_ag'); + } +} diff --git a/routes/web.php b/routes/web.php index 56d8d44..98fc6a6 100755 --- a/routes/web.php +++ b/routes/web.php @@ -40,7 +40,7 @@ $router->group(['prefix' => '/transactions'] , function () use ($router){ // Credits routes $router->group(['prefix' => '/credits'] , function () use ($router){ - $router->put('treatDemand/{id_demand}','CreditController@treatDemand'); + $router->put('treatDemand/{id_demand}','CreditfController@treatDemand'); $router->put('cancelDemand/{id_demand}','CreditController@cancelDemand'); });