src/Controller/AdminCRUDController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Sonata\AdminBundle\Controller\CRUDController;
  4. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  8. use App\Controller\EventsController;
  9. use App\Controller\OrderController;
  10. use App\Entity\Events;
  11. use App\Entity\Orders;
  12. use App\Entity\Customers;
  13. use App\Entity\Coupons;
  14. use App\Entity\BlogPosts;
  15. use App\Entity\Sites;
  16. use App\Entity\Locations;
  17. use App\Entity\Organisers;
  18. class AdminCRUDController extends CRUDController
  19. {
  20.     public function getClassName($classname) {
  21.         $classname = (new \ReflectionClass($this))->getShortName();
  22.         return $classname// Return default as it contains an already clean class name
  23.     }
  24.     
  25.     
  26.     
  27.     /**
  28.      * @param ProxyQueryInterface $selectedModelQuery
  29.      * @param Request             $request
  30.      *
  31.      * @return RedirectResponse
  32.      */
  33.     public function batchActionPaid(ProxyQueryInterface $selectedModelQueryRequest $request null)
  34.     {
  35.         $this->admin->checkAccess('edit');
  36.         $modelManager $this->admin->getModelManager();
  37.         $target $modelManager->find($this->admin->getClass(), $request->get('targetId'));
  38.         if ($target === null){
  39.             $this->addFlash('sonata_flash_info''flash_batch_paid_no_target');
  40.             return new RedirectResponse(
  41.                 $this->admin->generateUrl('list', [
  42.                     'filter' => $this->admin->getFilterParameters()
  43.                 ])
  44.             );
  45.         }
  46.         $selectedModels $selectedModelQuery->execute();
  47.         // do the merge work here
  48.         try {
  49.             foreach ($selectedModels as $selectedModel) {
  50.                 if(in_array($selectedModel->getStatus(),array(
  51.                             Orders::ORDER_STATUS_EXPIRED,
  52.                             Orders::ORDER_STATUS_CANCELED,
  53.                         )
  54.                     )
  55.                 ) {
  56.                     $selectedModel->setStatus(Orders::ORDER_STATUS_PAID);
  57.                     $modelManager->update($selectedModel);
  58.                 }                
  59.             }
  60.             //$modelManager->update($selectedModel);
  61.         } catch (\Exception $e) {
  62.             $this->addFlash('sonata_flash_error''flash_batch_paid_error');
  63.             return new RedirectResponse(
  64.                 $this->admin->generateUrl('list', [
  65.                     'filter' => $this->admin->getFilterParameters()
  66.                 ])
  67.             );
  68.         }
  69.         $this->addFlash('sonata_flash_success''flash_batch_paid_success');
  70.         return new RedirectResponse(
  71.             $this->admin->generateUrl('list', [
  72.                 'filter' => $this->admin->getFilterParameters()
  73.             ])
  74.         );
  75.     }
  76.     
  77.     function handleUpdate($object,$oldObject) {
  78.         $classname $this->getClassName($object);
  79.         $method 'handle'.$classname.'Update';
  80.         if(method_exists($this,$method)) {
  81.             $this->$method($object,$oldObject);
  82.         }
  83.     }
  84.     
  85.     function handleOrdersUpdate($object,$oldObject) {
  86.         $controller $this->container->get(OrderController::class);
  87.         
  88.         if($object->getStatus()) {
  89.             
  90.         }        
  91.     }
  92.     
  93.     function handleEventsUpdate($object,$oldObject) {
  94.         $controller $this->container->get(EventsController::class);
  95.     }
  96. }