get(AdminUrlGenerator::class); $creditControllerFqcn = $this->getControllerFqcnByInterface(CreditHistoryInterface::class); foreach ($actions as $action) { $url = $adminUrlGenerator ->setController($creditControllerFqcn) ->setAction(Action::NEW) ->set('userMerchantId', $this->getUserMerchant()->getId()) ->generateUrl(); $action->setLinkUrl($url); } } } public function createEntity(string $entityFqcn) { $factory = new CreditHistoryFactory(); return $factory->create(); } public function persistEntity(EntityManagerInterface $entityManager, $entityInstance): void { $entityInstance->setUserMerchant($this->getUserMerchant()); parent::persistEntity($entityManager, $entityInstance); // TODO: Change the autogenerated stub } protected function getUserMerchant(): UserMerchantInterface { $request = $this->get(AdminContextProvider::class)->getContext()->getRequest(); $userMerchant = $this->get('em')->getRepository(UserMerchantInterface::class)->find( $request->get('userMerchantId') ); return $userMerchant; } public function configureActions(Actions $actions): Actions { $actions->disable(Action::DELETE, Action::EDIT); return parent::configureActions($actions); // TODO: Change the autogenerated stub } public function configureCrud(Crud $crud): Crud { $crud->overrideTemplate('crud/index', '@LcCaracole/admin/credit/index_credithistory.html.twig'); return $crud; } public function configureFields(string $pageName): iterable { $translatorAdmin = $this->get('translator_admin'); return [ IdField::new('id')->hideOnForm(), ChoiceField::new('type')->setChoices( array( $translatorAdmin->transField( 'typeOptions.'.CreditHistoryModel::TYPE_CREDIT, 'CreditHistory' ) => CreditHistoryModel::TYPE_CREDIT, $translatorAdmin->transField( 'typeOptions.'.CreditHistoryModel::TYPE_DEBIT, 'CreditHistory' ) => CreditHistoryModel::TYPE_DEBIT, ) ), MoneyField::new('amount')->setCurrency('EUR'), DateField::new('paidAt'), ChoiceField::new('meanPayment')->setChoices( array( $translatorAdmin->transField( 'meanPaymentOptions.'.CreditHistoryModel::MEAN_PAYMENT_CASH, 'CreditHistory' ) => CreditHistoryModel::MEAN_PAYMENT_CASH, $translatorAdmin->transField( 'meanPaymentOptions.'.CreditHistoryModel::MEAN_PAYMENT_CHEQUE, 'CreditHistory' ) => CreditHistoryModel::MEAN_PAYMENT_CHEQUE, $translatorAdmin->transField( 'meanPaymentOptions.'.CreditHistoryModel::MEAN_PAYMENT_CREDIT, 'CreditHistory' ) => CreditHistoryModel::MEAN_PAYMENT_CREDIT, $translatorAdmin->transField( 'meanPaymentOptions.'.CreditHistoryModel::MEAN_PAYMENT_CREDIT_CARD, 'CreditHistory' ) => CreditHistoryModel::MEAN_PAYMENT_CREDIT_CARD, $translatorAdmin->transField( 'meanPaymentOptions.'.CreditHistoryModel::MEAN_PAYMENT_TRANSFER, 'CreditHistory' ) => CreditHistoryModel::MEAN_PAYMENT_TRANSFER, ) ), TextField::new('reference'), TextField::new('comment'), ]; } public function createIndexQueryBuilder( SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters ): QueryBuilder { $queryBuilder = parent::createIndexQueryBuilder( $searchDto, $entityDto, $fields, $filters ); $queryBuilder->andWhere('entity.userMerchant = :userMerchant'); $queryBuilder->setParameter('userMerchant', $searchDto->getRequest()->get('userMerchantId')); return $queryBuilder; } }