<?php
namespace App\Controller;
use App\Entity\Admin;
use App\Entity\Enterprise;
use App\Entity\User;
use App\Form\AdminUserFormType;
use App\Form\EnterpriseFormType;
use App\Form\EnterpriseUserFormType;
use App\Repository\AdminRepository;
use App\Service\EmailNotification;
use App\Service\FileUploader;
use App\Service\SMSService;
use Doctrine\ORM\EntityManagerInterface;
use Exception;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\HttpFoundation\File\Exception\FileException;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
class AdminController extends AbstractController
{
private $em;
private $rpe;
private $rpu;
private $rpa;
/**
* @param $em
* @param $rpe
* @param $rpu
* @param $rpa
*/
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
$this->enterpriseRepository = $em->getRepository(Enterprise::class);
$this->userRepository = $em->getRepository(User::class);
$this->adminRepository = $em->getRepository(Admin::class);
}
/*
* Dashboard
*/
#[Route('/admin', name: 'admin')]
public function admin(): Response
{
return $this->render('admin/dashboard/index.html.twig', [
'page' => 'd',
'numberSMS' => $this->enterpriseRepository->countMessages(),
'numberEnterprise' => $this->enterpriseRepository->countEntreprises(),
'numberAdmin' => $this->adminRepository->countAdmins(),
'numberUserClients' => $this->userRepository->countClients(),
//'enterprises' => $this->enterpriseRepository->findBy([], ['id' => 'DESC']),
// 'years' => $years
]);
}
#[Route('/admin/getstats', name: 'admin_getstats')]
public function getstats(): JSonResponse
{
extract($_GET);
$msg = '';
$resp = array(
'msg' => '', 'chart' => []
);
// dd($this->rps->getStats($ide, $year));
$ide = $this->getUser()->getEnterprise()->getId();
$year = date('Y');
$stats = ($this->adminRepository->getStats($ide, $year));
// dd($stats);
$chart = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
foreach ($stats as $row) {
$chart[$row['month'] - 1] += $row['numbersms'];
}
// dd($chart);
$resp['chart'] = $chart;
// dd($resp['chart']);
return $this->json($resp);
}
#[Route('/getyears', name: 'getyears')]
public function getyears()
{
extract($_GET);
return new JsonResponse($this->adminRepository->getYears($id));
}
/*
* Entreprises
*/
#[Route('/admin/enterprise', name: 'admin_enterprise')]
public function enterprise(Request $request, EntityManagerInterface $entityManager, FormFactoryInterface $formFactory): Response
{
$enterprise = new Enterprise();
$form = $formFactory->createNamed('', EnterpriseFormType::class, $enterprise, [
//'action' => $this->generateUrl('admin_enterprise_create')
]);
return $this->render('admin/enterprise/index.html.twig', [
'page' => 'e',
'form' => $form->createView(),
'enterprises' => $this->enterpriseRepository->findBy([], ['id' => 'DESC']),
'numberSMS' => $this->enterpriseRepository->countMessages(),
'numberEnterprise' => $this->enterpriseRepository->countEntreprises(),
'numberAdmin' => $this->adminRepository->countAdmins(),
'numberUserClients' => $this->userRepository->countClients(),
]
);
}
#[Route('/admin/enterprise/create', name: 'admin_enterprise_create')]
public function enterprise_create(Request $request,SMSService $service): JsonResponse
{
extract($_GET, EXTR_OVERWRITE);
$nbreEnterprise = $this->enterpriseRepository->count([]);
$enterprise = new Enterprise();
$enterprise->setName($name);
$enterprise->setPhone($phone);
$enterprise->setEmail($email);
$enterprise->setAddress($address);
$resp = array('status' => 'failed', 'msg' => "L'ajout ne s'est pas effectue", 'e' => null);
$this->adminRepository->createTable($enterprise->getName());
$enterprise->setTableName($name . "tab");
$enterprise->setCreditSMS(($creditSMS == '') ? 0 : (int)$creditSMS);
$this->enterpriseRepository->add($enterprise, true);
$nbreNouveauEnterprise = $this->enterpriseRepository->count([]);
dd($nbreNouveauEnterprise .'-'.'sdsdsdsd');
$result = ($nbreEnterprise != $nbreNouveauEnterprise);
$lastEnterprise = $this->enterpriseRepository->findBy([], ['id' => 'DESC'], 1);
// $result = (0 == 0);
if ($result) {
$resp['status'] = 'success';
$resp['msg'] = "L' entreprise a bien ete ajoutee";// . $conn->error;
$resp['number'] = $nbreNouveauEnterprise;
$updateEnterprise = $lastEnterprise[0];
//$service->internalSMSNotification('SMS PLATFORM',$phone,'Bienvenu sur SMS PLATFORM,le compte de l\'entreprise '.$name.' a bien ete cree.');
$resp['e'] = array(
$updateEnterprise->getId(),
$updateEnterprise->getName(),
$updateEnterprise->getPhone(),
$updateEnterprise->getEmail(),
$updateEnterprise->getAddress(),
$updateEnterprise->getCreditSMS()
);;
$resp['ifFerme'] = $ifFerme;
}
return new JSonResponse($resp);
}
#[Route('/admin/enterprise/update/{id}', name: 'admin_enterprise_update')]
public function enterprise_update($id, Request $request): JSonResponse
{
extract($_GET, EXTR_OVERWRITE);
$enterprise = $this->enterpriseRepository->find($id);
$oldtablename = $enterprise->getTablename();
$oldname = $enterprise->getName();
// dd('ALTER TABLE `'.$oldtablename.'` RENAME TO `' . $name.'tab`');
// dd([$oldname,$oldtablename,$name]);
if ($name != $oldname) {
$enterprise->setName($name);
$this->adminRepository->executeSQL('ALTER TABLE ' . $oldtablename . ' RENAME TO `' . $name . 'tab`');
$enterprise->setTablename($name . 'tab');
}
$enterprise->setPhone($phone);
$enterprise->setEmail($email);
$enterprise->setAddress($address);
$this->em->flush();
$updateEnterprise = $this->enterpriseRepository->findOneBy(['id' => $id]);
$resp = array('status' => 'failed', 'msg' => "La modification n'a pas pu s'effectuer", 'e' => null);
if ($enterprise->equals($updateEnterprise)) {
$resp['status'] = 'success';
$resp['msg'] = "La modification s'est effectue";
$resp['e'] = array(
$updateEnterprise->getId(),
$updateEnterprise->getName(),
$updateEnterprise->getPhone(),
$updateEnterprise->getEmail(),
$updateEnterprise->getAddress(),
$updateEnterprise->getCreditSMS()
);
$resp['ifFerme'] = $ifFerme;
}
return $this->json($resp);
// return $this->redirectToRoute('admin_enterprise');
}
#[Route('/admin/enterprise/delete/{id}', name: 'admin_enterprise_delete')]
public function enterprise_delete($id, Request $request): JSonResponse
{
$enterprise = $this->enterpriseRepository->find($id);
// dd($enterprise);
// $this->rps->deleteTable($enterprise->getName());
$msg = '';
try {
$this->adminRepository->executeSQL('DROP TABLE `'.$enterprise->getTableName().'`');
}
catch (Exception $e){
$msg = 'Un probleme est survenu lors de la suppression de la table de l\'entreprise.';
}
$nbre1 = $this->enterpriseRepository->count([]);
$this->enterpriseRepository->remove($enterprise, true);
$nbre2 = $this->enterpriseRepository->count([]);
$resp = array('status' => 'failed', 'msg' => "La suppression n'a pas pu s'effectuer");
if ($nbre1 != $nbre2) {
$resp['status'] = 'success';
$resp['msg'] = $msg."L'entreprise a ete supprimee";
$resp['number'] = $nbre2;
$resp['id'] = $id;
}
return $this->json($resp);
// return $this->redirectToRoute('admin_enterprise');
}
#[Route('/admin/enterprise/reload', name: 'admin_enterprise_reload')]
public function enterprise_reload(Request $request,SMSService $service): JSonResponse
{
extract($_GET);
$success = true;
$resp = array(
'status' => 'success',
'msg' => 'Les comptes ont ete recharges',
'numberSMS' => null
);
$names = array();
$ids = array();
$word = ($operation == 'a') ? 'credite' : 'debite';
foreach ($entreprises as $id) {
$enterprise = $this->enterpriseRepository->find($id);
$numberSMS = $enterprise->getCreditSMS();
if ($operation == 'a') $numberSMS += (int)$number;
else $numberSMS -= (int)$number;
$enterprise->setCreditSMS($numberSMS);
$this->em->flush();
$updateEnterprise = new Enterprise();
$updateEnterprise = $this->enterpriseRepository->findOneBy(['id' => $id, 'creditSMS' => $numberSMS]);
$numberSMS = $enterprise->getCreditSMS();
if (!$enterprise->equals($updateEnterprise)) {
array_push($names, $enterprise->getName());
$success = false;
} else {
array_push($ids, $id);
$resp['numberSMS'] = $numberSMS;
$resp['ifFerme'] = $ifFerme;
//$service->internalSMSNotification('SMS PLATFORM',$enterprise->getPhone(),'Le compte SMS de '.$enterprise->getName().' a bien ete '.$word.'\nNouveau Solde : '.$numberSMS);
}
}
if (!$success) {
$resp['status'] = 'failed';
//Construction du message d'erreur
$msg = 'Le';
if (count($names) == 1) {
$msg .= ' compte de ' . $names[0] . ' n\' a pas pu etre ' . $word;
} else {
$msg .= 's comptes des entreprises ' . implode(',', $names) . 'n \'ont pas pu etre ' . $word . 's';
}
$resp['msg'] = $msg;
}
$resp['ids'] = $ids;
return $this->json($resp);
// return $this->redirectToRoute('admin_enterprise');
}
#[Route('/admin/enterprise/check', name: 'admin_enterprise_check')]
public function enterprise_check(Request $request): JSonResponse
{
extract($_GET);
$msg = '';
$resp = array(
'name' => true, 'phone' => true
);
$uniqueName = $this->enterpriseRepository->count(['name' => $name]) > 0;
$uniquePhone = $this->enterpriseRepository->count(['phone' => $phone]) > 0;
if ($ide != '') {
$enterpriseWithSameName = $this->enterpriseRepository->findOneBy(['name' => $name]);
if ($enterpriseWithSameName != null) {
$uniqueName = $enterpriseWithSameName->getId() != $ide;
}
$enterpriseWithSamePhone = $this->enterpriseRepository->findOneBy(['phone' => $phone]);
if ($enterpriseWithSamePhone != null) {
$uniquePhone = $enterpriseWithSamePhone->getId() != $ide;
}
}
if ($uniqueName) {
$resp['name'] = false;
}
if ($uniquePhone) {
$resp['phone'] = false;
}
return $this->json($resp);
}
/*
* Messages
*/
#[Route('/admin/message', name: 'admin_message')]
public function message(): Response
{
return $this->render('admin/message/index.html.twig', [
'page' => 'm',
'enterprises' => $this->enterpriseRepository->findBy([], ['id' => 'DESC']),
'numberSMS' => $this->enterpriseRepository->countMessages(),
'numberEnterprise' => $this->enterpriseRepository->countEntreprises(),
'numberAdmin' => $this->adminRepository->countAdmins(),
'numberUserClients' => $this->userRepository->countClients(),
//'numberSMS' => $this->rpa->countAllMessages('0','','','000'),
//'numberEnterprise' => $this->rpe->count([]),
//'numberAdmin' => $numberAdmin,
//'numberUserClients' => $numberUserClients,
]);
}
/*
* Parametres
*/
#[Route('/admin/setting', name: 'admin_setting')]
public function setting(FormFactoryInterface $formFactory): Response
{
$user = new User();
$form = $formFactory->createNamed('', EnterpriseUserFormType::class, $user);
// foreach ($users as $user) {
// if (in_array('ROLE_ADMIN', $user->getRoles())) $numberAdmin++;
// else $numberUserClients++;
// }
return $this->render('admin/setting/index.html.twig', [
'page' => 's',
'numberSMS' => $this->enterpriseRepository->countMessages(),
'numberEnterprise' => $this->enterpriseRepository->countEntreprises(),
'numberAdmin' => $this->adminRepository->countAdmins(),
'numberUserClients' => $this->userRepository->countClients(),
'form' => $form->createView()
]);
}
#[Route('/admin/setting/update/{id}', methods: ['GET', 'POST'], name: 'admin_setting_update')]
public function setting_update($id, Request $request, FileUploader $fileUploader, EntityManagerInterface $entityManager): JSonResponse
{
extract($_POST);
extract($_FILES);
$entityRepository = $this->userRepository;
$user = $entityRepository->find($id);
if ($user == null) {
$entityRepository = $this->adminRepository;
$user = $entityRepository -> find($id);
}
$imgsdirectory = $fileUploader->getTargetDirectory() . '/';
if ($username != $user->getUsername() && !($image)) {
$userNameImage = $username . $this->adminRepository->index(3) . '.' . pathinfo($user->getImage(), PATHINFO_EXTENSION);
rename($imgsdirectory . $user->getImage(), $imgsdirectory . $userNameImage);
$user->setImage($userNameImage);
}
$user->setUsername($username);
$user->setEmail($email);
$user->setPhone($phone);
$resp = array('status' => 'failed', 'msg' => "La modification n'a pas pu s'effectuer", 'e' => null);
if (isset($image) && $image['name'] != '') {
try {
$path = $image['tmp_name'];
$originalName = $image['name'];
$type = $image['type'];
$error = $image['error'];
$fileImage = new UploadedFile($path, $originalName, $type, $error);
// dd($imgsdirectory . $user->getImage());
$filename = $imgsdirectory . $user->getImage();
if (file_exists($filename) && $user->getImage() != '') unlink($filename);
if ($path != '') {
$fileName = $fileUploader->upload($fileImage, $user);
$user->setImage($fileName);
}
} catch (FileException $e) {
$resp['status'] = 'failed';
$resp['msg'] = 'Desole,nous n\'avons pas pu changer votre image';
}
}
$this->em->flush();
$updateUser = $entityRepository->findOneBy(['id' => $id]);
if ($user->equals($updateUser)) {
$resp['status'] = 'success';
$resp['msg'] = "La modification s'est effectue";
$resp['id'] = $id;
$resp['u'] = array(
$updateUser->getUsername(),
$updateUser->getPhone(),
$updateUser->getEmail(),
$updateUser->getImage()
);
}
return new JsonResponse($resp);
}
#[Route('admin/setting/changepassword/{id}', name: 'admin_setting_changepassword')]
public function changepassword($id, Request $request, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager): JSonResponse
{
extract($_GET);
$entityRepository = $this->rpu;
$user = $entityRepository->find($id);
if ($user == null) {
$entityRepository = $this->adminRepository;
$user = $entityRepository -> find($id);
}
$resp = array('status' => 'failed', 'msg' => "La modification n'a pas pu s'effectuer");
// encode the plain password
if (!password_verify($oldpass, $user->getPassword())) {
$resp['status'] = 'failed';
$resp['msg'] = 'Le premier mot de passe ne correspond pas';
return $this->json($resp);
}
// encode the plain password
$user->setPassword(
$userPasswordHasher->hashPassword(
$user, $newpass
)
);
$this->em->flush();
$updateUser = $entityRepository->findOneBy(['id' => $id]);
if ($user->equals($updateUser)) {
$resp['status'] = 'success';
$resp['msg'] = "Votre mot de passe a bien ete modifiee";
}
return new JsonResponse($resp);
}
/*
* Change Theme
*/
#[Route('/theme', name: 'theme', methods: ['GET'])]
public function theme(): JsonResponse
{
extract($_GET);
if($this->getUser())
{
if($this->getUser()->isTheme() == true )
{
$this->getUser()->setTheme(false);
}
else
{
$this->getUser()->setTheme(true);
}
}
$this->em->flush();
$resp['status'] = 'success';
return new JsonResponse($resp);
}
#[Route('/admin/users/clients', name: 'admin_users_clients')]
public function clients(Request $request, EntityManagerInterface $entityManager, FormFactoryInterface $formFactory): Response
{
$user = new User();
$form = $formFactory->createNamed('', EnterpriseUserFormType::class, $user);
return $this->render('admin/users/clients/index.html.twig', [
'page' => 'clients',
'form' => $form->createView(),
'numberSMS' => $this->enterpriseRepository->countMessages(),
'numberEnterprise' => $this->enterpriseRepository->countEntreprises(),
'numberAdmin' => $this->adminRepository->countAdmins(),
'numberUserClients' => $this->userRepository->countClients(),
]
);
}
#[Route('/admin/users/admins', name: 'admin_users_admins')]
public function admins(AdminRepository $adminRepository, FormFactoryInterface $formFactory): Response
{
$user = new User();
$form = $formFactory->createNamed('', AdminUserFormType::class, $user);
return $this->render('admin/users/admins/index.html.twig', [
'page' => 'a',
'form' => $form->createView(),
'admins' => $adminRepository->findBy([], ['id' => 'DESC']),
'numberSMS' => $this->enterpriseRepository->countMessages(),
'numberEnterprise' => $this->enterpriseRepository->countEntreprises(),
'numberAdmin' => $this->adminRepository->countAdmins(),
'numberUserClients' => $this->userRepository->countClients(),
]
);
}
#[Route('/admin/users/{type}/check', name: 'admin_clients_check')]
public function user_check($type, Request $request): JSonResponse
{
// ide : Identifiant utilisateur
// enterprise : Identifiant entreprise(type == user)
// username : Nom utilisateur
// phone : Telephone utilisateur
extract($_GET);
$msg = '';
$resp = array(
'name' => true, 'phone' => true
);
$entityRepository = null;
$enterprise = null;
if ($type == 'user'){
$entityRepository = $this->userRepository;
if ($enterprise) $enterprise = $this->enterpriseRepository->find($enterprise);
}
else{
$entityRepository = $this->adminRepository;
}
//$test = $entityRepository->findBy(['username' => $username, 'enterprise' => $enterprise]);
$uniqueName = $entityRepository->count(['username' => $username, 'enterprise' => $enterprise]) > 0;
$uniquePhone = $entityRepository->count(['username' => $phone, 'enterprise' => $enterprise]) > 0;
if ($ide != '') {
$userWithSameName = $entityRepository->findOneBy(['username' => $username, 'enterprise' => $enterprise], ['id' => 'ASC']);
if ($userWithSameName != null) {
$uniqueName = $userWithSameName->getId() != $ide;
}
$userWithSamePhone = $entityRepository->findOneBy(['phone' => $phone, 'enterprise' => $enterprise]);
if ($userWithSamePhone != null) {
$uniquePhone = $userWithSamePhone->getId() != $ide;
}
}
if ($uniqueName) {
$resp['name'] = false;
}
if ($uniquePhone) {
$resp['phone'] = false;
}
// dd($resp);
return $this->json($resp);
}
#[Route('/admin/users/{type}/create', name: 'admin_users_clients_create')]
public function users_clients_create($type,FileUploader $fileUploader, Request $request, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager): JSonResponse
{
extract($_POST);
extract($_FILES);
if ($type == 'admin'){
$entityRepository = $this->adminRepository;
$user = new Admin();
$personneType = "administrateur";
}
else{
$entityRepository = $this->userRepository;
$user = new User();
$personneType = "utilisateur";
}
$user->setUsername($username);
$user->setEmail($email);
$user->setPhone($phone);
$user->setRoles([$roles]);
if (isset($enterprise)) {
$user->setEnterprise($this->enterpriseRepository->find($enterprise));
}
if (isset($image) && $image['name'] != '') {
try {
$path = $image['tmp_name'];
$originalName = $image['name'];
$type = $image['type'];
$error = $image['error'];
$fileImage = new UploadedFile($path, $originalName, $type, $error);
$fileName = $fileUploader->upload($fileImage, $user);
$user->setImage($fileName);
} catch (FileException $e) {
$resp['status'] = 'failed';
$resp['msg'] = 'Desole,nous n\'avons pu ajouter l\'image de l\'utilisateur';
}
}
$nbreUser = $entityRepository->count([]);
// encode the plain password
$password = $password == '' ? '123456' : $password;
$user->setPassword(
$userPasswordHasher->hashPassword(
$user, $password
)
);
$entityRepository->add($user,true);
$nbreUser1 = $entityRepository->count([]);
$resp = array('status' => 'failed', 'msg' => "L'ajout ne s'est pas effectue", 'e' => null);
$result = $nbreUser1 != $nbreUser;
if ($result) {
$resp['status'] = 'success';
$resp['msg'] = "L' ". $personneType ." a bien ete ajoutee";// . $conn->error;
$resp['number'] = $nbreUser1;
$lastUser = $entityRepository->findBy([], ['id' => 'DESC'], 1);
$updateUser = $lastUser[0];
$resp['ifFerme'] = $ifFerme;
}
// do anything else you need here, like send an email
return new JsonResponse($resp);
}
#[Route('/admin/users/{type}/update/{id}', name: 'admin_users_clients_update')]
public function users_clients_update($type, $id, FileUploader $fileUploader, Request $request, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager): JSonResponse
{
extract($_POST);
extract($_FILES);
$entityRepository = ($type == "admin")? $this->adminRepository : $this->rpu;
$user = $entityRepository->find($id);
$user->setUsername($username);
$user->setEmail($email);
$user->setPhone($phone);
$user->setRoles([$roles]);
if (isset($enterprise)) $user->setEnterprise($this->enterpriseRepository->find($enterprise));
if (isset($image) && $image['name'] != '') {
try {
$path = $image['tmp_name'];
$originalName = $image['name'];
$type = $image['type'];
$error = $image['error'];
$fileImage = new UploadedFile($path, $originalName, $type, $error);
// dd($imgsdirectory . $user->getImage());
$imgsdirectory = $fileUploader->getTargetDirectory() . '/';
$filename = $imgsdirectory . $user->getImage();
if (file_exists($filename) && $user->getImage() != '') unlink($filename);
$fileName = $fileUploader->upload($fileImage, $user);
$user->setImage($fileName);
} catch (FileException $e) {
$resp['status'] = 'failed';
$resp['msg'] = 'Desole,nous n\'avons pas pu changer votre image';
}
}
// encode the plain
if ($password != '')
$user->setPassword(
$userPasswordHasher->hashPassword(
$user, $password
)
);
$this->em->flush();
$updateUser = $entityRepository->findOneBy(['id' => $id]);
$resp = array('status' => 'failed', 'msg' => "La modification n'a pas pu s'effectuer", 'e' => null);
if ($user->equals($updateUser)) {
$resp['status'] = 'success';
$resp['msg'] = "La modification s'est effectue";
$resp['ifFerme'] = $ifFerme;
}
return new JsonResponse($resp);
}
#[Route('/admin/users/{type}/delete/{id}', name: 'admin_users_clients_delete')]
public function users_clients_delete($type,$id, FileUploader $fileUploader, Request $request): JSonResponse
{
$entityRepository = null;
$personneType = '';
if ($type == "admin"){
$entityRepository = $this->adminRepository ;
$personneType = "administrateur";
}
else{
$entityRepository = $this->rpu ;
$personneType = "utilisateur";
}
$user = $entityRepository->find($id);
$nbre1 = $entityRepository->count([]);
$imgsdirectory = $fileUploader->getTargetDirectory() . '/';
$filename = $imgsdirectory . $user->getImage();
if (file_exists($filename) && $user->getImage() != '') unlink($filename);
$entityRepository->remove($user, true);
$nbre2 = $entityRepository->count([]);
$resp = array('status' => 'failed', 'msg' => "La suppression n'a pas pu s'effectuer");
if ($nbre1 != $nbre2) {
$resp['status'] = 'success';
$resp['msg'] = "L' ".$personneType." a bien ete supprime";
$resp['number'] = $nbre2;
$resp['id'] = $id;
}
return $this->json($resp);
// return $this->redirectToRoute('admin_enterprise');
}
#[Route('/route', name: 'route')]
public function route(Request $request, MailerInterface $mailer): Response
{
$this->adminRepository->find(2)->setEnterprise(null);
$this->adminRepository->find(145)->setEnterprise(null);
$this->adminRepository->find(146)->setEnterprise(null);
return new Response($this->adminRepository->getTable(null));
}
}