<?php


class FuncionesRobotEmail{
    public $mailer;
    public $port;
    public $user;
    public $pass;
    public $carpetaMail;
    public $carpetaMailSuccess;
    public $carpetaMailError;
    public $carpetaTemporalEML;
    public $tramites;

    public function __construct() {
        if ($_SESSION["entornoDesarrollo"]){
            $this->user = 'enlacesegelevia@bmsgroup.com';
            //$this->pass = 'fGU44SdsQkgK';

            $this->carpetaMail='INBOX';
            $this->carpetaTramitados='01-Processed';
            $this->carpetaErroneos='02-Erroneous';
            $this->carpetaSinFormato='03-Raw message';

            //$this->carpetaTemporalEML=__DIR__ . '/../../robotEmail/mails';
            $this->carpetaTemporalEML=$_SESSION['path_inicio']."/mails";
            $this->administradores = 'susimz@nexius.es';
            $this->unidadRedVisual = 'V:\\';
            $this->httpUrlArchivoDocumental = 'http://192.168.10.3/';
            echo '<br>Robot que lee la cuenta:'.$this->user .'<br>';

        }else{ //producción
            //$this->mailserver = 'correo.milenio.es';
            //$this->port = '143';
            $this->user = 'enlacesegelevia@bmsgroup.com';
            //$this->user = 'enlacesegelevia@milenio.es';
            //$this->pass = 'Milenio20';
            
            //$this->carpetaMail='INBOX';
            $this->carpetaMail='INBOX';
            $this->carpetaTramitados='01-Processed';
            $this->carpetaErroneos='02-Erroneous';
            $this->carpetaSinFormato='03-Raw message';
            $this->carpetaTemporalEML=$_SESSION['path_inicio']."/mails";
            
            $this->administradores = 'desa@nexius.es, info@milenio.es'; // añadir correos que nos digan en milenio
            $this->unidadRedVisual = 'V:\\';
            $this->httpUrlArchivoDocumental = 'http://192.168.10.3/';
            echo '<br>Este es el robot que lee la cuenta:'.$this->user .'<br>';

        }
        // todos los textos en minusculas
        $this->tipos = array(
            "1"     => array('c','cliente', 'clientes'),
            "2"     => array('a', 'col', 'auxiliares', 'auxiliar', 'colaborador', 'colaboradores'),
            "3"     => array('k','com','comp',
                                'compañia', 
                                'compañias',
                                'compa=f1ia', 
                                'compa=f1ias', 
                                'compa&#241;ia', 
                                'compa&#241;ia',
                                'compa&#209;ia',
                                'compa\u00f1ia'),
            "7"     => array('p', 'polizas', 'poliza'),
            "10"    => array('r', 'recibos', 'recibo'),
            "13"    => array('s', 'siniestros', 'siniestro')
        ); 
        //$this->maxSize=1048576; //2mb
        //$this->maxSize=16777216; //16mb
        //$this->maxSize=26214400; //25mb
        //$this->maxSize=24214400; //24mb
        $this->maxSize=100214400; //24mb
    }
    public function eliminarEMLS() {

        $files = glob($this->carpetaTemporalEML."\\*"); //obtenemos todos los nombres de los ficheros
        
        foreach($files as $file){
            //borro los que llevan mas de 2h.
            $actual=time() - (2 * 60 * 60);           
            if(is_file($file)){
                if (filectime($file)<$actual){      
                    unlink($file); //elimino el fichero
                }
            }
        }
    }
    public function existeCarpeta($lista, $carpeta){
        
        $result=false;
        foreach ($lista as $clave => $valor) {
            $c=str_replace('{'.$this->mailserver.'}', '', $valor->name);
            if (imap_utf7_decode($c)==$carpeta){
                $result=true;
            }           
        }
        return $result;
    }
    public function comprobarCarpetas($mbox){
        $result['errores']=0;
        $result['descripcion']='';
        $listaCarpetas = imap_getmailboxes($mbox, "{".$this->mailserver."}", "*");
        if (!$this->existeCarpeta($listaCarpetas,$this->carpetaMail)){
            
            $result['descripcion'].="No existe carpeta: ".$this->carpetaMail. '<br>';
            if (imap_createmailbox($mbox, imap_utf7_encode("{".$this->mailserver."}".$this->carpetaMail))) {
                $result['descripcion'].="Creada carpeta: ".$this->carpetaMail. '<br>';
            }else{
                $result['errores']=1;
                $result['descripcion'].="No fue posible crear la carpeta: ".$this->carpetaMail. '<br>';
                
            }
        };
        if (!$this->existeCarpeta($listaCarpetas,$this->carpetaTramitados)){
            $result['descripcion'].="No existe carpeta: ".$this->carpetaTramitados;
            if (imap_createmailbox($mbox, imap_utf7_encode("{".$this->mailserver."}".$this->carpetaTramitados))) {
                $result['descripcion'].="Creada carpeta: ".$this->carpetaTramitados. '<br>';
            }else{
                $result['errores']=1;
                $result['descripcion'].="No fue posible crear la carpeta: ".$this->carpetaTramitados. '<br>';
                
            }
        };
        if (!$this->existeCarpeta($listaCarpetas,$this->carpetaErroneos)){
            $result['descripcion'].="No existe carpeta: ".$this->carpetaErroneos;
            if (imap_createmailbox($mbox, imap_utf7_encode("{".$this->mailserver."}".$this->carpetaErroneos))) {
                $result['descripcion'].="Creada carpeta: ".$this->carpetaErroneos. '<br>';
            }else{
                $result['errores']=1;
                $result['descripcion'].="No fue posible crear la carpeta: ".$this->carpetaErroneos. '<br>';
            }
        };
        return $result;
    }
    public function mover($mbox, $j, $carpeta){
        imap_mail_move($mbox, $j, $carpeta);
    }
    public function comprobarAsuntoCorreoCorrecto($asunto){
        $arrayAsunto = explode("#", $asunto);
        echo "  Partes del Asunto: ".count($arrayAsunto)."<br>";

        if (count($arrayAsunto) > 1){
            //es un parámetro para saber si debemos empezar a coger los parámetros desde el elemento 0 o 1
            // #c#12341241234#nombredelfichero 
            // ó
            // c#12341241234#nombredelfichero
            if (trim($this->limpiarRobot($arrayAsunto[0]))==''){
                $compensacionAsunto=0;
            }else{
                $compensacionAsunto=-1;
            }
            $idTipoVisual=$this->buscarTipo(trim($this->limpiarRobot($arrayAsunto[(1+$compensacionAsunto)])));
            $tipoVisual=$arrayAsunto[1+$compensacionAsunto];
            echo "  Tipo mensaje (C/A/COM/P/R/S): ".$this->limpiarRobot($arrayAsunto[0])."<br>";
            echo "  idTipoVisual: ".$idTipoVisual."<br>";
            echo "  tipoVisual: ".$tipoVisual."<br>";
            $result = ($idTipoVisual <>'');
        } else{
            $result=false;
        }
        return $result;
    }
    public function anadirSegelevia($asunto, $fichero, $mensaje){
        global $SegeleviaVar;
        global $mailer;

        //es un parámetro para saber si debo empezar a coger los parámetros desde el elemento 0 o 1
        // #c#12341241234#nombredelfichero 
        // ó
        // c#12341241234#nombredelfichero
        $compensacionAsunto=0;
        $result['error']=0;
        $result['descripcion']='';
        // $asunto_partes=imap_mime_header_decode($asunto);
        // $asunto = '';
        // foreach ($asunto_partes as $part) {
        //     $decoded_part = mb_convert_encoding($part->text, 'UTF-8', 'ISO-8859-1');
        //     $asunto .= $decoded_part;
        // }
        $arrayAsunto = explode("#", $asunto);
        $nElementosAsunto=count($arrayAsunto);
        $result['tamano']=0;
        $result['alerta']=0;
        $respuesta='';

        $urlPDF = $fichero;
        $urlPDF = preg_replace("/ /", "%20", $urlPDF);
        $pdf = base64_encode(file_get_contents($urlPDF));
        
        //     /*
        //     tipo_obj:
        //     Clientes = 1
        //     Polizas = 7
        //     Recibos = 10
        //     Riesgos = 11
        //     Siniestros = 13
        //     Suplementos = 14
        //     */

        if (count($arrayAsunto)!=1){
            if (trim($this->limpiarRobot($arrayAsunto[0]))==''){
                $compensacionAsunto=0;
            }else{
                $compensacionAsunto=-1;
            }
            $idTipoVisual=$this->buscarTipo(trim($this->limpiarRobot($arrayAsunto[(1+$compensacionAsunto)])));
            $tipoVisual=$arrayAsunto[1+$compensacionAsunto];

            if ($idTipoVisual==''){
                $result['error']=2;
                $result['descripcion'] = $this -> generaMensajeErrorUsuario("0","");
            }else{
                // $urlPDF = $fichero;
                // $urlPDF = preg_replace("/ /", "%20", $urlPDF);
                // $pdf = base64_encode(file_get_contents($urlPDF));
                $publicarParaPerfilCliente="0";
                $tamanoFichero=filesize($urlPDF);
                $result['tamano']=$tamanoFichero;
                $result['alerta']=0;

                // echo "Asunto: ".$this->limpiarRobot($arrayAsunto[0])."<br>";
                // echo "idTipoVisual: ".$idTipoVisual."<br>";
                // echo "tipoVisual: ".$tipoVisual."<br>";
                // echo "tamanoFichero: ".$tamanoFichero."<br>";

                if ($nElementosAsunto>(4+$compensacionAsunto)){
                    if (trim($arrayAsunto[4+$compensacionAsunto]!='')){
                        $publicar=strtolower(trim($arrayAsunto[4+$compensacionAsunto]));
                        if ($publicar=='s' || $publicar=='si' || $publicar=='1' || $publicar=='true' || $publicar=='yes'){
                            $publicarParaPerfilCliente="1";
                        }
                    }else{
                        $publicarParaPerfilCliente="0"; 
                    }
                }else{
                    $publicarParaPerfilCliente="0";
                }

                if ($result['tamano']<$this->maxSize){
                    switch ($idTipoVisual) {
                        case "1": //clientes
                            //#cliente#aliascliente#nombrefichero#publicarperfilcliente
                            //$nifcliente=$arrayAsunto[2+$compensacionAsunto];
                            $aliasCliente=$arrayAsunto[2+$compensacionAsunto];
                            echo '<br>aliasCliente: '.$aliasCliente.'<br>';
                            //obtener el id objeto.      
                            //$client = $SegeleviaVar->findByNif($nifcliente);
                            $client = $SegeleviaVar->FindUsingPropertyGenericCliente($aliasCliente);
                            if (!empty($client->Body->FindUsingPropertyGenericResponse->FindUsingPropertyGenericResult->Data->ClienteDTO->Id)){
                                //echo print_r($client, true);
                                $idObjeto = (string)$client->Body->FindUsingPropertyGenericResponse->FindUsingPropertyGenericResult->Data->ClienteDTO->Id;
                                echo '<br>clientId: '.$idObjeto.'<br>';
                                $nombreFichero = $this->ponNombreFichero($nElementosAsunto,$compensacionAsunto, $arrayAsunto, $tipoVisual,$idObjeto);
                                $respuesta= $SegeleviaVar->GuardarDocumentoSegeleviadeRobot('1',$idObjeto,$nombreFichero, $pdf,$publicarParaPerfilCliente);
                                if ($respuesta){
                                    echo "<br>Ha subido el documento correctamente al cliente<br>";
                                    $result['error']=0;
                                }else{
                                    $result['error']=3;
                                    $result['descripcion']=  $this -> generaMensajeErrorUsuario("1","");
                                }
                            }else{
                                $result['error']=3;
                                $result['descripcion']=  $this -> generaMensajeErrorUsuario("1","El alias del Cliente no es válido o no existe en Segelevia, introduzca el alias correcto");
                            }
                            break;
                        case "2": //auxiliares /colaborador
                            $alias=strtoupper ($arrayAsunto[2+$compensacionAsunto]);
                            echo '<br>alias: '.$alias.'<br>';
                            //obtener el id objeto.                        
                            $colaborador= $SegeleviaVar->findByAliasColaborador($alias);
                            if (!empty($colaborador->Body->FindByAliasResponse->FindByAliasResult)){
                                $idObjeto = (string)$colaborador->Body->FindByAliasResponse->FindByAliasResult->Id;
                                echo '<br>colaboradorId: '.$idObjeto.'<br>';
                                $nombreFichero = $this->ponNombreFichero($nElementosAsunto,$compensacionAsunto, $arrayAsunto, $tipoVisual,$idObjeto);
                                $respuesta=$SegeleviaVar->GuardarDocumentoSegeleviadeRobot('2',$idObjeto,$nombreFichero, $pdf,$publicarParaPerfilCliente);
                                if ($respuesta){
                                    echo "<br>Ha subido el documento correctamente al colaborador<br>";
                                    $result['error']=0;                                            
                                }else{
                                    $result['error']=3;
                                    $result['descripcion']=$this -> generaMensajeErrorUsuario("2","");
                                }

                            }else{
                                $result['error']=3;
                                $result['descripcion']= $this -> generaMensajeErrorUsuario("2","El alias del Auxiliar/Colaborador no es válido o no existe en Segelevia, introduzca el alias correcto para el Auxiliar/Colaborador");
                            }
                            break;
                        case "3": //compañia
                            //#k#aliascompañia#
                            $nombreCompania=strtoupper (str_replace('?=','',$arrayAsunto[2+$compensacionAsunto]));
                            $tipoVisual=str_replace('=F1','ñ',$tipoVisual);
                            //obtener el id objeto.         
                            $compania = $SegeleviaVar->FilteredFindCompania($nombreCompania);
                            if (!empty($compania->Body->FilteredFindResponse->FilteredFindResult->PolizaBuscadorDTO->Compania->Id)) {
                                $idObjeto = (string)$compania->Body->FilteredFindResponse->FilteredFindResult->PolizaBuscadorDTO->Compania->Id;
                                echo "La compañía tiene el Id: $idObjeto <br>";
                                $nombreFichero = $this->ponNombreFichero($nElementosAsunto,$compensacionAsunto, $arrayAsunto, $tipoVisual,$idObjeto);
                                $respuesta=$SegeleviaVar->GuardarDocumentoSegeleviadeRobot('3',$idObjeto,$nombreFichero, $pdf,$publicarParaPerfilCliente);
                                if ($respuesta){
                                    echo "<br>Ha subido el documento correctamente a la compañía<br>";
                                    $result['error']=0;                                            
                                }else{
                                    $result['error']=3;
                                    $result['descripcion']=$this -> generaMensajeErrorUsuario("7","");
                                }
                            }else{
                                $result['error']=3;
                                $result['descripcion']= $this -> generaMensajeErrorUsuario("7","La póliza no es válida o no existe en Segelevia, introduzca la póliza correcta");
                            }                            
                            break;
                        case "7": //polizas
                            //#p#numPoliza#nombrefichero#publicarperfilcliente
                            $numPoliza=strtoupper ($arrayAsunto[2+$compensacionAsunto]);
                            echo '<br>numPoliza: '.$numPoliza.'<br>';
                            //obtener el id objeto.         
                            $poliza = $SegeleviaVar->FilteredFindPoliza($numPoliza);
                            if (!empty($poliza->Body->FilteredFindResponse->FilteredFindResult->PolizaBuscadorDTO->Id)) {
                                $idObjeto = (string)$poliza->Body->FilteredFindResponse->FilteredFindResult->PolizaBuscadorDTO->Id;
                                echo "La poliza ya existia con id: $idObjeto <br>";
                                $nombreFichero = $this->ponNombreFichero($nElementosAsunto,$compensacionAsunto, $arrayAsunto, $tipoVisual,$idObjeto);
                                $respuesta=$SegeleviaVar->GuardarDocumentoSegeleviadeRobot('7',$idObjeto,$nombreFichero, $pdf,$publicarParaPerfilCliente);
                                if ($respuesta){
                                    echo "<br>Ha subido el documento correctamente a la póliza<br>";
                                    $result['error']=0;                                            
                                }else{
                                    $result['error']=3;
                                    $result['descripcion']=$this -> generaMensajeErrorUsuario("7","");
                                }
                            }else{
                                $result['error']=3;
                                $result['descripcion']= $this -> generaMensajeErrorUsuario("7","La póliza no es válida o no existe en Segelevia, introduzca la póliza correcta");
                            }
                            break;
                        case "10"://recibos 
                            //#p#numRecibo#nombrefichero#publicarperfilcliente
                            $numRecibo=strtoupper ($arrayAsunto[2+$compensacionAsunto]);
                            //obtener el id objeto.     
                            $recibo = $SegeleviaVar->findUsingPropertyGenericRecibo($numRecibo);
                            if (!empty($recibo->Body->FindUsingPropertyGenericResponse->FindUsingPropertyGenericResult->Data->ReciboDTO->Id)) {
                                $idObjeto = (string)$recibo->Body->FindUsingPropertyGenericResponse->FindUsingPropertyGenericResult->Data->ReciboDTO->Id;
                                echo "El recibo existe con id: $idObjeto <br>";
                                $nombreFichero = $this->ponNombreFichero($nElementosAsunto,$compensacionAsunto, $arrayAsunto, $tipoVisual,$idObjeto);
                                $respuesta=$SegeleviaVar->GuardarDocumentoSegeleviadeRobot('10',$idObjeto,$nombreFichero, $pdf,$publicarParaPerfilCliente);
                                if ($respuesta){
                                    echo "<br>Ha subido el documento correctamente al recibo<br>";
                                    $result['error']=0;                                            
                                }else{
                                    $result['error']=3;
                                    $result['descripcion']=$this -> generaMensajeErrorUsuario("7","");
                                }
                            }else{
                                $result['error']=3;
                                $result['descripcion']= $this -> generaMensajeErrorUsuario("7","El recibo no es válido o no existe en Segelevia, introduzca el número de recibo correcto");
                            }
                            break;
                        case "13"://siniestros
                            //#p#numRecibo#nombrefichero#publicarperfilcliente
                            echo "Entra en 13<br>";
                            $numSiniestro=strtoupper ($arrayAsunto[2+$compensacionAsunto]);
                            //obtener el id objeto.                        
                            $siniestro = $SegeleviaVar->FindUsingPropertyUniqueGenericSiniestro($numSiniestro);
                            if (!empty($siniestro->Body->FindUsingPropertyUniqueGenericResponse->FindUsingPropertyUniqueGenericResult->Data->Id)) {
                                $idObjeto = (string)$siniestro->Body->FindUsingPropertyUniqueGenericResponse->FindUsingPropertyUniqueGenericResult->Data->Id;
                                echo "El siniestro existe con id: $idObjeto <br>";
                                $nombreFichero = $this->ponNombreFichero($nElementosAsunto,$compensacionAsunto, $arrayAsunto, $tipoVisual,$idObjeto);
                                $respuesta=$SegeleviaVar->GuardarDocumentoSegeleviadeRobot('13',$idObjeto,$nombreFichero, $pdf,$publicarParaPerfilCliente);
                                if ($respuesta){
                                    echo "<br>Ha subido el documento correctamente al siniestro<br>";
                                    $result['error']=0;                                            
                                }else{
                                    $result['error']=3;
                                    $result['descripcion']=$this -> generaMensajeErrorUsuario("7","");
                                }
                            }else{
                                $result['error']=3;
                                $result['descripcion']= $this -> generaMensajeErrorUsuario("13","Existe más de un siniestro con el mismo número de siniestro.<br>Es necesario realizar manualmente la importación de los documentos en Segelevia");
                            }
                            break;
                        default:
                            $result['error']=2;
                            $result['descripcion'] = $this -> generaMensajeErrorUsuario("0","");
                    }
                    //Envío siempre mail a desa@nexius.es
                    $respuestaWS=print_r($respuesta, true);
                    $resultRobot=print_r($result, true);
                    $mensajeCortado= substr($mensaje, 1, 2000);
                    $descripcionMail=$asunto. " <br><br> " . $respuestaWS. "<br><br> Robot:" . $resultRobot . "<br><br> Mensaje:" . $mensajeCortado;
                    $asuntoMail="(Segelevia Graph) Importación: ".$asunto;
                    if ($_SESSION["entornoDesarrollo"]){
                        $asuntoMail='(Pruebas Graph) '.$asuntoMail;                            
                    }
                    //echo "Envía email confirmación importación correcta<br>";
                    $mailer->enviarEmail('desa@nexius.es', '','',$asuntoMail, $descripcionMail);
                    echo "Enviado email confirmación importación correcta<br>";
                }else{
                    $result['error']=4;
                    $result['descripcion']= $this -> generaMensajeErrorUsuario("15","<br><h1>El sistema no permite automatizar ficheros mayores de 25MB.<H1> <h3>Envíe el mail en varias partes que no superen los 25mb de tamaño.</h3>");
                } 
            }
        }else{
                $result['error']=1;
                $result['descripcion']= $this -> generaMensajeErrorUsuario("16","<br><h1>El formato del asunto del correo no es correcto.<H1> <h3>El asunto del mail debe empezar por #, por favor, revise las especificaciones para la importación de la información a Segelevia.</h3>");
        }

        return $result;
    }    
    public function ponNombreFichero($nElementosAsunto,$compensacionAsunto, $arrayAsunto, $tipoVisual,$identificacion){
        $fecha= date("YmdHis").rand(1, 1000); 
        if ($nElementosAsunto>(3+$compensacionAsunto)){
            if (trim($arrayAsunto[3+$compensacionAsunto]!='')){
                $nombre=$arrayAsunto[3+$compensacionAsunto];
                $nombre=$this->limpiarRobotNombreFichero($nombre);
                $nombreFichero=$nombre.'_'.$fecha.'.eml';
            }else{
                $nombreFichero='email_'.$tipoVisual.'_'.$identificacion.'_'.$fecha.'.eml';
            }
            
        }else{
            $nombreFichero='email_'.$tipoVisual.'_'.$identificacion.'_'.$fecha.'.eml';
        }
        return $nombreFichero;
    }

    public function buscarTipo($buscado){
        $buscado=strtolower($buscado);
        $id='';
        reset($this->tipos);
        while ($tipo = current($this->tipos)) {
            
            if (in_array($buscado, $tipo)){
                $id=key($this->tipos);
            };
            next($this->tipos);
        }
        return $id;
    }
    
    public function limpiarRobot($c){
        //!=22=B7=22$=B7$%$&/=28=29=3F=BF/-*--+?= =?iso-8859-1?Q?


        $c=str_replace('=E1', 'á', $c);
        $c=str_replace('=C1', 'Á', $c);
        $c=str_replace('=E9', 'é', $c);
        $c=str_replace('=C9', 'É', $c);
        $c=str_replace('=ED', 'í', $c);
        $c=str_replace('=CD', 'Í', $c);
        $c=str_replace('=F3', 'ó', $c);
        $c=str_replace('=D3', 'Ó', $c);
        $c=str_replace('=FA', 'ú', $c);
        $c=str_replace('=DA', 'Ú', $c);
        $c=str_replace('=F1', 'ñ', $c);
        $c=str_replace('=D1', 'Ñ', $c);
        $c=str_replace('***UNCHECKED***', '', $c);
        $c=str_replace('[EXTERNAL]', '', $c);
        

        $c=strtoupper($c);
        $c=str_replace('iso-8859-1', '', $c);
        $c=str_replace('ISO-8859-1', '', $c);
        $c=str_replace('ISO88591', '', $c);
        $c=str_replace('---', '', $c);
        $c=str_replace('(', '', $c);
        $c=str_replace('=28', '', $c);
        $c=str_replace('=3C', '', $c);
        $c=str_replace('=3E', '', $c);
        $c=str_replace('=29', '', $c);
        $c=str_replace('!', '', $c);
        $c=str_replace('=B', '', $c);
        $c=str_replace('_\\', '', $c);
        $c=str_replace('_/', '', $c);
        $c=str_replace(':', '', $c);
        $c=str_replace('*', '', $c);
        $c=str_replace('=3F', '', $c);
        $c=str_replace('=22', '', $c);
        $c=str_replace('|', '', $c);
        $c=str_replace('?=', '', $c);
        $c=str_replace('=?', '', $c);
        $c=str_replace('Q?', '', $c);
        $c=str_replace(' ?', '', $c);
        $c=str_replace('"', '', $c);
        $c=str_replace('\\', '', $c);
        
        $c=str_replace('RV:', '', $c);
        $c=str_replace('RV:_', '', $c);
        $c=str_replace('RV_', '', $c);
        $c=str_replace('RV', '', $c);
        $c=str_replace('RE:', '', $c);
        $c=str_replace('RE:_', '', $c);
        $c=str_replace('RE_', '', $c);
        $c=str_replace('RE', '', $c);
        $c=str_replace('UTF-8', '', $c);
        $c=str_replace('UTF8', '', $c);
        $c=str_replace('UTF-16', '', $c);
        $c=str_replace('UTF16', '', $c);
        $c=str_replace('ISO-8859-2', '', $c);
        $c=str_replace('ISO-8859-3', '', $c);
        $c=str_replace('ISO-8859-4', '', $c);
        $c=str_replace('ISO-8859-5', '', $c);
        $c=str_replace('ISO-8859-6', '', $c);
        $c=str_replace('ISO-8859-7', '', $c);
        $c=str_replace('ISO-8859-8', '', $c);
        $c=str_replace('ISO-8859-9', '', $c);
        $c=str_replace('ISO-8859-10', '', $c);
        $c=str_replace('ISO-8859-11', '', $c);
        $c=str_replace('ISO-8859-12', '', $c);
        $c=str_replace('ISO-8859-13', '', $c);
        $c=str_replace('ISO-8859-14', '', $c);
        $c=str_replace('ISO-8859-15', '', $c);
        $c=str_replace('ISO-8859-16', '', $c);
        $c=str_replace('ISO88592', '', $c);
        $c=str_replace('ISO88593', '', $c);
        $c=str_replace('ISO88594', '', $c);
        $c=str_replace('ISO88595', '', $c);
        $c=str_replace('ISO88596', '', $c);
        $c=str_replace('ISO88597', '', $c);
        $c=str_replace('ISO88598', '', $c);
        $c=str_replace('ISO88599', '', $c);
        $c=str_replace('ISO885910', '', $c);
        $c=str_replace('ISO885911', '', $c);
        $c=str_replace('ISO885912', '', $c);
        $c=str_replace('ISO885913', '', $c);
        $c=str_replace('ISO885914', '', $c);
        $c=str_replace('ISO885915', '', $c);
        $c=str_replace('ISO885916', '', $c);
        
        $no_permitidas= array ('=28', '=3C', '=3E', '=29', '_\\', '_/', ':', '*','=B7', '?','+', '=', '*', '!', '/', 'iso-8859-1', '$%', '$&', '%Y', 'iso-8859-1Q');
        $permitidas= array    ( '',    '',   '',       '',    '',  '' , '' ,  '',   '',  '', '',  '',  '',  '', '' , ' '         , ''  ,  '' , ''  , '');
        $c = str_replace($no_permitidas, $permitidas ,$c);
        $c=strtoupper($c);
        return $c;
        
    }
    public function limpiarRobotNombreFichero($c){
        //!=22=B7=22$=B7$%$&/=28=29=3F=BF/-*--+?= =?iso-8859-1?Q?

        $c=str_replace('=E1', 'á', $c);
        $c=str_replace('=C1', 'Á', $c);
        $c=str_replace('=E9', 'é', $c);
        $c=str_replace('=C9', 'É', $c);
        $c=str_replace('=ED', 'í', $c);
        $c=str_replace('=CD', 'Í', $c);
        $c=str_replace('=F3', 'ó', $c);
        $c=str_replace('=D3', 'Ó', $c);
        $c=str_replace('=FA', 'ú', $c);
        $c=str_replace('=DA', 'Ú', $c);
        $c=str_replace('=F1', 'ñ', $c);
        $c=str_replace('=D1', 'Ñ', $c);
        $c=str_replace('***UNCHECKED***', '', $c);
        $c=str_replace('[EXTERNAL]', '', $c);
        

        $c=strtoupper($c);
        $c=str_replace('iso-8859-1', '', $c);
        $c=str_replace('ISO-8859-1', '', $c);
        $c=str_replace('ISO88591', '', $c);
        $c=str_replace('---', '', $c);
        $c=str_replace('(', '', $c);
        $c=str_replace('=28', '', $c);
        $c=str_replace('=3C', '', $c);
        $c=str_replace('=3E', '', $c);
        $c=str_replace('=29', '', $c);
        $c=str_replace('!', '', $c);
        $c=str_replace('=B', '', $c);
        $c=str_replace('_\\', '', $c);
        $c=str_replace('_/', '', $c);
        $c=str_replace(':', '', $c);
        $c=str_replace('*', '', $c);
        $c=str_replace('=3F', '', $c);
        $c=str_replace('=22', '', $c);
        $c=str_replace('|', '', $c);
        $c=str_replace('?=', '', $c);
        $c=str_replace('=?', '', $c);
        $c=str_replace('Q?', '', $c);
        $c=str_replace(' ?', '', $c);
        $c=str_replace('"', '', $c);
        $c=str_replace('\\', '', $c);
        
        $c=str_replace('UTF-8', '', $c);
        $c=str_replace('UTF8', '', $c);
        $c=str_replace('UTF-16', '', $c);
        $c=str_replace('UTF16', '', $c);
        $c=str_replace('ISO-8859-2', '', $c);
        $c=str_replace('ISO-8859-3', '', $c);
        $c=str_replace('ISO-8859-4', '', $c);
        $c=str_replace('ISO-8859-5', '', $c);
        $c=str_replace('ISO-8859-6', '', $c);
        $c=str_replace('ISO-8859-7', '', $c);
        $c=str_replace('ISO-8859-8', '', $c);
        $c=str_replace('ISO-8859-9', '', $c);
        $c=str_replace('ISO-8859-10', '', $c);
        $c=str_replace('ISO-8859-11', '', $c);
        $c=str_replace('ISO-8859-12', '', $c);
        $c=str_replace('ISO-8859-13', '', $c);
        $c=str_replace('ISO-8859-14', '', $c);
        $c=str_replace('ISO-8859-15', '', $c);
        $c=str_replace('ISO-8859-16', '', $c);
        $c=str_replace('ISO88592', '', $c);
        $c=str_replace('ISO88593', '', $c);
        $c=str_replace('ISO88594', '', $c);
        $c=str_replace('ISO88595', '', $c);
        $c=str_replace('ISO88596', '', $c);
        $c=str_replace('ISO88597', '', $c);
        $c=str_replace('ISO88598', '', $c);
        $c=str_replace('ISO88599', '', $c);
        $c=str_replace('ISO885910', '', $c);
        $c=str_replace('ISO885911', '', $c);
        $c=str_replace('ISO885912', '', $c);
        $c=str_replace('ISO885913', '', $c);
        $c=str_replace('ISO885914', '', $c);
        $c=str_replace('ISO885915', '', $c);
        $c=str_replace('ISO885916', '', $c);
        
        $no_permitidas= array ('=28', '=3C', '=3E', '=29', '_\\', '_/', ':', '*','=B7', '?','+', '=', '*', '!', '/', 'iso-8859-1', '$%', '$&', '%Y', 'iso-8859-1Q');
        $permitidas= array    ( '',    '',   '',       '',    '',  '' , '' ,  '',   '',  '', '',  '',  '',  '', '' , ' '         , ''  ,  '' , ''  , '');
        $c = str_replace($no_permitidas, $permitidas ,$c);
        $c=strtoupper($c);
        return $c;
        
    }
    public function generaMensajeErrorUsuario($tipoId,$texto){
        $mensajeError="<h1>Importación a Segelevia.</h1> <br>";
        if ($tipoId=="0"){ //Error general
            $mensajeError.="<h4>El formato del asunto del correo no es correcto. El asunto del mail debe empezar por # y tipo email a importar:
                            <br>Valores posibles: <br>
                                #c - Clientes,<br>
                                #a - Auxiliares,<br>
                                #k - Compañias,<br>
                                #p - Polizas,<br>
                                #r - Recibos,<br>
                                #s - Siniestros<br></h4>
                                <br>";
        }
        $mensajeError.= $texto." <br>"; 
        $mensajeError.= "<br> <h4>Por favor, vuelva a enviar el email siguiendo las instrucciones que le hemos indicado.<br>
                        No conteste a este correo, se tramita desde una cuenta de email desatendida.</h4>"; 
        return $mensajeError;
    }
}
