<?php /** @noinspection SqlNoDataSourceInspection */
/** @noinspection SqlDialectInspection */
// pdf_grafico.php?camara=0&proceso=0&inicio=01/01/2007%201:00&fin=25/12/2007%207:06
//ob_start();
ob_implicit_flush(1);
ini_set('output_buffering',32);
ob_flush();
set_time_limit(15000);
ini_set("max_execution_time", 25000);
$memoria_otorgada = 0;
require_once('startinclude.php');
?>
<style>
    #myProgress {
        width: 100%;
        background-color: #ddd;
    }

    #myBar {
        width: 1%;
        height: 30px;
        background-color: #04AA6D;
    }
</style>
<script>
    function setbar(width,id) {
        var elem = document.getElementById("myBar");
        elem.style.width = width + "%";
        //console.log(width);
        document.getElementById("total").innerHTML=id;
    }
</script>
<?php


echo "Generando informe, espere...<br><br>\n";
echo str_repeat(' ',64000);
echo '<div id="myProgress">
  <div id="myBar"></div>
</div>';
@ob_flush();
@flush();
@ob_flush();
@flush();
$camara = parametro('camara', 0);
$proceso = parametro('proceso', 0);
$inicio = parametro('inicio', "");
$fin = parametro('fin', "");
$boton_tag = parametro('boton_tag', "");
$accion = parametro('accion', "");
include "lib_form.php";
require_once "util_db.php";

$arr=array('tunel','proceso','desde','hasta','especie','operador_inicial','condicion_inicial','operador_final','condicion_final'
    ,'embalaje','comentario','temperatura_max_inicial_pulpa','temperatura_min_final_pulpa',
    'temperatura_max_inicial_ambiente','temperatura_min_final_ambiente','tiempo_total');

$inicio_epoch=mktime("0","0","0","1","1","2005",0);

$sql='select nombre_camara as tunel,
	id_proceso as proceso,
	fecha_inicio as desde,
	fecha_fin as hasta,
	pf_especies.nombre_especie as especie,
	creador_inicial as operador_inicial,
	condicion_inicial as condicion_inicial,
	creador_final as operador_final,
	condicion_final as condicion_final,
	pf_envase.nombre_envase as embalaje,
	\'\' as comentario,
	\'\' as temperatura_max_inicial_pulpa,
	\'\' as temperatura_min_final_pulpa,
	\'\' as temperatura_max_inicial_ambiente,
	\'\' as temperatura_min_final_ambiente,
	0 as tiemo_total
	from pf_proceso
	left join pf_camara on pf_proceso.id_camara=pf_camara.id_camara
	left join pf_especies on pf_proceso.id_especie=pf_especies.id_especie
	left join pf_envase on pf_proceso.id_envase=pf_envase.id_envase';
/** @var resource $resultado */
$resultado='';
$valores=array();
ejecutarsql($sql,&$total_camaras,&$resultado);
for ($i=0;$i<$total_camaras;$i++) {
    foreach($arr as $k) {
        $valores[$i][$k] = mssql_result($resultado, $i, $k);
    }
}
$total_elementos=$total_camaras;
echo "Total procesos: <b id='total'></b> de <b>$total_elementos</b><br>";
$total_elementos20=$total_elementos/20;
// post
$xlsx="<table border='1'><tr>";
foreach($arr as $k) {
    $xlsx.= "<td>".$k."</td>";
}
$xlsx.="</tr>";
foreach($valores as $i2=>$valor) {
    if($i2 % 5 ===0 ) {
        echo "<script>setbar(".(($i2/$total_elementos)*100).",$i2)</script>";
        @ob_flush();
        @flush();
        @ob_flush();
        @flush();
    }



    $dif= $valores[$i2]['hasta']-$valores[$i2]['desde'];
    $dia=floor($dif/1440);
    $hour=floor(($dif-$dia*1440)/60);
    $pre=$dia>1?' dias ':' dia ';
    $dia=($dia==0)?'':$dia.$pre;
    $pre=$hour>1?' horas ':' hora ';
    $hour=($hour==0)?'':$hour.$pre;
    $min=$dif % 60;
    //var_dump($dif);
    $pre=$min>1?' minutos ':' minuto ';
    $min=($min===0)?'':$min.$pre;
    $valores[$i2]['tiempo_total']= $dia.$hour.$min;


    $valores[$i2]['desde']= date('d/m/Y H:i:s',$inicio_epoch+($valores[$i2]['desde']*60));
    $valores[$i2]['hasta']= date('d/m/Y H:i:s',$inicio_epoch+($valores[$i2]['hasta']*60));

    $valores[$i2]['temperatura_max_inicial_pulpa']=obtenerTemp($valores[$i2]['proceso'],'min','max',false);
    $valores[$i2]['temperatura_min_final_pulpa']=obtenerTemp($valores[$i2]['proceso'],'max','min',false);
    $valores[$i2]['temperatura_max_inicial_ambiente']=obtenerTemp($valores[$i2]['proceso'],'min','max',true);
    $valores[$i2]['temperatura_min_final_ambiente']=obtenerTemp($valores[$i2]['proceso'],'max','min',true);


    $xlsx.="<tr>";
    foreach($arr as $k2) {
        $xlsx.= "<td>".$valores[$i2][$k2]."</td>";
    }
    $xlsx.="</tr>";


}
$xlsx.="</table>";
echo "<br><hr>";

//die(1);

function obtenerTemp($idProceso, $aggTime='min', $aggTemp='min', $amb=true) {
    $sql="select {$aggTemp}(valor) as valor from pf_historico_proceso 
	inner join pf_sensorxcamara
		on pf_historico_proceso.sensor=pf_sensorxcamara.LecturaDirModulo
		and pf_historico_proceso.camara=pf_sensorxcamara.id_camara		
	where fecha in (select {$aggTime}(fecha) 
		from pf_historico_proceso where proceso=$idProceso)
	and proceso=$idProceso
	and pf_sensorxcamara.Nombre_modulo ".($amb===true?'like':'not like')." 'Amb%'
	and valor>-20";
    ejecutarsql($sql,&$total_camaras,&$resultado);
    $temp=0;
    if($total_camaras>0) {
        $temp=mssql_result($resultado, 0, 'valor');
    }
    return str_replace('.',',',$temp/10);
}

$xls = "";
//Determine a temporary file name in the current directory
//$file2 = basename(tempnam(getcwd(), 'xls'));
$fechafile = date("j_m_Y_g_i_s");
$file2 = "../xls_encabezado_" . $camara . "_(" . $fechafile . $i . ").xls";
$fp = fopen($file2, 'wb');
fwrite($fp, $xlsx);
fclose($fp);
echo "<br>";
echo "<b>Plantilla Excel :N " . ($i + 1) . "</b> <a href='$file2'>reportes</a>";
@ob_flush();
@flush();
@ob_flush();
@flush();
echo "<br>";
echo $xlsx;
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
@ob_flush();
@flush();
@ob_flush();
@flush();
//JavaScript redirection
?>
