custom/plugins/EwGrecoAdministration/src/Controller/Api/GrecoAdministrationController.php line 36

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Ew\GrecoAdministration\Controller\Api;
  3. use Ew\GrecoAdministration\Service\Csv\CsvGenerator;
  4. use Ew\GrecoAdministration\Service\GrecoAdministrationService;
  5. use Shopware\Core\Framework\Context;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Ew\GrecoAdministration\Constants\Constants;
  12. /**
  13.  * @Route(defaults={"_routeScope"={"administration"}})
  14.  */
  15. class GrecoAdministrationController extends AbstractController
  16. {
  17.     private GrecoAdministrationService $grecoAdministrationService;
  18.     private CsvGenerator $csvGenerator;
  19.     public function __construct(
  20.         GrecoAdministrationService $grecoAdministrationService,
  21.         CsvGenerator               $csvGenerator
  22.     )
  23.     {
  24.         $this->grecoAdministrationService $grecoAdministrationService;
  25.         $this->csvGenerator $csvGenerator;
  26.     }
  27.     /**
  28.      * @Route(defaults={"_routeScope"={"administration"}})
  29.      * @Route(path="/api/_action/grecoAdministration/generate/csv", methods={"POST"})
  30.      */
  31.     public function csvGenerator(Request $requestContext $context): JsonResponse
  32.     {
  33.         $this->grecoAdministrationService->generateCsv($context);
  34.         return new JsonResponse([
  35.             'success' => true,
  36.         ]);
  37.     }
  38.     /**
  39.      * @Route(defaults={"_routeScope"={"administration"}})
  40.      * @Route(path="/api/_action/grecoAdministration/generate/pdf", methods={"POST"})
  41.      */
  42.     public function pdfGenerator(Request $requestContext $context): JsonResponse
  43.     {
  44.         $this->grecoAdministrationService->generatePdf($context);
  45.         return new JsonResponse([
  46.             'success' => true,
  47.         ]);
  48.     }
  49.     /**
  50.      * @Route(defaults={"_routeScope"={"administration"}})
  51.      * @Route(path="/api/_action/grecoAdministration/download/file", methods={"GET"})
  52.      */
  53.     public function getFile(Request $requestContext $context)
  54.     {
  55.         $fileExtension $request->get('fileExtension');
  56.         $docFileName $request->get('fileName');
  57.         $folder $this->container->getParameter('kernel.project_dir') . '/public/';
  58.         $path $folder $docFileName '.' $fileExtension;
  59.         foreach (scandir($folder) as $filename) {
  60.             if ($filename == $docFileName '_' date('d-m-Y') . '.' $fileExtension) {
  61.                 $path $folder $filename;
  62.             }
  63.         }
  64.         if (file_exists($path)) {
  65.             return new BinaryFileResponse($path);
  66.         } else {
  67.             return new JsonResponse(null404);
  68.         }
  69.     }
  70.     /**
  71.      * @Route(defaults={"_routeScope"={"administration"}})
  72.      * @Route(path="/api/_action/grecoAdministration/orders/generate/csv", methods={"POST"})
  73.      * @throws \Exception
  74.      */
  75.     public function generatCsv(Request $requestContext $context): JsonResponse
  76.     {
  77.         $filters $request->get('filters');
  78.         $isInvoice $request->get('isInvoice');
  79. //        $this->grecoAdministrationService->generateOrdersCsv($context, $filters);
  80.         $entity $isInvoice Constants::CSV_ORDER_INVOICE['entity'] : Constants::CSV_ORDER_FINANCE['entity'];
  81.         $this->csvGenerator->generateCsv($entity$context$filters);
  82.         return new JsonResponse([
  83.             'success' => true,
  84.         ]);
  85.     }
  86.     /**
  87.      * @Route(defaults={"_routeScope"={"administration"}})
  88.      * @Route(path="/api/_action/grecoAdministration/vouchers/generate/csv", methods={"POST"})
  89.      */
  90.     public function vouchersCsvGenerator(Request $requestContext $context): JsonResponse
  91.     {
  92.         $filters $request->get('filters');
  93.         $this->grecoAdministrationService->generateVouchersCsv($context$filters);
  94.         return new JsonResponse([
  95.             'success' => true,
  96.         ]);
  97.     }
  98. }