From 5bf3c4903414f16c854573005ea86753b9615063 Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Mon, 24 Aug 2020 17:29:50 +0100 Subject: [PATCH] + Add credit limits group route --- app/Http/Controllers/HelperController.php | 2 + app/Http/Controllers/NanoCreditController.php | 107 +++++++++++++----- app/Http/Controllers/UserGroupController.php | 101 ++++++++++++++++- app/Models/UsersDemandesCredit.php | 14 ++- app/Models/UsersGroupsDemandesValidation.php | 5 + app/Models/WalletAgent.php | 45 +++++--- app/Traits/Helper.php | 30 ++++- resources/lang/en/messages.php | 3 + resources/lang/en/notifications.php | 3 + resources/lang/fr/messages.php | 3 + resources/lang/fr/notifications.php | 3 + routes/web.php | 1 + 12 files changed, 258 insertions(+), 59 deletions(-) diff --git a/app/Http/Controllers/HelperController.php b/app/Http/Controllers/HelperController.php index f13b8cb..e5c0473 100755 --- a/app/Http/Controllers/HelperController.php +++ b/app/Http/Controllers/HelperController.php @@ -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. * diff --git a/app/Http/Controllers/NanoCreditController.php b/app/Http/Controllers/NanoCreditController.php index 3f58100..3d58ddd 100755 --- a/app/Http/Controllers/NanoCreditController.php +++ b/app/Http/Controllers/NanoCreditController.php @@ -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) { diff --git a/app/Http/Controllers/UserGroupController.php b/app/Http/Controllers/UserGroupController.php index fe437dd..94319bd 100755 --- a/app/Http/Controllers/UserGroupController.php +++ b/app/Http/Controllers/UserGroupController.php @@ -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(); diff --git a/app/Models/UsersDemandesCredit.php b/app/Models/UsersDemandesCredit.php index b6bef15..9ce1d2c 100644 --- a/app/Models/UsersDemandesCredit.php +++ b/app/Models/UsersDemandesCredit.php @@ -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' ]; } diff --git a/app/Models/UsersGroupsDemandesValidation.php b/app/Models/UsersGroupsDemandesValidation.php index 70b3f78..814c554 100644 --- a/app/Models/UsersGroupsDemandesValidation.php +++ b/app/Models/UsersGroupsDemandesValidation.php @@ -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', diff --git a/app/Models/WalletAgent.php b/app/Models/WalletAgent.php index c8f6b0a..abab7a3 100755 --- a/app/Models/WalletAgent.php +++ b/app/Models/WalletAgent.php @@ -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' + ]; } diff --git a/app/Traits/Helper.php b/app/Traits/Helper.php index adb04e3..89984be 100644 --- a/app/Traits/Helper.php +++ b/app/Traits/Helper.php @@ -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(); diff --git a/resources/lang/en/messages.php b/resources/lang/en/messages.php index b1f49b1..4371213 100755 --- a/resources/lang/en/messages.php +++ b/resources/lang/en/messages.php @@ -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" ]; diff --git a/resources/lang/en/notifications.php b/resources/lang/en/notifications.php index fca6f31..66f5a47 100755 --- a/resources/lang/en/notifications.php +++ b/resources/lang/en/notifications.php @@ -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", ]; diff --git a/resources/lang/fr/messages.php b/resources/lang/fr/messages.php index 63d395b..b8ad9ea 100755 --- a/resources/lang/fr/messages.php +++ b/resources/lang/fr/messages.php @@ -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" ]; diff --git a/resources/lang/fr/notifications.php b/resources/lang/fr/notifications.php index 2a9128a..3b0c041 100755 --- a/resources/lang/fr/notifications.php +++ b/resources/lang/fr/notifications.php @@ -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", ]; diff --git a/routes/web.php b/routes/web.php index 10f5d6a..9ba89cd 100755 --- a/routes/web.php +++ b/routes/web.php @@ -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) {