PersonaController.php 10.9 KB
<?php

namespace UBV\SurUbvBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use UBV\SurUbvBundle\Entity\Persona;
use UBV\SurUbvbundle\Entity\Aspirante;
use UBV\SurUbvBundle\Entity\EstudianteDocumento;
use UBV\SurUbvBundle\Entity\Deposito;
use UBV\SurUbvbundle\Entity\PersonaNacionalidad;
use UBV\SurUbvBundle\Entity\PersonaCorreo;
use UBV\SurUbvBundle\Entity\PersonaTelefono;
use UBV\SurUbvBundle\Entity\PersonalAdministrativo;
use UBV\AutenticacionBundle\Form\Type\RegistrationAspirantePreGradoType;
use UBV\AutenticacionBundle\Form\Type\RegistrationAspirantePostGradoType;
use UBV\AutenticacionBundle\Form\Type\RegistrationPersonaType;
use UBV\SurUbvBundle\Form\PersonaType;

/**
 * Persona controller.
 *
 * @Route("/persona")
 */
class PersonaController extends Controller
{
    /**
     * Lists all Persona entities.
     *
     * @Route("/buscarPersonalUbv", name="buscar_persona_ubv")
     * @Method("POST")
     */
    public function BuscarPersonalUbvAction(Request $request)
    {
        $cedula = $request->get('buscar_persona')['cedula'];
        $cliente = new \nusoap_client('http://localhost/nuevorecibo/webservice/servicio.wsdl', true);
        $result = $cliente->call("consultaPersonal", array ("cedula" => $cedula));
        
        $empleado = $this->arregloEmpleado($result);
        
        
        
        $em = $this->getDoctrine()->getManager();
        
        if($empleado){
          $persona = $em->getRepository('UBVSurUbvBundle:Persona')->findPersonaByCedula($cedula);
          if($persona){
            return $this->redirectToRoute('persona_show',array('id'=>$persona->getId()));
          }else{

              //die(dump("no Existe"));
              $persona = new Persona();
              $form = $this->createForm('UBV\AutenticacionBundle\Form\Type\RegistrationPersonaType',$persona);

              $nacionalidad = new PersonaNacionalidad();
              $telefonoMovil = new PersonaTelefono();
              $personalAdministrativo = new PersonalAdministrativo();

              //$documento = new EstudianteDocumento();

              $personaCorreo = new PersonaCorreo();

              $persona->getPersonaNacionalidads()->add($nacionalidad);
              $persona->getPersonaTelefonos()->add($telefonoMovil);
              //$persona->getAspirantes()->add($aspirante);
              $persona->getPersonalAdministrativos()->add($personalAdministrativo);

              $nacionalidad->setPersona($persona);
              $nacionalidad->setIdentificacion($empleado["Cedula"]);
              $nacionalidad->setEstatus(true);
              $personaCorreo->setPersona($persona);
              $telefonoMovil->setPersona($persona);
              $personalAdministrativo->setPersona($persona);

              //$persona->getEstudianteDocumentos()->add($documento);
              $persona->getPersonaCorreos()->add($personaCorreo);
              $persona->setEmail('prueba@ubv.edu.ve');
              $persona->setUserName('Prueba');
              $form->setData($persona);
            
            //return $this->forward('UBVAutenticacionBundle:Registration:registerPersonalUbv');
          return $this->render(':persona:new.html.twig', array(
              'form' => $form->createView(),
              'datos'=>$empleado,
          ));
          }
          
        }else{
          $request->getSession()
                  ->getFlashBag()->set(
                    'warning',
                    array(
                        'title' => 'Empleado no Encontrado!',
                        'message' => 'La cedula suministrada no corresponde a ningun empleado.'
                    )
                  );



          return $this->redirectToRoute('persona_index');
          //die(dump("Mesanismo para agregar docentes que no esten en nominas"));
        }
        //
        
        //$persona = new Persona();
        
        
        
    }
    
    /**
     * Lists all Persona entities.
     *
     * @Route("/", name="persona_index")
     * @Method("GET")
     */
    public function indexAction()
    {
        $form = $this->createForm('UBV\SurUbvBundle\Form\BuscarPersonaType');
        $em = $this->getDoctrine()->getManager();

        $personas = $em->getRepository('UBVSurUbvBundle:Persona')->findArregloPersonas();
        //die(dump($personas));
        return $this->render('persona/index.html.twig', array(
            'personas' => $personas,
            'form' => $form->createView(),
        ));
    }

    /**
     * Creates a new Persona entity.
     *
     * @Route("/new", name="persona_new")
     * @Method({"GET", "POST"})
     */
    public function newAction(Request $request)
    {
        $persona = new Persona();
        $form = $this->createForm('UBV\SurUbvBundle\Form\PersonaType', $persona);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->persist($persona);
            $em->flush();

            return $this->redirectToRoute('persona_show', array('id' => $persona->getId()));
        }

        return $this->render('persona/new.html.twig', array(
            'persona' => $persona,
            'form' => $form->createView(),
        ));
    }

    /**
     * Finds and displays a Persona entity.
     *
     * @Route("/{id}", name="persona_show")
     * @Method("GET")
     */
    public function showAction(Persona $persona)
    {
        $deleteForm = $this->createDeleteForm($persona);

        return $this->render('persona/show.html.twig', array(
            'persona' => $persona,
            'delete_form' => $deleteForm->createView(),
        ));
    }

    /**
     * Displays a form to edit an existing Persona entity.
     *
     * @Route("/{id}/edit", name="persona_edit")
     * @Method({"GET", "POST"})
     */
    public function editAction(Request $request, Persona $persona)
    {
        $deleteForm = $this->createDeleteForm($persona);
        $editForm = $this->createForm('UBV\SurUbvBundle\Form\PersonaType', $persona);
        $editForm->handleRequest($request);

        if ($editForm->isSubmitted() && $editForm->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->persist($persona);
            $em->flush();

            return $this->redirectToRoute('persona_edit', array('id' => $persona->getId()));
        }

        return $this->render('persona/edit.html.twig', array(
            'persona' => $persona,
            'edit_form' => $editForm->createView(),
            'delete_form' => $deleteForm->createView(),
        ));
    }

    /**
     * Deletes a Persona entity.
     *
     * @Route("/{id}", name="persona_delete")
     * @Method("DELETE")
     */
    public function deleteAction(Request $request, Persona $persona)
    {
        $form = $this->createDeleteForm($persona);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->remove($persona);
            $em->flush();
        }

        return $this->redirectToRoute('persona_index');
    }

    /**
     * Creates a form to delete a Persona entity.
     *
     * @param Persona $persona The Persona entity
     *
     * @return \Symfony\Component\Form\Form The form
     */
    private function createDeleteForm(Persona $persona)
    {
        return $this->createFormBuilder()
            ->setAction($this->generateUrl('persona_delete', array('id' => $persona->getId())))
            ->setMethod('DELETE')
            ->getForm()
        ;
    }
    
    private function arregloEmpleado($result){
      
      if(is_null($result)){
        return null;
      }else{
        $datos = explode("*", $result);
        
        foreach ($datos as $llave => $valor){
          if($llave == 0){
            $empleado["Cedula"]=$valor;
          }elseif($llave == 1){
            
            $nombres = explode(" ", $valor);
            //die(dump($nombres));
            $nombreTemp = "";
            $segundoNombre="";
            foreach($nombres as $i=>$nombre){
              
              if($i === 0){
                $empleado["PrimerNombre"]=$nombre;
              }else{
                if(!empty($segundoNombre) && !empty($nombre)){
                  $segundoNombre = $segundoNombre." ".$nombre;
                }elseif(!empty($segundoNombre) && empty($nombre)){
                  $segundoNombre = $segundoNombre;
                }else{
                  $segundoNombre = $segundoNombre.$nombre;
                }
              }  
            }
            $empleado["SegundoNombre"]=$segundoNombre;
          }
          elseif($llave == 2){
            
            $apellidos = explode(" ", $valor);
            //die(dump($nombres));
            $apellidoTemp = "";
            $segundoApellido="";
            foreach($apellidos as $i=>$apellido){
              
              if($i === 0){
                $empleado["PrimerApellido"]=$apellido;
              }else{
                if(!empty($segundoApellido) && !empty($apellido)){
                  $segundoApellido = $segundoApellido." ".$apellido;
                }elseif(!empty($segundoApellido) && empty($apellido)){
                  $segundoApellido = $segundoApellido;
                }else{
                  $segundoApellido = $segundoApellido.$apellido;
                }
              }  
            }
            $empleado["SegundoApellido"]=$segundoApellido;
          }
//          elseif($llave == 2){
//            $empleado["Apellidos"]=$valor;
//          }
          elseif($llave == 3){
            $empleado["Sede"]=$valor;
          }
          elseif($llave == 4){
            $empleado["UnidadAdministrativa"]=$valor;
          }
          elseif($llave == 5){
            $empleado["FechaIngreso"]=$valor;
          }
          elseif($llave == 6){
            $empleado["FechaNacimiento"]=$valor;
          }
          elseif($llave == 8){
            $empleado["CargoAsignado"]=$valor;
          }
          elseif($llave == 9){
            $empleado["tipoEmpleado"]=$valor;
          }
          elseif($llave == 10){
            $empleado["estadoCivil"]=$valor;
          }
          elseif($llave == 11){
            $empleado["telefonoHabitacion"]=$valor;
          }
          elseif($llave == 12){
            $empleado["telefonoMovil"]=$valor;
          }
          elseif($llave == 13){
            $empleado["foto"]=$valor;
          }
          elseif($llave == 14){
            $empleado["correInstitucional"]=$valor;
          }
          elseif($llave == 15){
            $empleado["nacionalidad"]=$valor;
          }
          elseif($llave == 16){
            $empleado["genero"]=$valor;
          }
        }//die(dump($datos));
        return $empleado;
      }
    }
}