+ Fix fetchIdentification bug

This commit is contained in:
Djery-Tom 2020-06-19 19:33:10 +01:00
parent 12dc918736
commit c6ae0cb47a
7 changed files with 88 additions and 9 deletions

View File

@ -20,7 +20,9 @@ class HelperController extends Controller
public function countries()
{
$countries = DB::select('SELECT id , name FROM countries');
$countries = DB::select('SELECT id , name , currency_code 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
)');
return $this->successResponse($countries);
}
}

View File

@ -79,10 +79,11 @@ class UserController extends Controller
return $this->successResponse(trans('messages.validated_identification'));
}
public function fetchIdentification($id_user)
public function fetchIdentification($user_phone)
{
// return Identification::where('id_user', $id_user)->firstOrFail();
$identification = Identification::where('id_user', $id_user)->first();
$user = User::where('phone', $user_phone)->firstOrFail();
$identification = Identification::where('id_user', $user->id)->first();
$data['isIdentified'] = false;
$data['isIdentifiedValidated'] = false;
$data['data'] = $identification;

View File

@ -143,7 +143,8 @@ class iLinkTransactionController extends Controller
$walletUser->balance += $montantDepot;
$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_ag_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;
@ -215,6 +216,9 @@ class iLinkTransactionController extends Controller
$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'));
@ -223,7 +227,43 @@ class iLinkTransactionController extends Controller
}
break;
case 17: // Agent - Envoi de cash vers cash
$this->validate($request, $transaction->cash_cash_rules());
$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);
$montantRetrait = $request->montant - $frais - $taxe;
$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);
$transaction->montant_retrait = $montantRetrait;
$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->id_wallet_ag = $walletAgent->id;
$transaction->id_wallet_sup = $walletSuperviseur->id;
$transaction->id_wallet_hyp = $walletHyperviseur->id;
$code_retrait = $this->random_string();
$hash = $this->hashSSHA($code_retrait);
$transaction->encrypted_code_retrait = $hash['encrypted'];
$transaction->code_retrait_salt = $hash['salt'];
$walletAgent->balance_princ -= $transaction->montant;
$transaction->frais = $frais;
$transaction->taxe = $taxe;
$transaction->date = new \DateTime();
$transaction->status_retrait = 0;
$walletAgent->save();
$walletSuperviseur->save();
$walletHyperviseur->save();
$transaction->save();
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash',['montant'=> $montantRetrait,
'code'=> $code_retrait]));
return $this->successResponse(trans('messages.successful_transaction'));
break;
case 18: // Agent - Envoi de cash vers banque
// Indisponible

View File

@ -15,7 +15,8 @@ use Illuminate\Database\Eloquent\Model;
* @property int $id
* @property float $montant
* @property float $montant_retrait
* @property string $code_retrait
* @property string $encrypted_code_retrait
* @property string $code_retrait_salt
* @property int $status_retrait
* @property string $id_destinataire
* @property string $type_id_destinataire
@ -26,6 +27,9 @@ use Illuminate\Database\Eloquent\Model;
* @property string $prenom_destinataire
* @property string $nom_emetteur
* @property string $prenom_emetteur
* @property string $email_emetteur
* @property string $type_document_emetteur
* @property string $id_type_document_emetteur
* @property float $frais
* @property float $taxe
* @property string $numero_carte
@ -86,7 +90,8 @@ class WalletIlinkTransaction extends Model
protected $fillable = [
'montant',
'montant_retrait',
'code_retrait',
'encrypted_code_retrait',
'code_retrait_salt',
'status_retrait',
'id_destinataire',
'type_id_destinataire',
@ -97,6 +102,9 @@ class WalletIlinkTransaction extends Model
'prenom_destinataire',
'nom_emetteur',
'prenom_emetteur',
'email_emetteur',
'type_document_emetteur',
'id_type_document_emetteur',
'frais',
'taxe',
'numero_carte',
@ -141,7 +149,7 @@ class WalletIlinkTransaction extends Model
return $this->belongsTo(Network::class, 'network_destinataire');
}
// Regles de validation
// Regles de validation
//Envoi de cash vers wallet iLink
public function first_rules()
{
@ -163,4 +171,22 @@ class WalletIlinkTransaction extends Model
'expiration_date'=>'required_if:facade,front|date_format:m/y|after_or_equal:today',
];
}
public function cash_cash_rules()
{
return [
'init_country' =>'required|integer|min:0|not_in:0',
'final_country' =>'required|integer|min:0|not_in:0',
'nom_emetteur'=>'required',
'prenom_emetteur'=>'required',
'email_emetteur'=>'required',
'type_document_emetteur'=>'required',
'id_document_emetteur'=>'required',
'nom_destinataire'=>'required',
'prenom_destinataire'=>'required',
'type_document_destinataire'=>'required',
'id_document_destinataire'=>'required',
'montant'=> 'required|numeric|min:0|not_in:0'
];
}
}

View File

@ -23,4 +23,12 @@ trait Helper
$encrypted_password_to_check = base64_encode(sha1($password . $salt, true) . $salt);
return $encrypted_password_to_check == $encrypted_password;
}
public function hashSSHA($string) {
$salt = sha1(rand());
$salt = substr($salt, 0, 10);
$encrypted = base64_encode(sha1($string . $salt, true) . $salt);
$hash = array("salt" => $salt, "encrypted" => $encrypted);
return $hash;
}
}

View File

@ -28,5 +28,7 @@ Bienvenue dans la famille iLink World !!!
Cordialement,
Equipe iLinkWorld.',
'successful_deposit_ilink' => 'Votre compte ilink a été rechargé d\'un montant de :montant'
'successful_deposit_ilink' => 'Votre compte ilink a été rechargé d\'un montant de :montant',
'successful_send_cash' => 'Vous avez envoyé une somme de :montant .
Code de retrait : :code',
];

View File

@ -54,7 +54,7 @@ $router->group(['prefix' => '/wallets'] , function () use ($router){
$router->group(['prefix' => '/identifications'] , function () use ($router){
$router->post('','UserController@identification');
$router->post('{id_identification}','UserController@validateIdentification');
$router->get('{id_user}','UserController@fetchIdentification');
$router->get('{user_phone}','UserController@fetchIdentification');
$router->get('verify/{user_phone}','UserController@verifyIdentification');
});