Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 58
Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 76
Symfony Profiler
<?php
namespace App\Controller\Admin ;
use App\Entity\Address ;
use App\Entity\Batch ;
use App\Entity\Booking ;
use App\Entity\BookingConfig ;
use App\Entity\Carrier ;
use App\Entity\DeliveryNote ;
use App\Entity\DiscountBanner ;
use App\Entity\EstimationRequest ;
use App\Entity\GuardChargeConfig ;
use App\Entity\Invoice ;
use App\Entity\InvoiceDraft ;
use App\Entity\InvoiceRowType ;
use App\Entity\Label ;
use App\Entity\MySendingBoxLetter ;
use App\Entity\Shipment ;
use App\Entity\SupportRequest ;
use App\Entity\SupportRequestCauseSAV ;
use App\Entity\User ;
use App\Entity\ZonePrice ;
use App\Service\BrandService ;
use App\Service\ConstantsService ;
use Doctrine\ORM\EntityManagerInterface ;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets ;
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud ;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard ;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem ;
use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu ;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController ;
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator ;
use Symfony\Component\HttpFoundation\Response ;
use Symfony\Component\Routing\Annotation\Route ;
use Symfony\Component\Security\Core\User\UserInterface ;
class DashboardController extends AbstractDashboardController
{
private EntityManagerInterface $em ;
private BrandService $brandService ;
/**
* @param EntityManagerInterface $em
* @param BrandService $brandService
*/
public function __construct ( EntityManagerInterface $em , BrandService $brandService )
{
$this -> em = $em ;
$this -> brandService = $brandService ;
}
#[Route ( '/admin' , name : 'admin_dashboard' )]
public function index (): Response
{
$adminUrlGenerator = $this -> container -> get ( AdminUrlGenerator ::class);
if ($this -> isGranted ( 'ROLE_WAREHOUSE_HAND_DELIVERY' ) && ! $this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
return $this -> redirectToRoute ( 'admin_dashboard' , array( 'routeName' => 'admin_export_order_vouchers_hand_delivery' ));
}
if ($this -> isGranted ( 'ROLE_WAREHOUSE_EMPLOYEE' ) && ! $this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
return $this -> redirectToRoute ( 'admin_dashboard' , array( 'routeName' => 'admin_export_order_vouchers' ));
}
if ($this -> isGranted ( 'ROLE_ACCOUNTING' ) && ! $this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
return $this -> redirect ( $adminUrlGenerator -> setController ( InvoiceCrudController ::class)-> set ( 'entityFqcn' , 'App\Entity\Invoice' )-> generateUrl ());
}
return $this -> redirect ( $adminUrlGenerator -> setController ( UserCrudController ::class)-> set ( 'entityFqcn' , 'App\Entity\User' )-> generateUrl ());
}
public function configureDashboard (): Dashboard
{
return Dashboard ::new()-> setTitle ( $this -> brandService -> getBrand ()-> getName ())-> disableDarkMode ();
}
public function configureAssets (): Assets
{
return parent :: configureAssets ()-> addWebpackEncoreEntry ( 'admin_' . $this -> brandService -> getBrand ()-> getStylesheet ())
->addWebpackEncoreEntry ( 'admin' );
}
public function configureMenuItems (): iterable
{
if ($this -> isGranted ( 'ROLE_SECRETARY_MANAGER' )) {
yield MenuItem :: section ( 'Données des ventes' );
yield MenuItem :: linkToRoute ( 'Import des ventes' , 'fas fa-cloud-arrow-up' , 'admin_import' );
yield MenuItem :: linkToRoute ( 'Résumés des ventes' , 'fas fa-cloud-arrow-up' , 'admin_sales_summary' );
}
if ($this -> isGranted ( 'ROLE_EMPLOYEE' )) {
yield MenuItem :: section ( 'Tableaux' );
yield MenuItem :: linkToCrud ( 'Clients' , 'fas fa-users' , User ::class)
->setController ( UserCrudController ::class);
yield MenuItem :: linkToCrud ( 'Adresses' , 'fas fa-map-location-dot' , Address ::class)
->setController ( AddressCrudController ::class);
yield MenuItem :: linkToCrud ( 'Bordereaux' , 'fas fa-file-invoice' , DeliveryNote ::class)
->setController ( DeliveryNoteCrudController ::class);
yield MenuItem :: linkToCrud ( 'Lots' , 'fas fa-box' , Batch ::class)
->setController ( BatchCrudController ::class);
yield MenuItem :: linkToCrud ( 'Rendez-vous' , 'fas fa-calendar-check' , Booking ::class)
->setController ( BookingCrudController ::class);
}
if ($this -> isGranted ( 'ROLE_SUPPORT' )) {
yield MenuItem :: section ( 'SAV' );
yield MenuItem :: linkToCrud ( 'Demandes de support' , 'fas fa-handshake-angle' , SupportRequest ::class)
->setController ( SupportRequestCrudController ::class)
->setQueryParameter ( 'closed' , false );
yield MenuItem :: linkToCrud ( 'Demandes clôturées' , 'fas fa-handshake-simple-slash' , SupportRequest ::class)
->setController ( SupportRequestCrudController ::class)
->setQueryParameter ( 'closed' , true );
yield MenuItem :: linkToCrud ( 'Causes SAV' , 'fas fa-triangle-exclamation' , SupportRequestCauseSAV ::class)
->setController ( SupportRequestCauseSAVCrudController ::class);
if ($this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
yield MenuItem :: linkToRoute ( 'Export SEPA' , 'fas fa-building-columns' , 'admin_export_sepa' );
}
yield MenuItem :: section ( 'Estimations' );
yield MenuItem :: linkToCrud ( 'Demandes d\'estimation' , 'fas fa-scale-unbalanced' , EstimationRequest ::class)
->setController ( EstimationRequestCrudController ::class);
}
if ($this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
yield MenuItem :: section ( 'Configuration' );
yield MenuItem :: linkToCrud ( 'Agenda' , 'fas fa-calendar-days' , BookingConfig ::class)
->setController ( BookingConfigCrudController ::class);
yield MenuItem :: linkToCrud ( 'Transporteurs' , 'fas fa-truck-fast' , Carrier ::class)
->setController ( CarrierCrudController ::class);
yield MenuItem :: linkToCrud ( 'Zones tarifaires' , 'fas fa-earth-americas' , ZonePrice ::class)
->setController ( ZonePriceCrudController ::class);
yield MenuItem :: linkToCrud ( 'Gardiennage' , 'fas fa-warehouse' , GuardChargeConfig ::class)
->setController ( GuardChargeConfigCrudController ::class)-> setAction ( Crud :: PAGE_EDIT )-> setEntityId ( $this -> em -> getRepository ( GuardChargeConfig ::class)-> findConfig ()?-> getId ());
}
if ($this -> isGranted ( 'ROLE_SECRETARY' )) {
yield MenuItem :: section ( 'Export' );
yield MenuItem :: linkToRoute ( 'Export des paiements' , 'fas fa-cloud-arrow-down' , 'admin_export_payment' );
yield MenuItem :: linkToRoute ( 'Export des expéditions' , 'fas fa-cloud-arrow-down' , 'admin_export_shipment' );
yield MenuItem :: linkToRoute ( 'Export des rendez-vous' , 'fas fa-cloud-arrow-down' , 'admin_export_booking' );
yield MenuItem :: linkToRoute ( 'Export des frais de gardiennage' , 'fas fa-cloud-arrow-down' , 'admin_export_guard_charge' );
if ($this -> brandService -> getBrand ()-> isEnableTierCharge ()) {
yield MenuItem :: linkToRoute ( 'Export des frais de Interencheres' , 'fas fa-cloud-arrow-down' , 'admin_export_tier_charge' );
}
if ($this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
yield MenuItem :: linkToRoute ( 'Export des demandes de support' , 'fas fa-cloud-arrow-down' , 'admin_export_causeSAV' );
}
}
if ($this -> isGranted ( 'ROLE_ACCOUNTING' )) {
yield MenuItem :: section ( 'Facturation' );
yield MenuItem :: linkToCrud ( 'Factures' , 'fas fa-file-invoice' , Invoice ::class)-> setController ( InvoiceCrudController ::class);
yield MenuItem :: linkToCrud ( 'Factures soldées' , 'fas fa-file-invoice-dollar' , Invoice ::class)-> setController ( InvoiceCrudController ::class)-> setQueryParameter ( 'paid_invoice' , true );
yield MenuItem :: linkToCrud ( 'Factures non soldées' , 'fas fa-file-invoice-dollar' , Invoice ::class)-> setController ( InvoiceCrudController ::class)-> setQueryParameter ( 'paid_invoice' , false );
yield MenuItem :: linkToCrud ( 'Avoirs' , 'fas fa-file-lines' , InvoiceCreditCrudController ::class)-> setController ( InvoiceCreditCrudController ::class);
if ($this -> isGranted ( 'ROLE_SECRETARY' )) {
yield MenuItem :: linkToCrud ( 'Brouillons' , 'fas fa-file-invoice' , InvoiceDraft ::class)-> setController ( InvoiceDraftCrudController ::class);
}
yield MenuItem :: linkToRoute ( 'Export des factures' , 'fas fa-cloud-arrow-down' , 'admin_export_invoices' );
yield MenuItem :: linkToRoute ( 'Export des avoirs' , 'fas fa-cloud-arrow-down' , 'admin_export_credits' );
yield MenuItem :: linkToRoute ( 'Export MyUnisoft' , 'fas fa-cloud-arrow-down' , 'admin_export_accounting' );
yield MenuItem :: linkToRoute ( 'Export OD' , 'fas fa-cloud-arrow-down' , 'admin_export_accounting_reclassification' );
if ($this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
yield MenuItem :: linkToCrud ( 'Types de frais' , 'fas fa-bookmark' , InvoiceRowType ::class)-> setController ( InvoiceRowTypeCrudController ::class);
}
}
if ($this -> isGranted ( 'ROLE_SECRETARY' )) {
yield MenuItem :: section ( 'Expéditions' );
yield MenuItem :: linkToCrud ( 'Expéditions' , 'fas fa-truck-fast' , Shipment ::class)
->setController ( ShipmentCrudController ::class);
yield MenuItem :: linkToCrud ( 'Expéditions NPAI' , 'fas fa-truck-arrow-right' , Shipment ::class)
->setController ( ShipmentCrudController ::class)-> setQueryParameter ( 'npai' , true )-> setCssClass ( 'reverse-dashboard-icon' );
}
if ($this -> isGranted ( 'ROLE_LOGISTICIAN' )) {
yield MenuItem :: section ( 'Gardiennage' );
yield MenuItem :: linkToCrud ( 'Envoyer LRAR' , 'fas fa-envelope-open-text' , DeliveryNote ::class)
->setController ( GuardController ::class);
yield MenuItem :: linkToCrud ( 'Gérer LRAR' , 'fas fa-envelope-circle-check' , MySendingBoxLetter ::class)
->setController ( MySendingBoxLetterCrudController ::class);
yield MenuItem :: linkToCrud ( 'À remettre en vente' , 'fas fa-envelope-open' , MySendingBoxLetter ::class)
->setController ( MySendingBoxLetterCrudController ::class)-> setQueryParameter ( 're_sale' , true );
yield MenuItem :: linkToCrud ( 'Bordereaux ignorés' , 'fa-regular fa-envelope' , DeliveryNote ::class)
->setController ( GuardIgnoredController ::class);
}
if ($this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
yield MenuItem :: section ( 'Utilisateurs' );
yield MenuItem :: linkToCrud ( 'Utilisateurs' , 'fas fa-users' , User ::class)
->setController ( AdminCrudController ::class);
}
if ($this -> isGranted ( 'ROLE_SALE_ADMINISTRATOR' ) && $this -> brandService -> isADN ()) {
yield MenuItem :: section ( 'Mandats de vente' );
yield MenuItem :: linkToRoute ( 'Mandats' , 'fas fa-folder-open' , 'admin_sale_request' );
yield MenuItem :: linkToRoute ( 'Exporter les lots non signés' , 'fas fa-cloud-arrow-down' , 'admin_export_unsigned_batches' );
if ($this -> isGranted ( 'ROLE_SUPER_ADMIN' )) {
yield MenuItem :: linkToRoute ( 'Importer les ventes' , 'fas fa-cloud-arrow-up' , 'admin_import_sales' );
yield MenuItem :: linkToRoute ( 'Importer les vendeurs' , 'fas fa-cloud-arrow-up' , 'admin_import_sellers' );
yield MenuItem :: linkToRoute ( 'Importer les lots' , 'fas fa-cloud-arrow-up' , 'admin_import_batches' );
}
}
if ($this -> isGranted ( 'ROLE_WAREHOUSE_EMPLOYEE' )) {
yield MenuItem :: section ( 'Service expédition' );
if ($this -> isGranted ( 'ROLE_SUPER_ADMIN' ) || $this -> isGranted ( 'ROLE_LOGISTICIAN' )) {
yield MenuItem :: linkToCrud ( 'Bons en attente' , 'fas fa-pause' , DeliveryNote ::class)-> setController ( PreparationVoucherCrudController ::class)-> setQueryParameter ( 'status' , null );
}
yield MenuItem :: linkToRoute ( 'Créer des bons' , 'fas fa-add' , 'admin_export_order_vouchers' );
yield MenuItem :: linkToCrud ( 'Bons en cours' , 'fas fa-spinner' , DeliveryNote ::class)-> setController ( PreparationVoucherCrudController ::class)-> setQueryParameter ( 'status' , ConstantsService :: WAREHOUSE_STATUS_STARTED );
yield MenuItem :: linkToCrud ( 'Bons terminés' , 'fas fa-check' , DeliveryNote ::class)-> setController ( PreparationVoucherCrudController ::class)-> setQueryParameter ( 'status' , ConstantsService :: WAREHOUSE_STATUS_FINISHED );
yield MenuItem :: linkToRoute ( 'Validation/Export des données' , 'fas fa-cloud-arrow-down' , 'admin_postage_export' );
}
if (!$this -> brandService -> isNPCJ ()) {
if ($this -> isGranted ( 'ROLE_RECEPTION' )) {
yield MenuItem :: section ( 'Service réception' );
yield MenuItem :: linkToCrud ( 'Étiquettes de transport' , 'fas fa-tag' , Label ::class)-> setController ( LabelCrudController ::class);
yield MenuItem :: linkToRoute ( 'Réception colis/palettes' , 'fas fa-box' , 'admin_label_reception' );
}
}
if ($this -> isGranted ( 'ROLE_WAREHOUSE_HAND_DELIVERY' )) {
yield MenuItem :: section ( 'Service remise MP' );
yield MenuItem :: linkToRoute ( 'Créer des bons' , 'fas fa-add' , 'admin_export_order_vouchers_hand_delivery' );
yield MenuItem :: linkToCrud ( 'Bons en cours' , 'fas fa-spinner' , DeliveryNote ::class)-> setController ( PreparationVoucherHandDeliveryCrudController ::class)-> setQueryParameter ( 'status' , ConstantsService :: WAREHOUSE_STATUS_STARTED );
yield MenuItem :: linkToCrud ( 'Bons en attente remise MP' , 'fas fa-hand' , DeliveryNote ::class)-> setController ( PreparationVoucherHandDeliveryCrudController ::class)-> setQueryParameter ( 'status' , ConstantsService :: WAREHOUSE_STATUS_HAND_DELIVERY );
yield MenuItem :: linkToCrud ( 'Bons terminés' , 'fas fa-check' , DeliveryNote ::class)-> setController ( PreparationVoucherHandDeliveryCrudController ::class)-> setQueryParameter ( 'status' , ConstantsService :: WAREHOUSE_STATUS_FINISHED );
}
if ($this -> isGranted ( 'ROLE_DISCOUNT_MANAGER' )) {
yield MenuItem :: section ( 'Offre promotionnelle ' );
yield MenuItem :: linkToCrud ( 'Configuration' , 'fas fa-gear' , DiscountBanner ::class)
->setController ( DiscountBannerCrudController ::class)-> setAction ( Crud :: PAGE_EDIT )-> setEntityId ( DiscountBanner :: ID );
yield MenuItem :: linkToCrud ( 'Codes Promo' , 'fas fa-percent' , Booking ::class)
->setController ( DiscountCodeCrudController ::class);
}
}
public function configureUserMenu ( UserInterface $user ): UserMenu
{
// Usually it's better to call the parent method because that gives you a
// user menu with some menu items already created ("sign out", "exit impersonation", etc.)
// if you prefer to create the user menu from scratch, use: return UserMenu::new()->...
return parent :: configureUserMenu ( $user )
->setName ( $user -> getFullname ())
->displayUserAvatar ( false )
//->addMenuItems([
// MenuItem::linkToRoute('My Profile', 'fa fa-id-card', '...', ['...' => '...']),
// MenuItem::linkToRoute('Settings', 'fa fa-user-cog', '...', ['...' => '...'])
//])
;
}
}