src/Controller/CierreCajaController.php line 35

Open in your IDE?
  1. <?php
  2. /*
  3.  * To change this license header, choose License Headers in Project Properties.
  4.  * To change this template file, choose Tools | Templates
  5.  * and open the template in the editor.
  6.  */
  7. namespace App\Controller;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Session\Session;
  10. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  11. use Symfony\Component\HttpFoundation\JsonResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use App\Entity\Products;
  14. use App\Entity\Clientes;
  15. use App\Form\ClientesType;
  16. use App\Entity\Ventas;
  17. use App\Entity\VentaProducts;
  18. /**
  19.  * Description of CierreCajaController
  20.  *
  21.  * @author joseangelparra
  22.  */
  23. class CierreCajaController extends AbstractController{
  24.     
  25.     private $params;
  26.     public function __construct(ParameterBagInterface $params){
  27.          
  28.          $this->session = new Session();
  29.          $this->params $params;
  30.     }
  31.     
  32.     public function index(Request $request){
  33.         $em $this->getDoctrine()->getManager();
  34.         
  35.         $date = ($request->get("fecha")) ? new \DateTime($request->get("fecha")) : new \Datetime();
  36.         $d_start = new \DateTime($date->format("d-m-Y"));
  37.         $d_start->setTime(00);
  38.         $d_end = new \DateTime($date->format("d-m-Y"));
  39.         $d_end->modify("+1 day");
  40.         $d_end->setTime(00);
  41.         
  42.         $ventas $em->createQueryBuilder()->select("v")
  43.                 ->from('App\Entity\Ventas',"v")
  44.                 ->where('v.status <> 3 AND v.date BETWEEN :ds_start AND :ds_end')
  45.                 ->setParameter("ds_start",$d_start)
  46.                 ->setParameter("ds_end",$d_end)
  47.                 ->getQuery()
  48.                 ->getResult();
  49.         
  50.         $total_ventas 0;
  51.         $total_venta_real 0;
  52.         $total_efectivo 0;
  53.         $total_tarjeta 0;
  54.         $total_transferencia 0;
  55.         foreach($ventas as $v){
  56.             $total_ventas += $v->getPayed();
  57.             $total_venta_real += $v->getTotal();
  58.             if($v->getPaymentMethod() == 1){
  59.                 $total_efectivo += $v->getPayed();
  60.             }else if($v->getPaymentMethod() == 2){
  61.                 $total_tarjeta += $v->getPayed();
  62.             }else if($v->getPaymentMethod() == 3){
  63.                 $total_transferencia += $v->getPayed();
  64.             }else if($v->getPaymentMethod() == 4){
  65.                 $vent json_decode($v->getExtraInfo(),true);
  66.                 if(array_key_exists("extra_pago_info",$vent)){
  67.                     $mps $vent["extra_pago_info"];
  68.                     if($mps["m_pago1"] == 1){
  69.                         $total_efectivo += $mps["pagado_p_1"];
  70.                     }else if($mps["m_pago1"] == 2){
  71.                         $total_tarjeta += $mps["pagado_p_1"];
  72.                     }else if($mps["m_pago1"] == 3){
  73.                         $total_transferencia += $mps["pagado_p_1"];
  74.                     }
  75.                     if($mps["m_pago2"] == 1){
  76.                         $total_efectivo += $mps["pagado_p_2"];
  77.                     }else if($mps["m_pago2"] == 2){
  78.                         $total_tarjeta += $mps["pagado_p_2"];
  79.                     }else if($mps["m_pago2"] == 3){
  80.                         $total_transferencia += $mps["pagado_p_2"];
  81.                     }
  82.                 }
  83.             }
  84.             
  85.         }
  86.         if(count($ventas)>0){
  87.             $ticket_medio $total_venta_real count($ventas);
  88.         }else{
  89.             $ticket_medio 0;
  90.         }
  91.         
  92.         $date->setTime(00);
  93.         $caja_open $em->getRepository(\App\Entity\CierreCaja::class)->findOneBy(array("fecha"=>$date));
  94.         
  95.         return $this->render('tpv/cierre_caja/index.html.twig',array(
  96.             'fecha'=>$date->format("d-m-Y"),
  97.             'ventas'=>$ventas,
  98.             "total_ventas"=>$total_ventas,
  99.             "total_venta_real"=>$total_venta_real,
  100.             "ticket_medio"=>$ticket_medio,
  101.             "efectivo"=>$total_efectivo,
  102.             "tarjeta"=>$total_tarjeta,
  103.             "transferencia"=>$total_transferencia,
  104.             'caja_open'=>$caja_open
  105.         ));
  106.     }
  107.     
  108.     public function openCaja(Request $request){
  109.         $em $this->getDoctrine()->getManager();
  110.         $open $request->request->get("open");
  111.         
  112.         $fecha = new \DateTime();
  113.         $fecha->setTime(00);
  114.         
  115.         $caja = new \App\Entity\CierreCaja();
  116.         $caja->setTotalApertura($open);
  117.         $caja->setFecha($fecha);
  118.         
  119.         $em->persist($caja);
  120.         $em->flush();
  121.         
  122.         return new JsonResponse(array("ok"=>true));
  123.     }
  124.     
  125.     public function ventasDelDia(Request $request){
  126.         $em $this->getDoctrine()->getManager();
  127.         $fecha = ($request->get("dia")) ? new \DateTime($request->get("dia")) : new \Datetime();
  128.         
  129.         $d_start = new \DateTime($fecha->format("d-m-Y"));
  130.         $d_start->setTime(00);
  131.         $d_end = new \DateTime($fecha->format("d-m-Y"));
  132.         $d_end->modify("+1 day");
  133.         $d_end->setTime(00);
  134.         
  135.         
  136.         $ventas $em->createQueryBuilder()->select("v")
  137.                 ->from('App\Entity\Ventas',"v")
  138.                 ->where('v.status < 3 AND v.date BETWEEN :ds_start AND :ds_end')
  139.                 ->setParameter("ds_start",$d_start)
  140.                 ->setParameter("ds_end",$d_end)
  141.                 ->getQuery()
  142.                 ->getResult();
  143.         $list_end = array();
  144.         foreach($ventas as $venta){
  145.             $prods $em->getRepository(VentaProducts::class)->findBy(array("ventaId"=>$venta->getId()));
  146.             $list_end[] = array(
  147.                 'venta'=>$venta,
  148.                 'productos'=>$prods
  149.             );
  150.         }
  151.         return $this->render('tpv/cierre_caja/ventasdeldia.html.twig',array(
  152.            'fecha'=>$fecha->format("d-m-Y"),
  153.            'ventas'=>$list_end
  154.         ));
  155.     }
  156.     
  157. }