src/Controller/RegistrantesController.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Crud\Controller\crudPlainController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use App\Entity\Recluta;
  8. use App\Entity\ReclutaProceso;
  9. use App\Entity\NmclDominioLocalizacion;
  10. use App\Enum\CausaNoIdoneoEnum;
  11. class RegistrantesController extends crudPlainController
  12. {
  13.     protected $procesoActivo null;
  14.     
  15.     public function verificaCodigoDactilarAction()    
  16.     {
  17.         $data $this->request->get('dactilar'); 
  18.         //En $data viene
  19.         //$data['cedula']
  20.         //$data['captcha']
  21.         //$data['codigoDactilar']
  22.         //$data['fechaExpedicionCedula']
  23.         $data['ok']=true;
  24.         $session $this->session;
  25.         $captchaCodigo trim($data['captcha']);
  26.         //validar CAPTCHA
  27.         if (false/*strcasecmp($captchaCodigo, $session->get('captcha_codigo')) != 0*/)
  28.         {
  29.             $data['ok']=false;
  30.             $data['msg']='Código de verificación incorrecto';
  31.         }
  32.         else
  33.         {
  34.             //BEGIN CONSULTAR SERVICIO WEB REGISTRO CIVIL/
  35.           
  36.            if($this->verificaCodigoDactilar($data)){
  37.                 $data['ok']=true;
  38.            }else{
  39.                 $data['ok']=false;
  40.                 $data['msg']=$this->translator->trans('noidoneo.causa.codigoDactilar');
  41.            }
  42.             
  43.         }                
  44.         
  45.         unset($data['captcha']);
  46.         unset($data['codigoDactilar']);
  47.         unset($data['fechaExpedicionCedula']);
  48.         $data = new Response(json_encode($data));
  49.         $data->headers->set('Content-Type''application/json');
  50.         return $data;
  51.     }
  52.     
  53.     protected function verificaCodigoDactilar(&$data)
  54.     {
  55.         /*** BEGIN CONSULTAR SERVICIO WEB REGISTRO CIVIL ***/
  56.         
  57.         
  58.         $codigoDactilar=$data['codigoDactilar'];
  59.         
  60.         $identificacion=$data['cedula'];
  61.         
  62.         $this->logger->info("**********codigoDactilar".$codigoDactilar);
  63.         
  64.         
  65.         
  66.         $data['ok']=true//se pudo comunicar con el ws
  67.         $data['idoneo']=true;  //los datos del código dactilar son correctos
  68.         
  69.         
  70.         $data['dactilarRegCivil'] = [
  71.             'individualDactilar'=>'',
  72.             'sexo' => '',
  73.             'fechaDefuncion' => '',
  74.             'instruccion' => '',
  75.             'nacionaidad' => '',
  76.         ]; 
  77. //        return true;   //WILLY Usar esta linea para probar sin usar los servicios
  78.         /*** END CONSULTAR SERVICIO WEB REGISTRO CIVIL ***/
  79.         
  80.                       
  81.         //$data['estudios'][]=array('anno'=>2013, 'institucion'=>'Colegio XXX', 'titulo'=>'Ingenieron mecánico'); 
  82.         /*** END CONSULTAR SERVICIO WEB MIN EDUCACION ***/
  83.         
  84.         $ws_dinardap=$this->getParameter('ws_dinardap_v2');        
  85.         
  86.         $cliente = new \SoapClient($ws_dinardap,array('login' => 'oPRadrDIMo''password' => 'dfj4R%3Qt/'));       
  87.         
  88.         $this->logger->info('********* REVISA CODIGO DACTILAR: '.$identificacion); 
  89.         try
  90.         {
  91.             
  92.             //$this->logger->info('********* ingresa: '. $identificacion); 
  93.             
  94.             $parametros=array(
  95.                 'parametros'=>array(
  96.                     array(
  97.                         'nombre' => 'codigoPaquete',
  98.                         'valor' => 1959
  99.                     ),
  100.                     array(
  101.                         'nombre' => 'identificacion',
  102.                         'valor' => $identificacion
  103.                     )
  104.                 )
  105.             );
  106.              
  107.             $this->logger->info('********* envia: 'json_encode($parametros));
  108.             
  109.             $result $cliente->__soapCall("consultar", array($parametros));
  110.             
  111.             //$result =  $cliente->consultar($parametros);
  112.             $this->logger->info('LAST REQUEST: ' $cliente->__getLastRequest());
  113.             $this->logger->info('LAST RESPONSE: ' $cliente->__getLastResponse());
  114.             $this->logger->info('*********RESULTADO: '.json_encode($result)); 
  115.             if($result->paquete && $result->paquete->entidades->entidad)
  116.             {
  117.                 $filas=$result->paquete->entidades->entidad->filas;
  118.                 foreach ($filas as $fila) {       
  119.                     foreach ($fila->columnas as $columna) {                     
  120.                         foreach ($columna as $item){
  121.                             switch ($item->campo){
  122.                                 case 'individualDactilar':
  123.                                        $data['dactilarRegCivil']['individualDactilar'] = $item->valor;
  124.                                         //$codigoRegCvil= $item->valor;                                
  125.                                         break;
  126.                                 case 'sexo':
  127.                                         if ($item->valor == 'HOMBRE')
  128.                                         {
  129.                                             $data['dactilarRegCivil']['sexo'] = 'Masculino';
  130.                                             $data['sexo']='Masculino';
  131.                                         }
  132.                                         else
  133.                                         if ($item->valor == 'MUJER')
  134.                                         {
  135.                                             $data['dactilarRegCivil']['sexo'] = 'Femenino';
  136.                                             $data['sexo']='Femenino';
  137.                                         }
  138.                                         else
  139.                                         {
  140.                                             $data['dactilarRegCivil']['sexo'] = 'Otro';                            
  141.                                         }
  142. //                                            $sexoRegCivil= $item->valor;    
  143.                                         break;                                                
  144.                                 case 'fechaDefuncion':
  145.                                         $data['dactilarRegCivil']['fechaDefuncion'] = $item->valor;
  146.                                         break;                                                
  147.                                 case 'instruccion':
  148.                                         $data['dactilarRegCivil']['instruccion'] = $item->valor;
  149.                                         break;                                                
  150.                                 case 'nacionalidad':
  151.                                         $data['dactilarRegCivil']['nacionalidad'] = $item->valor;
  152.                                         break;                                                
  153.                             }                                                                                                         
  154.                         }
  155.                     }
  156.                 }
  157.             }
  158.             else
  159.             {
  160.                 $data['msg']=$this->translator->trans('noidoneo.causa.network.registrocivil');
  161.                 $data['ok']=false;     
  162.             }
  163.         }catch (\SoapFault $e)
  164.         {                       
  165.             $this->logger->info('********* ERROR OBTENER CODIGO DACTILAR V2: 'json_encode($e));
  166.             $data['msg']= $e->faultstring;   
  167.             $data['ok']=false
  168.         }
  169.                
  170.         if ($data['ok']) //se pudo comunicar con el ws
  171.         {
  172.             $data['idoneo'] = ($data['dactilarRegCivil']['individualDactilar']==$codigoDactilar);
  173.             if (!$data['idoneo'])
  174.             {
  175.                 $data['msg']=$this->translator->trans('noidoneo.causa.codigoDactilar');
  176.                 return false;
  177.             }
  178.             $data['idoneo'] = !$data['dactilarRegCivil']['fechaDefuncion'];
  179.             if (!$data['idoneo'])
  180.             {
  181.                 $data['msg']=$this->translator->trans('noidoneo.causa.defuncion');
  182.                 return false;
  183.             }
  184.         }
  185.         else
  186.         {
  187.             $data['msg']=$this->translator->trans('noidoneo.causa.network.registrocivil');
  188.             return false;
  189.         }
  190.         
  191.         return true;                
  192.     }
  193.     
  194.     protected function callPolice($identificacion, &$data$comunicate=true)
  195.     {
  196.         if (!$comunicate)
  197.         {
  198.             return;
  199.         }
  200.         
  201.         $ws_dinardap=$this->getParameter('ws_dinardap');        
  202.         $cliente = new \SoapClient($ws_dinardap,array('login' => 'oPRadrDIMo''password' => 'dfj4R%3Qt/'));        
  203.         $result $cliente->__soapCall(
  204.                             "getFichaGeneral", array(array(                         
  205.                             'codigoPaquete' => 83,
  206.                             'numeroIdentificacion' => $identificacion                   
  207.                             ))
  208.                     );
  209.         if($result->return->instituciones)
  210.         {
  211.             $data['ok']=true;  //se pudo comunicar con el ws
  212.             $data['idoneo']=true;  //encontró a una persona con la identidad indicada
  213.             $datos='[{"campo":"alertaMigratoria","codigo":"278","valor":"NO"},{"campo":"antecedentes","codigo":"276","valor":"NO"},{"campo":"impedimentoSalida","codigo":"277","valor":"NO"},{"campo":"ordenCaptura","codigo":"275","valor":"NO"}]';            
  214.             $datos json_decode($datos);
  215.             $datos=$result->return->instituciones->datosPrincipales->registros;
  216.         //            $this->logger->info('*********RESULTADO DATOS PRINCIPALES: '.json_encode($result->return->instituciones->datosPrincipales->registros)); 
  217.             foreach ($datos as $dato){
  218.                 switch ($dato->campo){
  219.                     case 'antecedentes':
  220.                         if($dato->valor!='NO'){
  221.                             $data['antecedente'] = 1//Antecedentes penales
  222.                             $data['idoneo']=false;
  223.                         }
  224.                         break;
  225.                     case 'impedimentoSalida':
  226.                         if($dato->valor!='NO'){
  227.                             $data['antecedente'] = 2//Impedimento de salida del país
  228.                             $data['idoneo']=false;
  229.                         }
  230.                         break;
  231.                     case 'alertaMigratoria':
  232.                         if($dato->valor!='NO'){
  233.                             $data['antecedente'] = 3;  //Alerta migratoria
  234.                             $data['idoneo']=false;
  235.                         }
  236.                         break;
  237.                     case 'ordenCaptura':
  238.                         if($dato->valor=='NO' or $dato->valor=='No existe en la Base de Datos de la Policia Nacional' or $dato->valor==''){
  239.                             $data['antecedente'] = 0;
  240.                             $data['idoneo']=true;
  241.                         }else{
  242.                             $data['antecedente'] = 4//Orden de Captura
  243.                             $data['idoneo']=false;
  244.                         }
  245.                         break;
  246.                 }                           
  247.             }
  248.         }
  249.         else
  250.         {
  251.             $data['msg']=$this->translator->trans('noidoneo.causa.network.policia');
  252.             $data['ok']=false;     
  253.         }
  254.     }
  255.     
  256.     protected function callMinEducacion($identificacion, &$data$comunicate=true)
  257.     {
  258.         if (!$comunicate)
  259.         {
  260.             $data['estudios'][]=array('institucion'=>'No Disponible''titulo'=>'No Disponible');                                                                                 
  261.             return;
  262.         }                
  263.         try
  264.         {
  265.             
  266.             $ws_dinardap=$this->getParameter('ws_dinardap_v2');        
  267.         
  268.             $clienteFoto = new \SoapClient($ws_dinardap,array('login' => 'oPRadrDIMo''password' => 'dfj4R%3Qt/'));       
  269.             $this->logger->info('********* DESCARGA FOTO '.$identificacion); 
  270.             //$this->logger->info('********* ingresa: '. $identificacion); 
  271.             $parametros=array('parametros'=>array(array('nombre' => 'codigoPaquete','valor' => 1970),array('nombre' => 'identificacion','valor' => $identificacion)));
  272.             $this->logger->info('********* envia: 'json_encode($parametros));
  273.             $result $clienteFoto->__soapCall("consultar", array($parametros));
  274.           
  275.             $this->logger->info('*********RESULTADO: '.json_encode($result)); 
  276.             $foto='';
  277.             if($result->paquete){
  278.                 if($result->paquete->entidades->entidad){
  279.                     $filas=$result->paquete->entidades->entidad->filas;
  280.                     foreach ($filas as $fila) {       
  281.                         foreach ($fila->columnas as $columna) {                     
  282.                             foreach ($columna as $item){
  283.                                 switch ($item->campo){
  284.                                     
  285.                                     case 'especialidad':
  286.                                         $especialidad$item->valor;                                
  287.                                         break;
  288.                                     case 'titulo':
  289.                                         $titulo$item->valor;    
  290.                                         break;                                                                                                                       
  291.                                 }                                                                                                         
  292.                             }
  293.                         }
  294.                     }
  295.                     $data['estudios'][]=array('institucion'=>$especialidad'titulo'=>$titulo);                            
  296.                 }
  297.             }
  298.             
  299.             
  300.             $ws_dinardap=$this->getParameter('ws_dinardap');        
  301.         
  302.             $cliente = new \SoapClient($ws_dinardap,array('login' => 'oPRadrDIMo''password' => 'dfj4R%3Qt/'));       
  303.             $this->logger->info('********* INSTITUCIONES: '); 
  304.         
  305.             $this->logger->info('********* ingresa: '$identificacion); 
  306.             
  307.             $result $cliente->__soapCall(
  308.                                 "getFichaGeneral", array(array(                         
  309.                                 'codigoPaquete' => 85,
  310.                                 'numeroIdentificacion' => $identificacion                   
  311.                                 ))
  312.                         );
  313.             $this->logger->info('LAST REQUEST: ' $cliente->__getLastRequest());
  314.             $this->logger->info('LAST RESPONSE: ' $cliente->__getLastResponse());
  315.             
  316.             $this->logger->info('*********RESULTADO: '.$identificacion.' - - '.json_encode($result)); 
  317.             if($result->return->instituciones){
  318.                 $data['ok']=true;  //se pudo comunicar con el ws
  319.               //  $data['idoneo']=true;  //encontró a una persona con la identidad indicada
  320.                 //$this->logger->info('*********RESULTADO INSTITUCIONES: '.json_encode($result->return->instituciones)); 
  321.                 //$this->logger->info('*********RESULTADO DATOS PRINCIPALES: '.$identificacion.' - - '.json_encode($result->return->instituciones->detalle->items)); 
  322.                 //$registros= '[{"campo":"cedula","codigo":"619","valor":"1714148002"},{"campo":"nombre","codigo":"620","valor":"CHAMBA VOZMEDIANO HUGO ALEXANDER"},{"campo":"institucion","codigo":"621","valor":"INSTITUTO NACIONAL MEJIA"},{"campo":"titulo","codigo":"622","valor":"CIENCIAS"},{"campo":"espcialidad","codigo":"623","valor":"F\u00cdSICO MATEM\u00c1TICAS"}]';
  323.                 //$registros= json_decode($registros);
  324.                 
  325.                 if(isset($result->return->instituciones->detalle->items->nombre)){
  326.                     
  327.                       $especialidad=$result->return->instituciones->detalle->items->nombre;
  328.                       
  329.                       foreach ($result->return->instituciones->detalle->items->registros as $registro){
  330.                          //$this->logger->info('*********RESULTADO $REGISTRO: '.json_encode($registro)); 
  331.                             switch ($registro->campo){                         
  332.                                 case 'nombreTitulo':
  333.                                         $titulo$registro->valor;    
  334.                                         break;                                              
  335.                             } 
  336.                         }
  337.                       
  338.                       $data['estudios'][]=array('institucion'=>$especialidad'titulo'=>$titulo); 
  339.                       
  340.                       
  341.                 }else{
  342.                     $detalles=$result->return->instituciones->detalle->items;  
  343.                 
  344.                     $institucion='';
  345.                     $titulo='';
  346.                     $especialidad='';
  347.                         
  348.                     foreach ($detalles as $detalle){                       
  349.                        //$this->logger->info('*********RESULTADO Detalle: '.$identificacion.' - - '.json_encode($detalle)); 
  350.                        if(isset($detalle->nombre)){
  351.                         $especialidad=$detalle->nombre;
  352.                        
  353.                         foreach ($detalle->registros as $registro){
  354.                          //$this->logger->info('*********RESULTADO $REGISTRO: '.json_encode($registro)); 
  355.                             switch ($registro->campo){                         
  356.                                 case 'nombreTitulo':
  357.                                         $titulo$registro->valor;    
  358.                                         break;                                              
  359.                             } 
  360.                         }
  361.                        
  362.                         $data['estudios'][]=array('institucion'=>$especialidad'titulo'=>$titulo);  
  363.                        }
  364.                     }   
  365.                 }
  366.                                                                                                
  367.             }else{
  368.                 $data['msg']=$this->translator->trans('noidoneo.causa.network.educacion');
  369.                 $data['ok']=false;     
  370.             }
  371.         }catch (\SoapFault $e)
  372.         {
  373.             $this->logger->info('********* ERROR VALIDAR ESTUDIOS: 'json_encode($e));
  374.             $data['msg']= $e->faultstring;              
  375.             $data['ok']=true
  376.         }
  377.     }
  378.     
  379.     
  380.     
  381.     
  382.     protected function calculaEdad ($fechaActual$fechaNacimiento) {
  383.         
  384.         $fecha_de_nacimiento $fechaNacimiento
  385.         $fecha_actual $fechaActual
  386.         //$fecha_actual = date ("2006-03-05"); //para pruebas 
  387.         //$this->logger->info("Hoy es".$fecha_actual);
  388.         //$this->logger->info("Naciste:".$fecha_de_nacimiento); 
  389.         // separamos en partes las fechas 
  390.         $array_nacimiento explode "/"$fecha_de_nacimiento ); 
  391.         $array_actual explode "/"$fecha_actual ); 
  392.         $anos =  $array_actual[2] - $array_nacimiento[2]; // calculamos años 
  393.         $meses $array_actual[1] - $array_nacimiento[1]; // calculamos meses 
  394.         $dias =  $array_actual[0] - $array_nacimiento[0]; // calculamos días 
  395.         //ajuste de posible negativo en $días 
  396.         if ($dias 0
  397.         { 
  398.             --$meses
  399.             //ahora hay que sumar a $dias los dias que tiene el mes anterior de la fecha actual 
  400.             switch ($array_actual[1]) { 
  401.                    case 1:     $dias_mes_anterior=31; break; 
  402.                    case 2:     $dias_mes_anterior=31; break; 
  403.                    case 3:  
  404.                         if($this->bisiesto($array_actual[2])) 
  405.                         { 
  406.                             $dias_mes_anterior=29; break; 
  407.                         } else { 
  408.                             $dias_mes_anterior=28; break; 
  409.                         } 
  410.                    case 4:     $dias_mes_anterior=31; break; 
  411.                    case 5:     $dias_mes_anterior=30; break; 
  412.                    case 6:     $dias_mes_anterior=31; break; 
  413.                    case 7:     $dias_mes_anterior=30; break; 
  414.                    case 8:     $dias_mes_anterior=31; break; 
  415.                    case 9:     $dias_mes_anterior=31; break; 
  416.                    case 10:     $dias_mes_anterior=30; break; 
  417.                    case 11:     $dias_mes_anterior=31; break; 
  418.                    case 12:     $dias_mes_anterior=30; break; 
  419.             } 
  420.             $dias=$dias $dias_mes_anterior
  421.         } 
  422.         //ajuste de posible negativo en $meses 
  423.         if ($meses 0
  424.         { 
  425.             --$anos
  426.             $meses=$meses 12
  427.         } 
  428.         //$this->logger->info("años:".$anos);
  429.         //$this->logger->info("meses:".$meses);
  430.         //$this->logger->info("dias:".$dias);
  431.         
  432.         return $anos.'/'.$meses.'/'.$dias
  433.     }
  434.     
  435.     protected function bisiesto($anio_actual){ 
  436.         $bisiesto=false
  437.         //probamos si el mes de febrero del año actual tiene 29 días 
  438.           if (checkdate(2,29,$anio_actual)) 
  439.           { 
  440.             $bisiesto=true
  441.         } 
  442.         return $bisiesto
  443.     } 
  444.     protected function verificaIdentidad(&$data$identificacion$fechaAcual)
  445.     {
  446.         $em $this ->em;
  447.         /*** BEGIN CONSULTAR SERVICIO WEB REGISTRO CIVIL ***/
  448.         
  449.         $this->logger->info('/***********REQUEST verifica identidad');
  450.         try {
  451.                    
  452.             $ws_dinardap=$this->getParameter('ws_dinardap');        
  453.             $cliente = new \SoapClient($ws_dinardap,array('login' => 'oPRadrDIMo''password' => 'dfj4R%3Qt/'));        
  454.             $result $cliente->__soapCall(
  455.                                 "getFichaGeneral", array(array(                         
  456.                                 'codigoPaquete' => 82,
  457.                                 'numeroIdentificacion' => $identificacion                   
  458.                                 ))
  459.                         );
  460.             if($result->return->instituciones)
  461.             {
  462.                 $data['ok']=true;  //se pudo comunicar con el ws
  463.                 $datos=$result->return->instituciones->datosPrincipales->registros;
  464.                 //$datos= '[{"campo":"cedula","codigo":"1","valor":"1714148002"},{"campo":"nombre","codigo":"2","valor":"CHAMBA VOZMEDIANO HUGO ALEXANDER"},{"campo":"condicionCiudadano","codigo":"4","valor":"CIUDADANO"},{"campo":"fechaNacimiento","codigo":"5","valor":"02\/01\/1997"},{"campo":"lugarNacimiento","codigo":"6","valor":"PICHINCHA\/QUITO\/SANTA BARBARA"},{"campo":"nacionalidad","codigo":"7","valor":"ECUATORIANA"},{"campo":"estadoCivil","codigo":"8","valor":"CASADO"},{"campo":"domicilio","codigo":"15","valor":"PICHINCHA\/QUITO\/LA MAGDALENA"},{"campo":"callesDomicilio","codigo":"16","valor":"HUAYNAPALCON 007"},{"campo":"numeroCasa","codigo":"17","valor":"0"},{"campo":"fechaDefuncion","codigo":"20","valor":""}]';
  465.                 //$datos= json_decode($datos);
  466.                 $this->logger->info('*********RESULTADO DATOS PRINCIPALES: '.json_encode($result->return->instituciones->datosPrincipales->registros)); 
  467.                 foreach ($datos as $dato)
  468.                 {
  469.                     switch ($dato->campo)
  470.                     {
  471.                         case 'cedula':
  472.                             $data['cedula']=$dato->valor;
  473.                             break;
  474.                         case 'nombre':
  475.                             $data['nombres']=$dato->valor;
  476.                             $data['apellidoP']=''
  477.                             $data['apellidoM']=''
  478.                             break;
  479.                         case 'fechaNacimiento':
  480.                             $data['fechaNacimiento']=$dato->valor;
  481.                             $fechaNacimiento$data['fechaNacimiento'];
  482.                             $edad=$this->calculaEdad(date_format($fechaAcual,'d/m/Y'), $fechaNacimiento);
  483.                             //$this->logger->info("******EDAD:".$edad);
  484.                             $array_edad explode"/",$edad ); 
  485.                             $data['edad']=$array_edad[0];
  486.                             $data['edadString']=$array_edad[0].' años '.$array_edad[1].' meses '.$array_edad[2].' días';
  487.                             // $data['edad']=21;
  488.                             //$data['fechaNacimiento']='01/01/2000';
  489.                             break;
  490.                         case 'sexo':
  491.                             if ($dato->valor == 'HOMBRE')
  492.                                 $data['sexo'] = 'Masculino';
  493.                             else
  494.                                 $data['sexo'] = 'Femenino';
  495.                             break;
  496.                         case 'estadoCivil':
  497.                             $data['estadoCivil']=$dato->valor;                                    
  498.                             break;
  499.                         case 'nacionalidad':
  500.                             $data['paisNacimiento']=$dato->valor;                                    
  501.                             break;
  502.                         case 'lugarNacimiento':
  503.                             $data['lugarNacimientoStr']=$dato->valor;
  504.                             $array_lugar explode "/"$dato->valor ); 
  505.                             //$data['parroquiaNacimiento']=$array_lugar[2];
  506.                             if(isset($array_lugar[2])){
  507.                             $parroquia $em->getRepository('App\\Entity\\NmclDominioLocalizacion')
  508.                                 ->createQueryBuilder('r')
  509.                                 ->leftJoin('r.nivelLocalizacion','nivel')
  510.                                 ->leftJoin('nivel.localizacion','localizacion')
  511.                                 ->leftJoin('r.dominioPadre','dominioPadre')
  512.                                 ->where('localizacion.id=1')
  513.                                 ->andWhere('nivel.nivel=4')
  514.                                 ->andWhere('upper(r.valor)=:VALOR')
  515.                                 ->setParameter('VALOR',strtoupper($array_lugar[2]))
  516.                                 ->andWhere('upper(dominioPadre.valor)=:VALOR2')
  517.                                 ->setParameter('VALOR2',strtoupper($array_lugar[1]))
  518.                                 ->getQuery()->getOneOrNullResult();                                    
  519.                                 if($parroquia){
  520.                                     $data['parroquiaNacimiento']=$parroquia;
  521.                                     $data['cantonNacimiento']=$data['parroquiaNacimiento']->getDominioPadre();
  522.                                     $data['provinciaNacimiento']=$data['cantonNacimiento']->getDominioPadre();
  523.                                     $data['regionNacimiento']=$data['provinciaNacimiento']->getDominioPadre();
  524.                                     $data['parroquiaNacimiento']=$data['parroquiaNacimiento']->__toString();
  525.                                     $data['cantonNacimiento']=$data['cantonNacimiento']->__toString();
  526.                                     $data['provinciaNacimiento']=$data['provinciaNacimiento']->__toString();
  527.                                     $data['regionNacimiento']=$data['regionNacimiento']->__toString();                                  
  528.                                 }
  529.                                 else{
  530.                                     $data['parroquiaNacimiento']='';
  531.                                     $data['cantonNacimiento']='';
  532.                                     $data['provinciaNacimiento']='';
  533.                                     $data['regionNacimiento']='';    
  534.                                 }
  535.                             
  536.                             } else{
  537.                                     $data['parroquiaNacimiento']='';
  538.                                     $data['cantonNacimiento']='';
  539.                                     $data['provinciaNacimiento']='';
  540.                                     $data['regionNacimiento']='';    
  541.                                 }
  542.                             break;
  543.                         case 'domicilio':
  544.                             $data['domicilio']=$dato->valor;                                    
  545.                             break;
  546.                         case 'callesDomicilio':
  547.                             $data['callesDomicilio']=$dato->valor;                                    
  548.                             break;
  549.                         case 'numeroCasa':
  550.                             $data['numeroCasa']=$dato->valor;                                    
  551.                             break;
  552.                         case 'fechaDefuncion':
  553.                             $data['fechaDefuncion']=$dato->valor;                                    
  554.                             break;
  555.                     }                           
  556.                 }
  557.                 
  558.                 $this->obtieneSexoNacionalidad($data);
  559.                 $data['idoneo'] = (isset($data['cedula']) && $data['cedula']==$identificacion);  //encontró a una persona con la identidad indicada
  560.                 if (!$data['idoneo'])
  561.                 {
  562.                     $data['causaRechazo'] = CausaNoIdoneoEnum::IDENTIDAD;
  563.                     $data['msg']=$this->translator->trans('noidoneo.causa.identidad');
  564.                     return false;
  565.                 }
  566.                 $data['idoneo'] = !isset($data['fechaDefuncion']) || !$data['fechaDefuncion'];
  567.                 if (!$data['idoneo'])
  568.                 {
  569.                     $data['causaRechazo'] = CausaNoIdoneoEnum::DEFUNCION;
  570.                     $data['msg']=$this->translator->trans('noidoneo.causa.defuncion');
  571.                     return false;
  572.                 }
  573.                 $data['idoneo'] = $data['paisNacimiento'] == 'ECUATORIANA';
  574.                 if (!$data['idoneo'])
  575.                 {
  576.                     $data['causaRechazo'] = CausaNoIdoneoEnum::EXTRANJERO;
  577.                     $data['msg']=$this->translator->trans('noidoneo.causa.extranjero');
  578.                     return false;
  579.                 }
  580.                 
  581.                 $this->getFoto($identificacion$data);
  582.                 if (!$data['ok'])
  583.                 {
  584.                     return false;
  585.                 }
  586.                 return true;
  587.             }
  588.             else
  589.             {
  590.                 $data['ok']=false;  //se pudo comunicar con el ws
  591.                 $data['idoneo']=false;  //encontró a una persona con la identidad indicada
  592.                 $data['msg']=$this->translator->trans('noidoneo.causa.network.registrocivil');
  593.                 return false;
  594.             }  
  595.         }
  596.         catch (\SoapFault $e)
  597.         {
  598.             $this->logger->info('********* ERROR VALIDAR IDENTIDAD: 'json_encode($e));            
  599.             $data['msg']= $e->faultstring;            
  600.             $data['ok']=false;  //se pudo comunicar con el ws
  601.             $data['idoneo']=false;  //encontró a una persona con la identidad indicada
  602.             return false;
  603.         }
  604.         
  605.         /*** END CONSULTAR SERVICIO WEB REGISTRO CIVIL ***/
  606.             
  607.         
  608.     }
  609.     
  610.     
  611.     protected function obtieneSexoNacionalidad(&$data)
  612.     {
  613.         /*** BEGIN CONSULTAR SERVICIO WEB REGISTRO CIVIL ***/
  614.         
  615.                        
  616.         $identificacion=$data['cedula'];
  617.         
  618.         $this->logger->info("**********cedula".$identificacion);
  619.         
  620.         
  621.         
  622.         $data['ok']=true//se pudo comunicar con el ws
  623.         $data['idoneo']=true;  //los datos del código dactilar son correctos
  624.         
  625.         
  626.         /*$data [
  627.             'individualDactilar'=>'',
  628.             'sexo' => '',
  629.             'fechaDefuncion' => '',
  630.             'instruccion' => '',
  631.             'nacionaidad' => '',
  632.         ]; */
  633. //        return true;   //WILLY Usar esta linea para probar sin usar los servicios
  634.         /*** END CONSULTAR SERVICIO WEB REGISTRO CIVIL ***/
  635.         
  636.                       
  637.         //$data['estudios'][]=array('anno'=>2013, 'institucion'=>'Colegio XXX', 'titulo'=>'Ingenieron mecánico'); 
  638.         /*** END CONSULTAR SERVICIO WEB MIN EDUCACION ***/
  639.         
  640.         $ws_dinardap=$this->getParameter('ws_dinardap_v2');        
  641.         
  642.         $cliente = new \SoapClient($ws_dinardap,array('login' => 'oPRadrDIMo''password' => 'dfj4R%3Qt/'));       
  643.         
  644.         $this->logger->info('********* REVISA CODIGO DACTILAR: '.$identificacion); 
  645.         try
  646.         {
  647.             
  648.             //$this->logger->info('********* ingresa: '. $identificacion); 
  649.             
  650.             $parametros=array(
  651.                 'parametros'=>array(
  652.                     array(
  653.                         'nombre' => 'codigoPaquete',
  654.                         'valor' => 1959
  655.                     ),
  656.                     array(
  657.                         'nombre' => 'identificacion',
  658.                         'valor' => $identificacion
  659.                     )
  660.                 )
  661.             );
  662.              
  663.             $this->logger->info('********* envia: 'json_encode($parametros));
  664.             
  665.             $result $cliente->__soapCall("consultar", array($parametros));
  666.             
  667.             //$result =  $cliente->consultar($parametros);
  668.             $this->logger->info('LAST REQUEST: ' $cliente->__getLastRequest());
  669.             $this->logger->info('LAST RESPONSE: ' $cliente->__getLastResponse());
  670.             $this->logger->info('*********RESULTADO: '.json_encode($result)); 
  671.             if($result->paquete && $result->paquete->entidades->entidad)
  672.             {
  673.                 $filas=$result->paquete->entidades->entidad->filas;
  674.                 foreach ($filas as $fila) {       
  675.                     foreach ($fila->columnas as $columna) {                     
  676.                         foreach ($columna as $item){
  677.                             switch ($item->campo){
  678.                                 case 'individualDactilar':
  679.                                        $data['individualDactilar'] = $item->valor;
  680.                                         //$codigoRegCvil= $item->valor;                                
  681.                                         break;
  682.                                 case 'sexo':
  683.                                         if ($item->valor == 'HOMBRE')
  684.                                         {
  685.                                            
  686.                                             $data['sexo']='Masculino';
  687.                                         }
  688.                                         else
  689.                                         if ($item->valor == 'MUJER')
  690.                                         {
  691.                                            
  692.                                             $data['sexo']='Femenino';
  693.                                         }
  694.                                         else
  695.                                         {
  696.                                             $data['sexo'] = 'Otro';                            
  697.                                         }
  698. //                                            $sexoRegCivil= $item->valor;    
  699.                                         break;                                                
  700.                                 case 'fechaDefuncion':
  701.                                         $data['fechaDefuncion'] = $item->valor;
  702.                                         break;                                                
  703.                                 case 'instruccion':
  704.                                         $data['instruccion'] = $item->valor;
  705.                                         break;                                                
  706.                                 case 'nacionalidad':
  707.                                         $data['nacionalidad'] = $item->valor;
  708.                                         break;                                                
  709.                             }                                                                                                         
  710.                         }
  711.                     }
  712.                 }
  713.             }
  714.             else
  715.             {
  716.                 $data['msg']=$this->translator->trans('noidoneo.causa.network.registrocivil');
  717.                 $data['ok']=false;     
  718.             }
  719.         }catch (\SoapFault $e)
  720.         {                       
  721.             $this->logger->info('********* ERROR OBTENER CODIGO DACTILAR V2: 'json_encode($e));
  722.             $data['msg']= $e->faultstring;   
  723.             $data['ok']=false
  724.         }
  725.                
  726.         if ($data['ok']) //se pudo comunicar con el ws
  727.         {
  728.             return true;
  729.         }
  730.         else
  731.         {
  732.             $data['msg']=$this->translator->trans('noidoneo.causa.network.registrocivil');
  733.             return false;
  734.         }
  735.         
  736.         return true;             
  737.     }
  738.     
  739.     
  740.     protected function getFoto($identificacion, &$data)
  741.     {
  742.         /***OBTIENE FOTO******/
  743.         $ws_dinardap=$this->getParameter('ws_dinardap_v2');        
  744.         $clienteFoto = new \SoapClient($ws_dinardap,array('login' => 'oPRadrDIMo''password' => 'dfj4R%3Qt/'));       
  745.         $this->logger->info('********* DESCARGA FOTO '.$identificacion); 
  746.                     
  747.         //$this->logger->info('********* ingresa: '. $identificacion); 
  748.         $parametros=array('parametros'=>array(array('nombre' => 'codigoPaquete','valor' => 1961),array('nombre' => 'identificacion','valor' => $identificacion)));
  749.         $this->logger->info('********* envia: 'json_encode($parametros));
  750.         $result $clienteFoto->__soapCall("consultar", array($parametros));
  751.         //$result =  $clienteFoto->consultar($parametros);
  752.         //$this->logger->info('LAST REQUEST: ' . $clienteFoto->__getLastRequest());
  753.         //$this->logger->info('LAST RESPONSE: ' . $cliente->__getLastResponse());
  754.         $this->logger->info('*********RESULTADO: '.json_encode($result)); 
  755.         $data['fotoCedula']='';
  756.         if($result->paquete){
  757.             if($result->paquete->entidades->entidad){
  758.                 $filas=$result->paquete->entidades->entidad->filas;
  759.                 foreach ($filas as $fila) {       
  760.                     foreach ($fila->columnas as $columna) {                     
  761.                         foreach ($columna as $item){
  762.                             switch ($item->campo){
  763.                                 case 'foto':
  764.                                     $data['fotoCedula'] = $item->valor;                                
  765.                                     break;                                                                                     
  766.                             }                                                                                                         
  767.                         }
  768.                     }
  769.                 }
  770.             }
  771.         }
  772.         else{
  773.             $data['msg']=$this->translator->trans('noidoneo.causa.registrocivilFoto');
  774.             $data['ok']=false;    
  775.             return false;
  776.         }
  777.         /***FIN OBTIENE FOTO******/
  778.         return true;                            
  779.     }
  780.     
  781. }