src/Sylius/Bundle/CoreBundle/Controller/TurnController.php line 39

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Sylius package.
  4.  *
  5.  * (c) Paweł Jędrzejewski
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace Sylius\Bundle\CoreBundle\Controller;
  12. use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
  13. use Sylius\Component\Resource\ResourceActions;
  14. use Symfony\Component\HttpFoundation\JsonResponse;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\HttpKernel\Exception\HttpException;
  18. use Sylius\Component\Payment\Model\PayImport;
  19. use Sylius\Component\Payment\Model\PayMov;
  20. use Sylius\Component\Customer\Model\TurnTaxon//temporal
  21. class TurnController extends BaseController
  22. {
  23.     public function eventsAction(Request $request): Response
  24.     {
  25.         
  26.         // "2023-06-26T00:00:00-03:00"
  27.         $filters $request->query->all('sylius_filter_turn'null);
  28.         $startDate $request->query->get('start');
  29.         $endDate $request->query->get('end');
  30.         
  31.         $session $request->getSession();
  32.         $session->set('sylius_filter_turn'$filters);
  33.         
  34.         $start = (new \DateTime($startDate substr($startDate016): 'first day of this month'));    
  35.         // $start = new \DateTime('midnight');
  36.         $end = (new \DateTime($endDate substr($endDate016): 'last day of this month'));    
  37.         $url $this->generateUrl('sylius_admin_turn_index');
  38.         $urlHc $this->generateUrl('sylius_admin_product_hc');
  39.         return new JsonResponse(
  40.             $this->repository->getEvents($start$end$url$filters$urlHc)
  41.         );
  42.     }
  43.     public function editableAction(Request $request): Response
  44.     {
  45.         // "2023-06-26T00:00:00-03:00"
  46.         $startDateStr $request->request->get('start'null);
  47.         $endDateStr $request->request->get('end'null);
  48.         
  49.         $id $request->request->get('id'null);
  50.         if($startDateStr $endDateStr){
  51.             $start = new \DateTime(substr($startDateStr016));    
  52.             $end = new \DateTime(substr($endDateStr016));    
  53.             $this->repository->updateEventEditable((int)$id$start$end);
  54.             $response 'update';
  55.         }else{
  56.             $response 'Not update';
  57.         }
  58.         return new JsonResponse(
  59.             ['status' => $response]
  60.         );
  61.     }
  62.     public function disabledAction(Request $request): Response
  63.     {
  64.         $turnId $request->query->get('id'null);
  65.         $turn $this->repository->findOneBy(['id' => $turnId]);
  66.         if($turn){
  67.             $product $turn->getProduct();
  68.             if($product && $product->isEnabled()){
  69.                 $product->setEnabled(false);
  70.                 $this->manager->merge($product);
  71.             }
  72.             $payCustomer $turn->getPayCustomer();
  73.             if($payCustomer){
  74.                 $pay $payCustomer->getPay();
  75.                 $pay->setEnabled(false);
  76.                 if($pay->getImports() != 0){
  77.                     $payImport = new PayImport($pay->getImports() * -1'Cancelación administrador');
  78.                     $pay->addPayImport($payImport);
  79.                     $pay->setImports(0);
  80.                 }
  81.                 if($pay->getPays() != 0){
  82.                     $payMovs $pay->getPayMovs();
  83.                     foreach($payMovs as $pm){
  84.                         $payMov =  new PayMov();
  85.                         $payMov->setTransactionDate($pm->getTransactionDate());
  86.                         $payMov->setValue($pm->getValue() * (-1));
  87.                         $payMov->setPayAcount($pm->getPayAcount());
  88.                         $pay->addPayMov($payMov);
  89.                     }
  90.                     $pay->setPays(0);
  91.                 }
  92.                 $pay->setBalance(0);
  93.                 $payCustomer->setPay($pay);
  94.                 $this->manager->merge($payCustomer);
  95.             }
  96.             $turn->setEnabled(false);
  97.             $this->manager->merge($turn);
  98.             $this->manager->flush();
  99.         }
  100.         return new JsonResponse(
  101.             [
  102.                 'status' => true,
  103.             ]
  104.         );
  105.     }
  106. }