src/Controller/RCA/RCAManualExpireNotificationController.php line 77

Open in your IDE?
  1. <?php
  2. namespace App\Controller\RCA;
  3. use App\Controller\BaseController;
  4. use App\Entity\Alert\AlertSettings;
  5. use App\Entity\RCA\ManualExpireNotification;
  6. use App\Message\ExportRcaManualExpire;
  7. use App\Model\RCA\ManualExpireNotificationModel;
  8. use App\Service\ExportService;
  9. use App\Service\RcaAdminService;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. class RCAManualExpireNotificationController extends BaseController
  13. {
  14.     /**
  15.      * @return Response
  16.      */
  17.     public function indexAction(): Response
  18.     {
  19.         return $this->render('@templates/AdminCustom/Grid/RCA/manual-expire-gird.html.twig', [
  20.             'alerts' => $this->getEntityManager()->getRepository(AlertSettings::class)->findAlertSettingsForRcaManual(),
  21.             'manualExpireImportedFrom' => RcaAdminService::getManualExpireNotificationImportedFromTypes()
  22.         ]);
  23.     }
  24.     /**
  25.      * @param Request $request
  26.      * @return Response
  27.      */
  28.     public function importCsvRowAction(Request $request): Response
  29.     {
  30.         $row $request->get('row');
  31.         $importFrom = (int)$request->get('importFrom'ManualExpireNotification::IMPORTED_FROM_CMS_ID);
  32.         $result false;
  33.         $flashbag $this->get('session')->getFlashBag();
  34.         if ($row) {
  35.             $result RcaAdminService::tryToImportCsvRowInManualExpireNotification(
  36.                 $row$this->getEntityManager(), $flashbag$importFrom
  37.             );
  38.         }
  39.         if ($flashbag && !$flashbag->has('success')) {
  40.             $flashbag->add('success''Fisier uploadat cu succes. Atentie! Datele deja existente sunt ignorate.');
  41.         }
  42.         return new Response(json_encode($result));
  43.     }
  44.     /**
  45.      * @param Request $request
  46.      * @return Response
  47.      */
  48.     public function sendManualRcaCustomerAlertAction(Request $request): Response
  49.     {
  50.         $manualExpireNotificationId $request->get('notificationId');
  51.         $notificationType intval($request->get('type'));
  52.         $result false;
  53.         if ($manualExpireNotificationId) {
  54.             if ($notificationType == AlertSettings::EMAIL_ALERT_TYPE) {
  55.                 $result RcaAdminService::sendManualRcaAlertToCustomer($manualExpireNotificationId$this->getEntityManager(), $this->container->get('templating'));
  56.             } else if ($notificationType == AlertSettings::SMS_ALERT_TYPE) {
  57.                 $result RcaAdminService::sendManualRcaSMSAlertToCustomer($manualExpireNotificationId$this->getEntityManager(), $this->getContainer());
  58.             }
  59.             if ($result) {
  60.                 $this->addFlash('success''Alerta trimisa cu success');
  61.             } else {
  62.                 $this->addFlash('error''Fie a intervenit o eroare, fie notificarea selectata nu se incadreaza in intervalul de trimitere');
  63.             }
  64.         }
  65.         return new Response(json_encode($result));
  66.     }
  67.     /**
  68.      * @param Request $request
  69.      * @return Response
  70.      */
  71.     public function retrieveData(Request $request): Response
  72.     {
  73.         $adminGridService $this->getContainer()->get('app.service.rca.admin_grid');
  74.         return new Response(json_encode($adminGridService->retrieveGridDataForRcaManualExpireNotification()));
  75.     }
  76.     /**
  77.      * @param Request $request
  78.      * @return Response
  79.      */
  80.     public function changeSubscriptionStatus(Request $request): Response
  81.     {
  82.         $response json_encode('fail');
  83.         if (ManualExpireNotificationModel::updateSubscriptionStatus($request$this->getEntityManager())) {
  84.             $response json_encode('success');
  85.             $this->addFlash('success''Modificarea a avut succes');
  86.         } else {
  87.             $this->addFlash('error''A intervenit o eroare');
  88.         }
  89.         return new Response($response);
  90.     }
  91.     public function exportWithDateRanges(Request $request)
  92.     {
  93.         $adminGridService $this->getContainer()->get('app.service.rca.admin_grid');
  94.         $from $request->get('from');
  95.         $to $request->get('to');
  96.         if ($data $adminGridService->retrieveAllRcaManualExpireNotificationWithDateRanges($from$to)) {
  97.             $adminGridService $this->getContainer()->get('app.service.rca.admin_grid');
  98.             $data $adminGridService->removeDuplicateNotifications($data);
  99.             ExportService::parseRcaExpireManualDataForExport($data$this->getEntityManager());
  100.             ExportService::exportArray($data);
  101.         } else {
  102.             $this->addFlash('error''A intervenit o eroare. Verificati intervalul de date selectat.');
  103.         }
  104.         return $this->redirectToRoute('app_admin_rca_manual_expire_notification_index');
  105.     }
  106.     public function exportWithoutValidFrom(Request $request)
  107.     {
  108.         $this->getContainer()->get('message_bus')
  109.             ->dispatch(
  110.                 new ExportRcaManualExpire(
  111.                     ExportRcaManualExpire::EXPORT_TYPE_WITHOUT_VALID_FROM,
  112.                     $request->get('email'),
  113.                     $request->get('importedFrom')
  114.                 ));
  115.         $this->addFlash('success''Cererea dmv a fost adaugata in lista de procesare, documentul o sa fie generat si transmis pe email');
  116.         return new Response(json_encode(array('status' => 1)));
  117.     }
  118.     public function exportWithoutValidFromViaServer(Request $request)
  119.     {
  120.         $this->getContainer()->get('message_bus')
  121.             ->dispatch(
  122.                 new ExportRcaManualExpire(
  123.                     ExportRcaManualExpire::EXPORT_TYPE_WITHOUT_VALID_FROM_TO_SERVER,
  124.                     $request->get('exportServerMail'),
  125.                     $request->get('importedFrom')
  126.                 )
  127.             );
  128.         $this->addFlash('success''Cererea dmv a fost adaugata in lista de procesare, documentul o sa fie generat si stocat pe server, in momentul finalizarii se va transmite un mail catre adresa tranmisa');
  129.         return new Response(json_encode(array('status' => 1)));
  130.     }
  131. }