src/StatsBundle/Controller/StatController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\StatsBundle\Controller;
  3. use App\Controller\EnabledEntityControllerInterface;
  4. use App\Entity\Category;
  5. use App\Entity\Supplier;
  6. use App\Model\Dashboard\CustomerDashboard;
  7. use App\Model\User\User as ModelUser;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class StatController extends AbstractController
  13. {
  14.     /*
  15.     * @var ModelUser
  16.     */
  17.     private $modelUser;
  18.     /*
  19.     * @var CustomerDashboard
  20.     */
  21.     private $customerDashboard;
  22.     public function __construct(ModelUser $modelUser, CustomerDashboard $customerDashboard)
  23.     {
  24.         $this->modelUser = $modelUser;
  25.         $this->customerDashboard = $customerDashboard;
  26.     }
  27.     /**
  28.      * @Route("/dashboard", name="malys_stats_customer_dashboard", options={"expose"=true})
  29.      */
  30.     public function dashboardAction(Request $request)
  31.     {
  32.         $em           = $this->getDoctrine()->getManager();
  33.         $partnerCount = $em->getRepository(Supplier::class)->searchCount([
  34.             'partnersOnly' => true
  35.         ]);
  36.         $categoryCount = $em->getRepository(Category::class)->searchCount([
  37.             'topCatOnly' => true
  38.         ]);
  39.         return $this->render('front/dashboard/show.html.twig', [
  40.             'data' => [
  41.                 'partnerCount'  => $partnerCount,
  42.                 'categoryCount' => $categoryCount,
  43.             ],
  44.         ]);
  45.     }
  46.     /**
  47.      * @Route("/dashboard/data", name="malys_api_stats_customer_dashboard", options={"expose"=true})
  48.      */
  49.     public function dashboardDataAction(Request $request)
  50.     {
  51.         $defaultStart = '-60 days';
  52.         // $defaultEnd = new \DateTime( 'yesterday' );
  53.         $defaultEnd = 'yesterday';
  54.         $start = new \DateTime($request->get('start', $defaultStart));
  55.         $end   = new \DateTime($request->get('end', $defaultEnd));
  56.         // Get user etabs
  57.         $user = $this->modelUser;
  58.         $user->fromCurrentUser();
  59.         $customers = $user->getShops(true);
  60.         $customersEntities = [];
  61.         foreach ($customers as $customer) {
  62.             $customersEntities[] = $customer->getEntity();
  63.         }
  64.         $dashboard = $this->customerDashboard;
  65.         $dashboard->setCustomers($customersEntities);
  66.         $dashboard->setStart($start);
  67.         $dashboard->setEnd($end);
  68.         //$dashboard->setStatus('confirm');
  69.         //        $params = [
  70.         //            'start'     => $start,
  71.         //            'end'       => $end,
  72.         //            'status'    => 'confirm',
  73.         //            'customers' => $customersEntities
  74.         //        ];
  75.         //$data = $dashboard->build( $params );
  76.         $data = $dashboard->build();
  77.         //        return new Response('<html><body></body></html>');
  78.         //        die;
  79.         return new JsonResponse($data);
  80.     }
  81. }