src/Controller/Admin/CartFinishedCrudController.php line 71
<?phpnamespace App\Controller\Admin;use App\Entity\CartFinished;use EasyCorp\Bundle\EasyAdminBundle\Config\Action;use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;use EasyCorp\Bundle\EasyAdminBundle\Config\Filters;use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;use EasyCorp\Bundle\EasyAdminBundle\Field\DateField;use EasyCorp\Bundle\EasyAdminBundle\Field\IntegerField;use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField;use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;use EasyCorp\Bundle\EasyAdminBundle\Dto\SearchDto;use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto;use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection;use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection;use Doctrine\ORM\QueryBuilder;use Doctrine\ORM\EntityManagerInterface;class CartFinishedCrudController extends AbstractCrudController{private EntityManagerInterface $entityManager;public function __construct(EntityManagerInterface $entityManager){$this->entityManager = $entityManager;}public static function getEntityFqcn(): string{return CartFinished::class;}public function configureActions(Actions $actions): Actions{return $actions->remove(Crud::PAGE_INDEX, Action::NEW);}public function configureFilters(Filters $filters): Filters{return $filters->add('user')->add('commandId')->add('commandDate')->add('deliveryBillingAddress')->add('deliveryAddress')->add('totalPaid')->add('pourcentRebate');}public function configureCrud(Crud $crud): Crud{return $crud->setPageTitle('index', 'Commandes passées')->setEntityLabelInSingular('Commande')->setDefaultSort(['commandDate' => 'DESC']);}public function configureFields(string $pageName): iterable{yield AssociationField::new('user', 'Client')->formatValue(function ($value, $entity) {return $entity->getUser() ? $entity->getUser()->getEmail() : 'Aucun client';})->hideOnForm();yield AssociationField::new('user', 'Entreprise')->formatValue(function ($value, $entity) {return $entity->getUser() ? $entity->getUser()->getCompanyNameFromAdditionalInfo() : '';})->hideOnForm();yield IntegerField::new('commandId', 'ID de la commande')->hideOnIndex();yield DateField::new('commandDate', 'Date commande')->setTimezone('Europe/Brussels');yield AssociationField::new('deliveryBillingAddress', 'Facturation')->hideOnForm();yield AssociationField::new('deliveryAddress', 'Livraison')->hideOnForm();yield NumberField::new('totalPaid', 'Prix total commande');yield NumberField::new('pourcentRebate', 'remise quantité');}public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder{$queryBuilder = parent::createIndexQueryBuilder($searchDto, $entityDto, $fields, $filters);// Force le chargement de la relation user avec JOIN$queryBuilder->leftJoin('entity.user', 'u')->addSelect('u');return $queryBuilder;}}