+ Fix fetchIdentification bug

This commit is contained in:
Djery-Tom 2020-06-19 20:31:32 +01:00
parent c6ae0cb47a
commit f2e8318347
5 changed files with 159 additions and 100 deletions

View File

@ -82,7 +82,8 @@ class UserController extends Controller
public function fetchIdentification($user_phone) public function fetchIdentification($user_phone)
{ {
// return Identification::where('id_user', $id_user)->firstOrFail(); // return Identification::where('id_user', $id_user)->firstOrFail();
$user = User::where('phone', $user_phone)->firstOrFail(); $user = User::where('phone', $user_phone)->first();
if($user){
$identification = Identification::where('id_user', $user->id)->first(); $identification = Identification::where('id_user', $user->id)->first();
$data['isIdentified'] = false; $data['isIdentified'] = false;
$data['isIdentifiedValidated'] = false; $data['isIdentifiedValidated'] = false;
@ -92,16 +93,25 @@ class UserController extends Controller
$data['isIdentifiedValidated'] = $identification->status == 1 ; $data['isIdentifiedValidated'] = $identification->status == 1 ;
} }
return $this->successResponse($data); return $this->successResponse($data);
}else{
return $this->errorResponse(trans('errors.user_phone_not_exist'),Response::HTTP_NOT_FOUND);
}
} }
public function verifyIdentification($user_phone) public function verifyIdentification($user_phone)
{ {
$user = User::where('phone', $user_phone)->firstOrFail(); $user = User::where('phone', $user_phone)->first();
if($user){
$identification = Identification::where('id_user', $user->id)->first(); $identification = Identification::where('id_user', $user->id)->first();
if($identification){ if($identification){
return $this->errorResponse(trans('messages.user_identificated')); return $this->errorResponse(trans('messages.user_identificated'));
}else }else
return $this->successResponse($user); return $this->successResponse($user);
}else{
return $this->errorResponse(trans('errors.user_phone_not_exist'),Response::HTTP_NOT_FOUND);
}
} }
private function generateRandomString($length = 10) private function generateRandomString($length = 10)

View File

@ -43,6 +43,7 @@ class iLinkTransactionController extends Controller
'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' => 'integer|min:0|not_in:0',
'id_wallet_user' => 'integer|min:0|not_in:0', 'id_wallet_user' => 'integer|min:0|not_in:0',
'password'=>'required'
]); ]);
$type = TypeIlinkTransaction::findOrFail($request->type); $type = TypeIlinkTransaction::findOrFail($request->type);
@ -133,13 +134,15 @@ class iLinkTransactionController extends Controller
break; break;
case 14: // Agent - Envoi de cash vers wallet iLink case 14: // Agent - Envoi de cash vers wallet iLink
$this->validate($request, $transaction->first_rules()); $this->validate($request, $transaction->first_rules());
$agent = AgentPlus::findOrFail($network_agent->agent_id);
if($this->checkPassword($request->password,$agent->encrypted_password,$agent->salt)){
$user = User::where('user_code', $request->user_code)->firstOrFail(); $user = User::where('user_code', $request->user_code)->firstOrFail();
if($this->checkPassword($request->password,$user->encrypted_password,$user->salt)){
$walletUser = WalletsUser::where('idUser', $user->id)->firstOrFail(); $walletUser = WalletsUser::where('idUser', $user->id)->firstOrFail();
$frais = ($request->init_country != $request->final_country) ? $this->calculateFees($plr_agent_depot_wallet_ilink, $request->montant) : $this->calculateFees($plr_agent_depot_wallet_ilink_national, $request->montant); $frais = ($request->init_country != $request->final_country) ? $this->calculateFees($plr_agent_depot_wallet_ilink, $request->montant) : $this->calculateFees($plr_agent_depot_wallet_ilink_national, $request->montant);
$taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais); $taxe = ($request->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_depot = $montantDepot;
$walletUser->balance += $montantDepot; $walletUser->balance += $montantDepot;
$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);
@ -170,10 +173,45 @@ 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->first_rules());
$agent = AgentPlus::findOrFail($network_agent->agent_id);
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);
$taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
$montantDepot = $request->montant - $frais - $taxe;
$transaction->montant_depot = $montantDepot;
//Emettre une trame securise pour crediter le wallet utilisateur
// $walletUser->balance += $montantDepot;
// $transaction->id_destinataire = r
$commisionAgent = floatval($frais * $config->taux_com_ag_envoi_cash / 100);
$commisionSuper = floatval($frais * $config->taux_com_sup_envoi_cash / 100);
$commisionHyper = floatval($frais * $config->taux_com_hyp_envoi_cash / 100);
$walletAgent->balance_princ -= $transaction->montant;
$walletAgent->balance_com += $commisionAgent;
$transaction->commission_ag = $commisionAgent;
$walletSuperviseur->balance_com += $commisionSuper;
$transaction->commission_sup = $commisionSuper;
$walletHyperviseur->balance_com += $commisionHyper;
$transaction->commission_hyp = $commisionHyper;
$transaction->taxe = $taxe;
$transaction->frais = $frais;
$transaction->date = new \DateTime();
$walletAgent->save();
$walletSuperviseur->save();
$walletHyperviseur->save();
$transaction->id_wallet_ag = $walletAgent->id;
$transaction->id_wallet_sup = $walletSuperviseur->id;
$transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->save();
}else{
return $this->errorResponse(trans('messages.incorrect_user_password'));
}
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->card_rules()); $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); $expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date);
if (!$expiration_date) if (!$expiration_date)
$expiration_date = new \DateTime(); $expiration_date = new \DateTime();
@ -181,7 +219,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_depot = $montantDepot;
$body['amount'] = $montantDepot; $body['amount'] = $montantDepot;
$body['card_number'] = $request->numero_carte; $body['card_number'] = $request->numero_carte;
$body['cvv'] = $request->cvv; $body['cvv'] = $request->cvv;
@ -225,10 +263,14 @@ class iLinkTransactionController extends Controller
} else { } else {
return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR); 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 17: // Agent - Envoi de cash vers cash case 17: // Agent - Envoi de cash vers cash
$this->validate($request, $transaction->cash_cash_rules()); $this->validate($request, $transaction->cash_cash_rules());
$agent = AgentPlus::findOrFail($network_agent->agent_id);
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); $frais = ($request->init_country != $request->final_country)? $this->calculateFees($plr_agent_cash_cash, $request->montant) : $this->calculateFees($plr_agent_cash_cash_national, $request->montant);
$taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); $taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais);
$montantRetrait = $request->montant - $frais - $taxe; $montantRetrait = $request->montant - $frais - $taxe;
@ -264,6 +306,9 @@ class iLinkTransactionController extends Controller
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash',['montant'=> $montantRetrait, $this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash',['montant'=> $montantRetrait,
'code'=> $code_retrait])); 'code'=> $code_retrait]));
return $this->successResponse(trans('messages.successful_transaction')); return $this->successResponse(trans('messages.successful_transaction'));
}else{
return $this->errorResponse(trans('messages.incorrect_user_password'));
}
break; break;
case 18: // Agent - Envoi de cash vers banque case 18: // Agent - Envoi de cash vers banque
// Indisponible // Indisponible

View File

@ -14,6 +14,7 @@ use Illuminate\Database\Eloquent\Model;
* *
* @property int $id * @property int $id
* @property float $montant * @property float $montant
* @property float $montant_depot
* @property float $montant_retrait * @property float $montant_retrait
* @property string $encrypted_code_retrait * @property string $encrypted_code_retrait
* @property string $code_retrait_salt * @property string $code_retrait_salt
@ -29,7 +30,7 @@ use Illuminate\Database\Eloquent\Model;
* @property string $prenom_emetteur * @property string $prenom_emetteur
* @property string $email_emetteur * @property string $email_emetteur
* @property string $type_document_emetteur * @property string $type_document_emetteur
* @property string $id_type_document_emetteur * @property string $id_document_emetteur
* @property float $frais * @property float $frais
* @property float $taxe * @property float $taxe
* @property string $numero_carte * @property string $numero_carte
@ -63,6 +64,7 @@ class WalletIlinkTransaction extends Model
protected $casts = [ protected $casts = [
'montant' => 'float', 'montant' => 'float',
'montant_depot' => 'float',
'montant_retrait' => 'float', 'montant_retrait' => 'float',
'status_retrait' => 'int', 'status_retrait' => 'int',
'network_destinataire' => 'int', 'network_destinataire' => 'int',
@ -89,6 +91,7 @@ class WalletIlinkTransaction extends Model
protected $fillable = [ protected $fillable = [
'montant', 'montant',
'montant_depot',
'montant_retrait', 'montant_retrait',
'encrypted_code_retrait', 'encrypted_code_retrait',
'code_retrait_salt', 'code_retrait_salt',
@ -104,7 +107,7 @@ class WalletIlinkTransaction extends Model
'prenom_emetteur', 'prenom_emetteur',
'email_emetteur', 'email_emetteur',
'type_document_emetteur', 'type_document_emetteur',
'id_type_document_emetteur', 'id_document_emetteur',
'frais', 'frais',
'taxe', 'taxe',
'numero_carte', 'numero_carte',
@ -158,7 +161,6 @@ class WalletIlinkTransaction extends Model
'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', 'montant'=> 'required|numeric|min:0|not_in:0',
'password'=>'required'
]; ];
} }

View File

@ -8,4 +8,5 @@ return [
'identification_carried_out' => 'Identification already carried out', 'identification_carried_out' => 'Identification already carried out',
'visa_api_failed'=> 'Request to API visa failed', 'visa_api_failed'=> 'Request to API visa failed',
'failed_transaction' => 'Failed transaction', 'failed_transaction' => 'Failed transaction',
'user_phone_not_exist' => 'This customer number does not exist',
]; ];

View File

@ -8,4 +8,5 @@ return [
'identification_carried_out' => 'Identification déjà éffectuée', 'identification_carried_out' => 'Identification déjà éffectuée',
'visa_api_failed'=> 'La requete vers l\'api visa a échouée', 'visa_api_failed'=> 'La requete vers l\'api visa a échouée',
'failed_transaction' => 'Transaction échouée', 'failed_transaction' => 'Transaction échouée',
'user_phone_not_exist' => 'Ce numéro client n\'existe pas',
]; ];