<?php
date_default_timezone_set('Europe/Madrid'); 
    require_once('classes/lib/nusoap.php');
    require("classes/database.php");
    require("classes/mailer.php");
	require("classes/pop3.php");

    //$sms = new nusoap_client('http://www.altiria.net/api/ws/soap?wsdl', true);
    $sms = new nusoap_client('http://www.altiria.net/api/ws/soap?wsdl', true);
    $sms->timeout = 5;
    $sms->response_timeout = 60;
    $sms->soap_defencoding = 'UTF-8';
    $sms->decode_utf8 = true; 
    $operation = 'sendSms';
    $credentials = array('login'=>'fernando.gomez@ferroli.com','passwd'=>'ferroli202002svl');   
    //$credentials = array('login'=>'miguel.valadares@sappiencia.com','passwd'=>'sbt4vmqf');   
    $smsErr = $sms->getError();
    error_log( print_r("sms start: " .$smsErr, TRUE),0 );	
    error_log( print_r("sms start fault: " .$sms->fault, TRUE),0 );	


	$pop3=new pop3_class;
    /*$pop3->hostname="pop.serviciodecorreo.es";             
	$pop3->port=995;                      
	$pop3->tls=1;                            
	$user = "recibir@sappiencia.com";
    $password = "Miguel20";  */
	//$pop3->hostname="pop3.ferrolipro.es";             
    $pop3->hostname="pop3.dominioabsoluto.net";
	$pop3->port=110; 
    //$pop3->port=995;                      
	$pop3->tls=1;                           
	$user = "configurador-caldera.ferrolipro.es";
    $password = "5a-Carlo5";              
    //$user = "configurador-calderac.ferrolipro.es";
    //$password = "5aP-Carlo5";                
	$pop3->realm="";                         
	$pop3->workstation="";                   
	$apop=0;                                 
	$pop3->authentication_mechanism="USER";  
	$pop3->debug=0;                          
	$pop3->html_debug=0;                     
	$pop3->join_continuation_header_lines=1; 

	if(($error=$pop3->Open())==""){
		echo "<PRE>Connected to the POP3 server &quot;".$pop3->hostname."&quot;.</PRE>\n";
		if(($errorl=$pop3->Login($user,$password,$apop))==""){
			echo "<PRE>User &quot;$user&quot; logged in.</PRE>\n";
			if(($errorstat=$pop3->Statistics($messages,$size))==""){
				echo "<PRE>There are $messages messages in the mail box with a total of $size bytes.</PRE>\n";
                 error_log( print_r("qty emails ".$messages.": " .date('Y-m-d H:i:s'), TRUE),0 );	
				/*$result=$pop3->ListMessages("",-1);
				if(GetType($result)=="array")
				{*/
					/*for(Reset($result),$message=0;$message<count($result);Next($result),$message++)
						echo "<PRE>Message ",Key($result)," - ",$result[Key($result)]," bytes.</PRE>\n";*/
					$result=$pop3->ListMessages("",-1);
					if(GetType($result)=="array"){
						/*for(Reset($result),$message=0;$message<count($result);Next($result),$message++)
							echo "<PRE>Message ",Key($result),", Unique ID - \"",$result[Key($result)],"\"</PRE>\n";*/
						if($messages>0){
						  for($countm=1;$countm<=$messages;$countm++){
    						    $errorm[$countm]=$pop3->RetrieveMessage($countm,$headers,$body,-1);
    							if($errorm[$countm]==""){
    								/*echo "<PRE>Message 1:\n---Message headers starts below---</PRE>\n";
    								for($line=0;$line<count($headers);$line++)
    									echo "<PRE>",HtmlSpecialChars($headers[$line]),"</PRE>\n";
    								echo "<PRE>---Message headers ends above---\n---Message body starts below---</PRE>\n";*/
                                    $countl=0;
                                    $data=[];
    								for($line=0;$line<count($body);$line++){
    								    if(substr($body[$line],0,7)=="nombre:")$countl=$line;
                                        if(substr($body[$line],0,7)=="random:"){
                                            $var=substr($body[$line],0,strpos($body[$line],":"));
                                            $data[$var]=trim(urldecode(str_replace('=', '%',substr($body[$line],strpos($body[$line],":")+1))));
                                            //echo urldecode(str_replace('=', '%',substr($body[$line],strpos($body[$line],":")+1)));
                                            $countl=0;
                                            /*if(!$database->checkLead($data['random'])){
                                                if($database->addLead($data)){
                                                    $mailer->sendLeadConfirmation($data['email'],$data['nombre'],$data['apellidos'],$data['telefono'],$data['codigopostal'],$data['colocacion_caldera'],$data['caldera'],$data['precio']);
                                                    //if(($errordel=$pop3->DeleteMessage($countm))==""){
                    								//    $pop3->Close();
                    								//}
                                                }  
                                            }*/
                                        }
                                        /*else if(substr($body[$line],0,12)=="aceptacion2:"){
                                            $var=substr($body[$line],0,strpos($body[$line],":"));
                                            $data[$var]=urldecode(str_replace('=', '%',substr($body[$line],strpos($body[$line],":")+1)));
                                            echo urldecode(str_replace('=', '%',substr($body[$line],strpos($body[$line],":")+1)));
                                            $countl=0;
                                            //if(!$database->checkLead($data['random']))
                                            //if($database->addLead($data)){
                                            //    $mailer->sendLeadConfirmation($data['email'],$data['nombre'],$data['apellidos'],$data['telefono'],$data['codigopostal'],$data['colocacion_caldera'],$data['caldera'],$data['precio']);
                                                //if(($errordel=$pop3->DeleteMessage($countm))==""){
                								    //$pop3->Close();
                								//}
                                            //}
                                        }*/
                                        else if($countl>0 && $line>=$countl){
    								        if(strpos($body[$line],":")>0){
    								            $var=substr($body[$line],0,strpos($body[$line],":"));
                                                $data[$var]=trim(urldecode(str_replace('=', '%',substr($body[$line],strpos($body[$line],":")+1))));
                                                //echo urldecode(str_replace('=', '%',substr($body[$line],strpos($body[$line],":")+1)));
                                            }
                                        }
    								}
                                    if($data['random'])	{
                                        if(!$database->checkLead($data['random'])){
                                            if($leadid=$database->addLead($data)){
                                                if($mailer->sendLeadConfirmation($data['e_mail'],$data['nombre'],$data['apellidos'],$data['telefono'],$data['codigopostal'],$data['colocacion_caldera'],$data['caldera'],$data['precio'],$data['idioma'],$data['random'])){
                                                    $instalador=$database->getInstaladorByCodPostal(intval($data['codigopostal']));
                                                    //print_r($instalador);
                                                    if($instalador){
                                                        $database->LeadSentCliente($leadid,date('Y-m-d H:i:s'));
                                                        if($mailer->sendLeadInstalador($instalador['email'],$data['e_mail'],$data['nombre'],$data['apellidos'],$data['telefono'],$data['codigopostal'],$data['colocacion_caldera'],$data['caldera'],$data['precio'],$data['idioma'],$data['random'])){
                                                            $database->LeadSentInstalador($leadid,$instalador['id'],date('Y-m-d H:i:s'));
                                                            $mailer->sendLeadFerroli($instalador['nome'],$instalador['cif'],$data['e_mail'],$data['nombre'],$data['apellidos'],$data['telefono'],$data['codigopostal'],$data['colocacion_caldera'],$data['caldera'],$data['precio'],$data['random'],$data['gclid']);
                                                            if(!$database->checkInstaladorFestivos($instalador['id'],date('Y-m-d'))){
                                                                //echo "no festivo <br>";
                                                                if(date('w')>=1 && date('w')<=5){
                                                                    //echo "semana <br>";
                                                                    if(date('His')>=90000 && date('His')<=180000){
                                                                        //echo "horario laboral <br>";
                                                                        if($smsErr){
                                                                            //echo "erro envio sms <br>";
                                                                        }
                                                                        else{
                                                                            //echo "intento envio sms <br>";
                                                                            $message = array('msg'=>'Tienes un aviso para instalar una caldera. Contacta con el cliente en menos de 10 minutos. N de aviso: '.$data['random'].'  Telefono Cliente: '.$data['telefono'], 'senderId'=>'FERROLI');
                                                                            //$message = array('msg'=>'Tienes un aviso para instalar una caldera. Contacta con el cliente en menos de 10 minutos. N de aviso: '.$data['random'].'  Telefono Cliente: '.$data['telefono']);
                                                                            $destination = array ('34'.$instalador['tel']);
                                                                            //$destination = array ('34619436537');
                                                                            //$destination = array ('34609057911');
                                                                            $params = array(array('credentials'=>$credentials,'destination'=>$destination,'message'=>$message));
                                                                            $result = $sms->call($operation, $params);
                                                                            error_log( print_r("sms result ".$destination.": " .$result, TRUE),0 );	
                                                                            /*echo("sms result <br>"); 
                                                                                print_r($result); 
                                                                            echo("sms destination <br>"); 
                                                                                print_r($destination);  
                                                                            echo("sms error <br>"); 
                                                                                print_r($smsSendErr);
                                                                            echo("sms count ".count($message['msg'])."<br>"); 
                                                                                print_r($message['msg']);*/
                                                                            $smsSendErr = $sms->getError();
                                                                            if(!$sms->fault && !$smsSendErr && $result['status']=='000'){
                                                                                //echo "envio sms <br>";
                                                                                $database->LeadSentSMSInstalador($leadid,date('Y-m-d H:i:s'));
                                                                            }
                                                                            else {
                                                                                /*echo "error envio sms <br>";
                                                                                print_r($sms->fault, TRUE); 
                                                                                print_r($result, TRUE); 
                                                                                print_r($smsSendErr, TRUE);  */
                                                                            }
                                                                        }
                                                                    }
                                                                    /*else {
                                                                        //echo "no horario laboral <br>";
                                                                        if($smsErr){
                                                                            //echo "erro envio sms <br>";
                                                                        }
                                                                        else{
                                                                            //echo "intento envio sms <br>";
                                                                            $message = array('msg'=>'Acabas de recibir un solicitud para instalar una caldera.Recuerda que debes ponerte en contacto con el cliente en los proximos 10 minutos en el numero'.$data['telefono']);
                                                                            //$destination = array ('34'.$instalador['tel']);
                                                                            //$destination = array ('34619436537');
                                                                            $params = array(array('credentials'=>$credentials,'destination'=>$destination,'message'=>$message));
                                                                            $result = $sms->call($operation, $params);
                                                                            error_log( print_r("sms result off hours".$destination.": " .$result, TRUE),0 );	
                                                                            //echo("sms result <br>"); 
                                                                            //    print_r($result); 
                                                                            //echo("sms destination <br>"); 
                                                                            //    print_r($destination);  
                                                                            //echo("sms error <br>"); 
                                                                            //    print_r($smsSendErr);
                                                                            //echo("sms count ".count($message['msg'])."<br>"); 
                                                                            //    print_r($message['msg']);
                                                                            $smsSendErr = $sms->getError();
                                                                            if(!$sms->fault && !$smsSendErr && $result['status']=='000'){
                                                                                //echo "envio sms <br>";
                                                                            }
                                                                            else {
                                                                                //echo "error envio sms <br>";
                                                                                //print_r($sms->fault, TRUE); 
                                                                                //print_r($result, TRUE); 
                                                                                //print_r($smsSendErr, TRUE);  
                                                                            }	
                                                                        }
                                                                    }*/
                                                                }
                                                                else if(date('w')==6){
                                                                    //echo "semana <br>";
                                                                    if(date('His')>=90000 && date('His')<=130000){
                                                                        //echo "horario laboral <br>";
                                                                        if($smsErr){
                                                                            //echo "erro envio sms <br>";
                                                                        }
                                                                        else{
                                                                            //echo "intento envio sms <br>";
                                                                            $message = array('msg'=>'Tienes un aviso para instalar una caldera. Contacta con el cliente en menos de 10 minutos. N de aviso: '.$data['random'].'  Telefono Cliente: '.$data['telefono'], 'senderId'=>'FERROLI');
                                                                            //$message = array('msg'=>'Tienes un aviso para instalar una caldera. Contacta con el cliente en menos de 10 minutos. N de aviso: '.$data['random'].'  Telefono Cliente: '.$data['telefono']);
                                                                            $destination = array ('34'.$instalador['tel']);
                                                                            //$destination = array ('34619436537');
                                                                            //$destination = array ('34609057911');
                                                                            $params = array(array('credentials'=>$credentials,'destination'=>$destination,'message'=>$message));
                                                                            $result = $sms->call($operation, $params);
                                                                            error_log( print_r("sms result ".$destination.": " .$result, TRUE),0 );	
                                                                            /*echo("sms result <br>"); 
                                                                                print_r($result); 
                                                                            echo("sms destination <br>"); 
                                                                                print_r($destination);  
                                                                            echo("sms error <br>"); 
                                                                                print_r($smsSendErr);
                                                                            echo("sms count ".count($message['msg'])."<br>"); 
                                                                                print_r($message['msg']);*/
                                                                            $smsSendErr = $sms->getError();
                                                                            if(!$sms->fault && !$smsSendErr && $result['status']=='000'){
                                                                                //echo "envio sms <br>";
                                                                                $database->LeadSentSMSInstalador($leadid,date('Y-m-d H:i:s'));
                                                                            }
                                                                            else {
                                                                                /*echo "error envio sms <br>";
                                                                                print_r($sms->fault, TRUE); 
                                                                                print_r($result, TRUE); 
                                                                                print_r($smsSendErr, TRUE);  */
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }                                                            
                                                            /* cliente*/
                                                            $message = array('msg'=>'Hemos recibido tu petición muy pronto nos pondremos en contacto contigo. Un caluroso Saludo.', 'senderId'=>'FERROLI');
                                                            //$message = array('msg'=>'Hemos recibido tu petición muy pronto nos pondremos en contacto contigo. Un caluroso Saludo.');
                                                            $destination = array ('34'.$data['telefono']);
                                                            //$destination = array ('34619436537');
                                                            //$destination = array ('34609057911');
                                                            $params = array(array('credentials'=>$credentials,'destination'=>$destination,'message'=>$message));
                                                            $result = $sms->call($operation, $params);
                                                            error_log( print_r("sms cliente result ".$destination.": " .$result, TRUE),0 );	
                                                            /*echo("sms result <br>"); 
                                                                print_r($result); 
                                                            echo("sms destination <br>"); 
                                                                print_r($destination);  
                                                            echo("sms error <br>"); 
                                                                print_r($smsSendErr);
                                                            echo("sms count ".count($message['msg'])."<br>"); 
                                                                print_r($message['msg']);*/
                                                            $smsSendErr = $sms->getError();
                                                            if(!$sms->fault && !$smsSendErr && $result['status']=='000'){
                                                                //echo "envio sms <br>";
                                                                //$database->LeadSentSMSCliente($leadid,date('Y-m-d H:i:s'));
                                                            }
                                                            else {
                                                                /*echo "error envio sms <br>";
                                                                print_r($sms->fault, TRUE); 
                                                                print_r($result, TRUE); 
                                                                print_r($smsSendErr, TRUE);  */
                                                            }
                                                        }                                                    
                                                        //echo "email sent <br>";
                                                    }
                                                    else {
                                                        error_log( print_r("no instalador ".intval($data['codigopostal']), TRUE),0 );
                                                     $errorl[$countm]=1;
                                                     }	 
                                                }
                                                else{ 
                                                    //echo "can't send email <br>";
                                                     error_log( print_r("can't send email ".$data, TRUE),0 );	 
                                                     $errorl[$countm]=1;
                                                     $database->deleteLead($data['random']);
                                                }
                                            } 
                                            else error_log( print_r("can't add lead ".$data, TRUE),0 );	 
                                        }	
                                        else  error_log( print_r("lead already exists".$data, TRUE),0 );	 
                                    }
                                    else  error_log( print_r("no random in lead ".$data, TRUE),0 );	 					
    								//echo "<PRE>---Message body ends above---</PRE>\n";
    								/*if(($error=$pop3->DeleteMessage($countm))=="")
    								{
    								    $pop3->Close();
    									echo "<PRE>Marked message 1 for deletion.</PRE>\n";
    									//if(($error=$pop3->ResetDeletedMessages())=="")
    									//{
    									//	echo "<PRE>Resetted the list of messages to be deleted.</PRE>\n";
    									//}
    								}*/
    							}          
                            }
                            for($countm=1;$countm<=$messages;$countm++){
    							if($errorm[$countm]=="" && !$errorl[$countm]){    							 
                                    if(($errordel=$pop3->DeleteMessage($countm))==""){
    								    $pop3->Close();
    								}
                                }
                            }
						}
						
			         }
				}
				/*else
					$errorstat=$result;*/
        }
        /*else
				$errorl=$result;*/
    	if($error==""
    	&& ($errorcl=$pop3->Close())==""){
    		echo "<PRE>Disconnected from the POP3 server &quot;".$pop3->hostname."&quot;.</PRE>\n";
            error_log( print_r("Disconnected from the POP3 server &quot;".$pop3->hostname."&quot;.", TRUE),0 );	 
      }
	}
	if($error!=""){
		echo "<H2>Error: ",HtmlSpecialChars($error),"</H2>";
        error_log( print_r("Error: ".HtmlSpecialChars($error), TRUE),0 );	 
  }
?>