<?php 
require_once('conexionBD.php');
//llamar librería de soap
require_once("soap/nusoap.php");
//Llamar la librería de encriptación
require_once("encriptarSodium.php");

// Set timezone 
date_default_timezone_set('America/Monterrey'); 

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

mysqli_query($conexion,"SET NAMES utf8");

$error = false;
$data = null;
$msj = '';
//formulario de queremos conocerte al descargar un archivo
//primer formulario
if (isset($_POST['nombre']) &&  isset($_POST['apellido']) && isset($_POST['email']) && isset($_POST['modalPreguntas'])) {

	$email    = $_POST['email'];
	$nombre   = $_POST['nombre'];
	$apellido = $_POST['apellido'];

	$sql = "INSERT INTO ITT_ASW_CONT (CORR, NOMB, APEL, FECH) VALUES ('".$email."', '".$nombre."', '".$apellido."','".date('Y-m-d')."')";
	if (mysqli_query($conexion, $sql)) {
		$msj = "<center>
		<h2 class='modal-t'>¡Gracias por llenar el formulario!</h2><br>
		<p>Serás redirigido al archivo en breve...</p>
		<p><img src='media/img/complete.gif' width='300px'/></p>
		</center>";
	} else {
		//codigo de error de entrada duplicada
		if ($conexion->errno == 1062) {
            $error = true; 
			$msj = "<p id='error' class='descargar'>Este mail, ya se encuentra en nuestra base de datos, serás reiniciado al formulario donde te quedaste la ultima vez.</p>";

			//verificamos los datos del correo
			$q = " SELECT RES1,RES2,RES3,RES4,RES5,RES6 FROM ITT_ASW_CONT WHERE CORR ='".$email."' ";
			$resultado = mysqli_query($conexion, $q ) or die ( "No se pudo verificar si el registro existe");
			//verificamos que preguntas a contestado
			while ($casos = mysqli_fetch_array( $resultado) ) {
                if ($casos['RES1'] == "") {
                    //volver cookie a 1
                    $data = 1;
				}else if ($casos['RES2'] == "") {
                    //volver cookie a 2
                    $data = 2;
				}else if ($casos['RES3'] == "") {
                    //volver cookie a 3
                    $data = 3;
				}else if ($casos['RES4'] == "") {
                    //volver cookie a 4
                    $data = 4;
				}else if ($casos['RES5'] == "") {
                    //volver cookie a 5
                    $data = 5;
				}else if ($casos['RES6'] == "") {
					//volver cookie a 6
                    $data = 6;
				}
			}

		}else{
            $error = true; 
			$msj = "<p id='error' class='descargar' >Código de error #005 Problemas al insertar datos, contacte al administrador.".$conexion->errno."</p>";
		}
	}

    $response = array(
        'error' => $error,
        'msj' => $msj,
        'data' => $data
    );
    echo json_encode($response);
}

//verificamos si se recibe pr para ver que pregunta estamos recibiendo
$pr = "";
if(isset($_POST['pr'])) {
	$pr = $_POST['pr'];
}
//recbimos los datos de la primera pregunta
if ( ($pr == 'pregunta1') && isset($_POST['email']) && isset($_POST['pregunta']) ) {
	$pregunta1 = $_POST['pregunta'];
	$email     = $_POST['email'];

	$email1 = $_COOKIE['email'];
	if ($email1 != $email) {

		echo "<p id='error-r'> El email no coincide con el anterior. </p>";
	}else{
	//llamando función para actualizar registro
		update_preg($email,$pregunta1,1,$conexion);
	}
}
//recbimos los datos de la segunda pregunta
if ( ($pr == 'pregunta2') && isset($_POST['email']) && isset($_POST['pregunta']) ) {
	$pregunta2 = $_POST['pregunta'];
	$email     = $_POST['email'];

	$email1 = $_COOKIE['email'];
	if ($email1 != $email) {

		echo "<p id='error-r'> El email no coincide con el anterior. </p>";
	}else{
	//llamando función para actualizar registro
		update_preg($email,$pregunta2,2,$conexion);
	}
}
//recbimos los datos de la tercer pregunta
if ( ($pr == 'pregunta3') && isset($_POST['email']) && isset($_POST['pregunta']) ) {
	$pregunta3 = $_POST['pregunta'];
	$email     = $_POST['email'];

	$email1 = $_COOKIE['email'];
	if ($email1 != $email) {

		echo "<p id='error-r'> El email no coincide con el anterior. </p>";
	}else{
	//llamando función para actualizar registro
		update_preg($email,$pregunta3,3,$conexion);
	}
}
//recbimos los datos de la cuarta pregunta
if (($pr == 'pregunta4') && isset($_POST['email']) && isset($_POST['pregunta'])) {
    $pregunta4 = $_POST['pregunta'];
    $email = $_POST['email'];

    $email1 = $_COOKIE['email'];
    if ($email1 != $email) {

        echo "<p id='error-r'> El email no coincide con el anterior. </p>";
    } else {
        //llamando función para actualizar registro
        update_preg($email, $pregunta4, 4, $conexion);
    }
}

//funcion par actualizar registros
function update_preg($email,$pregunta,$pr,$conexion){
	//verificamos si existe el registro
	$q = " SELECT * FROM ITT_ASW_CONT WHERE CORR ='".$email."' ";
	$resultado = mysqli_query($conexion, $q ) or die ( "No se pudo verificar si el registro existe");
	if (mysqli_num_rows($resultado) == 0) {
		echo("<p id='error-r'> No tenemos ese email en nuestros archivos <br> la página será recargada. </p>");

	}else{
		// Actualizar datos";
		$q2 = " UPDATE ITT_ASW_CONT SET RES$pr = '".$pregunta."',FECH ='".date('Y-m-d')."' WHERE CORR = '".$email."' "; 
		$r  = mysqli_query($conexion,$q2) or die ( "No se pudo actualizar los datos del usuario");

		echo "<center>
		<h2 class='modal-t'>¡Gracias por llenar el formulario!</h2><br>
		<p>Serás redirigido al archivo en breve...</p>
		<p><img src='media/img/complete.gif' width='300px'/></p>
		</center>";

	}

}
//recibir formulario de suscripcion al boletín
if (isset($_POST['email']) && isset($_POST['modal'])) {
	$email = $_POST['email'];
	$fecha = date("Y-m-d H:i:s");

    $fields = array("CORREO" => $email);
    $fieldsStr = http_build_query($fields);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://smart.solerpalau.mx/PR/api/v1/registroBoletin");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldsStr);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $data = curl_exec($ch);
    curl_close($ch);

    $dataArr = json_decode($data);

    if($data->response){
        echo "<center>
			<p class='modal-t'>¡Suscripción Correcta!</p>
			<p>Gracias por suscribirte a nuestro boletín.</p>
			<p><img src='media/img/completeStatic.png' width='200px'/></p>
			</center>";
    }else if($data->result->error){
        echo "<center>
			<p class='modal-t'>Error al suscribirte,contacte al administrador </p>
            <p>". $data->message ."</p>
			<p><img src='media/img/frown.png' width='200px'/></p>
			</center>"; 
    }else{
        echo "<center>
		<p class='modal-t'>¡Tú email, ya se encuentra registrado en nuestra Base de datos!</p>
		<p>Ya te encuentras recibiendo nuestro boletin.</p>
		<p><img src='media/img/completeStatic.png' width='200px'/></p>
		</center>";
    }
	$q = " SELECT * FROM ITT_ASW_NEWS WHERE CORR ='".$email."' ";
	$resultado = mysqli_query($conexion, $q );
	if (mysqli_num_rows($resultado) == 0) {
		$sql = "INSERT INTO ITT_ASW_NEWS (CORR,FECH) VALUES ('".$email."','".$fecha."')";
        mysqli_query($conexion, $sql);
		/*if (mysqli_query($conexion, $sql)) 
		{
			echo "<center>
			<p class='modal-t'>¡Suscripción Correcta!</p>
			<p>Gracias por suscribirte a nuestro boletín.</p>
			<p><img src='media/img/completeStatic.png' width='200px'/></p>
			</center>";

		}else{
			echo "<center>
			<p class='modal-t'>Error al suscribirte,contacte al administrador </p>
			<p><img src='media/img/frown.png' width='200px'/></p>
			</center>"; 
		}*/
	}
    /*else{
		echo "<center>
		<p class='modal-t'>¡Tú email, ya se encuentra registrado en nuestra Base de datos!</p>
		<p>Ya te encuentras recibiendo nuestro boletin.</p>
		<p><img src='media/img/completeStatic.png' width='200px'/></p>
		</center>";
	}*/
}

//recibir formulario de contacto 
if (isset($_POST['aceptar_condiciones'])) {
    extract($_REQUEST);
    // Realizamos la petición de control:
    $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
    $recaptcha_secret = '6LfaTp4UAAAAAJv2SNGnE8wCPVGdDq0WyEtPK17D';
    $recaptchaGet = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
    $recaptcha = json_decode($recaptchaGet, true);
    // Miramos si se considera humano o robot:
    if ($recaptcha['success'] == true) {
        if ($recaptcha['score'] >= 0.7) {
            
            //buscamos los datos del promotor por estado
            if (!empty($estado) && $estado != null) {
                $qryZona = "SELECT ZONA FROM ITT_ASW_ZONAS WHERE ESTADO='" . $estado . "' ";
                $result = mysqli_query($conexion, $qryZona);
                $row = $result->fetch_assoc();
                $zona = $row['ZONA'];
            } else {
                $zona = '';
                $estado = '';
            }

            // Determinar el numero máximo de la zona registrado
            $qryNumMax = "SELECT MAX(`NUM`) AS 'NUM' FROM `ITT_ASW_INCI` WHERE `ZPRO` = '".$zona."'  ";
            $result = mysqli_query($conexion, $qryNumMax);
            $row = $result->fetch_assoc();
            $numMax = $row['NUM']+1;

            // Insertamos datos en tabla local
            $sql = "INSERT INTO ITT_ASW_INCI(TIPO,NOMB,APEL,EMPR,DIRE,CP,CIUD,ESTADO,PAIS,TELF,CORR,COMM,FECH,ZPRO,IP,STATUS,NUM) VALUES ('" . $necesito . "','" . $nombre . "',
            '" . $apellido . "',
            '" . $empresa.', '.$giro. "',
            '" . $direccion . "',
            '" . $cp . "',
            '" . $ciudad . "',
            '" . $estado . "',
            '" . $pais . "',
            '" . $telefono . "',
            '" . $email . "','" . trim($comentarios) . "','" . date('Y-m-d H:i:s') . "','" . $zona . "','" . $ipCliente . "','P',".$numMax.")";

            if (mysqli_query($conexion, $sql)) {
                //obtenemos el ultimo Id insertado en este hilo
                $lastId = mysqli_insert_id($conexion);
                $newID = $lastId."-".$numMax;

                // Preparamos datos para enviar a WS
                $dataPlain = $necesito . "|" . $nombre . "|" . $apellido . "|" . $empresa .', '.$giro."|" . $direccion . "|" . $cp . "|" . $ciudad . "|" . $estado . "|" . $pais . "|" . $telefono . "|" . $email . "|" . $comentarios . "|" . date('Y-m-d H:i:s') . "|" . $zona . "|" . $ipCliente . "|" . $newID . '|P|SP';
                
                //se procede a hacer la conexión al webService
                $respuesta = conectarWebService($dataPlain, "sendEmail");
                if ($respuesta['status'] == 0 && $respuesta['errorDescripcion'] == 'OK') {
                    $strActualizar = 'UPDATE ITT_ASW_INCI SET PROCESADO="OK" ';
                    $strActualizar .= 'WHERE ID=' . $lastId;
                    if (mysqli_query($conexion, $strActualizar)) {
                        controlError(true, "Muy pronto nos pondremos en contacto contigo :)");
                    }
                } else {
                    controlError(false, "Tenemos errores: " . json_encode($respuesta));
                }
            } else {
                controlError(false, "Error al insertar tus datos en nuestro sistema, favor de reportar el problema.");
            }
        } else {
            controlError(false, "No hemos podido descubrir que eres un humano");
        }
    } else {
        controlError(false, "Se ha producido un error, se ha agotado el tiempo de espera, para continuar recargue la página.");

    }

}


if (isset($_POST['aceptar_condiciones_bolsa'])) {
    extract($_REQUEST);
    // Realizamos la petición de control:
    $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
    // $recaptcha_secret = '6LcLVp4UAAAAAMFP4zQqTzXY4dqGg5Tqg6WhrNNq';
    $recaptcha_secret = '6LccpqUpAAAAAD7Y23MwdWzuKc8fX5Y2gSToWyeO';
    $recaptchaGet = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
    // var_dump($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
    $recaptcha = json_decode($recaptchaGet, true);
    // Miramos si se considera humano o robot:
    if ($recaptcha['success'] == true) {
        if ($recaptcha['score'] >= 0.7) {

            $target_path = "../media/bolsatrabajo/archivos/";

            //CV
            $nombreCv = basename($_FILES['cv']['name']);
            $nombrecv = explode('.', $nombreCv);
            $extCV = $nombrecv[1];
            $nombrecv = utf8_decode($nombrecv[0] . "_" . date('Y-m-s-H-m-s')) . "." . $nombrecv[1];
            $removeSpaceCV = str_replace(" ", "", $nombrecv);
            $cv = $target_path . $removeSpaceCV;

            //CARTA
            $nombreCarta = basename($_FILES['cartap']['name']);
            $nombreC = explode('.', $nombreCarta);
            $extCarta = $nombreC[1];
            $nombreCarta = utf8_decode($nombreC[0] . "_" . date('Y-m-s-H-m-s')) . "." . $nombreC[1];
            $removeSpaceCarta = str_replace(" ", "", $nombreCarta);
            $carta = $target_path . $removeSpaceCarta;

            //mover archivos a la carpeta
            if ((move_uploaded_file($_FILES['cartap']['tmp_name'], $carta)) && (move_uploaded_file($_FILES['cv']['tmp_name'], $cv))) {

                //Ya que se copiaron los datos insertamos los datos a la BD
                $sql = "INSERT INTO ITT_ASW_BTRA(NOMB,APEL,CORR,TELF,DIRE,CP,CIUD,PAIS,CURR,CARTA,COMM,FECHA) VALUES ('" . $nombre . "','" . $apellidos . "','" . $email . "','" . $telefono . "','" . $direccion . "','" . $cp . "','" . $ciudad . "','" . $pais . "','" . $cv . "','" . $carta . "','" . $comentarios . "','" . date('Y-m-d') . "') ";
                if (mysqli_query($conexion, $sql)) {

                    //obtenemos el ultimo Id insertado en este hilo
                    $lastId = mysqli_insert_id($conexion);

                    //Pasamos los archivos a bs4
                    $cartaD = base64_encode(file_get_contents($carta));
                    $cvData = base64_encode(file_get_contents($cv));

                    // Preparamos datos para enviar a WS
                    $data = $nombre . "|" . $apellidos . "|" . $email . "|" . $telefono . "|" . $direccion . "|" . $cp . "|" . $ciudad . "|" . $pais . "|" . $cvData . "#" . $extCV . "|" . $cartaD . "#" . $extCarta . "|" . $comentarios . "|" . date('Y-m-d') . "|" . $lastId . "|" . "P";

                    //Nos conectamos al WS y le pasamos los datos y la funcion
                    $respuesta = conectarWebService($data, "sendEmailBolsa");
                    if ($respuesta['status'] == 0 && $respuesta['errorDescripcion'] == 'OK') {
                        controlError(true, "Muy pronto nos pondremos en contacto contigo :) ");
                    } else {
                        controlError(false, "Tenemos errores: " . $respuesta['errorDescripcion']);
                    }
                } else {
                    controlError(false, "Se encontraron errores al insertar los datos a nuestro sistema, por favor reporte el problema.");
                }
            } else {
                controlError(false, "No se pudieron recuperar los archivos, parece que pesan más de lo soportado.");
            }
        } else {
            controlError(false, "No hemos podido descubrir que eres un humano, por favor recarga la Página");
        }
    } else {
        controlError(false, "Captcha repetido o invalido, favor de recargar la Página.");
    }
}

function conectarWebService($dataPlain, $function)
{
    //$key = 'SPA861201DK4';
    //$data = encriptarDatos($dataPlain);
    $data = base64_encode($dataPlain);
    //url del webservice
    $wsdl = "https://smart.solerpalau.mx/PR/WS001_ASW.php?wsdl";
    //$wsdl = "http://169.57.64.6/PR/WS001_ASW.php?wsdl";
    //Verificamos si esta disponible
    $headers = @get_headers($wsdl);
    if (preg_match('/^HTTP\/\d\.\d\s+(200|301|302)/', $headers[0])) {
        //instanciando un nuevo objeto cliente para consumir el webservice
        $client = new nusoap_client($wsdl, 'wsdl');

        //pasando los parámetros a un array
        $param = array('datos' => $data);

        //llamando al método y pasándole el array con los parámetros
        $resultado = $client->call($function, $param);

        return $resultado;
    }
}

function controlError($succes, $mensaje)
{
    $response = array('success' => $succes, 'mensaje' => $mensaje);
    echo json_encode($response);
}

// Close connection
mysqli_close($conexion);