src/Controller/FacturaAfipController.php line 660

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Afiplib\AfipFe;
  4. use App\Entity\AfipEmpresa;
  5. use App\Entity\AfipServicio;
  6. use App\Entity\AfipTicketAcceso;
  7. use App\Entity\Cias;
  8. use App\Entity\ciaMen;
  9. use App\Entity\FacturaAfip;
  10. use App\Entity\PrefacturaCabecera;
  11. use App\Entity\Reports;
  12. use App\Entity\Users;
  13. use App\Kernel;
  14. use App\Service\AwsDownloadService;
  15. use Doctrine\Common\Collections\ArrayCollection;
  16. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Symfony\Component\HttpFoundation\JsonResponse;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. use Twig\Environment;
  22. /**
  23.  * Facturaafip controller.
  24.  *
  25.  * @Route("/factura")
  26.  */
  27. class FacturaAfipController extends AbstractController
  28. {
  29.     /**
  30.      * Rpt Control AFIP
  31.      * @Route ("/control_afip", name = "factura_control_afip")
  32.      */
  33.     public function controlAfipAction(Request $request)
  34.     {
  35.         $em $this->getDoctrine()->getManager();
  36.         $options['fechaDesde'] = $request->get('fecha_desde');
  37.         $options['fechaHasta'] = $request->get('fecha_hasta');
  38.         $options['cpbteDesde'] = $request->get('cpbte_desde');
  39.         $options['cpbteHasta'] =  $request->get('cpbte_hasta');
  40.         $options['cpbteTipo'] =  $request->get('cpbte_tipo');
  41.         $options['cpbteCae'] =  $request->get('cpbte_cae');
  42.         $consulta $request->get('consulta');
  43.         $nrosCpbteDB = array();
  44.         $facturaAfips = array();
  45.         $cpbtesAFipDB '';
  46.         if($consulta)
  47.         {
  48.             $servicio 'wsfe';
  49.             //Consultamos la tabla Afipservicio para obtener el servicio solicitado, estado, urls, etc
  50.             $servicioafip $em->getRepository('AppBundle:Afipservicio')->findOneBy(array(
  51.                 'nombreservicio' => $servicio
  52.             ));
  53.             //seteamos en sesion el servicio a utilizar
  54.             //$this->get('session')->set('servicioafip', $servicioafip);
  55.             //Estado en ProSiS del servicio solicitado, puede ser que por algun motivo se encuentre en "Homologacion" (Modo para pruebas)
  56.             $estadoWSFE $servicioafip->getEstado();
  57.             //Cuaquier otro valor pone al servicio en "Homologacion"
  58.             if($estadoWSFE != '1'){
  59.                 $wsdl $servicioafip -> getWsdlhomo();
  60.                 $url $servicioafip -> getUrlhomo();
  61.             }else{
  62.                 $wsdl $servicioafip -> getWsdl();
  63.                 $url $servicioafip -> getUrl();
  64.             }
  65.             $cuituser '30714578169'//veritas
  66.             $ticketactivo $em->getRepository(Afipticketacceso::class)->ticketactivo($cuituser);
  67.             $ticketactivo $em->getRepository(AfipTicketAcceso::class)->ticketactivo($cuituser);
  68.             if(!$ticketactivo){
  69.                 //Se genera un nuevo ticket de acceso en el momento
  70.                 try {
  71.                     $ticketactivo $this->container->get('afip.facturae')->generaTicketAcceso($cuituser$servicio$estadoWSFE);
  72.                 } catch (\Exception $e) {
  73.                     $error $e;
  74.                 }
  75.             }
  76.             if($ticketactivo)
  77.             {
  78.                 //Consulta a Factura Electronica Dummy, para conocer estado del servicio
  79.                 $responder $this->get('afip.facturae')->metodoAfip($cuituser$ticketactivo'FEDummy'$wsdl$url);
  80.                 $dummyresponse = (array) $responder;
  81.             }
  82.             if($options['fechaDesde']){
  83.                 if(!$options['fechaHasta']){
  84.                     $options['fechaHasta'] = $options['fechaDesde'];
  85.                 }
  86.                 $cpbtesAFipDB $em->getRepository(FacturaAfip::class)->findFacturasPorFechas($options);
  87.             }
  88.             if($options['cpbteDesde']) {
  89.                 if (!$options['cpbteHasta']) {
  90.                     $options['cpbteHasta'] = $options['cpbteDesde'];
  91.                 }
  92.                 $cpbtesAFipDB $em->getRepository(FacturaAfip::class)->findFacturasPorNroCpbte($options);
  93.             }
  94.             $cpbtesAFipDBArray = new ArrayCollection();
  95.             foreach ($cpbtesAFipDB as $cpb){
  96.                 $cpbtesAFipDBArray[]=$cpb;
  97.             }
  98.             $consultaAfip = array();
  99.             if($cpbtesAFipDBArray) {
  100.                 $first $cpbtesAFipDBArray->first();
  101.                 $consultaAfip['desde'] = $first->getNumeroComprobante();
  102.                 $last $cpbtesAFipDBArray->last();
  103.                 $consultaAfip['hasta'] = $last->getNumeroComprobante();
  104.             }
  105.             if($cpbtesAFipDBArray)
  106.             {
  107.                 for ($i $consultaAfip['desde']; $i <= $consultaAfip['hasta']; $i++) {
  108.                     $controlDB  =  $em->getRepository(FacturaAfip::class)->findOneBy(array(
  109.                         'numeroComprobante' => $i,
  110.                         'tipoId' => $options['cpbteTipo']
  111.                     ));
  112.                     if(!$controlDB){
  113.                         //consultar este cpbte que no ecnutro en la DB
  114.                         $perdido $this->get('afip.facturae')->FECompConsultarAfip($cuituser$ticketactivo$wsdl$url'1'$i);
  115.                         if($perdido){
  116.                             $facturaAfips[] = $perdido;
  117.                         }
  118.                     }
  119.                 }
  120.             }
  121.             return $this->render('facturaafip/reporte_control.html.twig', array(
  122.                 'perdidos' => $facturaAfips
  123.             ));
  124.         }else{
  125.             return $this->render('facturaafip/reporte_control_form.html.twig');
  126.         }
  127.     }
  128.     /**
  129.      * Export facturas
  130.      * @Route ("/export", name = "factura_export_acobrar")
  131.      */
  132.     public function exportAction(Request $requestEnvironment $twigKernel $kernel)
  133.     {
  134.         $em $this->getDoctrine()->getManager();
  135.         $parameters = array(
  136.             'estado1' => 'ENVIADA',
  137.             'estado2' => 'RECLAMADA',
  138.             'estado3' => 'FACTURADA'
  139.         );
  140.         $dqlSelect ' SELECT f';
  141.         $dqlFrom ' FROM App:FacturaAfip f';
  142.         $dqlWhere ' WHERE (f.estado =:estado1 OR f.estado=:estado2 OR f.estado=:estado3)';
  143.         $dqlOrder ' ORDER BY f.numeroComprobante ASC, DATE(f.fecha) ASC';
  144.         if($request->get('cia')) {
  145.             $dqlWhere .= ' AND f.companiaId =:cia';
  146.             $parameters['cia'] = $request->get('cia');
  147.         }
  148.         $dql $dqlSelect.$dqlFrom.$dqlWhere.$dqlOrder;
  149.         $query $em
  150.             ->createQuery($dql)
  151.             ->setParameters($parameters)
  152.         ;
  153.         $facturaAfips $query->getResult();
  154.         
  155.         $filename "reporte_facturas_a_cobrar" date("ymd") . ".csv";
  156.         $response = new Response();
  157.         $rootdir $kernel->getProjectDir();
  158.         $templateView file_get_contents("$rootdir/templates/facturaafip/export.csv.twig");
  159.         $templateView str_replace(array("\r""\n"), ''$templateView);
  160.         $templateView preg_replace('/\s+/'' '$templateView);
  161.         $renderedTemplateView $twig->createTemplate($templateView)->render(['facturaAfips' => $facturaAfips]);
  162.         $response->setContent(
  163.             //$this->renderView($view, array('facturaAfips' => $facturaAfips))
  164.             $renderedTemplateView
  165.         );
  166.         $response->headers->set('Content-Type''text/xml');
  167.         //return $response;
  168.         /*
  169.                         $response = $this->render('PolizaBundle:Reportes:rpt-solicitud-celular-adm.txt.twig', array(
  170.                             'entities' => $entities,
  171.                             'fecha_desde' => $fechainicio,
  172.                             'fecha_hasta' => $fechafin,
  173.                             'productos' => $productos
  174.                         ));
  175.         */
  176.         //$response->setCharset('ISO-8859-1');
  177.         $response->setCharset('UTF-8');
  178.         $response->setStatusCode(200);
  179.         $response->headers->set('Content-Type''text/txt');
  180.         $response->headers->set('Content-Description''Submissions Export');
  181.         $response->headers->set('Content-Disposition''attachment; filename=' $filename);
  182.         $response->headers->set('Content-Transfer-Encoding''binary');
  183.         $response->headers->set('Pragma''no-cache');
  184.         $response->headers->set('Expires''0');
  185.         return $response;
  186.     }
  187.     /**
  188.      * Interrumpir plazos de facturas
  189.      * @Route ("/interrumpir_plazos", name = "factura_interrumpir_plazos")
  190.      */
  191.     public function interrumpirPlazosAction(Request $request)
  192.     {
  193.         $em $this->getDoctrine()->getManager();
  194.         $repository $em->getRepository(FacturaAfip::class);
  195.         $factura_id $request->get('factura_id');
  196.         $factura $repository->find($factura_id);
  197.         $accion $request->get('accion');
  198.         $procesa $request->get('procesa');
  199.         if($procesa) {
  200.             $return '';
  201.             if($accion=='interrumpe') {
  202.                 $observacion $request->get('observacion');
  203.                 $prefacturas $factura->getPrefacturas();
  204.                 foreach ($prefacturas as $prefactura) {
  205.                     $prefactura
  206.                         ->setFechaAutorizacion(null)
  207.                         ->setArchivo($observacion)
  208.                         ->setEstado('INTERRUMPIDA')
  209.                     ;
  210.                     $em->persist($prefactura);
  211.                 }
  212.                 $estadoAnterior $factura->getEstado();
  213.                 $factura
  214.                     ->setObservaciones($observacion)
  215.                     ->setEstado('INTERRUMPIDA')
  216.                     ->setGanancias($estadoAnterior)
  217.                 ;
  218.                 $em->flush();
  219.                 $return 'Se interrumpieron los plazos de las prefacturas asociadas ';
  220.             }elseif ($accion=='activar') {
  221.                 $prefacturas $factura->getPrefacturas();
  222.                 foreach ($prefacturas as $prefactura) {
  223.                     $prefactura
  224.                         ->setFechaAutorizacion(new \DateTime('now'))
  225.                         //@TODO Revisar con estado FACTURADA
  226.                         ->setEstado('FACTURADA')
  227.                     ;
  228.                     $em->persist($prefactura);
  229.                 }
  230.                 $estadoAnterior $factura->getGanancias();
  231.                 $factura
  232.                     ->setGanancias(null)
  233.                     ->setEstado($estadoAnterior)
  234.                 ;
  235.                 $em->flush();
  236.                 $return 'Se activaron los plazos de las prefacturas asociadas ';
  237.             }
  238.             return new JsonResponse([
  239.                 'success' => true,
  240.                 'data'    => $return,
  241.             ]);
  242.         } else {
  243.             if($accion == 'interrumpir') {
  244.                 return $this->render('facturaafip/interrumpe_plazos.html.twig', array(
  245.                     'factura' => $factura
  246.                 ));
  247.             } else {
  248.                 return $this->render('facturaafip/activa_plazos.html.twig', array(
  249.                     'factura' => $factura
  250.                 ));
  251.             }
  252.         }
  253.     }
  254.     /**
  255.      * Preseleccionar facturas
  256.      * @Route ("/preseleccion", name = "factura_preseleccion")
  257.      */
  258.     public function preseleccionAction(Request $request)
  259.     {
  260.         $em $this->getDoctrine()->getManager();
  261.         $preseleccion =  $request->get('preseleccion');
  262.         $session $request->getSession();
  263.         $preseleccion_anterior $session->get('preseleccion');
  264.         $preseleccion .= ','.$preseleccion_anterior;
  265.         $session->set('preseleccion'$preseleccion);
  266.         $arrayPreseleccion explode(','$preseleccion);
  267.         $repository $em->getRepository(FacturaAfip::class);
  268.         $query $repository->createQueryBuilder('f');
  269.         $query
  270.             ->where('f.id IN(:ids)')
  271.             ->setParameter('ids'$arrayPreseleccion)
  272.             ->orderBy('f.id''ASC');
  273.         ;
  274.         $facturas $query->getQuery()->getResult();
  275.         $facturas_formato '';
  276.         foreach ($facturas as $factura)
  277.         {
  278.             $facturas_formato .='Fact '.$factura->getNumeroComprobante().' - ';
  279.         }
  280.         //$facturas_formato .= '</div>';
  281.         /*
  282.         $return = 'Se preseleccionaron las facturas ' . $facturas_formato ;
  283.         return new JsonResponse([
  284.             'success' => true,
  285.             'data'    => $return,
  286.             'preseleccion' => $facturas_formato
  287.         ]);
  288.         */
  289.         $session->set('facturas'$facturas_formato);
  290.         $return 'Se preseleccionaron las facturas ' $facturas_formato ;
  291.         return new JsonResponse([
  292.             'success' => true,
  293.             'data'    => $return,
  294.             'preseleccion' => $preseleccion,
  295.             'facturas' => $facturas_formato
  296.         ]);
  297.     }
  298.     /**
  299.      * Limpiar preseleccion de facturas
  300.      * @Route ("/limpiar_preseleccion", name = "factura_limpiar_preseleccion")
  301.      */
  302.     public function limpiarPreseleccionAction(Request $request)
  303.     {
  304.         $session $request->getSession();
  305.         //$session->clear();
  306.         $session->remove('preseleccion');
  307.         $session->remove('facturas');
  308.         $return 'Se quitaron las facturas de la preseleccion ';
  309.         return new JsonResponse([
  310.             'success' => true,
  311.             'data'    => $return
  312.         ]);
  313.     }
  314.     /**
  315.      * Recibe una(s) factura(s) para cambiar de estado
  316.      * @Route ("/cambia_estado", name = "factura_cambia_estado")
  317.      */
  318.     public function cambiaEstadoAction(Request $request)
  319.     {
  320.         $em $this->getDoctrine()->getManager();
  321.         $msj '';
  322.         $estado $request->get('estado');
  323.         $factura_ids $request->get('enviaFactsIds');
  324.         if($factura_ids){
  325.             $facturasids explode(","$factura_ids);
  326.             $facturas $em->getRepository(FacturaAfip::class)->findById($facturasids);
  327.         }
  328.         try {
  329.             /*if($estado=='AUTORIZADA'){
  330.                 $this->calculaPrefactura($prefactura_ids);
  331.                 $this->facturaAfipAction($prefactura_ids);
  332.                 $msj = 'y se han emitido las facturas afip';
  333.             }*/
  334.             foreach ($facturas as $factura) {
  335.                 $this->cambiaEstado($factura$estado);
  336.             }
  337.             $return 'Se ha cambiado el estado a ' $estado ' de la(s) factura(s) ' $factura_ids .' '.$msj;
  338.             return new JsonResponse([
  339.                 'success' => true,
  340.                 'data'    => $return
  341.             ]);
  342.         } catch (\Exception $exception) {
  343.             return new JsonResponse([
  344.                 'success' => false,
  345.                 'code'    => $exception->getCode(),
  346.                 'message' => $exception->getMessage(),
  347.             ]);
  348.         }
  349.     }
  350.     /**
  351.      * Cambia estado de una prefactura
  352.      */
  353.     private function cambiaEstado(FacturaAfip $factura$estado)
  354.     {
  355.         $factura->setEstado($estado);
  356.         $this->getDoctrine()->getManager()->flush();
  357.         return true;
  358.     }
  359.     /**
  360.      * Carga una Orden de Cobro asociada a una o varias facturas
  361.      * CUIDADO - FUNCION QUE NO SE USA
  362.      * @Route ("/ocform", name = "factura_cias_carga_oc_form")
  363.      */
  364.     public function cargaOrdenFormAction(Request $request)
  365.     {
  366.         $em $this->getDoctrine()->getManager();
  367.         $factura_ids $request->get('ids');
  368.         $facturasids explode(","$factura_ids);
  369.         $facturas $em->getRepository(FacturaAfip::class)->findById($facturasids);
  370.         return $this->render('facturaafip/new_orden_cobro.html.twig', array(
  371.             'facturas' => $facturas
  372.         ));
  373.     }
  374.     /**
  375.      * Displays Cias List
  376.      *
  377.      * @Route ("/cias_list", name = "factura_cias_list")
  378.      */
  379.     public function ciasListAction(Request $request)
  380.     {
  381.         $em $this->getDoctrine()->getManager();
  382.         //$cias = $em->getRepository('AppBundle:Cias')->findAll();
  383.         $cias $em->getRepository(Cias::class)->getCias();
  384.         return $this->render('facturaafip/cias_list.html.twig', array(
  385.             '_url_parameters' => $request->get('_url_parameters'),
  386.             'cias' => $cias
  387.         ));
  388.     }
  389.     /**
  390.      * Display form search
  391.      *
  392.      * @Route ("/form_search", name = "factura_form_search")
  393.      */
  394.     public function formSearchAction()
  395.     {
  396.         $em $this->getDoctrine()->getManager();
  397.         $companias $em->getRepository(Cias::class)->getCias();
  398.         
  399.         $verificadores $em->getRepository(Users::class)->getVerificadoresActivos();
  400.         $verificadoresInactivos $em->getRepository(Users::class)->getVerificadoresInactivos();
  401.         $tramitadores $em->getRepository(ciaMen::class)->findBy(array('active' => '1'), array(
  402.             'fullname' => 'ASC'
  403.         ));
  404.         return $this->render('facturaafip/form_search.html.twig', array(
  405.             'companias' => $companias,
  406.             'verificadores' => $verificadores,
  407.             'verificadoresInactivos' => $verificadoresInactivos,
  408.             'tramitadores' => $tramitadores
  409.         ));
  410.     }
  411.     /**
  412.      * Lists all facturaAfip entities.
  413.      *
  414.      * @Route ("/", name = "factura_index")
  415.      */
  416.     public function indexAction(Request $request)
  417.     {
  418.         $em $this->getDoctrine()->getManager();
  419.         $page $request->query->get('page''1');
  420.         $preseleccion $request->get('preseleccion');
  421.         $factura_id $request->query->get('factura_id');
  422.         $compania $request->query->get('compania');
  423.         $estado $request->query->get('estado');
  424.         $tipo $request->query->get('tipo');
  425.         $sortField $request->query->get('sortField''numeroComprobante');
  426.         $sortDirection $request->query->get('sortDirection''DESC');
  427.         $q $request->query->get('q');
  428.         $siniestro $request->query->get('siniestro');
  429.         $verificador $request->query->get('verificador');
  430.         $tramitador $request->query->get('tramitador');
  431.         //$cias = $em->getRepository('AppBundle:Cias')->findAll();
  432.         $cias $em->getRepository(Cias::class)->getCias();
  433.         $anuladas $request->get('anuladas');
  434.         if($preseleccion)
  435.         {
  436.             $arrayPreseleccion explode(','$preseleccion);
  437.         }
  438.         if($siniestro)
  439.         {
  440.             $siniestroObj $em->getRepository(Reports::class)->findSiniestro($siniestro);
  441.             if($siniestroObj){
  442.                 $prefacturas $em->getRepository(PrefacturaCabecera::class)->findBy(array(
  443.                     'siniestroId' => $siniestroObj
  444.                 ));
  445.                 $q = array();
  446.                 foreach($prefacturas as $prefactura)
  447.                 {
  448.                     $q[]= $prefactura->getFacturaAfipId();
  449.                 }
  450.             }
  451.         }
  452.         $cuituser '';
  453.         $ivas '';
  454.         $nrotpv '';
  455.         $tiposcbte '';
  456.         $ticketactivo '';
  457.         if($q){
  458.             //$facturaAfips = $em->getRepository(FacturaAfip::class)->;
  459.             //$qn = null;
  460.             $facturaAfips $em->getRepository(FacturaAfip::class)->getAllFacturas($page$factura_id$compania$q$estado$tipo$sortField$sortDirection);
  461.         }elseif($verificador) {
  462.             $facturaAfips $em->getRepository(FacturaAfip::class)->findFacturasByVerificador($page$verificador);
  463.         }elseif($tramitador) {
  464.             $facturaAfips $em->getRepository(FacturaAfip::class)->findFacturasByTramitador($page$tramitador);
  465.         }
  466.         elseif($estado=='para_anular_afip')
  467.         {
  468.             $facturaAfips $em->getRepository(FacturaAfip::class)->findFacturasAnuladasAfip($page);
  469.         }
  470.         else{
  471.             $qn null;
  472.             $facturaAfips $em->getRepository(FacturaAfip::class)->getAllFacturas($page$factura_id$compania$qn$estado$tipo$sortField$sortDirection);
  473.         }
  474.         $totalSolicitudes $facturaAfips->count();
  475.         $limit 25;
  476.         $maxPages ceil($facturaAfips->count() / $limit);
  477.         $thisPage $page;
  478.         $limitePageNav '';
  479.         return $this->render('facturaafip/index.html.twig', array(
  480.             'preseleccion' => $preseleccion,
  481.             'facturaAfips' => $facturaAfips,
  482.             'totalSolicitudes' => $totalSolicitudes,
  483.             'maxPages' => $maxPages,
  484.             'thisPage' => $thisPage,
  485.             'limitePageNav' => $limitePageNav,
  486.             'cias' => $cias
  487.         ));
  488.     }
  489.     /**
  490.      * Check health Afip Servers
  491.      *
  492.      * @Route ("/estado_afip", name = "factura_estado_afip")
  493.      *
  494.      */
  495.     public function estadoServidoresAfipAction(AfipFe $afipfe)
  496.     {
  497.         $em $this->getDoctrine()->getManager();
  498.         $empresa $em->getRepository(AfipEmpresa::class)->findOneBy(array(
  499.             'activa' => true
  500.         ));
  501.         $cuit $empresa->getCuitempresa();
  502.         $ticketactivo $afipfe->getTicketActivo($cuit);
  503.         if($ticketactivo)
  504.         {
  505.             //Consulta a Factura Electronica Dummy, para conocer estado del servicio
  506.             $responder $afipfe->metodoAfip($cuit$ticketactivo'FEDummy');
  507.             $dummyresponse = (array) $responder;
  508.             if(property_exists($responder'FEDummyResult')&&$responder->FEDummyResult->AppServer=='OK') {
  509.                 $data $dummyresponse;
  510.                 $response_code200;
  511.                 $success true;
  512.             }else {
  513.                 $data = array(
  514.                     'AppServer'=>'Error',
  515.                     'DbServer'=>'Error',
  516.                     'AuthServer'=>'Error',
  517.                 );
  518.                 $response_code419;
  519.                 $success false;
  520.             }
  521.             return new JsonResponse(array(
  522.                 'success' => $success,
  523.                 'data'    => $data
  524.                 ), $response_code
  525.             );
  526.         }else{
  527.             return new JsonResponse(array(
  528.                 'error' => 'error'
  529.             ), 500
  530.             );
  531.         }
  532.     }
  533.     /*
  534.  $nrotpv = $this->get('afip.facturae')->metodoAfip($cuituser, $ticketactivo, 'FEParamGetPtosVenta', $wsdl, $url);
  535.             $tiposcbte = $this->get('afip.facturae')->metodoAfip($cuituser, $ticketactivo, 'FEParamGetTiposCbte', $wsdl, $url);
  536.             //Se llama a la funcion privada que convierte la respuesta en Array, ideal para pasarlo a Twig y alli
  537.             //usar la notacion {{ estadoafip['FEDummyResult']['AppServer'] }}
  538.             $dummyresponse = (array) $responder;
  539.             //En el controller tambien podemos consultar directamente al objeto que vino en la respuesta
  540.             //y almacenar el valor en una variable para consultar o pasarlo a la vista
  541.             /*if($responder->FEDummyResult->AppServer=='OK'){
  542.                 $estadoserver = "OK";
  543.             }*/
  544.     //$ivas = $this->get('afip.facturae')->metodoAfip($cuituser, $ticketactivo, 'FEParamGetTiposIva', $wsdl, $url);
  545.     //$ult_aut = $this->get('afip.facturae')->metodoAfip($cuituser, $ticketactivo, 'FECompUltimoAutorizado', $wsdl, $url);
  546.     //$caes = $this->get('afip.facturae')->metodoAfip($cuituser, $ticketactivo, 'FECAEAConsultar', $wsdl, $url);
  547.     //$consultadni = $this->get('afip.facturae')->metodoAfip($cuituser, $ticketactivo, 'FECAEAConsultar', $wsdl, $url);
  548.     /*
  549.     $doscatorce = $this->get('afip.facturae')->FECompConsultarAfip($cuituser, $ticketactivo, $wsdl, $url, 3, 214);
  550.     dump($doscatorce);
  551.     //public function FECompConsultarAfip($cuit,Afipticketacceso $ticket, $wsdl, $url, $tipo, $cpbte ){
  552.      */
  553.     /**
  554.      * Creates a new facturaAfip entity.
  555.      *
  556.      * @Route ("/new", name = "factura_new")
  557.      *
  558.      */
  559.     public function newAction(Request $request)
  560.     {
  561.         $facturaAfip = new Facturaafip();
  562.         $form $this->createForm('App\Form\FacturaAfipType'$facturaAfip);
  563.         $form->handleRequest($request);
  564.         if ($form->isSubmitted() && $form->isValid()) {
  565.             $em $this->getDoctrine()->getManager();
  566.             $em->persist($facturaAfip);
  567.             $em->flush();
  568.             return $this->redirectToRoute('factura_show', array('id' => $facturaAfip->getId()));
  569.         }
  570.         return $this->render('facturaafip/new.html.twig', array(
  571.             'facturaAfip' => $facturaAfip,
  572.             'form' => $form->createView(),
  573.         ));
  574.     }
  575.     /**
  576.      * Finds and displays a facturaAfip entity.
  577.      *
  578.      * @Route ("/show", name = "factura_show")
  579.      */
  580.     public function showAction(Request $request)
  581.     {
  582.         $em $this->getDoctrine()->getManager();
  583.         $estado $request->get('estado');
  584.         $factura_ids $request->get('ids');
  585.         $facturasids explode(","$factura_ids);
  586.         $facturaAfips $em->getRepository(FacturaAfip::class)->findBy(array('id' => $facturasids));
  587.         return $this->render('facturaafip/show.html.twig', array(
  588.             'factura_ids' => $factura_ids,
  589.             'estado' => $estado,
  590.             'facturaAfips' => $facturaAfips
  591.         ));
  592.     }
  593.     /**
  594.      * Displays a form to edit an existing facturaAfip entity.
  595.      *
  596.      * @Route ("/{id}/edit", name = "factura_edit")
  597.      *
  598.      */
  599.     public function editAction(Request $requestFacturaAfip $facturaAfip)
  600.     {
  601.         $em $this->getDoctrine()->getManager();
  602.         $deleteForm $this->createDeleteForm($facturaAfip);
  603.         $editForm $this->createForm('App\Form\FacturaAfipType'$facturaAfip);
  604.         $editForm->handleRequest($request);
  605.         if ($editForm->isSubmitted() && $editForm->isValid()) {
  606.             $this->getDoctrine()->getManager()->flush();
  607.             return $this->redirectToRoute('factura_edit', array('id' => $facturaAfip->getId()));
  608.         }
  609.         $prefacturas $em->getRepository(PrefacturaCabecera::class)->findBy(array(
  610.             'facturaAfipId' => $facturaAfip
  611.         ));
  612.         return $this->render('facturaafip/edit.html.twig', array(
  613.             'facturaAfip' => $facturaAfip,
  614.             'edit_form' => $editForm->createView(),
  615.             'delete_form' => $deleteForm->createView(),
  616.             'prefacturas' => $prefacturas
  617.         ));
  618.     }
  619.     /**
  620.      * Deletes a facturaAfip entity.
  621.      *
  622.      * @Route ("/{id}/delete", name = "factura_delete")
  623.      *
  624.      */
  625.     public function deleteAction(Request $requestFacturaAfip $facturaAfip)
  626.     {
  627.         $form $this->createDeleteForm($facturaAfip);
  628.         $form->handleRequest($request);
  629.         if ($form->isSubmitted() && $form->isValid()) {
  630.             $em $this->getDoctrine()->getManager();
  631.             $em->remove($facturaAfip);
  632.             $em->flush();
  633.         }
  634.         return $this->redirectToRoute('factura_index');
  635.     }
  636.     /**
  637.      * Creates a form to delete a facturaAfip entity.
  638.      *
  639.      * @param FacturaAfip $facturaAfip The facturaAfip entity
  640.      *
  641.      * @return \Symfony\Component\Form\Form The form
  642.      */
  643.     private function createDeleteForm(FacturaAfip $facturaAfip)
  644.     {
  645.         return $this->createFormBuilder()
  646.             ->setAction($this->generateUrl('factura_delete', array('id' => $facturaAfip->getId())))
  647.             ->setMethod('DELETE')
  648.             ->getForm()
  649.         ;
  650.     }
  651. }