+ Adding User - Envoi wallet à wallet
This commit is contained in:
parent
7e3ce25b86
commit
ffd6d77a1e
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\Country;
|
||||||
use App\Traits\ApiResponser;
|
use App\Traits\ApiResponser;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
@ -20,9 +21,20 @@ class HelperController extends Controller
|
||||||
|
|
||||||
public function countries()
|
public function countries()
|
||||||
{
|
{
|
||||||
$countries = DB::select('SELECT id , name , currency_code FROM countries_currencies WHERE id IN (
|
$countries = DB::select('SELECT id , name , code_dial FROM countries 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
|
SELECT distinct n.country_id FROM networks n WHERE n.status = 1
|
||||||
)');
|
)');
|
||||||
return $this->successResponse($countries);
|
return $this->successResponse($countries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function paying_networks($id_country)
|
||||||
|
{
|
||||||
|
$networks = DB::select('SELECT id , name FROM networks WHERE id IN ( SELECT distinct id_network FROM paying_networks )
|
||||||
|
AND status = 1 AND country_id = :id;',['id'=>$id_country]);
|
||||||
|
return $this->successResponse($networks);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function country($code_dial){
|
||||||
|
return $this->successResponse(Country::where('code_dial',$code_dial)->firstOrFail());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,15 +59,11 @@ class UserController extends Controller
|
||||||
}
|
}
|
||||||
// dd($request->all());
|
// dd($request->all());
|
||||||
$this->validate($request, [
|
$this->validate($request, [
|
||||||
'id_network' => 'required|integer|min:0|not_in:0',
|
|
||||||
'id_country' => 'required|integer|min:0|not_in:0',
|
|
||||||
'document_image_front' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048',
|
'document_image_front' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048',
|
||||||
'document_image_back' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048',
|
'document_image_back' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048',
|
||||||
'user_image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048',
|
'user_image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$identification->idNetwork = $request->id_network;
|
|
||||||
$identification->country_id = $request->id_country;
|
|
||||||
$identification->document_image_front = $this->uploadImage($request,'document_image_front','D-F',"documents");
|
$identification->document_image_front = $this->uploadImage($request,'document_image_front','D-F',"documents");
|
||||||
$identification->document_image_back = $this->uploadImage($request,'document_image_back','D-B',"documents");
|
$identification->document_image_back = $this->uploadImage($request,'document_image_back','D-B',"documents");
|
||||||
$identification->user_image = $this->uploadImage($request,'user_image','U',"photos");
|
$identification->user_image = $this->uploadImage($request,'user_image','U',"photos");
|
||||||
|
|
|
@ -6,6 +6,7 @@ use App\Models\AgentPlus;
|
||||||
use App\Models\CodeGenerer;
|
use App\Models\CodeGenerer;
|
||||||
use App\Models\ConfigWallet;
|
use App\Models\ConfigWallet;
|
||||||
use App\Models\NetworksAgent;
|
use App\Models\NetworksAgent;
|
||||||
|
use App\Models\PayingNetwork;
|
||||||
use App\Models\TypeIlinkTransaction;
|
use App\Models\TypeIlinkTransaction;
|
||||||
use App\Models\PaliersConfigWallet;
|
use App\Models\PaliersConfigWallet;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
@ -41,26 +42,37 @@ class iLinkTransactionController extends Controller
|
||||||
$transaction = new WalletIlinkTransaction();
|
$transaction = new WalletIlinkTransaction();
|
||||||
$this->validate($request, [
|
$this->validate($request, [
|
||||||
'type' => 'required|integer|min:0|not_in:0',
|
'type' => 'required|integer|min:0|not_in:0',
|
||||||
'id_wallet_agent' => 'integer|min:0|not_in:0',
|
'id_wallet_agent' => 'required_without:id_wallet_user|integer|min:0|not_in:0',
|
||||||
'id_wallet_user' => 'integer|min:0|not_in:0',
|
'id_wallet_user' => 'required_without:id_wallet_agent|integer|min:0|not_in:0',
|
||||||
'password' => 'required'
|
'id_network' => 'required_with:id_wallet_user|integer|min:0|not_in:0',
|
||||||
|
'password' => 'required',
|
||||||
|
'montant' => 'required|numeric|min:0|not_in:0',
|
||||||
]);
|
]);
|
||||||
$type = TypeIlinkTransaction::findOrFail($request->type);
|
$type = TypeIlinkTransaction::findOrFail($request->type);
|
||||||
|
|
||||||
$walletAgent = Wallet::findOrFail($request->get('id_wallet_agent'));
|
if (isset($request->id_wallet_agent)) {
|
||||||
$network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent);
|
$walletAgent = Wallet::findOrFail($request->get('id_wallet_agent'));
|
||||||
// Configuratrion du wallet
|
$network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent);
|
||||||
$config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail();
|
// Configuratrion du wallet
|
||||||
|
$config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail();
|
||||||
|
|
||||||
// Recuperation des wallets hyperviseur et superviseur
|
// Recuperation des wallets hyperviseur et superviseur
|
||||||
$codeGenerer = CodeGenerer::findOrFail($network_agent->codeGenerer_id);
|
$codeGenerer = CodeGenerer::findOrFail($network_agent->codeGenerer_id);
|
||||||
$superviseur = AgentPlus::where('code_membre', $codeGenerer->code_parrain)->firstOrFail();
|
$superviseur = AgentPlus::where('code_membre', $codeGenerer->code_parrain)->firstOrFail();
|
||||||
$hyperviseur = AgentPlus::where('code_membre', $superviseur->code_parrain)->firstOrFail();
|
$hyperviseur = AgentPlus::where('code_membre', $superviseur->code_parrain)->firstOrFail();
|
||||||
|
|
||||||
|
$wallet_agent_sup = WalletAgent::where('agent_id', $superviseur->id)->firstOrFail();
|
||||||
|
$wallet_agent_hyp = WalletAgent::where('agent_id', $hyperviseur->id)->firstOrFail();
|
||||||
|
$walletSuperviseur = Wallet::findOrFail($wallet_agent_sup->wallet_id);
|
||||||
|
$walletHyperviseur = Wallet::findOrFail($wallet_agent_hyp->wallet_id);
|
||||||
|
} elseif (isset($request->id_wallet_user)) {
|
||||||
|
$config = ConfigWallet::where('id_network', $request->id_network)->firstOrFail();
|
||||||
|
|
||||||
|
$hyperviseur = AgentPlus::where('category', 'hyper')->where('network_id', $request->id_network)->firstOrFail();
|
||||||
|
$wallet_agent_hyp = WalletAgent::where('agent_id', $hyperviseur->id)->firstOrFail();
|
||||||
|
$walletHyperviseur = Wallet::findOrFail($wallet_agent_hyp->wallet_id);
|
||||||
|
}
|
||||||
|
|
||||||
$wallet_agent_sup = WalletAgent::where('agent_id', $superviseur->id)->firstOrFail();
|
|
||||||
$wallet_agent_hyp = WalletAgent::where('agent_id', $hyperviseur->id)->firstOrFail();
|
|
||||||
$walletSuperviseur = Wallet::findOrFail($wallet_agent_sup->wallet_id);
|
|
||||||
$walletHyperviseur = Wallet::findOrFail($wallet_agent_hyp->wallet_id);
|
|
||||||
|
|
||||||
$taxesNationales = array_values(array_filter($config->taxes->all(), function ($tax) {
|
$taxesNationales = array_values(array_filter($config->taxes->all(), function ($tax) {
|
||||||
return $tax->destination == 'national';
|
return $tax->destination == 'national';
|
||||||
|
@ -97,7 +109,39 @@ class iLinkTransactionController extends Controller
|
||||||
|
|
||||||
switch ($type->id) {
|
switch ($type->id) {
|
||||||
case 1: //User - Envoi wallet à wallet
|
case 1: //User - Envoi wallet à wallet
|
||||||
|
$this->validate($request, $transaction->send_wallet_wallet_rules());
|
||||||
|
$walletUser = WalletsUser::findOrFail($request->id_wallet_user);
|
||||||
|
$user = User::findOrFail($walletUser->idUser);
|
||||||
|
if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) {
|
||||||
|
$transaction->frais = $frais = ($request->init_country != $request->final_country) ? $this->calculateFees($plr_user_wallet_wallet, $request->montant) : $this->calculateFees($plr_user_wallet_wallet_national, $request->montant);
|
||||||
|
$transaction->taxe = $taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
|
||||||
|
$transaction->montant_depot = $montantDepot = $transaction->montant - $frais - $taxe;
|
||||||
|
$reseauPayeur = PayingNetwork::where('id_network',$request->network_destinataire)->where('id_configWallet',$config->id)->first();
|
||||||
|
if($reseauPayeur){ //Si le reseau existe chez iLink
|
||||||
|
$transaction->part_reseau_payeur = $frais* $reseauPayeur->taux_partage / 100;
|
||||||
|
$transaction->part_reseau_emetteur = $frais - $transaction->part_reseau_payeur;
|
||||||
|
$walletHyperviseur->balance_com += $transaction->part_reseau_emetteur;
|
||||||
|
$reseauPayeur->balance_com += $transaction->part_reseau_payeur;
|
||||||
|
$reseauPayeur->save();
|
||||||
|
}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();
|
||||||
|
$walletDestinataire->balance += $montantDepot;
|
||||||
|
$walletDestinataire->save();
|
||||||
|
}else{
|
||||||
|
//Emettre requete SSL vers wallet correspondant
|
||||||
|
}
|
||||||
|
$walletUser->balance -= $transaction->montant;
|
||||||
|
$walletHyperviseur->save();
|
||||||
|
$walletUser->save();
|
||||||
|
$transaction->save();
|
||||||
|
return $this->successResponse(trans('messages.successful_transaction'));
|
||||||
|
} else {
|
||||||
|
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 2: //User - Envoi de wallet à carte
|
case 2: //User - Envoi de wallet à carte
|
||||||
|
|
||||||
|
@ -131,37 +175,97 @@ class iLinkTransactionController extends Controller
|
||||||
$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)) {
|
||||||
$transaction = WalletIlinkTransaction::find($request->id_transaction);
|
$transaction = WalletIlinkTransaction::find($request->id_transaction);
|
||||||
if($transaction){
|
if ($transaction) {
|
||||||
if($transaction->status_retrait == 0){
|
if ($transaction->status_retrait == 0) {
|
||||||
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)) {
|
||||||
$part_ag = floatval($transaction->frais * $config->taux_com_ag_retrait_cash/ 100) ;
|
if ($transaction->montant_retrait == $request->montant) {
|
||||||
$part_sup = floatval($transaction->frais * $config->taux_com_sup_retrait_cash/ 100);
|
$part_ag = floatval($transaction->frais * $config->taux_com_ag_retrait_cash / 100);
|
||||||
$walletAgent->balance_princ -= $transaction->montant_retrait;
|
$part_sup = floatval($transaction->frais * $config->taux_com_sup_retrait_cash / 100);
|
||||||
$walletAgent->balance_com += $part_ag;
|
$walletAgent->balance_princ += $transaction->montant_retrait;
|
||||||
$walletSuperviseur->balance_com += $part_sup ;
|
$walletAgent->balance_com += $part_ag;
|
||||||
$walletHyperviseur->balance_com -= ($part_ag + $part_sup);
|
$walletSuperviseur->balance_com += $part_sup;
|
||||||
$transaction->status_retrait = 1;
|
$walletHyperviseur->balance_com -= ($part_ag + $part_sup);
|
||||||
$transaction->date_retrait = new \DateTime();
|
$transaction->status_retrait = 1;
|
||||||
$walletAgent->save();
|
$transaction->date_retrait = new \DateTime();
|
||||||
$walletSuperviseur->save();
|
$walletAgent->save();
|
||||||
$walletHyperviseur->save();
|
$walletSuperviseur->save();
|
||||||
$transaction->save();
|
$walletHyperviseur->save();
|
||||||
return $this->successResponse(trans('messages.successful_transaction'));
|
$transaction->save();
|
||||||
}else{
|
return $this->successResponse(trans('messages.successful_transaction'));
|
||||||
|
} else {
|
||||||
|
return $this->errorResponse('Montant de retrait incorrect');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
return $this->errorResponse('Code de retrait invalide');
|
return $this->errorResponse('Code de retrait invalide');
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
return $this->errorResponse('Retrait déjà éffectuée');
|
return $this->errorResponse('Retrait déjà éffectuée');
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
return $this->errorResponse('Cette transaction n\'existe pas',Response::HTTP_NOT_FOUND);
|
return $this->errorResponse('Cette transaction n\'existe pas', Response::HTTP_NOT_FOUND);
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 13: // Agent - Retrait de la carte vers cash
|
case 13: // Agent - Retrait de la carte vers cash
|
||||||
|
$this->validate($request, $transaction->card_rules());
|
||||||
|
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
||||||
|
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
||||||
|
$expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date);
|
||||||
|
if (!$expiration_date)
|
||||||
|
$expiration_date = new \DateTime();
|
||||||
|
$transaction->expiration_date = $expiration_date;
|
||||||
|
|
||||||
|
$frais = floatval($request->montant * $config->taux_com_wallet_ag_carte_cash / 100);
|
||||||
|
$montantRetrait = $transaction->montant + $frais;
|
||||||
|
$transaction->montant_retrait = $montantRetrait;
|
||||||
|
$body['amount'] = $montantRetrait;
|
||||||
|
$body['card_number'] = $request->numero_carte;
|
||||||
|
$body['cvv'] = $request->cvv;
|
||||||
|
$body['expiry_date'] = $expiration_date->format('Y-m');
|
||||||
|
|
||||||
|
// $response = $client->post('fund-transfer-api/v1/transaction/pull', ['json' => $body]);
|
||||||
|
$code = 200; // $response->getStatusCode();
|
||||||
|
|
||||||
|
if ($code == 200) {
|
||||||
|
$banqueCommission = floatval($frais * $config->taux_com_banque_retrait_carte_cash / 100);
|
||||||
|
$transaction->commission_banque = $banqueCommission;
|
||||||
|
// 2---> Emmètre via API sécurisé SSL une requête de débit de notre
|
||||||
|
//compte marchand du (Part de la banque partenaire en %
|
||||||
|
//pour le dépôtqui s’applique sur les frais minimum) et créditer
|
||||||
|
//le compte des opérations défini avec notre banque
|
||||||
|
//partenaire
|
||||||
|
|
||||||
|
$walletAgent->balance_princ += $transaction->montant;
|
||||||
|
|
||||||
|
$agentCommission = floatval($frais * $config->taux_com_ag_retrait_carte_cash / 100);
|
||||||
|
$superviseurCommission = floatval($frais * $config->taux_com_sup_retrait_carte_cash / 100);
|
||||||
|
$hyperviseurCommission = floatval($frais * $$config->taux_com_hyp_retrait_carte_cash / 100);
|
||||||
|
|
||||||
|
$walletAgent->balance_com += $agentCommission;
|
||||||
|
$transaction->commission_ag = $agentCommission;
|
||||||
|
$walletSuperviseur->balance_com += $superviseurCommission;
|
||||||
|
$transaction->commission_sup = $superviseurCommission;
|
||||||
|
$walletHyperviseur->balance_com += $hyperviseurCommission;
|
||||||
|
$transaction->commission_hyp = $hyperviseurCommission;
|
||||||
|
$transaction->id_wallet_ag = $walletAgent->id;
|
||||||
|
$transaction->id_wallet_sup = $walletSuperviseur->id;
|
||||||
|
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
||||||
|
$transaction->frais = $frais;
|
||||||
|
$transaction->date = new \DateTime();
|
||||||
|
$walletAgent->save();
|
||||||
|
$walletSuperviseur->save();
|
||||||
|
$walletHyperviseur->save();
|
||||||
|
$transaction->save();
|
||||||
|
return $this->successResponse(trans('messages.successful_transaction'));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 14: // Agent - Envoi de cash vers wallet iLink
|
case 14: // Agent - Envoi de cash vers wallet iLink
|
||||||
$this->validate($request, $transaction->cash_wallet_rules());
|
$this->validate($request, $transaction->cash_wallet_rules());
|
||||||
|
@ -198,8 +302,8 @@ class iLinkTransactionController extends Controller
|
||||||
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
||||||
$transaction->save();
|
$transaction->save();
|
||||||
$this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_deposit_ilink',
|
$this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_deposit_ilink',
|
||||||
['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant,$request->init_country), 'net_init' =>$this->toMoney($montantDepot,$request->init_country) ,
|
['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),
|
'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' => $request->user_code]));
|
'user_code' => $request->user_code]));
|
||||||
return $this->successResponse(trans('messages.successful_transaction'));
|
return $this->successResponse(trans('messages.successful_transaction'));
|
||||||
} else {
|
} else {
|
||||||
|
@ -243,7 +347,7 @@ class iLinkTransactionController extends Controller
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 16: // Agent - Envoi de cash vers une carte visa
|
case 16: // Agent - Envoi de cash vers une carte visa
|
||||||
$this->validate($request, $transaction->cash_cash_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)) {
|
||||||
$expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date);
|
$expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date);
|
||||||
|
@ -341,9 +445,9 @@ class iLinkTransactionController extends Controller
|
||||||
$transaction->save();
|
$transaction->save();
|
||||||
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash',
|
$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->prenom_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, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantRetrait, $request->init_country),
|
||||||
'net_final' =>$this->convertMoney($montantRetrait,$request->init_country,$request->final_country) ,'fees' => $this->toMoney($frais,$request->init_country) ,'tax' => $this->toMoney($taxe,$request->init_country),
|
'net_final' => $this->convertMoney($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 )]));
|
'code' => wordwrap($code_retrait, 4, ' ', true)]));
|
||||||
return $this->successResponse(trans('messages.successful_transaction'));
|
return $this->successResponse(trans('messages.successful_transaction'));
|
||||||
} else {
|
} else {
|
||||||
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Reliese Model.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class PayingNetwork
|
||||||
|
*
|
||||||
|
* @property int $id
|
||||||
|
* @property int $id_network
|
||||||
|
* @property float $taux_partage
|
||||||
|
* @property float $balance_com
|
||||||
|
* @property int $id_configWallet
|
||||||
|
*
|
||||||
|
* @property Network $network
|
||||||
|
* @property ConfigWallet $config_wallet
|
||||||
|
*
|
||||||
|
* @package App\Models
|
||||||
|
*/
|
||||||
|
class PayingNetwork extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'paying_networks';
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
protected $casts = [
|
||||||
|
'id_network' => 'int',
|
||||||
|
'taux_partage' => 'float',
|
||||||
|
'balance_com' => 'float',
|
||||||
|
'id_configWallet' => 'int'
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'id_network',
|
||||||
|
'taux_partage',
|
||||||
|
'balance_com',
|
||||||
|
'id_configWallet'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function network()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Network::class, 'id_network');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function config_wallet()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(ConfigWallet::class, 'id_configWallet');
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,10 +30,13 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
* @property string $nom_emetteur
|
* @property string $nom_emetteur
|
||||||
* @property string $prenom_emetteur
|
* @property string $prenom_emetteur
|
||||||
* @property string $email_emetteur
|
* @property string $email_emetteur
|
||||||
|
* @property int $network_emetteur
|
||||||
* @property string $type_document_emetteur
|
* @property string $type_document_emetteur
|
||||||
* @property string $id_document_emetteur
|
* @property string $id_document_emetteur
|
||||||
* @property float $frais
|
* @property float $frais
|
||||||
* @property float $taxe
|
* @property float $taxe
|
||||||
|
* @property float $part_reseau_emetteur
|
||||||
|
* @property float $part_reseau_payeur
|
||||||
* @property string $numero_carte
|
* @property string $numero_carte
|
||||||
* @property Carbon $expiration_date
|
* @property Carbon $expiration_date
|
||||||
* @property int $init_country
|
* @property int $init_country
|
||||||
|
@ -60,100 +63,106 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
*/
|
*/
|
||||||
class WalletIlinkTransaction extends Model
|
class WalletIlinkTransaction extends Model
|
||||||
{
|
{
|
||||||
protected $table = 'wallet_ilink_transaction';
|
protected $table = 'wallet_ilink_transaction';
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'montant' => 'float',
|
'montant' => 'float',
|
||||||
'montant_depot' => 'float',
|
'montant_depot' => 'float',
|
||||||
'montant_retrait' => 'float',
|
'montant_retrait' => 'float',
|
||||||
'status_retrait' => 'int',
|
'status_retrait' => 'int',
|
||||||
'network_destinataire' => 'int',
|
'network_destinataire' => 'int',
|
||||||
'frais' => 'float',
|
'network_emetteur' => 'int',
|
||||||
'taxe' => 'float',
|
'frais' => 'float',
|
||||||
'init_country' => 'int',
|
'taxe' => 'float',
|
||||||
'final_country' => 'int',
|
'part_reseau_emetteur' => 'float',
|
||||||
'commission_banque' => 'float',
|
'part_reseau_payeur' => 'float',
|
||||||
'commission_ag' => 'float',
|
'init_country' => 'int',
|
||||||
'commission_sup' => 'float',
|
'final_country' => 'int',
|
||||||
'commission_hyp' => 'float',
|
'commission_banque' => 'float',
|
||||||
'id_wallet_user' => 'int',
|
'commission_ag' => 'float',
|
||||||
'id_wallet_ag' => 'int',
|
'commission_sup' => 'float',
|
||||||
'id_wallet_sup' => 'int',
|
'commission_hyp' => 'float',
|
||||||
'id_wallet_hyp' => 'int',
|
'id_wallet_user' => 'int',
|
||||||
'canceled' => 'int',
|
'id_wallet_ag' => 'int',
|
||||||
'type' => 'int'
|
'id_wallet_sup' => 'int',
|
||||||
];
|
'id_wallet_hyp' => 'int',
|
||||||
|
'canceled' => 'int',
|
||||||
|
'type' => 'int'
|
||||||
|
];
|
||||||
|
|
||||||
protected $dates = [
|
protected $dates = [
|
||||||
'date_retrait',
|
|
||||||
'expiration_date',
|
|
||||||
'date'
|
|
||||||
];
|
|
||||||
|
|
||||||
protected $fillable = [
|
|
||||||
'montant',
|
|
||||||
'montant_depot',
|
|
||||||
'montant_retrait',
|
|
||||||
'encrypted_code_retrait',
|
|
||||||
'code_retrait_salt',
|
|
||||||
'status_retrait',
|
|
||||||
'date_retrait',
|
'date_retrait',
|
||||||
'id_destinataire',
|
'expiration_date',
|
||||||
'type_id_destinataire',
|
'date'
|
||||||
'network_destinataire',
|
];
|
||||||
'type_document_destinataire',
|
|
||||||
'id_document_destinataire',
|
|
||||||
'nom_destinataire',
|
|
||||||
'prenom_destinataire',
|
|
||||||
'nom_emetteur',
|
|
||||||
'prenom_emetteur',
|
|
||||||
'email_emetteur',
|
|
||||||
'type_document_emetteur',
|
|
||||||
'id_document_emetteur',
|
|
||||||
'frais',
|
|
||||||
'taxe',
|
|
||||||
'numero_carte',
|
|
||||||
'expiration_date',
|
|
||||||
'init_country',
|
|
||||||
'final_country',
|
|
||||||
'commission_banque',
|
|
||||||
'commission_ag',
|
|
||||||
'commission_sup',
|
|
||||||
'commission_hyp',
|
|
||||||
'id_wallet_user',
|
|
||||||
'id_wallet_ag',
|
|
||||||
'id_wallet_sup',
|
|
||||||
'id_wallet_hyp',
|
|
||||||
'canceled',
|
|
||||||
'type',
|
|
||||||
'date'
|
|
||||||
];
|
|
||||||
|
|
||||||
public function country()
|
protected $fillable = [
|
||||||
{
|
'montant',
|
||||||
return $this->belongsTo(Country::class, 'final_country');
|
'montant_depot',
|
||||||
}
|
'montant_retrait',
|
||||||
|
'encrypted_code_retrait',
|
||||||
|
'code_retrait_salt',
|
||||||
|
'status_retrait',
|
||||||
|
'date_retrait',
|
||||||
|
'id_destinataire',
|
||||||
|
'type_id_destinataire',
|
||||||
|
'network_destinataire',
|
||||||
|
'type_document_destinataire',
|
||||||
|
'id_document_destinataire',
|
||||||
|
'nom_destinataire',
|
||||||
|
'prenom_destinataire',
|
||||||
|
'nom_emetteur',
|
||||||
|
'prenom_emetteur',
|
||||||
|
'email_emetteur',
|
||||||
|
'network_emetteur',
|
||||||
|
'type_document_emetteur',
|
||||||
|
'id_document_emetteur',
|
||||||
|
'frais',
|
||||||
|
'taxe',
|
||||||
|
'part_reseau_emetteur',
|
||||||
|
'part_reseau_payeur',
|
||||||
|
'numero_carte',
|
||||||
|
'expiration_date',
|
||||||
|
'init_country',
|
||||||
|
'final_country',
|
||||||
|
'commission_banque',
|
||||||
|
'commission_ag',
|
||||||
|
'commission_sup',
|
||||||
|
'commission_hyp',
|
||||||
|
'id_wallet_user',
|
||||||
|
'id_wallet_ag',
|
||||||
|
'id_wallet_sup',
|
||||||
|
'id_wallet_hyp',
|
||||||
|
'canceled',
|
||||||
|
'type',
|
||||||
|
'date'
|
||||||
|
];
|
||||||
|
|
||||||
public function wallet()
|
public function country()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Wallet::class, 'id_wallet_sup');
|
return $this->belongsTo(Country::class, 'final_country');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function wallets_user()
|
public function wallet()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(WalletsUser::class, 'id_wallet_user');
|
return $this->belongsTo(Wallet::class, 'id_wallet_sup');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function type_ilink_transaction()
|
public function wallets_user()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(TypeIlinkTransaction::class, 'type');
|
return $this->belongsTo(WalletsUser::class, 'id_wallet_user');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function network()
|
public function type_ilink_transaction()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Network::class, 'network_destinataire');
|
return $this->belongsTo(TypeIlinkTransaction::class, 'type');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function network()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Network::class, 'network_emetteur');
|
||||||
|
}
|
||||||
|
|
||||||
// Regles de validation
|
// Regles de validation
|
||||||
//Envoi de cash vers wallet iLink
|
//Envoi de cash vers wallet iLink
|
||||||
|
@ -163,14 +172,12 @@ class WalletIlinkTransaction extends Model
|
||||||
'user_code'=>'required',
|
'user_code'=>'required',
|
||||||
'init_country' =>'required|integer|min:0|not_in:0',
|
'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',
|
||||||
'montant'=> 'required|numeric|min:0|not_in:0',
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function card_rules()
|
public function card_rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'montant'=> 'required|numeric|min:0|not_in:0',
|
|
||||||
'numero_carte'=>'required',
|
'numero_carte'=>'required',
|
||||||
'cvv'=>'required_if:facade,front|size:3',
|
'cvv'=>'required_if:facade,front|size:3',
|
||||||
'expiration_date'=>'required_if:facade,front|date_format:m/y|after_or_equal:today',
|
'expiration_date'=>'required_if:facade,front|date_format:m/y|after_or_equal:today',
|
||||||
|
@ -191,7 +198,6 @@ class WalletIlinkTransaction extends Model
|
||||||
'type_document_destinataire'=>'required',
|
'type_document_destinataire'=>'required',
|
||||||
'id_document_destinataire'=>'required',
|
'id_document_destinataire'=>'required',
|
||||||
'id_destinataire' => 'required',
|
'id_destinataire' => 'required',
|
||||||
'montant'=> 'required|numeric|min:0|not_in:0'
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,7 +205,15 @@ class WalletIlinkTransaction extends Model
|
||||||
return [
|
return [
|
||||||
'id_transaction' =>'required|integer|min:0|not_in:0',
|
'id_transaction' =>'required|integer|min:0|not_in:0',
|
||||||
'code_retrait' =>'required|size:16',
|
'code_retrait' =>'required|size:16',
|
||||||
'montant'=> 'required|numeric|min:0|not_in:0'
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function send_wallet_wallet_rules(){
|
||||||
|
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',
|
||||||
|
'network_destinataire'=>'required|integer|min:0|not_in:0',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
//});
|
//});
|
||||||
// Helper routes
|
// Helper routes
|
||||||
$router->get('countries','HelperController@countries');
|
$router->get('countries','HelperController@countries');
|
||||||
|
$router->get('countries/{dial_code}','HelperController@country');
|
||||||
|
$router->get('paying_networks/{id_country}','HelperController@paying_networks');
|
||||||
|
|
||||||
// Transactions routes
|
// Transactions routes
|
||||||
$router->group(['prefix' => '/transactions'] , function () use ($router){
|
$router->group(['prefix' => '/transactions'] , function () use ($router){
|
||||||
|
|
Loading…
Reference in New Issue