From 492444fc7f662b15e2fdb37fa74f9648c53aa49a Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Mon, 22 Jun 2020 16:09:26 +0100 Subject: [PATCH] =?UTF-8?q?+=20Update=20User=20-=20Envoi=20wallet=20=C3=A0?= =?UTF-8?q?=20wallet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iLinkTransactionController.php | 21 +++++++++++++++---- app/Models/WalletIlinkTransaction.php | 5 ++++- resources/lang/en/errors.php | 1 + resources/lang/en/messages.php | 11 +++++++++- resources/lang/fr/errors.php | 1 + resources/lang/fr/messages.php | 11 +++++++++- 6 files changed, 43 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/iLinkTransactionController.php b/app/Http/Controllers/iLinkTransactionController.php index 6232c34..d51d7d2 100755 --- a/app/Http/Controllers/iLinkTransactionController.php +++ b/app/Http/Controllers/iLinkTransactionController.php @@ -126,18 +126,31 @@ class iLinkTransactionController extends Controller }else{ // Emettre requete SSL vers le reseau correspondant } - $destinatire = User::where('user_code', $request->id_destinataire)->first(); - if($destinatire){ // Si c'est un wallet ilink - $walletDestinataire = WalletsUser::where('idUser',$destinatire->id)->firstOrFail(); + if(isset($request->phone_destinataire)){ + $destinataire = User::where('phone', $request->phone_destinataire)->first(); + if($destinataire) + $transaction->id_destinataire = $destinataire->user_code; + else + return $this->errorResponse(trans('errors.user_phone_not_exist')); + }elseif (isset($request->id_destinataire)){ + $destinataire = User::where('user_code', $request->id_destinataire)->first(); + } + if($destinataire){ // Si c'est un wallet ilink + $walletDestinataire = WalletsUser::where('idUser',$destinataire->id)->firstOrFail(); $walletDestinataire->balance += $montantDepot; $walletDestinataire->save(); }else{ - //Emettre requete SSL vers wallet correspondant + //Emettre requete SSL vers wallet extene correspondant pour recharger le compte + return $this->errorResponse(trans('errors.external_wallet_not_defined')); } $walletUser->balance -= $transaction->montant; $walletHyperviseur->save(); $walletUser->save(); $transaction->save(); + $this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_user_send_to_wallet', + ['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantDepot, $request->init_country), + 'net_final' => $this->convertMoney($montantDepot, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country), + 'user_code' => $transaction->id_destinataire])); return $this->successResponse(trans('messages.successful_transaction')); } else { return $this->errorResponse(trans('messages.incorrect_user_password')); diff --git a/app/Models/WalletIlinkTransaction.php b/app/Models/WalletIlinkTransaction.php index b2e7a21..c496ffe 100644 --- a/app/Models/WalletIlinkTransaction.php +++ b/app/Models/WalletIlinkTransaction.php @@ -212,7 +212,10 @@ class WalletIlinkTransaction extends Model return [ 'init_country' =>'required|integer|min:0|not_in:0', 'final_country' =>'required|integer|min:0|not_in:0', - 'id_destinataire' =>'required|integer|min:0|not_in:0', + 'type_document_destinataire'=>'required', + 'id_document_destinataire'=>'required', + 'id_destinataire' =>'required_without:phone_destinataire', + 'phone_destinataire'=>'required_without:id_destinataire', 'network_destinataire'=>'required|integer|min:0|not_in:0', ]; } diff --git a/resources/lang/en/errors.php b/resources/lang/en/errors.php index 1746906..a0e0883 100755 --- a/resources/lang/en/errors.php +++ b/resources/lang/en/errors.php @@ -9,4 +9,5 @@ return [ 'visa_api_failed'=> 'Request to API visa failed', 'failed_transaction' => 'Failed transaction', 'user_phone_not_exist' => 'This customer number does not exist', + 'external_wallet_not_defined' => 'This code does not correspond to an iLink wallet and no external wallet is defined' ]; diff --git a/resources/lang/en/messages.php b/resources/lang/en/messages.php index f980225..a6000bb 100755 --- a/resources/lang/en/messages.php +++ b/resources/lang/en/messages.php @@ -44,5 +44,14 @@ Transaction information: - Net amount of the destination country : :net_final - Fees : :fees - Tax : :tax - - Withdrawal code : :code' + - Withdrawal code : :code', + 'successful_user_send_to_wallet' => 'Money sent to a wallet. +Transaction information: + - Transaction ID : :id_transaction + - Amount of the transaction : :amount + - Net amount of the country of departure : :net_init + - Net amount of the destination country : :net_final + - Fees : :fees + - Tax : :tax + - Recipient wallet code : :code', ]; diff --git a/resources/lang/fr/errors.php b/resources/lang/fr/errors.php index a39c88e..f308779 100755 --- a/resources/lang/fr/errors.php +++ b/resources/lang/fr/errors.php @@ -9,4 +9,5 @@ return [ 'visa_api_failed'=> 'La requete vers l\'api visa a échouée', 'failed_transaction' => 'Transaction échouée', 'user_phone_not_exist' => 'Ce numéro client n\'existe pas', + 'external_wallet_not_defined' => 'Ce code ne correspond pas à un wallet iLink et aucun wallet externe n\'est defini' ]; diff --git a/resources/lang/fr/messages.php b/resources/lang/fr/messages.php index 0519d83..1b868c0 100755 --- a/resources/lang/fr/messages.php +++ b/resources/lang/fr/messages.php @@ -36,7 +36,7 @@ Informations de la transaction : - Montant net du pays de destination : :net_final - Frais : :fees - Taxe : :tax', - 'successful_send_cash' => 'Envoi effectué par :sender_name à :receiver_name. + 'successful_send_cash' => 'Envoi d\'argent effectué par :sender_name à :receiver_name. Informations de la transaction : - Transaction ID : :id_transaction - Montant de la transaction : :amount @@ -45,4 +45,13 @@ Informations de la transaction : - Frais : :fees - Taxe : :tax - Code de retrait : :code', + 'successful_user_send_to_wallet' => 'Envoi d\'argent vers un wallet effectué. +Informations de la transaction : + - Transaction ID : :id_transaction + - Montant de la transaction : :amount + - Montant net du pays de départ : :net_init + - Montant net du pays de destination : :net_final + - Frais : :fees + - Taxe : :tax + - Code wallet du destinataire : :code', ];