+ Add User - Envoi wallet à cash

This commit is contained in:
Djery-Tom 2020-06-27 16:04:28 +01:00
parent 41b8afdad5
commit 522cd8bafa
5 changed files with 100 additions and 67 deletions

View File

@ -23,8 +23,10 @@ class HelperController extends Controller
//
}
public function countries()
public function countries($id_wallet_user)
{
$walletUser = WalletsUser::findOrFail($id_wallet_user);
$init_country = $walletUser->user->network->country->id;
$countries = DB::select('SELECT id , name , code_dial , code_country FROM countries_currencies WHERE id IN (
SELECT distinct c.id FROM networks n INNER JOIN countries_currencies c ON n.country_id=c.id INNER JOIN configWallet cw ON cw.id_network = n.id WHERE status = 1
);');

View File

@ -180,16 +180,13 @@ class iLinkTransactionController extends Controller
$walletUser->save();
$reseauPayeur->save();
$transaction->save();
$this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_user_send_to_wallet',
$message = trans('messages.successful_user_send_to_wallet',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantDepot, $init_country),
'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]));
return $this->successResponse(trans('messages.successful_user_send_to_wallet_2',
['amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantDepot, $init_country),
'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]));
'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail'));
}
} else {
return $this->errorResponse(trans('messages.incorrect_user_password'));
@ -229,14 +226,12 @@ class iLinkTransactionController extends Controller
$walletUser->save();
$transaction->id_transaction = $this->getTransactionID();
$transaction->save();
$this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_user_send_to_cart',
$message = trans('messages.successful_user_send_to_cart',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country),
'net' => $this->toMoney($montantDepot, $init_country), 'fees' => $this->toMoney($frais, $init_country),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($request->numero_carte, 4, ' ', true)]));
return $this->successResponse(trans('messages.successful_user_send_to_cart_2',
['amount' => $this->toMoney($transaction->montant, $init_country),
'net' => $this->toMoney($montantDepot, $init_country), 'fees' => $this->toMoney($frais, $init_country),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($request->numero_carte, 4, ' ', true)]));
'sender_code' => $user->user_code, 'cart_number' => wordwrap($request->numero_carte, 4, ' ', true)]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail'));
} else {
return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR);
@ -247,7 +242,41 @@ class iLinkTransactionController extends Controller
}
break;
case 3: //User - Envoi de wallet à cash
$this->validate($request, $transaction->send_wallet_cash_rules());
$user = $walletUser->user;
if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) {
if ($request->montant > $walletUser->balance) {
return $this->errorResponse(trans('errors.insufficient_balance'));
} else {
$transaction->frais = $frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_user_wallet_cash, $request->montant) : $this->calculateFees($plr_user_wallet_cash_national, $request->montant);
$transaction->taxe = $taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
$transaction->montant_retrait = $montantRetrait = $transaction->montant - $frais - $taxe;
$walletUser->balance -= $transaction->montant;
$transaction->commission_hyp = $frais;
$walletHyperviseur->balance_com += $frais;
$code_retrait = $this->random_string();
$hash = $this->hashSSHA($code_retrait);
$transaction->encrypted_code_retrait = $hash['encrypted'];
$transaction->code_retrait_salt = $hash['salt'];
$transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->id_transaction = $this->getTransactionID();
$walletHyperviseur->save();
$walletUser->save();
$transaction->save();
$message = trans('messages.successful_user_send_to_cash',
['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]);
$this->sendMail($user->email, trans('messages.successful_transaction'),$message );
return $this->successResponse($message.trans('messages.sent_by_mail'));
}
} else {
return $this->errorResponse(trans('messages.incorrect_user_password'));
}
break;
case 4: //User - Envoi de wallet à banque
// Non disponible
@ -544,7 +573,7 @@ class iLinkTransactionController extends Controller
$walletHyperviseur->save();
$transaction->save();
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash',
['sender_name' => $request->prenom_emetteur . ' ' . $request->nom_emetteur, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->prenom_destinataire,
['sender_name' => $request->prenom_emetteur . ' ' . $request->nom_emetteur, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->nom_destinataire,
'id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantRetrait, $request->init_country),
'net_final' => $this->toMoneyWithCurrency($montantRetrait, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country),
'code' => wordwrap($code_retrait, 4, ' ', true)]));

View File

@ -212,7 +212,7 @@ class WalletIlinkTransaction extends Model
'code_retrait' =>'required|size:16',
];
}
/// User Operation rules
public function send_wallet_wallet_rules(){
return [
'final_country' =>'required|integer|min:0|not_in:0',
@ -222,4 +222,16 @@ class WalletIlinkTransaction extends Model
'network_destinataire'=>'required|integer|min:0|not_in:0',
];
}
public function send_wallet_cash_rules(){
return [
'final_country' =>'required|integer|min:0|not_in:0',
'nom_destinataire'=>'required',
'prenom_destinataire'=>'required',
'type_document_destinataire'=>'required',
'id_document_destinataire'=>'required',
'id_destinataire' =>'required_without:phone_destinataire',
'network_destinataire'=>'required|integer|min:0|not_in:0',
];
}
}

View File

@ -45,9 +45,9 @@ Transaction information:
- Fees : :fees
- Tax : :tax
- Withdrawal code : :code',
'successful_user_send_to_wallet' => 'Money sent to a wallet.
'successful_user_send_to_wallet' => 'Sending money account to account.
Transaction information :
- Transaction ID : :id_transaction
- ID : :id_transaction
- Amount of the transaction : :amount
- Fees + Taxes : :fees
- Country of departure : :init_country
@ -56,33 +56,27 @@ Transaction information :
- Net amount : :net_final
- Issuer account : :sender_code
- Recipient account : :receiver_code',
'successful_user_send_to_wallet_2' => 'Money sent to a wallet.
Transaction information :
- Amount of the transaction : :amount
- Fees + Taxes : :fees
- Country of departure: :init_country
- Net amount : :net_init
- Country of destination : :final_country
- Net amount : :net_final
- Issuer account : :sender_code
- Recipient account : :receiver_code
'sent_by_mail' => '
This message was sent to the sender\'s email',
'successful_user_send_to_cart' => 'Sending money to a visa card made.
Transaction information :
- Transaction ID : :id_transaction
- ID : :id_transaction
- Amount of the transaction : :amount
- Fees : :fees
- Net shipping amount : :net
- Issuer account :sender_code
- Recipient\'s card number: :cart_number',
'successful_user_send_to_cart_2' => 'Sending money to a visa card made.
'successful_user_send_to_cash' => 'Sending money from account to cash
Transaction information :
- Number: :id_transaction
- Amount of the transaction: :amount
- Fees : :fees
- Net shipping amount : :net
- Issuer account :sender_code
- Recipient\'s card number: :cart_number
This message was sent to the sender\'s email',
- Fees and Taxes: :fees
- Country of departure: :init_country
- Net amount: :net_init
- Country of destination: :final_country
- Net amount: :net_final
- Issuer account: :sender_code
- Recipient names: :receiver_name.
- Withdrawal code: :code ',
];

View File

@ -45,10 +45,10 @@ Informations de la transaction :
- Frais : :fees
- Taxe : :tax
- Code de retrait : :code',
'successful_user_send_to_wallet' => 'Envoi d\'argent vers un wallet effectué.
'successful_user_send_to_wallet' => 'Envoi d\'argent compte à compte.
Informations de la transaction :
- Transaction ID : :id_transaction
- Montant de la transaction : :amount
- Numéro : :id_transaction
- Montant : :amount
- Frais et Taxes : :fees
- Pays de départ : :init_country
- Montant net : :net_init
@ -56,8 +56,20 @@ Informations de la transaction :
- Montant net : :net_final
- Compte émetteur : :sender_code
- Compte destinataire : :receiver_code',
'successful_user_send_to_wallet_2' => 'Envoi d\'argent vers un wallet effectué.
'sent_by_mail' => '
Ce message a été envoyé dans le mail de l\'émetteur',
'successful_user_send_to_cart' => 'Envoi d\'argent vers une carte visa effectué.
Informations de la transaction :
- Numéro : :id_transaction
- Montant de la transaction : :amount
- Frais : :fees
- Montant net d\'envoi: :net
- Compte émetteur : :sender_code
- Numero de la carte du destinataire : :cart_number',
'successful_user_send_to_cash' => 'Envoi d\'argent compte à cash
Informations de la transaction :
- Numéro : :id_transaction
- Montant de la transaction : :amount
- Frais et Taxes : :fees
- Pays de départ : :init_country
@ -65,22 +77,6 @@ Informations de la transaction :
- Pays de destination : :final_country
- Montant net : :net_final
- Compte émetteur : :sender_code
- Compte destinataire : :receiver_code
Ce message a été envoyé dans le mail de l\'émetteur',
'successful_user_send_to_cart' => 'Envoi d\'argent vers une carte visa effectué.
Informations de la transaction :
- Transaction ID : :id_transaction
- Montant de la transaction : :amount
- Frais : :fees
- Montant net d\'envoi: :net
- Compte émetteur : :sender_code
- Numero de la carte du destinataire : :cart_number',
'successful_user_send_to_cart_2' => 'Envoi d\'argent vers une carte visa effectué.
Informations de la transaction :
- Montant de la transaction : :amount
- Frais : :fees
- Montant net d\'envoi: :net
- Numero du wallet émetteur : :sender_code
- Numero de la carte du destinataire : :cart_number',
- Noms du destinataire : :receiver_name.
- Code de retrait : :code',
];