<?php
	// include('../../../php/conn_2.php');
	include('/var/www/html/centralparking/php/conn_2.php');

	mysqli_query($enlace, "SET NAMES 'utf8', character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
	mysqli_query($enlacehost, "SET NAMES 'utf8', character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");

	// Datos
		$cod_cliente = 20;
		$cod_encuesta = '627466';

		$indicador = 'IND_202';
		$indicador_total = 'IND_207';
		$nom_tabla = 'lime_survey_'.$cod_encuesta;
		$new_table = 'tb_resultados_'.$cod_encuesta;
		$tabla_tokens = 'lime_tokens_'.$cod_encuesta;
		$new_table_extras = 'tb_resultados_'.$cod_encuesta."_extras";

		$anho = date('Y');
		
		$mes1 = date('m');
		$mes2 = $mes1 - 1;
		$mes = (($mes1 == 1) ? ' = '.$mes1 : 'IN ('.$mes1.', '.$mes2.')');

	// // Si la tabla de resultados existe, se debe validar si hay campos nuevos
 //    // en la tabla de origen y de ser así los debe agregar
 //      $query_mad = "SHOW COLUMNS FROM ".$nom_tabla;

 //      if ($res_mad = mysqli_query($enlacehost, $query_mad)){
 //        while($row_mad = mysqli_fetch_array($res_mad)){
 //          $query_mad2 = "SHOW COLUMNS FROM ".$new_table." WHERE field = '".$row_mad["Field"]."'";

 //          if ($res_mad2 = mysqli_query($enlace, $query_mad2)){
 //            if (mysqli_fetch_array($res_mad2) == 0){
 //              $new_campo2 = "ALTER TABLE ".$new_table." ADD ".$row_mad["Field"]." ".$row_mad["Type"]." NULL";

 //              if ($res_mad3 = mysqli_query($enlace, $new_campo2)){
 //              }
 //            }
 //          }
 //        }
 //      }

	// Obtiene Año y Mes activos para procesar los cálculos de cada Indicador
		$query_anhomes = "SELECT cod_anho, cod_mes FROM tbconfig_periodosencuestas WHERE cod_cliente = ".$cod_cliente." AND cod_encuesta = ".$cod_encuesta." AND cod_anho = ".$anho." AND cod_mes ".$mes." AND estado = 'A' ORDER BY cod_anho DESC, cod_mes DESC";

		if ($res_anhomes = mysqli_query($enlace, $query_anhomes)){
			while($row_anhomes = mysqli_fetch_array($res_anhomes)){
				$anho = $row_anhomes["cod_anho"];
				$mes = $row_anhomes["cod_mes"];

				// Elimina los registros de la tabla correspondientes al periodo seleccionado
					$query_del = "DELETE FROM ".$new_table." WHERE cod_anho = ".$anho." AND cod_mes = ".$mes;

					if ($res_del = mysqli_query($enlace, $query_del)) {
					}

				// Recupera las fechas de Inicio y Fin para cada periodo
					$query_periodo = "SELECT fecha_inicio, fecha_fin FROM tbconfig_periodosencuestas WHERE cod_cliente = ".$cod_cliente." AND cod_encuesta = ".$cod_encuesta." AND cod_anho = ".$anho." AND cod_mes = ".$mes;

					if ($res_periodo = mysqli_query($enlace, $query_periodo)){
						while($row_periodo = mysqli_fetch_array($res_periodo)){
							$fecha_inicio = $row_periodo["fecha_inicio"];
							$fecha_fin = $row_periodo["fecha_fin"];
						}
					}

				// Recupera los datos de la tabla de origen y los inserta en la tabla nueva
			      $query = "SELECT *, ".$anho." AS cod_anho, ".$mes." AS cod_mes FROM ".$nom_tabla." WHERE submitdate IS NOT NULL AND DATE(submitdate) BETWEEN '".$fecha_inicio."' AND '".$fecha_fin."' ORDER BY submitdate";

			      if ($res = mysqli_query($enlacehost, $query)) {
			        if (mysqli_num_rows($res) > 0) {
			          while($row_datos = mysqli_fetch_assoc($res)) {
			            // Recupera los campos de la tabla de origen y arma el Insert
			              $query = "SHOW COLUMNS FROM ".$nom_tabla;

			              if ($res_campos = mysqli_query($enlacehost, $query)) {
			                if (mysqli_num_rows($res_campos) > 0) {
			                  // Arma la consulta para insertar
			                    $query = "INSERT INTO ".$new_table. " (";

			                    while($row_campos = mysqli_fetch_assoc($res_campos)) {
			                      $campo = $row_campos["Field"];

			                      $query .= "`".$campo."`, ";
			                    }

			                    $query = substr($query, 0, -2).", cod_anho, cod_mes) VALUES (";
			                }
			              }

			            // Recupera los campos de la tabla de origen para devolver los valores
			              $query2 = "SHOW COLUMNS FROM ".$nom_tabla;

			              if ($res_campos2 = mysqli_query($enlacehost, $query2)) {
			                if (mysqli_num_rows($res_campos2) > 0) {
			                  // Devuleve los valores
			                    while($row_campos2 = mysqli_fetch_assoc($res_campos2)) {
			                      $campo = $row_campos2["Field"];

			                      // if (mb_substr_count($campo, 'X') == 2){
			                      //   $query .= "'".str_replace(2, 0, $row_datos[$campo])."', ";
			                      // }
			                      // else{
			                        $query .= "'".$row_datos[$campo]."', ";
			                      // }
			                    }

			                    $query = substr($query, 0, -2).", ".$anho.", ".$mes.")";
			                }
			              }

			            // Inserta los datos
			              if ($res_insert = mysqli_query($enlace, $query)) {
			              }
			              else{
			              }
			          }
			        }
			      }

		      	// Calcula el resultado de todos los indicadores
			      $query = "SHOW COLUMNS FROM ".$new_table." WHERE field LIKE 'IND_%'";

			      if ($res_i = mysqli_query($enlace, $query)) {
			        if (mysqli_num_rows($res_i) > 0) {
			          while($row_i = mysqli_fetch_assoc($res_i)) {
			            $upd_indicador = $row_i["Field"];
			            $cod_indicador = substr($upd_indicador, strpos($upd_indicador, '_') + 1);

			            // Obteniendo la fórmula
			              $query = "SELECT formula_indicador FROM tb_Indicadores_Formulas WHERE cod_anho = ".$anho." AND cod_mes = ".$mes." AND cod_indicador = ".$cod_indicador;

			              if ($res_f = mysqli_query($enlace, $query)) {
			                if (mysqli_num_rows($res_f) > 0) {
			                  while($row_f = mysqli_fetch_assoc($res_f)) {
			                    $formula = $row_f["formula_indicador"];
			                    $formula = str_replace(' ', '', $formula);

			                    if (strpos($formula, 'CASE') >= 0){
			                      $formula = str_replace('CASE', ' CASE ', $formula);
			                    }

			                    if (strpos($formula, 'WHEN') >= 0){
			                      $formula = str_replace('WHEN', ' WHEN ', $formula);
			                    }

			                    if (strpos($formula, 'THEN') >= 0){
			                      $formula = str_replace('THEN', ' THEN ', $formula);
			                    }

			                    if (strpos($formula, 'ELSE') >= 0){
			                      $formula = str_replace('ELSE', ' ELSE ', $formula);
			                    }

			                    if (strpos($formula, 'END') >= 0){
			                      $formula = str_replace('END', ' END ', $formula);
			                    }
			                  }
			                }
			              }

			            // Actualiza las fórmula por cada indicador
			              $query = "UPDATE ".$new_table." SET ";
			              $query .= $upd_indicador." = ".$formula." ";
			              $query .= "WHERE cod_anho = ".$anho." ";
			              $query .= " AND cod_mes = ".$mes;

			              if ($res_x = mysqli_query($enlace, $query)) {
			              }
			              else{
			                $estado = 0;
			              }
			          }
			        }
			      }
			}
		}

	// Actualiza los valores de los campos extra
      // Obtiene el campo Join
    	$query_join = "SELECT campo_join from tb_preguntas_extrasjoin WHERE cod_cliente = ".$cod_cliente." AND cod_encuesta = ".$cod_encuesta;

        if ($res_join = mysqli_query($enlace, $query_join)){
          while($row_join = mysqli_fetch_array($res_join)){
            $campo_join = $row_join["campo_join"];
          }
        }

      // Valida la existencia de los campos extras y los agrega
        $campos_upd = '';

        $query_x = "SELECT nombre_campo, titulo_campo FROM tb_preguntas_extras WHERE cod_cliente = ".$cod_cliente." AND cod_encuesta = ".$cod_encuesta;

      	if ($res_campos_x = mysqli_query($enlace, $query_x)) {
            if (mysqli_num_rows($res_campos_x) > 0) {
              while($row_campos_x = mysqli_fetch_assoc($res_campos_x)) {
                $query_y = "SHOW COLUMNS FROM ".$new_table." WHERE field = '".$row_campos_x["nombre_campo"]."'";

                if ($res_y = mysqli_query($enlace, $query_y)){
                  if (mysqli_fetch_array($res_y) == 0){
                    $new_campo_y = "ALTER TABLE ".$new_table." ADD ".$row_campos_x["nombre_campo"]." VARCHAR(500) NULL";

                    if ($res = mysqli_query($enlace, $new_campo_y)){
                    }
                  }
                }

                // Arma los campos para actualizar los datos en grupo
                	$campos_upd .= $row_campos_x["nombre_campo"].",";
              }
            }
      	}

     	$campos_upd = substr($campos_upd, 0, -1);
      	$arr_campos = explode (",", $campos_upd);

      	// Recupera los datos extras a actualizar
      		$query_ex = "SELECT campo_join, ".$campos_upd." FROM ".$new_table_extras;

      		if ($res_campos_ex = mysqli_query($enlace, $query_ex)) {
	            if (mysqli_num_rows($res_campos_ex) > 0) {
	            	while($row_campos_ex = mysqli_fetch_assoc($res_campos_ex)) {
	            		// Arma el query para actualizar los datos en grupo
	            			$query_campos_upd = '';

				         	foreach ($arr_campos as $campo_upd) {
				         		$query_campos_upd .= $campo_upd." = '".$row_campos_ex[$campo_upd]."', ";
							}

							$query_campos_upd = substr($query_campos_upd, 0, -2);

							$query_update = "UPDATE ".$new_table." SET ".$query_campos_upd." WHERE ".$campo_join." = "."'".$row_campos_ex["campo_join"]."'";

							if ($res_update = mysqli_query($enlace, $query_update)){
                      		}
					}
				}
	      	}

	// Inicio el proceso de envío de correos
		// 1. Obtiene los Id's de las encuestas que ya fueron enviadas
	      $query_in = 'SELECT id FROM tb_Alertas_EnviadasOk WHERE cod_cliente = '.$cod_cliente.' AND cod_encuesta = '.$cod_encuesta;

	      if ($res_in = mysqli_query($enlace, $query_in)){
	        while($row_in = mysqli_fetch_array($res_in)){
	          $not_in .= "'".$row_in["id"]."', ";
	        }

	        $not_in = substr($not_in, 0, -2);
	      }

	      if (strlen($not_in) == 0)
	      {
	        $not_in = "''";
	      }

      	// 2. Recupera el resultado de cada evaluación
	      $query_res = 'SELECT Id, 627466X31X266, 627466X31X267, '.$indicador_total.' AS RESULTADO, proyecto, nombre_administrador, correo_administrador, nombre_jefearea, correo_jefearea, submitdate, token FROM '.$new_table.' WHERE id NOT IN('.$not_in.')';

	      if ($res_res = mysqli_query($enlace, $query_res)){
	        while($row_res = mysqli_fetch_array($res_res)){
				$id = $row_res["Id"];
				$token = $row_res["token"];
				$encuestado = $row_res["627466X31X266"];
				$dni = round($row_res["627466X31X267"], 0);
				$nota_final = $row_res["RESULTADO"] * 100;

				// Preparando el nombre del Proyecto
					$proyecto = $row_res["proyecto"];
					// $proyecto = str_replace('á', 'a', $row_res["proyecto"]);
					// $proyecto = str_replace('é', 'e', $proyecto);
					// $proyecto = str_replace('í', 'i', $proyecto);
					// $proyecto = str_replace('ó', 'o', $proyecto);
					// $proyecto = str_replace('ú', 'u', $proyecto);
					// $proyecto = str_replace('ñ', 'n', $proyecto);
				
				// Preparando el nombre del Administrador
					$nombre_administrador = $row_res["nombre_administrador"];
					// $nombre_administrador = str_replace('á', 'a', $row_res["nombre_administrador"]);
					// $nombre_administrador = str_replace('é', 'e', $nombre_administrador);
					// $nombre_administrador = str_replace('í', 'i', $nombre_administrador);
					// $nombre_administrador = str_replace('ó', 'o', $nombre_administrador);
					// $nombre_administrador = str_replace('ú', 'u', $nombre_administrador);
					// $nombre_administrador = str_replace('ñ', 'n', $nombre_administrador);

				$correo_administrador = $row_res["correo_administrador"];
				$nombre_jefearea = $row_res["nombre_jefearea"];
				$correo_jefearea = $row_res["correo_jefearea"];

				$submitdate = date('d/m/Y H:i:s', strtotime($row_res["submitdate"]));

				// Se obtienen datos del encuestador
					// Obtiene el Id del token
					$idtoken = '';

					$query_idtoken = "SELECT tid FROM ".$tabla_tokens." WHERE token = '".$token."'";

					if ($res_idtoken = mysqli_query($enlacehost, $query_idtoken)){
						while($row_idtoken = mysqli_fetch_array($res_idtoken)){
							$idtoken = $row_idtoken["tid"];
						}
					}

				    // Obtiene nombre y correo del encuestador
				    $query_encuestador = "SELECT CONCAT(tb_usuario.nom_persona, ' ', tb_usuario.ape_persona) AS NOM_ENCUESTADOR, cor_persona AS MAIL_ENCUESTADOR FROM tb_usuario_survey INNER JOIN tb_usuario ON tb_usuario_survey.cod_usuario = tb_usuario.cod_usuario WHERE cod_survey = ".$cod_encuesta." AND cod_token = ".$idtoken;

				    if ($res_encuestador = mysqli_query($enlace, $query_encuestador)){
						while($row_encuestador = mysqli_fetch_array($res_encuestador)){
							$nom_encuestador = $row_encuestador["NOM_ENCUESTADOR"];
							$mail_encuestador = $row_encuestador["MAIL_ENCUESTADOR"];
						}
					}

					// Preparando el nombre del Encuestador
						// $nom_encuestador = str_replace('á', 'a', $nom_encuestador);
						// $nom_encuestador = str_replace('é', 'e', $nom_encuestador);
						// $nom_encuestador = str_replace('í', 'i', $nom_encuestador);
						// $nom_encuestador = str_replace('ó', 'o', $nom_encuestador);
						// $nom_encuestador = str_replace('ú', 'u', $nom_encuestador);
						// $nom_encuestador = str_replace('ñ', 'n', $nom_encuestador);

				// Armando la estructura del correo
					$subject = 'Resultado: Evaluación de Desempeño';

					$body = "Estimado <b>Equipo.</b>";
					$body .= "<br/><br/>La encuesta de evaluación de desempeño de: <b>".'"'.$encuestado.'"'."</b>, con DNI: <b>".$dni."</b>, ha sido completada con éxito.";
					$body .= "<br/>La nota final de la evaluacion es: <b>".$nota_final."</b>, se adjunta el formato para su registro.";
					$body .= '<br/><br/><a href="http://185.144.156.181/centralparking/panel/usuario/send_to_excel/evaluaciondesempeno.php?id='.$token.'&encuestador='.str_replace(' ', '_', $nom_encuestador).'"><< Clic aquí para descargar de formato...>></a>';
					$body .= "<br/><br/><br/>Atentamente,";
					$body .= "<br/><b>CENTRAL PARKING</b>";
					$body .= "<br/><br/>Fecha y hora de la encuesta: ".$submitdate;

				// // Cabecera que especifica que es un HMTL
					$header  = 'MIME-Version: 1.0' . "\r\n";
					$header .= 'X-Mailer: PHP/'. phpversion() . " \r\n"; 
					// $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
					// $header .= 'From: dba@centralparking.com.pe' . " \r\n"; 
					$header .= 'Content-Type: text/html; charset=UTF-8';

				// // Cabeceras adicionales
				// 	$cabeceras .= 'From: Maxito<newsistemaxs@hotmail.com>' . "\r\n";
				// 	$cabeceras .= 'Cc: Maxito<newsistemaxs@hotmail.com>' . "\r\n";
				// 	$cabeceras .= 'Bcc: Maxito<newsistemaxs@hotmail.com>' . "\r\n";

				// Enviando el correo y guardando el Id de las encuestas enviadas
					$to = "Ernesto Fernandez<efernandez@parking.com.pe>,".$nombre_administrador."<".$correo_administrador.">,".$nom_encuestador."<".$mail_encuestador.">,Carla Cusirramos<ccusirramos@parking.com.pe>,Max Burga<newsistemaxs@hotmail.com>";

					// $to = "Max Burga<newsistemaxs@hotmail.com>,Max<max.burga@madisonmk.pe>";

					if (strlen($proyecto) > 0){
						if (mail($to, $subject, $body, $header)){
							// Guarda los Id's en la tabla de alertas enviadas OK
								$query_s = "INSERT INTO tb_Alertas_EnviadasOk(cod_cliente, cod_encuesta, id) VALUES(";
								$query_s .= $cod_cliente.',';
								$query_s .= $cod_encuesta.',';
								$query_s .= $id.')';

								// Grabando datos
								if ($res_s = mysqli_query($enlace, $query_s)) {
								}
						}
						else{
// echo 'Error en envío';
							// echo 'error al enviar alerta';
						}
					}
	        }
	      }

  cerrarSesion($enlace);
  cerrarSesion($enlacehost);
?>
