+ Add credit limits group route
This commit is contained in:
parent
71ede45247
commit
5bf3c49034
|
@ -9,12 +9,14 @@ use App\Models\User;
|
|||
use App\Models\Wallet;
|
||||
use App\Models\WalletsUser;
|
||||
use App\Traits\ApiResponser;
|
||||
use App\Traits\Helper;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class HelperController extends Controller
|
||||
{
|
||||
use ApiResponser;
|
||||
use Helper;
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
|
|
|
@ -9,6 +9,7 @@ use App\Models\Identification;
|
|||
use App\Models\NetworksAgent;
|
||||
use App\Models\UsersDemandesCredit;
|
||||
use App\Models\UsersGroup;
|
||||
use App\Models\UsersGroupsDemandesValidation;
|
||||
use App\Models\Wallet;
|
||||
use App\Models\WalletAgent;
|
||||
use App\Models\WalletsUser;
|
||||
|
@ -92,31 +93,68 @@ class NanoCreditController extends Controller
|
|||
if ($request->montant < $group->limite_credit)
|
||||
return $this->errorResponse(trans('errors.nano_credit_amount_must_be_less_than_group_limit'));
|
||||
|
||||
//Verifier la capacité d'emprunt
|
||||
$CE = $this->capaciteEmprunt($group->id);
|
||||
if ($CE < 0)
|
||||
return $this->errorResponse("Le groupe n'a pas le droit d'emprenunter");
|
||||
if ($request->montant > $CE)
|
||||
return $this->errorResponse("La capicite d'emprunt est dépassé");
|
||||
|
||||
$walletUser = WalletsUser::where('idUser', $request->id_user)->firstOrFail();
|
||||
//Verifier si le solde principal de l'hyperviseur est superieur au montant
|
||||
$walletHyper = WalletAgent::where('category', 'hyper')->where('network_id', $config->id_network)->firstOrFail();
|
||||
|
||||
$demande_credit->frais = $this->calculateFees($paliers, $request->montant, $request->duree_mois);
|
||||
$demande_credit->taxe = $this->calculateTax($taxes, $demande_credit->frais);
|
||||
$demande_credit->date_demande = new \DateTime();
|
||||
$demande_credit->date_remboursement_prevu = $demande_credit->date_demande->modify('+' . $request->duree_mois . ' month');
|
||||
$demande_credit->etat = 'VALIDE';
|
||||
$demande_credit->id_demande = $this->getNanoCreditDemandID();
|
||||
|
||||
$montant_total = $demande_credit->montant + $demande_credit->frais + $demande_credit->taxe;
|
||||
if ($request->montant > $walletHyper->balance_princ) {
|
||||
$demande_credit->etat = 'EN_ATTENTE_DE_VALIDATION';
|
||||
$demande_credit->save();
|
||||
|
||||
$user->balance_credit += $montant_total;
|
||||
$walletUser->balance += $demande_credit->montant;
|
||||
$user->save();
|
||||
$walletUser->save();
|
||||
$demande_credit->save();
|
||||
$demande = new UsersGroupsDemandesValidation();
|
||||
$demande->id_group = $group->id;
|
||||
$demande->id_user = $user->id;
|
||||
$demande->id_demande = $demande_credit->id_demande;
|
||||
$demande->id_agent = $walletHyper->agent_id;
|
||||
$demande->date_creation = new \DateTime();
|
||||
$demande->statut = false;
|
||||
$demande->type = 'nano_credit';
|
||||
$demande->save();
|
||||
|
||||
$message = trans('messages.successful_user_group_nano_credit_demand',
|
||||
['id_demand' => $demande_credit->id_demande, 'amount' => $this->toMoney($montant_total, $init_country),
|
||||
'net' => $this->toMoney($demande_credit->montant, $init_country), 'fees' => $this->toMoney($demande_credit->frais + $demande_credit->taxe, $init_country),
|
||||
'date' => $demande_credit->date_remboursement_prevu]);
|
||||
$this->sendMail($user->email, trans('messages.successful_nano_credit_demand'), $message);
|
||||
return $this->successResponse($message . trans('messages.sent_by_mail'));
|
||||
$data = new \stdClass();
|
||||
$data->screen = "notificationview";
|
||||
$data->data = new \stdClass();
|
||||
$data->data->id = $demande->id;
|
||||
|
||||
$this->sendPushNotificationToAgent($walletHyper->codeMembre,
|
||||
trans('notifications.group_nano_credit_request', ['name' => $group->nom]), $data);
|
||||
return $this->successResponse(trans('messages.successful_nano_credit_sent_to_hypervisor'));
|
||||
|
||||
} else {
|
||||
$walletHyper = Wallet::findOrFail($walletHyper->wallet_id);
|
||||
$walletUser = WalletsUser::where('idUser', $request->id_user)->firstOrFail();
|
||||
|
||||
$demande_credit->date_demande = new \DateTime();
|
||||
$demande_credit->date_remboursement_prevu = $demande_credit->date_demande->modify('+' . $request->duree_mois . ' month');
|
||||
$demande_credit->etat = 'VALIDE';
|
||||
|
||||
$montant_total = $demande_credit->montant + $demande_credit->frais + $demande_credit->taxe;
|
||||
|
||||
$user->balance_credit += $montant_total;
|
||||
$walletUser->balance += $demande_credit->montant;
|
||||
$walletHyper->balance_princ -= $demande_credit->montant;
|
||||
$user->save();
|
||||
$walletUser->save();
|
||||
$walletHyper->save();
|
||||
$demande_credit->save();
|
||||
|
||||
$message = trans('messages.successful_user_group_nano_credit_demand',
|
||||
['id_demand' => $demande_credit->id_demande, 'amount' => $this->toMoney($montant_total, $init_country),
|
||||
'net' => $this->toMoney($demande_credit->montant, $init_country), 'fees' => $this->toMoney($demande_credit->frais + $demande_credit->taxe, $init_country),
|
||||
'date' => $demande_credit->date_remboursement_prevu]);
|
||||
$this->sendMail($user->email, trans('messages.successful_nano_credit_demand'), $message);
|
||||
return $this->successResponse($message . trans('messages.sent_by_mail'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->type_caution == 'individuel') {
|
||||
|
@ -145,6 +183,7 @@ class NanoCreditController extends Controller
|
|||
$this->validate($request, [
|
||||
'id_demande' => 'required',
|
||||
'id_wallet_agent' => 'required|integer|min:0|not_in:0',
|
||||
'retrait_cash' => 'required|boolean',
|
||||
'password' => 'required',
|
||||
]);
|
||||
|
||||
|
@ -152,19 +191,12 @@ class NanoCreditController extends Controller
|
|||
$network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent);
|
||||
$agent_country = $network_agent->network->country->id;
|
||||
|
||||
// Recuperation des wallets hyperviseur et superviseur
|
||||
$codeGenerer = CodeGenerer::findOrFail($network_agent->codeGenerer_id);
|
||||
$superviseur = AgentPlus::where('code_membre', $codeGenerer->code_parrain)->firstOrFail();
|
||||
$hyperviseur = AgentPlus::where('code_membre', $superviseur->code_parrain)->firstOrFail();
|
||||
$wallet_agent_hyp = WalletAgent::where('agent_id', $hyperviseur->id)->firstOrFail();
|
||||
$walletHyperviseur = Wallet::findOrFail($wallet_agent_hyp->wallet_id);
|
||||
|
||||
|
||||
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
||||
if (!$this->checkPassword($request->password, $agent->encrypted_password, $agent->salt))
|
||||
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||
|
||||
$demande_credit = UsersDemandesCredit::where('id_demande', $request->id_demande)->first();
|
||||
$demande_credit->retrait_cash = $request->retrait_cash;
|
||||
if (!$demande_credit)
|
||||
return $this->errorResponse(trans('errors.nano_credit_not_found'));
|
||||
|
||||
|
@ -193,12 +225,17 @@ class NanoCreditController extends Controller
|
|||
$demande_credit->id_wallet_agent = $walletAgent->id;
|
||||
$user->balance_credit += $montant_total;
|
||||
|
||||
$walletHyperviseur->balance_princ += $demande_credit->montant;
|
||||
$walletAgent->balance_princ -= $montant_total;
|
||||
$walletAgent->save();
|
||||
$walletHyperviseur->save();
|
||||
$user->save();
|
||||
|
||||
//Crediter le wallet de client s'il ne retire pas en cash
|
||||
if (!$request->retrait_cash) {
|
||||
$walletUser = WalletsUser::where('idUser', $request->id_user)->firstOrFail();
|
||||
$walletUser->balance += $demande_credit->montant;
|
||||
$walletUser->save();
|
||||
}
|
||||
|
||||
$walletAgent->save();
|
||||
$user->save();
|
||||
$demande_credit->save();
|
||||
|
||||
$user_message = trans('messages.successful_guarantee_user_individual_nano_credit_demand',
|
||||
|
@ -277,6 +314,20 @@ class NanoCreditController extends Controller
|
|||
return $this->successResponse($message . trans('messages.sent_by_mail'));
|
||||
}
|
||||
|
||||
// Calculer la capacité d'emprunt
|
||||
|
||||
private function capaciteEmprunt($id_group)
|
||||
{
|
||||
$users = User::where('group_id', $id_group)->get();
|
||||
$sommeCredits = 0;
|
||||
$sommeEpargnes = 0;
|
||||
foreach ($users as $user) {
|
||||
$sommeCredits += $user->balance_credit;
|
||||
$sommeEpargnes += $user->balance_epargne;
|
||||
}
|
||||
return $sommeEpargnes - $sommeCredits;
|
||||
}
|
||||
|
||||
// Calculer les frais
|
||||
private function calculateFees(array $paliers, $montant, $duree)
|
||||
{
|
||||
|
|
|
@ -4,8 +4,12 @@ namespace App\Http\Controllers;
|
|||
|
||||
use App\Models\ConfigWallet;
|
||||
use App\Models\Identification;
|
||||
use App\Models\UsersDemandesCredit;
|
||||
use App\Models\UsersGroup;
|
||||
use App\Models\UsersGroupsDemandesValidation;
|
||||
use App\Models\Wallet;
|
||||
use App\Models\WalletAgent;
|
||||
use App\Models\WalletsUser;
|
||||
use App\Traits\ApiResponser;
|
||||
use App\Traits\Helper;
|
||||
use Illuminate\Http\Request;
|
||||
|
@ -135,8 +139,9 @@ class UserGroupController extends Controller
|
|||
if ($demande->statut != 0)
|
||||
return $this->errorResponse(trans('errors.treated_group_demand'));
|
||||
|
||||
if ($demande->id_sponsor != $request->id_user)
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
if ($demande->type != 'nano_credit')
|
||||
if ($demande->id_sponsor != $request->id_user)
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
|
||||
if ($demande->type == 'creation')
|
||||
return $this->validateGroupCreationDemand($request, $demande);
|
||||
|
@ -144,6 +149,8 @@ class UserGroupController extends Controller
|
|||
return $this->validateDeletingGroupDemand($request, $demande);
|
||||
if ($demande->type == 'adhesion')
|
||||
return $this->validateMembershipGroupDemand($request, $demande);
|
||||
if ($demande->type == 'nano_credit')
|
||||
return $this->validateNanoCreditGroupDemand($request, $demande);
|
||||
|
||||
}
|
||||
|
||||
|
@ -193,8 +200,9 @@ class UserGroupController extends Controller
|
|||
if ($demande->statut != 0)
|
||||
return $this->errorResponse(trans('errors.treated_group_demand'));
|
||||
|
||||
if ($demande->id_sponsor != $request->id_user)
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
if ($demande->type != 'nano_credit')
|
||||
if ($demande->id_sponsor != $request->id_user)
|
||||
return $this->errorResponse(trans('errors.not_group_sponsor'));
|
||||
|
||||
|
||||
$sponsor = User::findOrFail($request->id_user);
|
||||
|
@ -228,7 +236,14 @@ class UserGroupController extends Controller
|
|||
$this->sendPushNotificationToUser($user->user_code,
|
||||
trans('notifications.successful_canceled_group_membership_request', ['name' => $sponsor->lastname . ' ' . $sponsor->firstname]), $data);
|
||||
|
||||
return $this->successResponse(trans('messages.successful_refused_group_deleting'));
|
||||
return $this->successResponse(trans('messages.successful_canceled_group_membership_request'));
|
||||
}
|
||||
|
||||
if ($demande->type == 'nano_credit') {
|
||||
$user = User::findOrFail($demande->id_user);
|
||||
$this->sendPushNotificationToUser($user->user_code, trans('notifications.refused_group_nano_credit_request'), $data);
|
||||
|
||||
return $this->successResponse(trans('messages.successful_canceled_nano_credit_request'));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -521,7 +536,8 @@ ug.date_creation , ug.createur , ug.sponsor1 , ug.sponsor2 , ug.sponsor3, ug.cou
|
|||
{
|
||||
|
||||
$groupe = collect(DB::select('SELECT ug.code_groupe , ug.nom , ug.limite_credit , ug.nombre_validation, ug.actif, ug.nombre_utilisateurs,
|
||||
ug.date_creation , ug.createur , ug.sponsor1 , ug.sponsor2 , ug.sponsor3, ug.country, ug.currency_code, ug.id_createur FROM infos_users_groups ug
|
||||
ug.date_creation , ug.createur , ug.sponsor1 , ug.sponsor2 , ug.sponsor3, ug.country, ug.currency_code, ug.id_createur , code_sponsor1 as codeSponsor1 , code_sponsor2 as codeSponsor2,
|
||||
code_sponsor3 as codeSponsor3 FROM infos_users_groups ug
|
||||
INNER JOIN users u ON ug.id = u.group_id WHERE u.user_code = :code', ['code' => $code_user]))->first();
|
||||
|
||||
if ($groupe)
|
||||
|
@ -531,6 +547,79 @@ ug.date_creation , ug.createur , ug.sponsor1 , ug.sponsor2 , ug.sponsor3, ug.cou
|
|||
|
||||
}
|
||||
|
||||
public function myGroupLimits($code_user)
|
||||
{
|
||||
$user = User::where('user_code', $code_user)->firstOrFail();
|
||||
|
||||
$country = $user->network->country;
|
||||
$init_country = $country->id;
|
||||
$result = ConfigWallet::join('networks', 'networks.id', '=', 'configWallet.id_network')
|
||||
->where('networks.country_id', $init_country)->where('configWallet.type', 'ilink')
|
||||
->select('configWallet.id')->first();
|
||||
if ($result) {
|
||||
$config = ConfigWallet::findOrFail($result->id);
|
||||
$rep = new \stdClass();
|
||||
$rep->limite_credit_min = $config->limite_credit_min;
|
||||
$rep->limite_credit_max = $config->limite_credit_max;
|
||||
$rep->currency_code = $country->currency->code;
|
||||
return $this->successResponse($rep);
|
||||
} else {
|
||||
return $this->errorResponse(trans('errors.no_ilink_network'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function validateNanoCreditGroupDemand(Request $request, UsersGroupsDemandesValidation $demande)
|
||||
{
|
||||
|
||||
$walletHyper = WalletAgent::where('agent_id', $demande->id_agent)->firstOrFail();
|
||||
$demande_credit = UsersDemandesCredit::where('id_demande', $demande->id_demande)->firstOrFail();
|
||||
|
||||
if ($demande_credit->montant > $walletHyper->balance_princ)
|
||||
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||
|
||||
$currency_code = $walletHyper->currency_code;
|
||||
$walletHyper = Wallet::findOrFail($walletHyper->wallet_id);
|
||||
|
||||
|
||||
$user = User::findOrFail($demande->id_user);
|
||||
$walletUser = WalletsUser::where('idUser', $request->id_user)->firstOrFail();
|
||||
|
||||
$montant_total = $demande_credit->montant + $demande_credit->frais + $demande_credit->taxe;
|
||||
|
||||
$demande_credit->date_demande = new \DateTime();
|
||||
$demande_credit->date_remboursement_prevu = $demande_credit->date_demande->modify('+' . $demande_credit->duree_mois . ' month');
|
||||
$demande_credit->etat = 'VALIDE';
|
||||
|
||||
$user->balance_credit += $montant_total;
|
||||
$walletUser->balance += $demande_credit->montant;
|
||||
$walletHyper->balance_princ -= $demande_credit->montant;
|
||||
|
||||
$demande->statut = true;
|
||||
$demande->date_validation = new \DateTime();
|
||||
$user->save();
|
||||
$walletUser->save();
|
||||
$walletHyper->save();
|
||||
$demande_credit->save();
|
||||
$demande->save();
|
||||
// Notififier l'utilisateur
|
||||
$data = new \stdClass();
|
||||
$data->screen = "notificationview";
|
||||
$data->data = new \stdClass();;
|
||||
$data->data->id = $request->id_demande;
|
||||
$this->sendPushNotificationToUser($user->user_code, trans('notifications.accepted_group_nano_credit_request'), $data);
|
||||
|
||||
$message = trans('messages.successful_user_group_nano_credit_demand',
|
||||
['id_demand' => $demande_credit->id_demande, 'amount' => $this->toMoneyWithCurrencyCode($montant_total, $currency_code),
|
||||
'net' => $this->toMoneyWithCurrencyCode($demande_credit->montant, $currency_code), 'fees' => $this->toMoneyWithCurrencyCode($demande_credit->frais + $demande_credit->taxe, $currency_code),
|
||||
'date' => $demande_credit->date_remboursement_prevu]);
|
||||
$this->sendMail($user->email, trans('messages.successful_nano_credit_demand'), $message);
|
||||
|
||||
return $this->successResponse(trans('messages.successful_accepted_nano_credit_request'));
|
||||
|
||||
}
|
||||
|
||||
private function checkSponsorIdentification($code_sponsor, $id, $init_country)
|
||||
{
|
||||
$sponsor = User::where('user_code', $code_sponsor)->first();
|
||||
|
|
|
@ -25,29 +25,31 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property Carbon $date_remboursement
|
||||
* @property int $id_user
|
||||
* @property int $id_wallet_agent
|
||||
* @property bool $retrait_cash
|
||||
* @property Carbon $date_creation
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class UsersDemandesCredit extends Model
|
||||
{
|
||||
protected $table = 'users_demandes_credits';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
|
||||
protected $casts = [
|
||||
'id' => 'int',
|
||||
'montant' => 'float',
|
||||
'duree_mois' => 'int',
|
||||
'frais' => 'float',
|
||||
'taxe' => 'float',
|
||||
'id_user' => 'int',
|
||||
'id_wallet_agent' => 'int'
|
||||
'id_wallet_agent' => 'int',
|
||||
'retrait_cash' => 'bool'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'date_demande',
|
||||
'date_remboursement_prevu',
|
||||
'date_remboursement'
|
||||
'date_remboursement',
|
||||
'date_creation'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
|
@ -62,6 +64,8 @@ class UsersDemandesCredit extends Model
|
|||
'date_remboursement_prevu',
|
||||
'date_remboursement',
|
||||
'id_user',
|
||||
'id_wallet_agent'
|
||||
'id_wallet_agent',
|
||||
'retrait_cash',
|
||||
'date_creation'
|
||||
];
|
||||
}
|
||||
|
|
|
@ -16,6 +16,8 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property int $id_group
|
||||
* @property int $id_sponsor
|
||||
* @property int $id_user
|
||||
* @property int $id_agent
|
||||
* @property string $id_demande
|
||||
* @property int $statut
|
||||
* @property Carbon $date_validation
|
||||
* @property Carbon $date_creation
|
||||
|
@ -32,6 +34,7 @@ class UsersGroupsDemandesValidation extends Model
|
|||
'id_group' => 'int',
|
||||
'id_sponsor' => 'int',
|
||||
'id_user' => 'int',
|
||||
'id_agent' => 'int',
|
||||
'statut' => 'int'
|
||||
];
|
||||
|
||||
|
@ -44,6 +47,8 @@ class UsersGroupsDemandesValidation extends Model
|
|||
'id_group',
|
||||
'id_sponsor',
|
||||
'id_user',
|
||||
'id_agent',
|
||||
'id_demande',
|
||||
'statut',
|
||||
'date_validation',
|
||||
'date_creation',
|
||||
|
|
|
@ -11,15 +11,21 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
/**
|
||||
* Class WalletAgent
|
||||
*
|
||||
*
|
||||
* @property int $wallet_id
|
||||
* @property float $balance_princ
|
||||
* @property float $balance_com
|
||||
* @property Carbon $created_date
|
||||
* @property int $networks_agent_id
|
||||
* @property int $agent_id
|
||||
* @property string $lastname
|
||||
* @property string $codeMembre
|
||||
* @property string $codeParrain
|
||||
* @property string $category
|
||||
* @property int $network_id
|
||||
* @property string $network
|
||||
* @property string $currency_code
|
||||
* @property string $transactionNumber
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
|
@ -30,25 +36,32 @@ class WalletAgent extends Model
|
|||
public $timestamps = false;
|
||||
|
||||
protected $casts = [
|
||||
'wallet_id' => 'int',
|
||||
'balance_princ' => 'float',
|
||||
'balance_com' => 'float',
|
||||
'agent_id' => 'int',
|
||||
'network_id' => 'int'
|
||||
];
|
||||
'wallet_id' => 'int',
|
||||
'balance_princ' => 'float',
|
||||
'balance_com' => 'float',
|
||||
'networks_agent_id' => 'int',
|
||||
'agent_id' => 'int',
|
||||
'network_id' => 'int'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_date'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'wallet_id',
|
||||
'balance_princ',
|
||||
'balance_com',
|
||||
'created_date',
|
||||
'agent_id',
|
||||
'lastname',
|
||||
'network_id',
|
||||
'network'
|
||||
];
|
||||
'wallet_id',
|
||||
'balance_princ',
|
||||
'balance_com',
|
||||
'created_date',
|
||||
'networks_agent_id',
|
||||
'agent_id',
|
||||
'lastname',
|
||||
'codeMembre',
|
||||
'codeParrain',
|
||||
'category',
|
||||
'network_id',
|
||||
'network',
|
||||
'currency_code',
|
||||
'transactionNumber'
|
||||
];
|
||||
}
|
||||
|
|
|
@ -61,6 +61,22 @@ trait Helper
|
|||
// return $response->getBody()->getContents();
|
||||
}
|
||||
|
||||
public function sendPushNotificationToAgent($agent_code, $message, $data = null)
|
||||
{
|
||||
$client = new \GuzzleHttp\Client([
|
||||
'base_uri' => env('NOTIFICATION_SERVICE_URL'),
|
||||
]);
|
||||
$headers = [
|
||||
'Authorization' => env('NOTIFICATION_SERVICE_KEY'),
|
||||
];
|
||||
$body = new \stdClass();
|
||||
$body->agent_code = $agent_code;
|
||||
$body->message = $message;
|
||||
$body->data = $data;
|
||||
$promise = $client->requestAsync('POST', '/onesignal/pushToAgent', ['json' => $body, 'headers' => $headers])->then();
|
||||
$promise->wait();
|
||||
}
|
||||
|
||||
public function checkPassword($password, $encrypted_password, $salt)
|
||||
{
|
||||
$encrypted_password_to_check = base64_encode(sha1($password . $salt, true) . $salt);
|
||||
|
@ -88,24 +104,30 @@ trait Helper
|
|||
$currency = collect(DB::select('SELECT cu.code FROM networks n INNER JOIN countries c ON c.id = n.country_id INNER JOIN currencies cu ON cu.id = c.idCurrency
|
||||
WHERE n.id = :id',['id'=>$id_network]))->first();
|
||||
|
||||
$money = Money::of(round($amount, 2),$currency ? $currency->code : 'XAF',new AutoContext());
|
||||
$money = Money::of(round($amount, 2), $currency ? $currency->code : 'XAF', new AutoContext());
|
||||
return $money->formatTo('fr_FR');
|
||||
}
|
||||
|
||||
public function toMoney($amount, $id_country)
|
||||
{
|
||||
$country = Country::findOrFail($id_country);
|
||||
$money = Money::of(round($amount, 2),$country->currency->code,new AutoContext());
|
||||
$money = Money::of(round($amount, 2), $country->currency->code, new AutoContext());
|
||||
return $money->formatTo('fr_FR');
|
||||
}
|
||||
|
||||
private function convertMoney($amount , $init_country , $final_country)
|
||||
public function toMoneyWithCurrencyCode($amount, $currency_code)
|
||||
{
|
||||
$money = Money::of(round($amount, 2), $currency_code, new AutoContext());
|
||||
return $money->formatTo('fr_FR');
|
||||
}
|
||||
|
||||
private function convertMoney($amount, $init_country, $final_country)
|
||||
{
|
||||
// set to whatever your rates are relative to
|
||||
$baseCurrency = 'USD';
|
||||
|
||||
// use your own credentials, or re-use your existing PDO connection
|
||||
$pdo = new PDO('mysql:host=' .env('DB_HOST') . ';dbname=' .env('DB_DATABASE'), env('DB_USERNAME'), env('DB_PASSWORD'));
|
||||
$pdo = new PDO('mysql:host=' . env('DB_HOST') . ';dbname=' . env('DB_DATABASE'), env('DB_USERNAME'), env('DB_PASSWORD'));
|
||||
|
||||
$configuration = new PDOProviderConfiguration();
|
||||
|
||||
|
|
|
@ -210,4 +210,7 @@ Request Information:
|
|||
- Net amount received: :net",
|
||||
'successful_accepted_group_membership_request' => "Membership request accepted",
|
||||
'successful_canceled_group_membership_request' => "Membership request refused",
|
||||
'successful_nano_credit_sent_to_hypervisor' => "Your request has been sent to your network hypervisor. You will receive the credit only after validation",
|
||||
'successful_accepted_nano_credit_request' => "Nano credit request accepted",
|
||||
'successful_canceled_nano_credit_request' => "Nano credit request refused"
|
||||
];
|
||||
|
|
|
@ -9,4 +9,7 @@ return [
|
|||
"group_membership_request" => ":name has sent you a group membership request",
|
||||
"accepted_group_membership_request" => ":name has accepted your group membership request",
|
||||
"refused_group_membership_request" => ":name has refused your group membership request",
|
||||
"group_nano_credit_request" => "You have received a request for nano credit from the group :name",
|
||||
"accepted_group_nano_credit_request" => "Your hypervisor has accepted your nano credit request",
|
||||
"refused_group_nano_credit_request" => "Your hypervisor has refused your nanocredit request",
|
||||
];
|
||||
|
|
|
@ -210,4 +210,7 @@ Informations de la demande :
|
|||
- Montant net à percu : :net",
|
||||
'successful_accepted_group_membership_request' => "Demande d'adhésion acceptée",
|
||||
'successful_canceled_group_membership_request' => "Demande d'adhésion refusée",
|
||||
'successful_nano_credit_sent_to_hypervisor' => "Votre demande a été envoyé à l'hyperviseur de votre reseau. Vous recevrez le credit seulement après validation",
|
||||
'successful_accepted_nano_credit_request' => "Demande de nano credit acceptée",
|
||||
'successful_canceled_nano_credit_request' => "Demande de nano credit refusée"
|
||||
];
|
||||
|
|
|
@ -9,4 +9,7 @@ return [
|
|||
"group_membership_request" => ":name vous a envoyé une demande d'adhésion de groupe",
|
||||
"accepted_group_membership_request" => ":name a accepté votre demande d'adhésion de groupe",
|
||||
"refused_group_membership_request" => ":name a refusé votre demande d'adhésion de groupe",
|
||||
"group_nano_credit_request" => "Vous avez reçu une demande de nano crédit du groupe :name",
|
||||
"accepted_group_nano_credit_request" => "Votre hyperviseur a accepté votre demande de nano credit",
|
||||
"refused_group_nano_credit_request" => "Votre hyperviseur a refusé votre demande de nano credit",
|
||||
];
|
||||
|
|
|
@ -76,6 +76,7 @@ $router->group(['prefix' => '/groups'], function () use ($router) {
|
|||
$router->post('join', 'UserGroupController@joinGroup');
|
||||
$router->delete('', 'UserGroupController@deleteGroup');
|
||||
$router->get('my/{code_user}', 'UserGroupController@myGroup');
|
||||
$router->get('limits/{code_user}', 'UserGroupController@myGroupLimits');
|
||||
|
||||
// Demandes de validation
|
||||
$router->group(['prefix' => '/demands'], function () use ($router) {
|
||||
|
|
Loading…
Reference in New Issue