<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace CmBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use CmBundle\Entity\EgresosCorporativo;

date_default_timezone_set('America/Mexico_City');

/**
 * Description of DireccionAdministrativaController
 *
 * @author ALE
 */
class DireccionAdministrativaController extends Controller {

    //put your code here

    public function registrarEgresoAction(Request $request) {
        $session = $request->getSession();
        if ($session->has("idEmpleado") && ($session->get("rol") == 2 || $session->get("rol") == 3 || $session->get("rol") == 99 || $session->get("rol") == 4 || $session->get("rol") == 101)) {
            $session->set("vista", "caja");
            if ($request->getMethod() == "POST") {

                $descripcion = $request->get('descripcion');
                $monto = $request->get('monto');
                $recibe = $request->get('recibe');

                $em = $this->getDoctrine()->getManager();

                $contador = $em->getRepository('CmBundle:Contador')
                        ->findOneBy(array('cveCon' => 'CCORP'));

                $entrega = $session->get("nombre");
                $anio = date('y');
                $numRecibo = "EC-" . $anio . "-" . $contador->getValor();

                $egreso = new EgresosCorporativo();
                $egreso->setDescripcion($descripcion);
                $egreso->setMonto($monto);
                $egreso->setEntrega($entrega);
                $egreso->setRecibe($recibe);
                $egreso->setFecMov(new \DateTime(date('Y-m-d')));
                $egreso->setHorMov(new \DateTime(date('H:i:s')));
                $egreso->setComprobante("");
                $egreso->setNumRecibo($numRecibo);

                $em->persist($egreso);
                $em->flush();

                $contador->setValor($contador->getValor() + 1);
                $em->persist($contador);
                $em->flush();


                return $this->redirect($this->generateUrl('salidas_cordiancion_administrativa'));
            } else { // NO FUE POST
                $em = $this->getDoctrine()->getManager();

                $egresos = $em->getRepository('CmBundle:EgresosCorporativo')
                        ->findBy(array('fecMov' => new \DateTime(date('Y-m-d'))), array('ideEgr' => 'DESC'));

                return $this->render('CmBundle:DireccionAdministrativa:vista-salidas.html.twig', array('egresos' => $egresos));
            }
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

    public function imprimirSalidasAction(Request $request) {
        $session = $request->getSession();

        if ($request->getMethod() == "POST") {
            
        } else { // NO FUE POST
            $em = $this->getDoctrine()->getManager();

            $ideEgr = $request->get('ideEgr');

            $egreso = $em->getRepository('CmBundle:EgresosCorporativo')->findOneBy(array('ideEgr' => $ideEgr));

            $pdf = new PDFBachillerato('P', 'mm', 'Letter');
            $pdf->banRecibo = 1;
            $pdf->AddPage();
            $pdf->SetFont('Helvetica');
            $pdf->ReciboComprobanteEgresoCorporativo(0, $egreso, null, 0, $session);

            return new Response($pdf->Output('comprobanteEgresoCorporativo.pdf', 'I'), 200, array('Content-Type' => 'application/pdf'));
        }
    }

    public function imprimirSalidasReporteAction(Request $request) {
        $session = $request->getSession();

        if ($request->getMethod() == "POST") {
            
        } else { // NO FUE POST
            $em = $this->getDoctrine()->getEntityManager();

            $fechaA = $request->get('fA');
            $fechaB = $request->get('fB');

            $egresos = 0;
            $dql = "";
            if ($fechaA != "" & $fechaB == "") { // SOLO FECHA A
                $dql = "SELECT e "
                        . "FROM CmBundle:EgresosCorporativo e "
                        . "WHERE e.fecMov = :fA ";
                        //. "AND e.entrega = :usu ";
                $query = $em->createQuery($dql);
                $query->setParameter('fA', $fechaA);
                //$query->setParameter('usu', $session->get('nombre'));
                $egresos = $query->getResult();
            } elseif ($fechaA == "" & $fechaB != "") { // SOLO FECHA B
                $dql = "SELECT e "
                        . "FROM CmBundle:EgresosCorporativo e "
                        . "WHERE e.fecMov = :fB ";
                        //. "AND e.entrega = :usu ";
                $query = $em->createQuery($dql);
                $query->setParameter('fB', $fechaB);
                //$query->setParameter('usu', $session->get('nombre'));
                $egresos = $query->getResult();
            } elseif ($fechaA != "" & $fechaB != "") { // AMBAS FECHAS
                $dql = "SELECT e "
                        . "FROM CmBundle:EgresosCorporativo e "
                        . "WHERE (e.fecMov BETWEEN :fA AND :fB ) ";
                        //. "AND e.entrega = :usu ";
                $query = $em->createQuery($dql);
                $query->setParameter('fA', $fechaA);
                $query->setParameter('fB', $fechaB);
                //$query->setParameter('usu', $session->get('nombre'));
                $egresos = $query->getResult();
            }

            $pdf = new PDF('L', 'mm', 'Letter');
            $pdf->setTitulo("HISTORIAL DE EGRESOS");
            $pdf->setPosicion("V");
            $pdf->AddPage();
            $pdf->AliasNbPages();
            $pdf->SetFont('Arial', '', 12);
            $pdf->HistorialEgresosCorporativoDetalles($egresos, $fechaA, $fechaB);

            return new Response($pdf->Output('historialegresos.pdf', 'I'), 200, array('Content-Type' => 'application/pdf'));
        }
    }

}
