+ Add Balance compensation in paying networks
This commit is contained in:
parent
089b623854
commit
b1a6d7d786
|
@ -100,14 +100,14 @@ class WalletController extends Controller
|
|||
|
||||
// Wallets users iLink
|
||||
public function showWalletUser($id_user){
|
||||
$wallet = collect(DB::select('SELECT wu.* , u.user_code , u.numero_carte , u.expiration_date from wallets_users wu
|
||||
INNER JOIN users u ON u.id = wu.idUser WHERE wu.idUser = :id_user',['id_user' => $id_user]))->first();
|
||||
$wallet = collect(DB::select('SELECT wu.*, u.user_code , u.numero_carte , u.expiration_date ,n2.name as network , cc.name as country, cc.currency_code from wallets_users wu
|
||||
INNER JOIN users u ON u.id = wu.idUser
|
||||
INNER JOIN networks n1 ON n1.id = u.network_id
|
||||
INNER JOIN networks n2 ON n2.country_id = n1.country_id
|
||||
INNER JOIN configWallet cw ON cw.id_network = n2.id
|
||||
INNER JOIN countries_currencies cc ON cc.id = n2.country_id
|
||||
WHERE wu.idUser = :id_user AND cw.type = \'ilink\' LIMIT 1',['id_user' => $id_user]))->first();
|
||||
if($wallet){
|
||||
$wallet->country = 'Gabon';
|
||||
$wallet->network = 'iLink World';
|
||||
$walletUser = WalletsUser::findOrFail($wallet->id);
|
||||
$init_country = $walletUser->user->network->country->id;
|
||||
$wallet->currency_code = $this->getCurrency($init_country);
|
||||
return $this->successResponse($wallet);
|
||||
} else
|
||||
return $this->errorResponse(trans('errors.model_not_found',['model'=>'wallet']),Response::HTTP_BAD_REQUEST);
|
||||
|
|
|
@ -124,6 +124,8 @@ class iLinkTransactionController extends Controller
|
|||
$this->validate($request, $transaction->send_wallet_wallet_rules());
|
||||
$user = $walletUser->user;
|
||||
if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) {
|
||||
if($init_country != $request->final_country)
|
||||
return $this->checkUserIdentification($user->id);
|
||||
if ($request->montant > $walletUser->balance) {
|
||||
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||
} else {
|
||||
|
@ -139,6 +141,7 @@ class iLinkTransactionController extends Controller
|
|||
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
|
||||
$transaction->part_reseau_emetteur = $frais - $transaction->part_reseau_payeur;
|
||||
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
|
||||
$reseauPayeur->balance_compensation += $transaction->montant_net_final_country;
|
||||
} else {
|
||||
$transaction->part_reseau_payeur = 0;
|
||||
$transaction->part_reseau_payeur_final_country = 0;
|
||||
|
@ -255,6 +258,8 @@ class iLinkTransactionController extends Controller
|
|||
$this->validate($request, $transaction->send_wallet_cash_rules());
|
||||
$user = $walletUser->user;
|
||||
if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) {
|
||||
if($init_country != $request->final_country)
|
||||
return $this->checkUserIdentification($user->id);;
|
||||
if ($request->montant > $walletUser->balance) {
|
||||
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||
} else {
|
||||
|
@ -270,6 +275,7 @@ class iLinkTransactionController extends Controller
|
|||
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
|
||||
$transaction->part_reseau_emetteur = $frais - $transaction->part_reseau_payeur;
|
||||
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
|
||||
$reseauPayeur->balance_compensation += $transaction->montant_net_final_country;
|
||||
} else {
|
||||
$transaction->part_reseau_payeur = 0;
|
||||
$transaction->part_reseau_payeur_final_country = 0;
|
||||
|
@ -344,6 +350,7 @@ class iLinkTransactionController extends Controller
|
|||
if ($request->montant > $walletUser->balance) {
|
||||
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||
} else {
|
||||
return $this->checkUserIdentification($user->id);;
|
||||
$transaction->final_country = $init_country;
|
||||
$transaction->frais = $frais = $this->calculateFees($plr_user_wallet_cash_national, $request->montant);
|
||||
$transaction->taxe = $taxe = $this->calculateTax($taxesNationales, $frais);
|
||||
|
@ -433,6 +440,7 @@ class iLinkTransactionController extends Controller
|
|||
$this->validate($request, $transaction->user_card_rules());
|
||||
$user = $walletUser->user;
|
||||
if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) {
|
||||
return $this->checkUserIdentification($user->id);;
|
||||
|
||||
if (!(isset($user->numero_carte) && isset($user->expiration_date)))
|
||||
return $this->errorResponse(trans('errors.no_bank_card_attached'));
|
||||
|
@ -822,6 +830,7 @@ class iLinkTransactionController extends Controller
|
|||
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
|
||||
$transaction->part_reseau_emetteur = $frais - $transaction->part_reseau_payeur;
|
||||
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
|
||||
$reseauPayeur->balance_compensation += $transaction->montant_net_final_country;
|
||||
} else {
|
||||
$transaction->part_reseau_payeur = 0;
|
||||
$transaction->part_reseau_payeur_final_country = 0;
|
||||
|
@ -1260,6 +1269,15 @@ class iLinkTransactionController extends Controller
|
|||
return $randomString;
|
||||
}
|
||||
|
||||
private function checkUserIdentification($id_user){
|
||||
$identification = Identification::where('id_user', $id_user)->first();
|
||||
if(isset($identification)) {
|
||||
if ($identification->status == 0)
|
||||
return $this->errorResponse(trans('errors.validation_user_identification_required'));
|
||||
}else {
|
||||
return $this->errorResponse(trans('errors.user_identification_required'));
|
||||
}
|
||||
}
|
||||
// public function index(Request $request){
|
||||
//
|
||||
// $notices = DB::select('select notices.id,notices.title,notices.body,notices.created_at,notices.updated_at,
|
||||
|
|
|
@ -15,6 +15,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property int $id_network
|
||||
* @property float $taux_partage
|
||||
* @property float $balance_com
|
||||
* @property float balance_compensation
|
||||
* @property int $id_configWallet
|
||||
*
|
||||
* @property Network $network
|
||||
|
@ -31,6 +32,7 @@ class PayingNetwork extends Model
|
|||
'id_network' => 'int',
|
||||
'taux_partage' => 'float',
|
||||
'balance_com' => 'float',
|
||||
'balance_compensation'=>'float',
|
||||
'id_configWallet' => 'int'
|
||||
];
|
||||
|
||||
|
@ -38,6 +40,7 @@ class PayingNetwork extends Model
|
|||
'id_network',
|
||||
'taux_partage',
|
||||
'balance_com',
|
||||
'balance_compensation',
|
||||
'id_configWallet'
|
||||
];
|
||||
|
||||
|
|
Loading…
Reference in New Issue