+ Add nano credit demands durations route

This commit is contained in:
Djery-Tom 2020-08-26 19:31:51 +01:00
parent 5015476aef
commit 5cd3893176
4 changed files with 42 additions and 7 deletions

View File

@ -65,14 +65,20 @@ class NanoCreditController extends Controller
return $this->errorResponse(trans('errors.no_ilink_network')); return $this->errorResponse(trans('errors.no_ilink_network'));
} }
if (!$config->has_nano_credit)
return $this->errorResponse(trans('errors.nano_credit_not_available'));
$taxes = array_values(array_filter($config->taxes->all(), function ($tax) { $taxes = array_values(array_filter($config->taxes->all(), function ($tax) {
return $tax->categorie == 'nano_credit'; return $tax->categorie == 'nano_credit';
})); }));
$paliers = array_values($config->paliers_config_nano_credits->all()); $paliers = array_values(array_filter($config->paliers_config_nano_credits->all(), function ($taux) {
return $taux->type == 'nano_credit';
}));
$demande_credit = new UsersDemandesCredit(); $demande_credit = new UsersDemandesCredit();
$demande_credit->fill($request->all()); $demande_credit->fill($request->all());
$demande_credit->id_network = $config->id_network;
// Derniere demande de nano credit // Derniere demande de nano credit
$last_demand = UsersDemandesCredit::where('id_user', $request->id_user)->where('etat', 'VALIDE')->first(); $last_demand = UsersDemandesCredit::where('id_user', $request->id_user)->where('etat', 'VALIDE')->first();
@ -330,15 +336,41 @@ class NanoCreditController extends Controller
return $sommeEpargnes - $sommeCredits; return $sommeEpargnes - $sommeCredits;
} }
public function getDureeMois($id_user)
{
$user = User::findOrFail($id_user);
$init_country = $user->network->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);
} else {
return $this->
errorResponse(trans('errors.no_ilink_network'));
}
if (!$config->has_nano_credit)
return $this->errorResponse(trans('errors.nano_credit_not_available'));
$paliers = array_values(array_filter($config->paliers_config_nano_credits->all(), function ($taux) {
return $taux->type == 'nano_credit';
}));
$mois = array_map(function ($palier) {
return $palier->duree_mois;
}, $paliers);
return $this->successResponse($mois);
}
// Calculer les frais // Calculer les frais
private function calculateFees(array $paliers, $montant, $duree) private function calculateFees(array $paliers, $montant, $duree)
{ {
$size = sizeof($paliers); $size = sizeof($paliers);
if ($size > 0) { if ($size > 0) {
// $mois = array_map(function ($palier) {
// return $palier->duree_mois;
// },$paliers);
$palier = null; $palier = null;
foreach ($paliers as $p) { foreach ($paliers as $p) {
if ($p->duree_mois == $duree) { if ($p->duree_mois == $duree) {

View File

@ -396,7 +396,6 @@ ug.date_creation as date_creation_groupe , ug.createur , ug.sponsor1 , ug.sponso
if ($demand) { if ($demand) {
unset($demand->date_creation); unset($demand->date_creation);
return $this->successResponse($demand); return $this->successResponse($demand);
} else } else
return $this->errorResponse(trans('errors.model_not_found', ['model' => 'groupValidationDemand']), Response::HTTP_BAD_REQUEST); return $this->errorResponse(trans('errors.model_not_found', ['model' => 'groupValidationDemand']), Response::HTTP_BAD_REQUEST);
} }

View File

@ -26,6 +26,7 @@ use Illuminate\Database\Eloquent\Model;
* @property int $id_user * @property int $id_user
* @property int $id_wallet_agent * @property int $id_wallet_agent
* @property bool $retrait_cash * @property bool $retrait_cash
* @property int id_network
* @property Carbon $date_creation * @property Carbon $date_creation
* *
* @package App\Models * @package App\Models
@ -42,7 +43,8 @@ class UsersDemandesCredit extends Model
'taxe' => 'float', 'taxe' => 'float',
'id_user' => 'int', 'id_user' => 'int',
'id_wallet_agent' => 'int', 'id_wallet_agent' => 'int',
'retrait_cash' => 'bool' 'retrait_cash' => 'bool',
'id_network' => 'int'
]; ];
protected $dates = [ protected $dates = [
@ -66,6 +68,7 @@ class UsersDemandesCredit extends Model
'id_user', 'id_user',
'id_wallet_agent', 'id_wallet_agent',
'retrait_cash', 'retrait_cash',
'id_network',
'date_creation' 'date_creation'
]; ];
} }

View File

@ -87,5 +87,6 @@ $router->group(['prefix' => '/groups'], function () use ($router) {
$router->post('askNanoCredit', 'NanoCreditController@askNanoCredit'); $router->post('askNanoCredit', 'NanoCreditController@askNanoCredit');
$router->post('guaranteeNanoCredit', 'NanoCreditController@cautionnerCredit'); $router->post('guaranteeNanoCredit', 'NanoCreditController@cautionnerCredit');
$router->post('refundNanoCredit', 'NanoCreditController@rembourserCredit'); $router->post('refundNanoCredit', 'NanoCreditController@rembourserCredit');
$router->get('durations/{id_user}', 'NanoCreditController@getDureeMois');
}); });
}); });