+ Add method Agent - Envoi de cash vers cash
This commit is contained in:
parent
f9be26c76b
commit
0a10771c11
|
@ -270,6 +270,7 @@ class iLinkTransactionController extends Controller
|
||||||
}
|
}
|
||||||
$transaction->montant_net_final_country = $this->toMoneyAmount($montantRetrait, $init_country, $request->final_country);
|
$transaction->montant_net_final_country = $this->toMoneyAmount($montantRetrait, $init_country, $request->final_country);
|
||||||
$transaction->commission_hyp = $transaction->part_reseau_emetteur;
|
$transaction->commission_hyp = $transaction->part_reseau_emetteur;
|
||||||
|
$transaction->commission_hyp_final_country = $this->toMoneyAmount($transaction->commission_hyp, $init_country, $request->final_country);
|
||||||
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
|
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
|
||||||
if (isset($reseauPayeur))
|
if (isset($reseauPayeur))
|
||||||
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
|
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
|
||||||
|
@ -341,8 +342,8 @@ class iLinkTransactionController extends Controller
|
||||||
$transaction->final_country = $init_country;
|
$transaction->final_country = $init_country;
|
||||||
$transaction->frais = $frais = $this->calculateFees($plr_user_wallet_cash_national, $request->montant);
|
$transaction->frais = $frais = $this->calculateFees($plr_user_wallet_cash_national, $request->montant);
|
||||||
$transaction->taxe = $taxe = $this->calculateTax($taxesNationales, $frais);
|
$transaction->taxe = $taxe = $this->calculateTax($taxesNationales, $frais);
|
||||||
$transaction->montant_net = $montantRetrait = $transaction->montant - $frais - $taxe;
|
$transaction->montant_net_final_country = $transaction->montant_net = $montantRetrait = $transaction->montant - $frais - $taxe;
|
||||||
$transaction->commission_hyp = $frais;
|
$transaction->commission_hyp_final_country = $transaction->commission_hyp = $frais;
|
||||||
|
|
||||||
$walletUser->balance -= $transaction->montant;
|
$walletUser->balance -= $transaction->montant;
|
||||||
$walletHyperviseur->balance_com += $transaction->commission_hyp;
|
$walletHyperviseur->balance_com += $transaction->commission_hyp;
|
||||||
|
@ -484,19 +485,25 @@ class iLinkTransactionController extends Controller
|
||||||
$transaction = WalletIlinkTransaction::where('id_transaction',$request->id_transaction)->first();
|
$transaction = WalletIlinkTransaction::where('id_transaction',$request->id_transaction)->first();
|
||||||
if ($transaction) {
|
if ($transaction) {
|
||||||
if ($transaction->status_retrait == 0) {
|
if ($transaction->status_retrait == 0) {
|
||||||
|
//Verifier que le pays de destinatation correspond au pays de retrait
|
||||||
|
if($transaction->type != 11)
|
||||||
|
if($init_country != $transaction->final_country)
|
||||||
|
return $this->errorResponse(trans('errors.operation_cannot_performed_in_country'));
|
||||||
if ($this->checkPassword($request->code_retrait, $transaction->encrypted_code_retrait, $transaction->code_retrait_salt)) {
|
if ($this->checkPassword($request->code_retrait, $transaction->encrypted_code_retrait, $transaction->code_retrait_salt)) {
|
||||||
if ($transaction->montant_net == $request->montant) {
|
$montantNet = $transaction->type == 11 ? $transaction->montant_net : $transaction->montant_net_final_country;
|
||||||
|
$commissionHyp = $transaction->type == 11 ? $transaction->commission_hyp : $transaction->commission_hyp_final_country;
|
||||||
|
if ($montantNet == $request->montant) {
|
||||||
$transactionRetrait = $transaction->replicate();
|
$transactionRetrait = $transaction->replicate();
|
||||||
$transactionRetrait->id = null;
|
$transactionRetrait->id = null;
|
||||||
$transactionRetrait->type = $request->type;
|
$transactionRetrait->type = $request->type;
|
||||||
$transactionRetrait->id_transaction = $this->getTransactionID();
|
$transactionRetrait->id_transaction = $this->getTransactionID();
|
||||||
$transactionRetrait->montant = $transaction->montant_net;
|
$transactionRetrait->montant = $montantNet;
|
||||||
$emailEmetteur = $transaction->wallet_user ? $transaction->wallet_user->user->email : $transaction->email_emetteur;
|
$emailEmetteur = $transaction->wallet_user ? $transaction->wallet_user->user->email : $transaction->email_emetteur;
|
||||||
|
|
||||||
$transactionRetrait->commission_ag = floatval($transaction->commission_hyp * $config->taux_com_ag_retrait_cash / 100);
|
$transactionRetrait->commission_ag = floatval($commissionHyp * $config->taux_com_ag_retrait_cash / 100);
|
||||||
$transactionRetrait->commission_sup = floatval($transaction->commission_hyp * $config->taux_com_sup_retrait_cash / 100);
|
$transactionRetrait->commission_sup = floatval($commissionHyp * $config->taux_com_sup_retrait_cash / 100);
|
||||||
$transactionRetrait->commission_hyp = $transaction->commission_hyp - $transactionRetrait->commission_ag - $transactionRetrait->commission_sup;
|
$transactionRetrait->commission_hyp = $commissionHyp - $transactionRetrait->commission_ag - $transactionRetrait->commission_sup;
|
||||||
$walletAgent->balance_princ += $transaction->montant_net;
|
$walletAgent->balance_princ += $montantNet;
|
||||||
$walletAgent->balance_com += $transactionRetrait->commission_ag;
|
$walletAgent->balance_com += $transactionRetrait->commission_ag;
|
||||||
$walletSuperviseur->balance_com += $transactionRetrait->commission_sup;
|
$walletSuperviseur->balance_com += $transactionRetrait->commission_sup;
|
||||||
$walletHyperviseur->balance_com -= ( $transactionRetrait->commission_ag + $transactionRetrait->commission_sup);
|
$walletHyperviseur->balance_com -= ( $transactionRetrait->commission_ag + $transactionRetrait->commission_sup);
|
||||||
|
@ -504,7 +511,7 @@ class iLinkTransactionController extends Controller
|
||||||
$transactionRetrait->id_wallet_sup = $walletSuperviseur->id;
|
$transactionRetrait->id_wallet_sup = $walletSuperviseur->id;
|
||||||
$transactionRetrait->id_wallet_hyp = $walletHyperviseur->id;
|
$transactionRetrait->id_wallet_hyp = $walletHyperviseur->id;
|
||||||
|
|
||||||
$transactionRetrait->status_retrait = $transactionRetrait->code_retrait_salt = $transactionRetrait->encrypted_code_retrait = null;
|
$transactionRetrait->status_retrait = $transactionRetrait->commission_banque = $transactionRetrait->code_retrait_salt = $transactionRetrait->encrypted_code_retrait = null;
|
||||||
$transactionRetrait->frais = $transactionRetrait->taxe = 0;
|
$transactionRetrait->frais = $transactionRetrait->taxe = 0;
|
||||||
$transaction->status_retrait = 1;
|
$transaction->status_retrait = 1;
|
||||||
$transaction->date_retrait = new \DateTime();
|
$transaction->date_retrait = new \DateTime();
|
||||||
|
@ -545,7 +552,7 @@ class iLinkTransactionController extends Controller
|
||||||
$transaction->expiration_date = $expiration_date;
|
$transaction->expiration_date = $expiration_date;
|
||||||
|
|
||||||
$frais = floatval($request->montant * $config->taux_com_wallet_ag_carte_cash / 100);
|
$frais = floatval($request->montant * $config->taux_com_wallet_ag_carte_cash / 100);
|
||||||
$montantRetrait = $transaction->montant + $frais;
|
$montantRetrait = $transaction->montant - $frais;
|
||||||
$transaction->montant_net = $montantRetrait;
|
$transaction->montant_net = $montantRetrait;
|
||||||
$body['amount'] = $this->toUSDAmount($montantRetrait, $init_country);
|
$body['amount'] = $this->toUSDAmount($montantRetrait, $init_country);
|
||||||
$body['card_number'] = $request->numero_carte;
|
$body['card_number'] = $request->numero_carte;
|
||||||
|
@ -610,7 +617,8 @@ class iLinkTransactionController extends Controller
|
||||||
$taxe = ($init_country!= $final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
$taxe = ($init_country!= $final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
||||||
$montantDepot = $request->montant - $frais - $taxe;
|
$montantDepot = $request->montant - $frais - $taxe;
|
||||||
$transaction->montant_net = $montantDepot;
|
$transaction->montant_net = $montantDepot;
|
||||||
$walletUser->balance += $montantDepot;
|
$transaction->montant_net_final_country = $this->toMoneyAmount($montantDepot, $init_country, $final_country);
|
||||||
|
$walletUser->balance += $transaction->montant_net_final_country;
|
||||||
$commisionAgent = floatval($frais * $config->taux_com_ag_envoi_cash / 100);
|
$commisionAgent = floatval($frais * $config->taux_com_ag_envoi_cash / 100);
|
||||||
$commisionSuper = floatval($frais * $config->taux_com_sup_envoi_cash / 100);
|
$commisionSuper = floatval($frais * $config->taux_com_sup_envoi_cash / 100);
|
||||||
$commisionHyper = floatval($frais * $config->taux_com_hyp_envoi_cash / 100);
|
$commisionHyper = floatval($frais * $config->taux_com_hyp_envoi_cash / 100);
|
||||||
|
@ -634,7 +642,7 @@ class iLinkTransactionController extends Controller
|
||||||
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
||||||
$transaction->id_transaction = $this->getTransactionID();
|
$transaction->id_transaction = $this->getTransactionID();
|
||||||
$transaction->save();
|
$transaction->save();
|
||||||
$message = trans('messages.successful_deposit_ilink',
|
$message = trans('messages.successful_agent_deposit_wallet_ilink',
|
||||||
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantDepot, $init_country),
|
['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, $final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'init_country' => $this->getCountryName($init_country),
|
'net_final' => $this->toMoneyWithCurrency($montantDepot, $init_country, $final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'init_country' => $this->getCountryName($init_country),
|
||||||
'final_country' => $this->getCountryName($final_country), 'user_code' => $request->user_code]);
|
'final_country' => $this->getCountryName($final_country), 'user_code' => $request->user_code]);
|
||||||
|
@ -645,19 +653,37 @@ class iLinkTransactionController extends Controller
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 15: // Agent - Envoi de cash vers autre wallet
|
case 15: // Agent - Envoi de cash vers autre wallet
|
||||||
$this->validate($request, $transaction->cash_cash_rules());
|
$this->validate($request, array_merge($transaction->cash_cash_rules(),[
|
||||||
|
'network_destinataire'=>'required|integer|min:0|not_in:0'
|
||||||
|
]));
|
||||||
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
||||||
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
||||||
$frais = ($request->init_country != $request->final_country) ? $this->calculateFees($plr_agent_depot_autre_wallet, $request->montant) : $this->calculateFees($plr_agent_depot_autre_wallet_national, $request->montant);
|
if ($request->montant > $walletAgent->balance_princ)
|
||||||
$taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||||
|
$frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_agent_depot_autre_wallet, $request->montant) : $this->calculateFees($plr_agent_depot_autre_wallet_national, $request->montant);
|
||||||
|
$taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
||||||
$montantDepot = $request->montant - $frais - $taxe;
|
$montantDepot = $request->montant - $frais - $taxe;
|
||||||
$transaction->montant_net = $montantDepot;
|
$transaction->montant_net = $montantDepot;
|
||||||
|
$transaction->montant_net_final_country = $this->toMoneyAmount($montantDepot, $init_country, $request->final_country);
|
||||||
|
|
||||||
|
if ($init_country != $request->final_country) {
|
||||||
|
$reseauPayeur = PayingNetwork::where('id_network', $request->network_destinataire)->where('id_configWallet', $config->id)->firstOrFail();
|
||||||
|
$transaction->part_reseau_payeur = $frais * $reseauPayeur->taux_partage / 100;
|
||||||
|
$transaction->part_reseau_emetteur = $frais - $transaction->part_reseau_payeur;
|
||||||
|
} else {
|
||||||
|
$transaction->part_reseau_payeur = 0;
|
||||||
|
$transaction->part_reseau_emetteur = $frais;
|
||||||
|
}
|
||||||
|
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
|
||||||
|
if (isset($reseauPayeur))
|
||||||
|
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
|
||||||
|
|
||||||
//Emettre une trame securise pour crediter le wallet utilisateur
|
//Emettre une trame securise pour crediter le wallet utilisateur
|
||||||
// $walletUser->balance += $montantDepot;
|
// $walletUser->balance += $transaction->montant_net_final_country;
|
||||||
// $transaction->id_destinataire = r
|
// $transaction->id_destinataire = r
|
||||||
$commisionAgent = floatval($frais * $config->taux_com_ag_envoi_cash / 100);
|
$commisionAgent = floatval($transaction->part_reseau_emetteur * $config->taux_com_ag_envoi_cash / 100);
|
||||||
$commisionSuper = floatval($frais * $config->taux_com_sup_envoi_cash / 100);
|
$commisionSuper = floatval($transaction->part_reseau_emetteur * $config->taux_com_sup_envoi_cash / 100);
|
||||||
$commisionHyper = floatval($frais * $config->taux_com_hyp_envoi_cash / 100);
|
$commisionHyper = floatval($transaction->part_reseau_emetteur * $config->taux_com_hyp_envoi_cash / 100);
|
||||||
$walletAgent->balance_princ -= $transaction->montant;
|
$walletAgent->balance_princ -= $transaction->montant;
|
||||||
$walletAgent->balance_com += $commisionAgent;
|
$walletAgent->balance_com += $commisionAgent;
|
||||||
$transaction->commission_ag = $commisionAgent;
|
$transaction->commission_ag = $commisionAgent;
|
||||||
|
@ -672,10 +698,20 @@ class iLinkTransactionController extends Controller
|
||||||
$walletAgent->save();
|
$walletAgent->save();
|
||||||
$walletSuperviseur->save();
|
$walletSuperviseur->save();
|
||||||
$walletHyperviseur->save();
|
$walletHyperviseur->save();
|
||||||
|
if (isset($reseauPayeur))
|
||||||
|
$reseauPayeur->save();
|
||||||
$transaction->id_wallet_ag = $walletAgent->id;
|
$transaction->id_wallet_ag = $walletAgent->id;
|
||||||
$transaction->id_wallet_sup = $walletSuperviseur->id;
|
$transaction->id_wallet_sup = $walletSuperviseur->id;
|
||||||
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
||||||
|
$transaction->id_transaction = $this->getTransactionID();
|
||||||
$transaction->save();
|
$transaction->save();
|
||||||
|
$message = trans('messages.successful_agent_deposit_other_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), 'receiver_code' => $request->id_destinataire,
|
||||||
|
'sender_name' => $request->prenom_emetteur . ' ' . $request->nom_emetteur, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->nom_destinataire,]);
|
||||||
|
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), $message);
|
||||||
|
return $this->successResponse($message . trans('messages.sent_by_mail'));
|
||||||
} else {
|
} else {
|
||||||
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||||
}
|
}
|
||||||
|
@ -684,6 +720,8 @@ class iLinkTransactionController extends Controller
|
||||||
$this->validate($request, $transaction->card_rules());
|
$this->validate($request, $transaction->card_rules());
|
||||||
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
||||||
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
||||||
|
if ($request->montant > $walletAgent->balance_princ)
|
||||||
|
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||||
$expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date);
|
$expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date);
|
||||||
if (!$expiration_date)
|
if (!$expiration_date)
|
||||||
$expiration_date = new \DateTime();
|
$expiration_date = new \DateTime();
|
||||||
|
@ -692,7 +730,7 @@ class iLinkTransactionController extends Controller
|
||||||
$frais = $request->montant * $config->taux_com_wallet_ag_envoi_cash_carte / 100;
|
$frais = $request->montant * $config->taux_com_wallet_ag_envoi_cash_carte / 100;
|
||||||
$montantDepot = $transaction->montant - $frais;
|
$montantDepot = $transaction->montant - $frais;
|
||||||
$transaction->montant_net = $montantDepot;
|
$transaction->montant_net = $montantDepot;
|
||||||
$body['amount'] = $montantDepot;
|
$body['amount'] = $this->toUSDAmount($montantDepot, $init_country);;
|
||||||
$body['card_number'] = $request->numero_carte;
|
$body['card_number'] = $request->numero_carte;
|
||||||
$body['cvv'] = $request->cvv;
|
$body['cvv'] = $request->cvv;
|
||||||
$body['expiry_date'] = $expiration_date->format('Y-m');
|
$body['expiry_date'] = $expiration_date->format('Y-m');
|
||||||
|
@ -729,6 +767,7 @@ class iLinkTransactionController extends Controller
|
||||||
$walletAgent->save();
|
$walletAgent->save();
|
||||||
$walletSuperviseur->save();
|
$walletSuperviseur->save();
|
||||||
$walletHyperviseur->save();
|
$walletHyperviseur->save();
|
||||||
|
$transaction->id_transaction = $this->getTransactionID();
|
||||||
$transaction->save();
|
$transaction->save();
|
||||||
return $this->successResponse(trans('messages.successful_transaction'));
|
return $this->successResponse(trans('messages.successful_transaction'));
|
||||||
|
|
||||||
|
@ -740,25 +779,27 @@ class iLinkTransactionController extends Controller
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 17: // Agent - Envoi de cash vers cash
|
case 17: // Agent - Envoi de cash vers cash
|
||||||
$this->validate($request, array_merge($transaction->cash_cash_rules(), [
|
$this->validate($request, $transaction->cash_cash_rules());
|
||||||
'email_emetteur' => 'required',
|
|
||||||
]));
|
|
||||||
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
||||||
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
||||||
$frais = ($request->init_country != $request->final_country) ? $this->calculateFees($plr_agent_cash_cash, $request->montant) : $this->calculateFees($plr_agent_cash_cash_national, $request->montant);
|
if ($request->montant > $walletAgent->balance_princ)
|
||||||
$taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||||
|
$frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_agent_cash_cash, $request->montant) : $this->calculateFees($plr_agent_cash_cash_national, $request->montant);
|
||||||
|
$taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
||||||
$montantRetrait = $request->montant - $frais - $taxe;
|
$montantRetrait = $request->montant - $frais - $taxe;
|
||||||
$commisionAgent = floatval($frais * $config->taux_com_ag_envoi_cash / 100);
|
$commisionAgent = floatval($frais * $config->taux_com_ag_envoi_cash / 100);
|
||||||
$commisionSuper = floatval($frais * $config->taux_com_sup_envoi_cash / 100);
|
$commisionSuper = floatval($frais * $config->taux_com_sup_envoi_cash / 100);
|
||||||
$commisionHyper = floatval($frais * $config->taux_com_hyp_envoi_cash / 100);
|
$commisionHyper = floatval($frais * $config->taux_com_hyp_envoi_cash / 100);
|
||||||
|
|
||||||
$transaction->montant_net = $montantRetrait;
|
$transaction->montant_net = $montantRetrait;
|
||||||
|
$transaction->montant_net_final_country = $this->toMoneyAmount($transaction->montant_net, $init_country, $request->final_country);
|
||||||
$walletAgent->balance_com += $commisionAgent;
|
$walletAgent->balance_com += $commisionAgent;
|
||||||
$transaction->commission_ag = $commisionAgent;
|
$transaction->commission_ag = $commisionAgent;
|
||||||
$walletSuperviseur->balance_com += $commisionSuper;
|
$walletSuperviseur->balance_com += $commisionSuper;
|
||||||
$transaction->commission_sup = $commisionSuper;
|
$transaction->commission_sup = $commisionSuper;
|
||||||
$walletHyperviseur->balance_com += $commisionHyper;
|
$walletHyperviseur->balance_com += $commisionHyper;
|
||||||
$transaction->commission_hyp = $commisionHyper;
|
$transaction->commission_hyp = $commisionHyper;
|
||||||
|
$transaction->commission_hyp_final_country = $this->toMoneyAmount($transaction->commission_hyp, $init_country, $request->final_country);
|
||||||
$transaction->id_wallet_ag = $walletAgent->id;
|
$transaction->id_wallet_ag = $walletAgent->id;
|
||||||
$transaction->id_wallet_sup = $walletSuperviseur->id;
|
$transaction->id_wallet_sup = $walletSuperviseur->id;
|
||||||
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
||||||
|
@ -776,13 +817,15 @@ class iLinkTransactionController extends Controller
|
||||||
$walletAgent->save();
|
$walletAgent->save();
|
||||||
$walletSuperviseur->save();
|
$walletSuperviseur->save();
|
||||||
$walletHyperviseur->save();
|
$walletHyperviseur->save();
|
||||||
|
$transaction->id_transaction = $this->getTransactionID();
|
||||||
$transaction->save();
|
$transaction->save();
|
||||||
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash',
|
$message = trans('messages.successful_agent_send_cash',
|
||||||
['sender_name' => $request->prenom_emetteur . ' ' . $request->nom_emetteur, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->nom_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),
|
'id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantRetrait, $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),
|
'net_final' => $this->toMoneyWithCurrency($montantRetrait, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'init_country' => $this->getCountryName($init_country),
|
||||||
'code' => wordwrap($code_retrait, 4, ' ', true)]));
|
'final_country' => $this->getCountryName($request->final_country),'code' => wordwrap($code_retrait, 4, ' ', true)]);
|
||||||
return $this->successResponse(trans('messages.successful_transaction'));
|
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'),$message);
|
||||||
|
return $this->successResponse($message . trans('messages.sent_by_mail'));
|
||||||
} else {
|
} else {
|
||||||
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||||
}
|
}
|
||||||
|
@ -840,6 +883,8 @@ class iLinkTransactionController extends Controller
|
||||||
$network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent);
|
$network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent);
|
||||||
// Configuratrion du wallet
|
// Configuratrion du wallet
|
||||||
$config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail();
|
$config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail();
|
||||||
|
$init_country = $network_agent->network->country->id;
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$walletUser = WalletsUser::findOrFail($request->id_wallet_user);
|
$walletUser = WalletsUser::findOrFail($request->id_wallet_user);
|
||||||
|
@ -925,6 +970,55 @@ class iLinkTransactionController extends Controller
|
||||||
$data['montant_net'] = $request->montant - $frais;
|
$data['montant_net'] = $request->montant - $frais;
|
||||||
return $this->successResponse($data);
|
return $this->successResponse($data);
|
||||||
break;
|
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, [
|
||||||
|
'user_code' => 'required',
|
||||||
|
]);
|
||||||
|
$user = User::where('user_code', $request->user_code)->first();
|
||||||
|
if(!$user)
|
||||||
|
return $this->errorResponse(trans('errors.wallet_not_defined'));
|
||||||
|
$final_country = $user->network->country->id;
|
||||||
|
$frais = ($init_country != $final_country) ? $this->calculateFees($plr_agent_depot_wallet_ilink, $request->montant) : $this->calculateFees($plr_agent_depot_wallet_ilink_national, $request->montant);
|
||||||
|
$taxe = ($init_country!= $final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
||||||
|
$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, [
|
||||||
|
'final_country' => 'required|integer|min:0|not_in:0',
|
||||||
|
]);
|
||||||
|
$frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_agent_depot_autre_wallet, $request->montant) : $this->calculateFees($plr_agent_depot_autre_wallet_national, $request->montant);
|
||||||
|
$taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
||||||
|
$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, [
|
||||||
|
'final_country' => 'required|integer|min:0|not_in:0',
|
||||||
|
]);
|
||||||
|
$frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_agent_cash_cash, $request->montant) : $this->calculateFees($plr_agent_cash_cash_national, $request->montant);
|
||||||
|
$taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
||||||
|
$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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,7 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
* @property float $commission_ag
|
* @property float $commission_ag
|
||||||
* @property float $commission_sup
|
* @property float $commission_sup
|
||||||
* @property float $commission_hyp
|
* @property float $commission_hyp
|
||||||
|
* @property float commission_hyp_final_country
|
||||||
* @property int $id_wallet_user
|
* @property int $id_wallet_user
|
||||||
* @property int $id_wallet_ag
|
* @property int $id_wallet_ag
|
||||||
* @property int $id_wallet_sup
|
* @property int $id_wallet_sup
|
||||||
|
@ -87,6 +88,7 @@ class WalletIlinkTransaction extends Model
|
||||||
'commission_ag' => 'float',
|
'commission_ag' => 'float',
|
||||||
'commission_sup' => 'float',
|
'commission_sup' => 'float',
|
||||||
'commission_hyp' => 'float',
|
'commission_hyp' => 'float',
|
||||||
|
'commission_hyp_final_country'=>'float',
|
||||||
'id_wallet_user' => 'int',
|
'id_wallet_user' => 'int',
|
||||||
'id_wallet_ag' => 'int',
|
'id_wallet_ag' => 'int',
|
||||||
'id_wallet_sup' => 'int',
|
'id_wallet_sup' => 'int',
|
||||||
|
@ -137,6 +139,7 @@ class WalletIlinkTransaction extends Model
|
||||||
'commission_ag',
|
'commission_ag',
|
||||||
'commission_sup',
|
'commission_sup',
|
||||||
'commission_hyp',
|
'commission_hyp',
|
||||||
|
'commission_hyp_final_country',
|
||||||
'id_wallet_user',
|
'id_wallet_user',
|
||||||
'id_wallet_ag',
|
'id_wallet_ag',
|
||||||
'id_wallet_sup',
|
'id_wallet_sup',
|
||||||
|
@ -202,12 +205,12 @@ class WalletIlinkTransaction extends Model
|
||||||
public function cash_cash_rules()
|
public function cash_cash_rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'init_country' =>'required|integer|min:0|not_in:0',
|
|
||||||
'final_country' =>'required|integer|min:0|not_in:0',
|
'final_country' =>'required|integer|min:0|not_in:0',
|
||||||
'nom_emetteur'=>'required',
|
'nom_emetteur'=>'required',
|
||||||
'prenom_emetteur'=>'required',
|
'prenom_emetteur'=>'required',
|
||||||
'type_document_emetteur'=>'required',
|
'type_document_emetteur'=>'required',
|
||||||
'id_document_emetteur'=>'required',
|
'id_document_emetteur'=>'required',
|
||||||
|
'email_emetteur' => 'required',
|
||||||
'nom_destinataire'=>'required',
|
'nom_destinataire'=>'required',
|
||||||
'prenom_destinataire'=>'required',
|
'prenom_destinataire'=>'required',
|
||||||
'type_document_destinataire'=>'required',
|
'type_document_destinataire'=>'required',
|
||||||
|
|
|
@ -29,22 +29,39 @@ Welcome to the iLink World family !!!
|
||||||
|
|
||||||
Regards,
|
Regards,
|
||||||
ILinkWorld team.',
|
ILinkWorld team.',
|
||||||
'successful_deposit_ilink' => 'Deposit to an iLink wallet. User code: :user_code
|
'successful_agent_deposit_wallet_ilink' => 'Depositing money to an iLink account
|
||||||
|
Transaction information :
|
||||||
|
- Transaction ID : :id_transaction
|
||||||
|
- Amount : :amount
|
||||||
|
- Fees and Taxes : :fees
|
||||||
|
- Country of departure : :init_country
|
||||||
|
- Net amount : :net_init
|
||||||
|
- Country of destination : :final_country
|
||||||
|
- Net amount : :net_final
|
||||||
|
- Recipient account : :user_code',
|
||||||
|
'successful_agent_deposit_other_wallet' => 'Deposit money to another account
|
||||||
|
Transaction information :
|
||||||
|
- Transaction ID : :id_transaction
|
||||||
|
- Amount : :amount
|
||||||
|
- Fees and Taxes : :fees
|
||||||
|
- Country of departure : :init_country
|
||||||
|
- Net amount : :net_init
|
||||||
|
- Country of destination : :final_country
|
||||||
|
- Net amount : :net_final
|
||||||
|
- Issuer names : :sender_name
|
||||||
|
- Recipient names : :receiver_name.
|
||||||
|
- Recipient account : :receiver_code',
|
||||||
|
'successful_agent_send_cash'=>'Money sent
|
||||||
Transaction information:
|
Transaction information:
|
||||||
- Transaction ID : :id_transaction
|
- Transaction ID : :id_transaction
|
||||||
- Amount of the transaction : :amount
|
- Amount : :amount
|
||||||
- Net amount of the country of departure : :net_init
|
- Fees and Taxes : :fees
|
||||||
- Net amount of the destination country : :net_final
|
- Country of departure : :init_country
|
||||||
- Fees : :fees
|
- Net amount : :net_init
|
||||||
- Tax : :tax',
|
- Country of destination : :final_country
|
||||||
'successful_send_cash'=>'Sent by :sender_name to :receiver_name.
|
- Net amount : :net_final
|
||||||
Transaction information:
|
- Issuer names : :sender_name
|
||||||
- Transaction ID : :id_transaction
|
- Recipient names : :receiver_name.
|
||||||
- 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
|
|
||||||
- Withdrawal code : :code',
|
- Withdrawal code : :code',
|
||||||
'successful_user_send_to_wallet' => 'Sending money account to account.
|
'successful_user_send_to_wallet' => 'Sending money account to account.
|
||||||
Transaction information :
|
Transaction information :
|
||||||
|
|
|
@ -29,26 +29,41 @@ Bienvenue dans la famille iLink World !!!
|
||||||
|
|
||||||
Cordialement,
|
Cordialement,
|
||||||
Equipe iLinkWorld.',
|
Equipe iLinkWorld.',
|
||||||
'successful_deposit_ilink' => 'Dépot vers un wallet iLink. Code de l\'utilisateur : :user_code
|
'successful_agent_deposit_wallet_ilink' => 'Dépot d\'argent vers un compte iLink
|
||||||
Informations de la transaction :
|
Informations de la transaction :
|
||||||
- Transaction ID : :id_transaction
|
- Transaction ID : :id_transaction
|
||||||
- Montant : :amount
|
- Montant : :amount
|
||||||
- Frais et Taxes : :fees
|
- Frais et Taxes : :fees
|
||||||
- Pays de départ : :init_country
|
- Pays de départ : :init_country
|
||||||
- Montant net : :net_init
|
- Montant net : :net_init
|
||||||
- Montant net : :net_final
|
|
||||||
- Pays de destination : :final_country
|
- Pays de destination : :final_country
|
||||||
|
- Montant net : :net_final
|
||||||
- Compte destinataire : :user_code',
|
- Compte destinataire : :user_code',
|
||||||
'successful_send_cash' => 'Envoi d\'argent effectué par :sender_name à :receiver_name.
|
'successful_agent_deposit_other_wallet' => 'Dépot d\'argent vers un autre compte
|
||||||
Informations de la transaction :
|
Informations de la transaction :
|
||||||
- Transaction ID : :id_transaction
|
- Transaction ID : :id_transaction
|
||||||
- Montant de la transaction : :amount
|
- Montant : :amount
|
||||||
- Montant net du pays de départ : :net_init
|
- Frais et Taxes : :fees
|
||||||
- Montant net du pays de destination : :net_final
|
- Pays de départ : :init_country
|
||||||
- Frais : :fees
|
- Montant net : :net_init
|
||||||
- Taxe : :tax
|
- Pays de destination : :final_country
|
||||||
|
- 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 :
|
||||||
|
- Transaction ID : :id_transaction
|
||||||
|
- Montant : :amount
|
||||||
|
- Frais et Taxes : :fees
|
||||||
|
- Pays de départ : :init_country
|
||||||
|
- Montant net : :net_init
|
||||||
|
- Pays de destination : :final_country
|
||||||
|
- Montant net : :net_final
|
||||||
|
- Noms de l\'emetteur : :sender_name
|
||||||
|
- Noms du destinataire : :receiver_name.
|
||||||
- Code de retrait : :code',
|
- Code de retrait : :code',
|
||||||
'successful_user_send_to_wallet' => 'Envoi d\'argent compte à compte.
|
'successful_user_send_to_wallet' => 'Envoi d\'argent compte à compte
|
||||||
Informations de la transaction :
|
Informations de la transaction :
|
||||||
- Numéro : :id_transaction
|
- Numéro : :id_transaction
|
||||||
- Montant : :amount
|
- Montant : :amount
|
||||||
|
|
Loading…
Reference in New Issue