src/Controller/IndexController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\DTO\ChangePasswordDTO;
  4. use App\DTO\ServiceProvider\Sale\Response\Individual\CancelCardSoldResponse;
  5. use App\DTO\ServiceProvider\Sale\Response\Individual\IndividualRechargeResponse;
  6. use App\Form\ChangePasswordType;
  7. use App\Services\ConfigurationService;
  8. use App\Services\EnterpriseService;
  9. use App\Services\ServiceProviderService;
  10. use App\Services\UserService;
  11. use Psr\Cache\InvalidArgumentException;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\JsonResponse;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\RequestStack;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  18. use Symfony\Component\Routing\Annotation\Route;
  19. use Symfony\Contracts\Translation\TranslatorInterface;
  20. class IndexController extends AbstractController
  21. {
  22.     /**
  23.      * @Route("/", name="index")
  24.      * @return Response
  25.      */
  26.     public function index(): Response
  27.     {
  28.         if ($this->isGranted('ROLE_ADMIN')) {
  29.             return $this->redirectToRoute('batch_index');
  30.         } else {
  31.             return $this->redirectToRoute('card_index');
  32.         }
  33. //        return $this->render('index/index.html.twig');
  34.     }
  35.     public function topbar(RequestStack         $requestStackServiceProviderService $serviceProviderService,
  36.                            EnterpriseService    $enterpriseService,
  37.                            ConfigurationService $configurationService): Response
  38.     {
  39.         $currentRequest $requestStack->getMainRequest();
  40.         $balanceResponse $serviceProviderService->GetBalance($currentRequest->getSession());
  41. //        $available = '_';
  42.         if ($balanceResponse['status']) {
  43.             $available $balanceResponse['data']->getBalance();
  44.         } else {
  45.             $available 0;
  46.         }
  47.         $config $configurationService->getConfiguration();
  48.         $expireDate '';
  49.         $days 99999;
  50.         if ($config->getServiceProviderPassword() && $config->getServiceProviderPassowrdGeneratedAt()) {
  51.             $currentDate = new \DateTimeImmutable();
  52.             $generatedAt $config->getServiceProviderPassowrdGeneratedAt();
  53.             $generatedAt $generatedAt->modify('+3 month');
  54.             $generatedAt $generatedAt->modify('-1 day');
  55.             $diff date_diff($generatedAt$currentDate);
  56.             $expireDate $generatedAt->format('Y-m-d');
  57.             $days $diff->days;
  58.         }
  59.         return $this->render('structure/_topbar.html.twig', [
  60.             'availableAmount' => $available,
  61.             'expireDate' => $expireDate,
  62.             'daysToExpire' => $days,
  63.             'walletAmount' => $enterpriseService->getWalletAmount($this->getUser()->getEnterprise()->getId())
  64.         ]);
  65.     }
  66.     public function sidebar(RequestStack $requestStack)
  67.     {
  68.         $currentRequest $requestStack->getMainRequest();
  69.         $currentPath $currentRequest->attributes->get('_route');
  70.         return $this->render('structure/_sidebar.html.twig', [
  71.             'currentPath' => $currentPath
  72.         ]);
  73.     }
  74.     /**
  75.      * @Route("/footer", name="footer")
  76.      * @param Request $request
  77.      * @param UserService $userService
  78.      * @param UserPasswordHasherInterface $passwordHasher
  79.      * @param TranslatorInterface $translator
  80.      * @return Response
  81.      */
  82.     public function footer(Request                     $requestUserService $userService,
  83.                            UserPasswordHasherInterface $passwordHasherTranslatorInterface $translator): Response
  84.     {
  85.         $dto = new ChangePasswordDTO();
  86.         $form $this->createForm(ChangePasswordType::class, $dto);
  87.         $form->handleRequest($request);
  88.         if ($form->isSubmitted()) {
  89.             if ($form->isValid()) {
  90.                 if ($userService->changePassword($this->getUser()->getId(), $form->getData()->getPassword(), $passwordHasher)) {
  91.                     $this->addFlash('success'$translator->trans('app.user.change.password.success'));
  92.                 }
  93.             } else {
  94.                 $this->addFlash('warning'$form->getErrors()->current());
  95.             }
  96.             return $this->redirectToRoute('index');
  97.         }
  98.         return $this->render('structure/_footer.html.twig', [
  99.             'form' => $form->createView()
  100.         ]);
  101.     }
  102.     /**
  103.      * @Route(path="/enterprise/wallet/info", methods={"GET"}, name="enterprise_wallet_info")
  104.      * @param EnterpriseService $enterpriseService
  105.      * @return Response
  106.      */
  107.     public function getCommissionOperations(EnterpriseService $enterpriseService): Response
  108.     {
  109.         $data $enterpriseService->getCommissionOperations($this->getUser()->getEnterprise()->getId());
  110.         $data array_map(function ($item) {
  111.             $item['createdAt'] = $item['createdAt']->format('Y-m-d H:i');
  112.             return $item;
  113.         }, $data);
  114.         return $this->json([
  115.             'status' => true,
  116.             'data' => $data,
  117.             'totalAmount' => $enterpriseService->getWalletAmount($this->getUser()->getEnterprise()->getId())
  118.         ]);
  119.     }
  120.     /**
  121.      * @Route("/test/service", methods={"GET"})
  122.      * @param Request $request
  123.      * @param ServiceProviderService $serviceProviderService
  124.      * @return JsonResponse
  125.      * @throws InvalidArgumentException
  126.      */
  127.     public function testAction(Request $requestServiceProviderService $serviceProviderService): Response
  128.     {
  129. //        $provinces = $serviceProviderService->getProvinces($request->getSession());
  130. //        var_dump(json_encode($provinces));
  131.         $content '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><CancelSaleResponse xmlns="urn:Cubacel.ExternalServices.VirtualPayment.ServiceContracts"><Result xmlns:a="urn:Cubacel.ExternalServices.VirtualPayment.DataContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:ValueOk>true</a:ValueOk><a:Message>OK</a:Message><a:RequestTime>2024-11-29T09:58:24.9761717-05:00</a:RequestTime><a:ResponseTime>2024-11-29T09:58:33.5114263-05:00</a:ResponseTime></Result></CancelSaleResponse></s:Body></s:Envelope>';
  132. //        $content = str_replace('a:Provinces', 'Provinces1', $content);
  133. //        $content = str_replace('a:Id', 'Id', $content);
  134. //        $content = str_replace('a:Name', 'Name', $content);
  135.         $object $serviceProviderService->getSerializer()->deserialize($contentCancelCardSoldResponse::class, 'soap');
  136. //        $object = $serviceProviderService->getSerializer()->deserialize($content, GetBalanceResponse::class, 'soap');
  137. //        $object = $serviceProviderService->getSerializer()->deserialize($content, SuppleCustInfoResponse::class, 'soap');
  138. //        $session = $request->getSession();
  139. //        $session->remove('ITTP_SESSION');
  140. //        $serviceProviderService->auth($session);
  141.         $data = [
  142.             'arrivalDate' => '26/07/2023',
  143.             'documentNumber' => '123456789',
  144.             'documentType' => '9',
  145.             'bornDate' => '03/12/1984',
  146.             'name' => 'Test',
  147.             'lastName' => 'Test',
  148.             'gender' => 1,
  149.             'address' => 'Address',
  150.             'iccid' => '120110620068',
  151.             'country' => '1192'
  152.         ];
  153.         $deliveryDate date_create_immutable_from_format('d/m/Y''26/06/2023');
  154.         $transactionId '20230617106';
  155.         $obj $serviceProviderService->GetSuppleInfo($session'100778758'$transactionId);
  156.         return $this->json(['data' => $obj]);
  157.     }
  158. }