diff --git a/app/Http/Controllers/iLinkTransactionController.php b/app/Http/Controllers/iLinkTransactionController.php index 844b9e4..5d9164b 100755 --- a/app/Http/Controllers/iLinkTransactionController.php +++ b/app/Http/Controllers/iLinkTransactionController.php @@ -192,7 +192,7 @@ class iLinkTransactionController extends Controller 'net_final' => $this->toMoneyWithCurrency($montantDepot, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country), 'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire]); -// $this->sendMail($user->email, trans('messages.successful_transaction'), $message); + $this->sendMail($user->email, trans('messages.successful_transaction'), $message); return $this->successResponse($message . trans('messages.sent_by_mail')); } } else { @@ -317,7 +317,8 @@ class iLinkTransactionController extends Controller ['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantRetrait, $init_country), 'net_final' => $this->toMoneyWithCurrency($montantRetrait, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country), 'code' => wordwrap($code_retrait, 4, ' ', true), - 'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->nom_destinataire]); + 'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->nom_destinataire, + 'sender_name'=> $user->lastname.' '.$user->firstname]); $this->sendMail($user->email, trans('messages.successful_transaction'), $message); return $this->successResponse($message . trans('messages.sent_by_mail')); } @@ -494,7 +495,8 @@ class iLinkTransactionController extends Controller if (in_array($transaction->type, [3, 17])) { $configPayeur = ConfigWallet::where('id_network', $transaction->network_destinataire)->firstOrFail(); if ($configPayeur->type != 'ilink') - return $this->errorResponse(trans('errors.withdrawal_network_unauthorized')); + return $this->errorResponse(trans('errors.withdrawal_network_unauthorized',['network'=> $this->getNetworkName($transaction->network_destinataire), + 'country' => $this->getCountryName($transaction->final_country)])); } if ($transaction->status_retrait == 0) { //Verifier que le pays de destinatation correspond au pays de retrait @@ -515,6 +517,8 @@ class iLinkTransactionController extends Controller $transactionRetrait->id_transaction = $this->getTransactionID(); $transactionRetrait->montant = $montantNet; $emailEmetteur = $transaction->wallet_user ? $transaction->wallet_user->user->email : $transaction->email_emetteur; + $emetteur = $transaction->wallet_user ? $transaction->wallet_user->user->lastname.' '.$transaction->wallet_user->user->firstname : $transaction->prenom_emetteur . ' ' . $transaction->nom_emetteur; + $destinataire = in_array($transaction->type, [9, 11]) ? $emetteur : $transaction->prenom_destinataire . ' ' . $transaction->nom_destinataire; $transactionRetrait->commission_ag = floatval($commissionHyp * $config->taux_com_ag_retrait_cash / 100); $transactionRetrait->commission_sup = floatval($commissionHyp * $config->taux_com_sup_retrait_cash / 100); @@ -538,9 +542,9 @@ class iLinkTransactionController extends Controller $transaction->save(); $transactionRetrait->save(); $message = trans('messages.successful_agent_remove_cash', - ['id_transaction' => $transactionRetrait->id_transaction, 'amount' => $this->toMoney($request->montant, $init_country),'init_country' => $this->getCountryName($init_country), + ['id_transaction' => $transactionRetrait->id_transaction, 'amount' => $this->toMoney($request->montant, $init_country),'init_country' => $this->getCountryName($transaction->init_country), 'code' => wordwrap($request->code_retrait, 4, ' ', true), 'final_country' => $this->getCountryName($transaction->final_country), - 'id_transaction_retrait' => $transaction->id_transaction]); + 'sender_name' => $emetteur, 'receiver_name' => $destinataire, 'id_transaction_retrait' => $transaction->id_transaction]); $this->sendMail($emailEmetteur, trans('messages.successful_transaction'), $message); return $this->successResponse($message . trans('messages.sent_by_mail')); } else { @@ -982,13 +986,11 @@ class iLinkTransactionController extends Controller $data['frais'] = $frais + $taxe; $data['montant_net_init'] = $request->montant - $frais - $taxe; $data['montant_net_final'] = $this->toMoneyWithCurrency($data['montant_net_init'], $init_country, $request->final_country); - return $this->successResponse($data); break; case 2: //User - Envoi de wallet à carte $frais = $request->montant * $config->taux_com_user_wallet_carte / 100; $data['frais'] = $frais; $data['montant_net'] = $request->montant - $frais; - return $this->successResponse($data); break; case 3: // User - Envoi wallet à cash $this->validate($request, [ @@ -999,32 +1001,27 @@ class iLinkTransactionController extends Controller $data['frais'] = $frais + $taxe; $data['montant_net_init'] = $request->montant - $frais - $taxe; $data['montant_net_final'] = $this->toMoneyWithCurrency($data['montant_net_init'], $init_country, $request->final_country); - return $this->successResponse($data); break; case 9: // User - Retrait de wallet en cash $frais = $this->calculateFees($plr_user_wallet_cash_national, $request->montant); $taxe = $this->calculateTax($taxesNationales, $frais); $data['frais'] = $frais + $taxe; $data['montant_net'] = $request->montant - $frais - $taxe; - return $this->successResponse($data); break; case 10: //User - Retrait de carte vers wallet $frais = $request->montant * $config->taux_com_user_carte_wallet / 100;; $data['frais'] = $frais; $data['montant_net'] = $request->montant - $frais; - return $this->successResponse($data); break; case 11: // User - Retrait de carte vers cash $frais = $request->montant * $config->taux_com_user_carte_cash / 100; $data['frais'] = $frais; $data['montant_net'] = $request->montant - $frais; - return $this->successResponse($data); break; case 13: // Agent - Retrait de la carte vers cash $frais = $request->montant * $config->taux_com_wallet_ag_carte_cash / 100; $data['frais'] = $frais; $data['montant_net'] = $request->montant - $frais; - return $this->successResponse($data); break; case 14: // Agent - Envoi de cash vers wallet iLink $this->validate($request, [ @@ -1039,7 +1036,6 @@ class iLinkTransactionController extends Controller $data['frais'] = $frais + $taxe; $data['montant_net_init'] = $request->montant - $frais - $taxe; $data['montant_net_final'] = $this->toMoneyWithCurrency($data['montant_net_init'], $init_country, $final_country); - return $this->successResponse($data); break; case 15: // Agent - Envoi de cash vers autre wallet $this->validate($request, [ @@ -1050,13 +1046,11 @@ class iLinkTransactionController extends Controller $data['frais'] = $frais + $taxe; $data['montant_net_init'] = $request->montant - $frais - $taxe; $data['montant_net_final'] = $this->toMoneyWithCurrency($data['montant_net_init'], $init_country, $request->final_country); - return $this->successResponse($data); break; case 16: // Agent - Envoi de cash vers une carte visa $frais = $request->montant * $config->taux_com_wallet_ag_envoi_cash_carte / 100; $data['frais'] = $frais; $data['montant_net'] = $request->montant - $frais; - return $this->successResponse($data); break; case 17: // Agent - Envoi de cash vers cash $this->validate($request, [ @@ -1067,10 +1061,13 @@ class iLinkTransactionController extends Controller $data['frais'] = $frais + $taxe; $data['montant_net_init'] = $request->montant - $frais - $taxe; $data['montant_net_final'] = $this->toMoneyWithCurrency($data['montant_net_init'], $init_country, $request->final_country); - return $this->successResponse($data); break; } - + $net = isset($data['montant_net']) ? $data['montant_net'] : $data['montant_net_init']; + if(isset($net)) + if($net < 0) + return $this->errorResponse(trans('errors.incorrect_net_amount')); + return $this->successResponse($data); } public function getTransactionRetrait(Request $request) diff --git a/app/Traits/Helper.php b/app/Traits/Helper.php index 409bab2..1ce59a3 100644 --- a/app/Traits/Helper.php +++ b/app/Traits/Helper.php @@ -6,6 +6,7 @@ namespace App\Traits; use App\Models\CountriesCurrency; use App\Models\Country; +use App\Models\Network; use Brick\Money\Context\AutoContext; use Brick\Money\Context\CustomContext; use DateTime; @@ -51,6 +52,10 @@ trait Helper return Country::findOrFail($id_country)->name; } + public function getNetworkName($id_network){ + return Network::findOrFail($id_network)->name; + } + public function toMoneyWithNetwork($amount , $id_network){ $currency = collect(DB::select('SELECT cu.code FROM networks n INNER JOIN countries c ON c.id = n.country_id INNER JOIN currencies cu ON cu.id = c.idCurrency WHERE n.id = :id',['id'=>$id_network]))->first(); diff --git a/resources/lang/en/errors.php b/resources/lang/en/errors.php index a1ba32b..4613e59 100755 --- a/resources/lang/en/errors.php +++ b/resources/lang/en/errors.php @@ -19,7 +19,9 @@ return [ 'invalid_withdrawal_code' => 'Invalid withdrawal code', 'incorrect_withdrawal_amount'=> 'Incorrect withdrawal amount', 'operation_cannot_performed_in_country' => 'This operation cannot be performed in this country', - 'withdrawal_network_unauthorized' => 'This withdrawal cannot be made at an iLink agent', + 'withdrawal_network_unauthorized' => 'This withdrawal cannot be made in this network. +Paying network : :network :country', 'user_identification_required' => 'User identification is required to continue the operation', 'validation_user_identification_required' => 'Validation of user identification is required to continue the operation', + 'incorrect_net_amount' => 'Net amount is less than zero', ]; diff --git a/resources/lang/en/messages.php b/resources/lang/en/messages.php index 12639e1..4ebc755 100755 --- a/resources/lang/en/messages.php +++ b/resources/lang/en/messages.php @@ -45,11 +45,11 @@ Transaction information : - Amount : :amount - Fees and Taxes : :fees - Country of departure : :init_country + - Issuer names : :sender_name - Net amount : :net_init - Country of destination : :final_country + - Recipient names : :receiver_name - Net amount : :net_final - - Issuer names : :sender_name - - Recipient names : :receiver_name. - Recipient account : :receiver_code', 'successful_agent_send_cash'=>'Money sent Transaction information: @@ -57,11 +57,11 @@ Transaction information: - Amount : :amount - Fees and Taxes : :fees - Country of departure : :init_country + - Issuer names : :sender_name - Net amount : :net_init - Country of destination : :final_country + - Recipient names : :receiver_name - Net amount : :net_final - - Issuer names : :sender_name - - Recipient names : :receiver_name. - Withdrawal code : :code', 'successful_user_send_to_wallet' => 'Sending money account to account. Transaction information : @@ -69,11 +69,11 @@ Transaction information : - Amount of the transaction : :amount - Fees + Taxes : :fees - Country of departure : :init_country + - Issuer account : :sender_code - Net amount : :net_init - Country of destination : :final_country - - Net amount : :net_final - - Issuer account : :sender_code - - Recipient account : :receiver_code', + - Recipient account : :receiver_code + - Net amount : :net_final', 'sent_by_mail' => ' This message was sent to the sender\'s email', @@ -91,11 +91,12 @@ Transaction information : - Amount of the transaction: :amount - Fees and Taxes: :fees - Country of departure: :init_country + - Issuer account: :sender_code + - Issuer names : :sender_name - Net amount: :net_init - Country of destination: :final_country + - Recipient names: :receiver_name - Net amount: :net_final - - Issuer account: :sender_code - - Recipient names: :receiver_name. - Withdrawal code: :code ', 'successful_user_remove_from_wallet_to_cash'=>'Personal money withdrawal Transaction information: @@ -129,9 +130,11 @@ Transaction information : 'successful_agent_remove_cash'=>'Withdrawal of money from a geolocated agent Transaction information : - Number : :id_transaction + - Country of departure : :init_country + - Issuer names : :sender_name + - Country of destination : :final_country + - Recipient names: :receiver_name - Withdrawal amount : :amount - Withdrawal transaction number : :id_transaction_retrait - - Withdrawal code : :code - - Country of departure : :init_country - - Country of destination : :final_country', + - Withdrawal code : :code', ]; diff --git a/resources/lang/fr/errors.php b/resources/lang/fr/errors.php index 3c2a7d8..388c221 100755 --- a/resources/lang/fr/errors.php +++ b/resources/lang/fr/errors.php @@ -15,11 +15,14 @@ return [ 'wallet_country_not_match' => 'Ce code wallet destinataire n\'est pas enregistré dans le pays :country', 'no_bank_card_attached' => 'Aucune carte bancaire n\'est rattachée à votre compte', 'transaction_not_exist' => 'Cette transaction n\'existe pas', - 'withdrawal_already_made' => 'Retrait déjà éffectuée', + 'withdrawal_already_made' => 'Retrait déjà éffectué', 'invalid_withdrawal_code' => 'Code de retrait invalide', 'incorrect_withdrawal_amount'=> 'Montant de retrait incorrect', 'operation_cannot_performed_in_country' => 'Cette operation ne peut pas etre effectuée dans ce pays', - 'withdrawal_network_unauthorized' => 'Ce retrait ne peut pas etre effectué chez un agent iLink', + 'withdrawal_network_unauthorized' => 'Ce retrait ne peut etre effectué dans ce reseau. +Réseau payeur : :network :country', 'user_identification_required' => 'L\'identification de l\'utilisateur est requise pour continuer l\'operation', 'validation_user_identification_required' => 'La validation de l\'identification de l\'utilisateur est requise pour continuer l\'operation', + 'incorrect_net_amount' => 'Le montant net est inférieur à zéro', + ]; diff --git a/resources/lang/fr/messages.php b/resources/lang/fr/messages.php index 4099a14..85d39b0 100755 --- a/resources/lang/fr/messages.php +++ b/resources/lang/fr/messages.php @@ -45,11 +45,11 @@ Informations de la transaction : - Montant : :amount - Frais et Taxes : :fees - Pays de départ : :init_country + - Noms de l\'emetteur : :sender_name - Montant net : :net_init - Pays de destination : :final_country + - Noms du destinataire : :receiver_name - Montant net : :net_final - - Noms de l\'emetteur : :sender_name - - Noms du destinataire : :receiver_name. - Compte destinataire : :receiver_code', 'successful_agent_send_cash' => 'Envoi d\'argent effectué Informations de la transaction : @@ -57,11 +57,11 @@ Informations de la transaction : - Montant : :amount - Frais et Taxes : :fees - Pays de départ : :init_country + - Noms de l\'emetteur : :sender_name - Montant net : :net_init - Pays de destination : :final_country + - Noms du destinataire : :receiver_name - Montant net : :net_final - - Noms de l\'emetteur : :sender_name - - Noms du destinataire : :receiver_name. - Code de retrait : :code', 'successful_user_send_to_wallet' => 'Envoi d\'argent compte à compte Informations de la transaction : @@ -69,11 +69,11 @@ Informations de la transaction : - Montant : :amount - Frais et Taxes : :fees - Pays de départ : :init_country + - Compte émetteur : :sender_code - Montant net : :net_init - Pays de destination : :final_country - - Montant net : :net_final - - Compte émetteur : :sender_code - - Compte destinataire : :receiver_code', + - Compte destinataire : :receiver_code + - Montant net : :net_final', 'sent_by_mail' => ' Ce message a été envoyé dans le mail de l\'émetteur', @@ -91,11 +91,12 @@ Informations de la transaction : - Montant de la transaction : :amount - Frais et Taxes : :fees - Pays de départ : :init_country + - Compte émetteur : :sender_code + - Noms de l\'emetteur : :sender_name - Montant net : :net_init - Pays de destination : :final_country + - Noms du destinataire : :receiver_name - Montant net : :net_final - - Compte émetteur : :sender_code - - Noms du destinataire : :receiver_name. - Code de retrait : :code', 'successful_user_remove_from_wallet_to_cash'=>'Retrait d\'argent personnel Informations de la transaction : @@ -129,9 +130,11 @@ Informations de la transaction : 'successful_agent_remove_cash'=>'Retrait d\'argent chez un agent géolocalisé Informations de la transaction : - Numéro : :id_transaction + - Pays de départ : :init_country + - Noms de l\'emetteur : :sender_name + - Pays de destination : :final_country + - Noms du destinataire : :receiver_name - Montant de retrait : :amount - Numero de transaction de retrait : :id_transaction_retrait - - Code de retrait : :code - - Pays de départ : :init_country - - Pays de destination : :final_country' + - Code de retrait : :code' ];