<?php 

class WpersonalController extends WadminController
{

    const emailRRHH = 'rrhh@limousinecc.com';
    const nombreRRHH = 'Recursos humanos de Limousinecc';
//    const emailRRHH = 'informatica@limousinecc.com';



    public function documentosAction() 
    {

        // 9e9cd7bcf41c135f15d68d845426b4db

		$layout = $this->getLayout();
        $usuario = Usuario::getPotencialLogueado();

        $formulario = new AppFormulario();
        $formulario->setAction('/wpersonal/documentossave', false);
        $formulario->setEnctype(AppFormulario::ENCTYPE_MULTIPART);
        $formulario->setModo(AppFormulario::MODO_NORMAL);

        $cmpCs = new EFHidden("cp");
        $cmpCs->setValue($usuario->getCodigo());
        $formulario->addElement($cmpCs);

        /****** DNI ******/

        $docDNIAll = RegistroDocumento::findAllByUsuarioAndTipo($usuario->getCodigo(), RegistroDocumento::TIPODOCUMENTO_DNI);
        $docDNI = new RegistroDocumento();
        if (count($docDNIAll) > 0 ) {
            $docDNI = $docDNIAll[0];
        }
        $docDNIReverso = new RegistroDocumento();
        if (count($docDNIAll) > 1 ) {
            $docDNIReverso = $docDNIAll[1];
        }
        $cmpFileDNI = new EFFichero("dniAnverso");
        $cmpFileDNI->setLabel('DNI Anverso (foto):');
        $formulario->addElement($cmpFileDNI);
        $descargaDNI = $this->botonDescarga($docDNI->getRutaEnDisco(), 'DNI Anverso'); 
        $cmpFileDNIcodigo = new EFHidden("dniAnversoCodigo");
        $cmpFileDNIcodigo->setValue($docDNI->getNumero());
        $formulario->addElement($cmpFileDNIcodigo);

        $cmpFileDNIReverso = new EFFichero("dniReverso");
        $cmpFileDNIReverso->setLabel('DNI Reverso:');
        $formulario->addElement($cmpFileDNIReverso);
        $descargaDNIReverso = $this->botonDescarga($docDNIReverso->getRutaEnDisco(), 'DNI Reverso'); 
        $cmpFileDNIcodigoReverso = new EFHidden("dniReversoCodigo");
        $cmpFileDNIcodigoReverso->setValue($docDNIReverso->getNumero());
        $formulario->addElement($cmpFileDNIcodigoReverso);

        /****** TARJETA SANITARIA ******/
        
        $docSanitariaAll = RegistroDocumento::findAllByUsuarioAndTipo($usuario->getCodigo(), RegistroDocumento::TIPODOCUMENTO_TARJETA_SANITARIA);
        $docSanitaria = new RegistroDocumento();
        if (count(docSanitariaAll) > 0 ) {
            $docSanitaria = $docSanitariaAll[0];
        }
        $docSanitariaReverso = new RegistroDocumento();
        if (count($docSanitariaAll) > 1 ) {
            $docSanitariaReverso = $docSanitariaAll[1];
        }

        $cmpFileSanitaria = new EFFichero("tarjetasanitariaAnverso");
        $cmpFileSanitaria->setLabel('Tarjeta sanitaria Anverso:');
        $formulario->addElement($cmpFileSanitaria);
        $descargaSanitaria = $this->botonDescarga($docSanitaria->getRutaEnDisco(), 'tarjeta sanitaria anverso'); 
        $cmpFileSanitariacodigo = new EFHidden("tarjetasanitariaAnversoCodigo");
        $cmpFileSanitariacodigo->setValue($docSanitaria->getNumero());
        $formulario->addElement($cmpFileSanitariacodigo);

        $cmpFileSanitariaReverso = new EFFichero("tarjetasanitariaReverso");
        $cmpFileSanitariaReverso->setLabel('Tarjeta sanitaria Reverso:');
        $formulario->addElement($cmpFileSanitariaReverso);
        $descargaSanitariaReverso = $this->botonDescarga($docSanitariaReverso->getRutaEnDisco(), 'tarjeta sanitaria reverso'); 
        $cmpFileSanitariacodigoReverso = new EFHidden("tarjetasanitariaReversoCodigo");
        $cmpFileSanitariacodigoReverso->setValue($docSanitariaReverso->getNumero());
        $formulario->addElement($cmpFileSanitariacodigoReverso);

        /****** CARNET DE CONDUCIR ******/ 

        $docConducirAll = RegistroDocumento::findAllByUsuarioAndTipo($usuario->getCodigo(), RegistroDocumento::TIPODOCUMENTO_CARNET_CONDUCIR);
        $docConducir = new RegistroDocumento();
        if (count($docConducirAll) > 0 ) {
            $docConducir = $docConducirAll[0];
        }
        $docConducirReverso = new RegistroDocumento();
        if (count($docConducirAll) > 1 ) {
            $docConducirReverso = $docConducirAll[1];
        }

        $cmpFileConducir = new EFFichero("carnetconducirAnverso");
        $cmpFileConducir->setLabel('Carnet de conducir (Foto):');
        $formulario->addElement($cmpFileConducir);
        $descargaConducir = $this->botonDescarga($docConducir->getRutaEnDisco(), 'carnet de conducir (foto)'); 
        $cmpFileConducircodigo = new EFHidden("carnetconducirAnversoCodigo");
        $cmpFileConducircodigo->setValue($docConducir->getNumero());
        $formulario->addElement($cmpFileConducircodigo);

        $cmpFileConducirReverso = new EFFichero("carnetconducirReverso");
        $cmpFileConducirReverso->setLabel('Carnet de conducir (Reverso):');
        $formulario->addElement($cmpFileConducirReverso);
        $descargaConducirReverso = $this->botonDescarga($docConducirReverso->getRutaEnDisco(), 'carnet de conduci reversor'); 
        $cmpFileConducircodigoReverso = new EFHidden("carnetconducirReversoCodigo");
        $cmpFileConducircodigoReverso->setValue($docConducirReverso->getNumero());
        $formulario->addElement($cmpFileConducircodigoReverso);

        /****** CURRICULUM ******/

        //$docCV = RegistroDocumento::findByUsuarioAndTipo($usuario->getCodigo(), RegistroDocumento::TIPODOCUMENTO_CURRICULUM);
        $docCVAll = RegistroDocumento::findAllByUsuarioAndTipo($usuario->getCodigo(), RegistroDocumento::TIPODOCUMENTO_CURRICULUM);
        $docCV = new RegistroDocumento();
        if (count($docCVAll) > 0 ) {
            $docCV = $docCVAll[0];
        }
        /*print_r($docCV);
        echo '<br>';
        echo $docCV->getRutaEnDisco();
        die();*/

        $cmpFileCurriculum = new EFFichero("curriculum");
        $cmpFileCurriculum->setLabel('Curriculum:');
        $formulario->addElement($cmpFileCurriculum);
        $descargaCV = $this->botonDescarga($docCV->getRutaEnDisco(), 'curriculum'); 
        $cmpFileCurriculumcodigo = new EFHidden("curriculumCodigo");
        $cmpFileCurriculumcodigo->setValue($docCV->getNumero());
        $formulario->addElement($cmpFileCurriculumcodigo);

			
        $submit = new EFSubmit('guardar');
        $submit->setValue('Enviar');
        $formulario->addElement($submit);

				
        $titulo = new vstContenedor("Subir documentos");
        $fs = new VstFieldSet();
        $fs->addElement($cmpCs);
        $fs->addElement($cmpFileDNI);
        $fs->addElement($descargaDNI);
        $fs->addElement($cmpFileDNIReverso);
        $fs->addElement($descargaDNIReverso);
        $fs->addElement($cmpFileSanitaria);
        $fs->addElement($descargaSanitaria);
        $fs->addElement($cmpFileSanitariaReverso);
        $fs->addElement($descargaSanitariaReverso);
        $fs->addElement($cmpFileConducir);
        $fs->addElement($descargaConducir);
        $fs->addElement($cmpFileConducirReverso);
        $fs->addElement($descargaConducirReverso);
        $fs->addElement($cmpFileCurriculum);
        $fs->addElement($descargaCV);

        $fs->addElement($submit);
        $titulo->addElement($fs);
        $formulario->addElementoVista($titulo);		
        $saved = $this->getParametro('saved','');
        if ($saved) {
            $savedMessage = new VstMensaje('Ficheros enviados', '<br>Se han enviado los ficheros correctamente.<br>Si quiere modificar alguno sólo es necesario que envie el fichero a modificar.', VstMensaje::APP_EXITO);
            $layout->reg_contenido->addElement($savedMessage);
        }

        $layout->reg_contenido->addElement($formulario);				
		
	}

    private function botonDescarga($ruta, $tituloBoton) {
        $xhtml = '';
        if ($ruta) {
            $ruta = str_replace('D:', 'C:', $ruta);
            $xhtml .= '<div class="form-group">
                    <div class="col-sm-8 col-sm-offset-4">
                    <a class="btn btn-default noajax" target="_blank" href="'.BASEURL. '/file/downfile?fichero=' . $ruta . '">Descargar ' . $tituloBoton . '</a>
                    </div>
                    </div><hr>';
        } else {
            $xhtml .= '<div class="form-group"><div class="col-sm-8 col-sm-offset-4">No hay documento para descargar</div></div><hr>';
        }
        return new VstHTML($xhtml);
    }

    private function saveFile($usuario, $tipoDocumento, $campo) {
        $doc = new RegistroDocumento();
        $codDocumento = $_REQUEST[$campo . 'Codigo'];
        if ($codDocumento) {
            $doc->load($codDocumento);
        }
        if (!$_FILES[$campo]['name']) {
            return 0;
        }
        if (!$doc->getNumero()){
            $doc = new RegistroDocumento();
            $doc->setEmpresa(Constantes::NUMERO_EMPRESA);
            $doc->setCodigoContacto($usuario->getCodigo());
            $doc->setTipoDocumento($tipoDocumento);
            $nuevoCodigo = $doc->generarNuevoCodigo();
            $doc->setNumero($nuevoCodigo);
            $doc->setLogCreadoUsuario($usuario->getUsuarioKarve());
            $doc->setLogCreadoFecha(date('YmdH:i'));		
        }
        $doc->asignarSubidaApp(Presupuesto::USUARIO_KARVE_DEFECTO);        
        $doc->setFecha(date('Y-m-d'));
        $doc->setLogUltimaModificacionFecha(date('YmdH:i'));
        $doc->setLogUltimaModificacionUsuario($usuario->getUsuarioKarve());
        $subido = $doc->guardarFichero($_FILES[$campo]);
        if (!$subido) {
            return 2;
        }
        $doc->save();
        return 1;
    }


    public function documentossaveAction() {
        $usuario = Usuario::getPotencialLogueado();
        try {

            $fileDNI = $this->saveFile($usuario, RegistroDocumento::TIPODOCUMENTO_DNI, 'dniAnverso');
            $fileDNIReverso = $this->saveFile($usuario, RegistroDocumento::TIPODOCUMENTO_DNI, 'dniReverso');
            $fileTarjetaSanitaria = $this->saveFile($usuario, RegistroDocumento::TIPODOCUMENTO_TARJETA_SANITARIA, 'tarjetasanitariaAnverso');
            $fileTarjetaSanitariaReverso = $this->saveFile($usuario, RegistroDocumento::TIPODOCUMENTO_TARJETA_SANITARIA, 'tarjetasanitariaReverso');
            $fileCarnetConducir = $this->saveFile($usuario, RegistroDocumento::TIPODOCUMENTO_CARNET_CONDUCIR, 'carnetconducirAnverso');
            $fileCarnetConducirReverso = $this->saveFile($usuario, RegistroDocumento::TIPODOCUMENTO_CARNET_CONDUCIR, 'carnetconducirReverso');
            $fileCurriculum = $this->saveFile($usuario, RegistroDocumento::TIPODOCUMENTO_CURRICULUM, 'curriculum');
            // Avisar a recursos humanos
            $email = new Email();                  
            $email->setOrigen(self::nombreRRHH, self::emailRRHH);
            $email->addDestinatario(self::nombreRRHH, self::emailRRHH );
            $email->setAsunto('Subidos documentos del personal '.$usuario->getCodigo());
            $email->setVista('interno_subida_docs_personal');
            $email->codigoUsuario = $usuario->getCodigo();

            //print_r($email);
            //echo $email->renderVista();
            //die('hasta aqui');
            $email->enviar();

        } catch(Exception $e) {
            echo $e->getMessage();
            die();
        }
        //die('nada');
        $url = BASEURL.'/wpersonal/documentos/saved/1';
        header('Location:'.$url);
       
    }

}