<?
/*
Versión: 1.0.0.0
*/
require("../../conexion/conectar.php");
require("../../libs/funciones.php");

try{
	$conexion = new CONDB();
	$conexion->conectar();

	$xml = simplexml_load_string(file_get_contents("generaReporteCSV.xml"));
	$almacen = $xml->Almacen;
	$nombreArchivo = $xml->NombreArchivo;
	debug("Ejecutando consulta ".$xml->Query,$xml->Debug);
	if(!$result = mysqli_query($conexion->CONEXION,$xml->Query)){
		writeLog(mysqli_error($conexion->CONEXION));
		echo mysqli_error($conexion->CONEXION);exit;
	}
	debug("Consulta ejecutada",$xml->Debug);
	
	if(mysqli_num_rows($result) <= 0){
		writeLog("Nada para generar");
		debug("Nada para generar",$xml->Debug);
		exit;
	}
	
	$arrCampos = explode(",",$xml->CamposOrden);

	$body="";
	debug("Generando encabezado",$xml->Debug);
	for($i = 0; $i < count($arrCampos); $i++){
		$codigo = '$atributos = $xml->CampoConfig->'.trim($arrCampos[$i]).'->attributes();';
		eval($codigo);
		$body.=$atributos['titulo']."|";
	}
	debug("Encabezado generado",$xml->Debug);

	debug("Iterando consulta",$xml->Debug);
	while($tmp = mysqli_fetch_assoc($result)){
		$body.="\r\n";
		for($i = 0; $i < count($arrCampos); $i++){
			$body.=$tmp[$arrCampos[$i]]."|";
		}
		debug("Actualizando status uuid ".$tmp["UUID"],$xml->Debug);
		ActualizaStatus($tmp["UUID"]);
		debug("Status actualizado para uuid ".$tmp["UUID"],$xml->Debug);
	}

	$dateFull = date("YmdHis");
	$datesimple = date("Ymd");

	if(!is_dir($almacen)){
		mkdir($almacen,775);
	}
	debug("Generando CSV",$xml->Debug);
	
	$arrLbl = array(";;FECHAFULL;;",";;FECHA;;");
	$arrVal = array($dateFull,$datesimple);
	
	$nombreArchivo = str_replace($arrLbl,$arrVal,$nombreArchivo);
	$fp = fopen($almacen."/$nombreArchivo.csv","a+");
	fwrite($fp,$body);
	fclose($fp);
	debug("CSV generado ".$almacen."/$nombreArchivo.csv",$xml->Debug);

}catch(Exception $e){
	writeLog($e->getMessage);
}

function ActualizaStatus($uuid){
	global $conexion;
	$qU = "update recibedoce set reporte_pagada_generado='1' where uuid='$uuid'";
	if(!mysqli_query($conexion->CONEXION,$qU)){
		writeLog(mysqli_error($conexion->CONEXION));
		echo mysqli_error($conexion->CONEXION);exit;
	}
}
function writeLog($mensaje){
	$date = date("Ymd");
	$dateFull = date("Y-m-d H:i:s");
	if(!is_dir("log")){
		mkdir("log",775);
	}
	$fp = fopen("log/generaReporteCSV_$date.log","a+");
	fwrite($fp,$dateFull." -> ".$mensaje."\r\n");
	fclose($fp);
}
function debug($mensaje,$ban){
	if($ban=="1"){
		$date = date("Ymd");
		$dateFull = date("Y-m-d H:i:s");
		if(!is_dir("log")){
			mkdir("log",775);
		}
		$fp = fopen("log/generaReporteCSV_$date.debug","a+");
		fwrite($fp,$dateFull." -> ".$mensaje."\r\n");
		fclose($fp);
	}
}
?>
