<?
require_once('startinclude.php');

echo "<p align='center'><img src='images/Symbol Warning .gif' /></p><p align='center'><b>Revisando la base de datos </b></p>";		
echo "<br><br>";
echo "<p align='center'><img src='images/switch_icon.jpg' /></p>";		

$cambios=0;

revisar_tabla('pf_proceso');
revisar_tabla('pf_especies');
revisar_tabla('pf_configuracion');
revisar_tabla('pf_menu');
revisar_tabla('pf_usuario');
revisar_tabla('pf_version');
revisar_tabla('pf_calibre');
revisar_tabla('pf_planta');
revisar_tabla('pf_tarja');
revisar_tabla('pf_sensorxcamara');
revisar_tabla('pf_sistemalog');
revisar_tabla('pf_productor');
revisar_tabla('pf_window');
revisar_tabla('PF_HISTORICOULTIMAFECHA');
revisar_tabla('pf_historico');
revisar_tabla('pf_envase');
revisar_tabla('pf_historico_proceso');
revisar_tabla('MOTORESCRITURAS');
revisar_tabla('MOTORLECTURAS');
revisar_tabla('pf_sensorxproceso');
revisar_tabla('MOTORULTIMAFECHA');
revisar_tabla('pf_tarjaxproceso');
revisar_tabla('pf_log_proceso');
revisar_tabla('pf_camara');
revisar_tabla('pf_sensorxcamara_alarma');
// version 11-2009
revisar_tabla( "pf_camara_paquete");
revisar_tabla( "pf_camara_item");
revisar_tabla( "pf_paquete");
revisar_tabla( "pf_paquete_historial");
revisar_tabla( "pf_sensorxcamara_item");
revisar_tabla( "pf_paises");
revisar_tabla( "pf_tipo_envio");
revisar_tabla( "pf_tipo_estado");
// version 11-2010


function usointerno_comparar($tabla) {
	global $conn;
	$sql="select * from $tabla;";
	echo "<br><br>$tabla<br>";
	@$resultado=mssql_query($sql,$conn);
	
	while($fld = mssql_fetch_field($resultado)){
				echo $fld->name."<br>";
	    }


}


function revisar_tabla($tabla) {
	// creamos la tabla...
	global $conn,$cambios;
	$sql="select * from $tabla where 1=2";
	
	try {
		@$resultado=mssql_query($sql,$conn);
	}	catch (Exception $e) {
	}
	if (!$resultado) {
		
		$sql="";
		if ($tabla!="pf_version" and $tabla!="pf_calibre" and $tabla!="pf_configuracion" and $tabla!="pf_sensorxcamara_alarma" 
		and $tabla!="pf_camara_paquete" and $tabla!="pf_camara_item" 
		and $tabla!="pf_paquete" and $tabla!="pf_paquete_historial" and $tabla!="pf_sensorxcamara_item"
		and $tabla!="pf_paises" and $tabla!="pf_tipo_envio" and $tabla!="pf_tipo_estado" ) {
			echo "<li>No puedo solucionar esta tabla :$tabla automaticamente<br></li>";
			exit(2);
		} else {
			include "sql/".$tabla.".php";
			$cambios++;
			echo "<li>Tabla $tabla NO EXISTE pero pudo ser creado<br></li>";
		}
	}
	// revisar campos
	if ($tabla=="pf_proceso") {
		revisar_campo("pf_proceso","fecha_inicio_giro3","int NULL","update pf_sensorxcamara set fecha_inicio_giro3=null;");
		revisar_campo("pf_proceso","fecha_fin_giro3","int NULL","update pf_sensorxcamara set fecha_fin_giro3=null;");
		revisar_campo("pf_proceso","fecha_inicio_giro4","int NULL","update pf_sensorxcamara set fecha_inicio_giro4=null;");
		revisar_campo("pf_proceso","fecha_fin_giro4","int NULL","update pf_sensorxcamara set fecha_fin_giro4=null;");
		revisar_campo("pf_proceso","fecha_inicio_giro5","int NULL","update pf_sensorxcamara set fecha_inicio_giro5=null;");
		revisar_campo("pf_proceso","fecha_fin_giro5","int NULL","update pf_sensorxcamara set fecha_fin_giro5=null;");
	
	}	
	
	if ($tabla=="pf_sensorxcamara") {
		revisar_campo("pf_sensorxcamara","orden","smallint NULL","update pf_sensorxcamara set orden=lecturadirmodulo;");
		revisar_campo("pf_sensorxcamara","POSICION","smallint NULL","update pf_sensorxcamara set posicion=0;");
		revisar_campo("pf_sensorxcamara","tipo_escala","smallint NULL","update pf_sensorxcamara set tipo_escala=0;");
		revisar_campo("pf_sensorxcamara","solo_lectura","smallint NULL","update pf_sensorxcamara set solo_lectura=1;");
		
	}
	if ($tabla=="pf_sensorxproceso") {
		revisar_campo("pf_sensorxproceso","orden","smallint NULL","update pf_sensorxproceso set orden=lecturadirmodulo;");
		revisar_campo("pf_sensorxproceso","tipo_escala","smallint NULL","update pf_sensorxproceso set tipo_escala=0;");
		revisar_campo("pf_sensorxproceso","solo_lectura","smallint NULL","update pf_sensorxproceso set solo_lectura=1;");		
	}
	if ($tabla=="pf_tarja") {
		revisar_campo("pf_tarja","CALIBRE","smallint NULL");
		revisar_campo("pf_tarja","ETIQUETA","varchar(200) NULL");
		revisar_campo("pf_tarja","KG"," decimal(8, 2) NULL");
	}
	if ($tabla=="pf_tarjaxproceso") {
		revisar_campo("pf_tarjaxproceso","con_sensor","smallint NULL");
	}
}

function revisar_campo($tabla,$campo,$tipo,$sql_especial="") {
	global $conn,$cambios;
	
	$sql="select $campo from $tabla";
	@$resultado=mssql_query($sql,$conn);
	if (!$resultado) {
		$cambios++;
		$sql="ALTER TABLE dbo.$tabla ADD $campo $tipo ";
		$resultado=mssql_query($sql,$conn);
		echo "<li>El campo $campo de la tabla $tabla no existe y fue creado </li>";
		if ($sql_especial) {
		
			$resultado=mssql_query($sql_especial,$conn);
		}
		return(false);
	} else {
		return(true);
	}
}

$sql="";
// ACTUALIZAR DATOS+	+	+	+	+	+	+	++	+	+	+	+	+	+	+	+	+	+	

include "sql/procedimientos_sql.php";
if ($cambios==0) {
echo "<br><b>Fin Actualizacion, no se realizaron cambios.</b><br>";
echo "<b>Solo se realizaron cambios en los procedimientos y funciones.</b><br>";
} else {
echo "<br><b>Fin Actualizacion, se realizaron $cambios</b><br>";
echo "<b>Ademas se realizaron cambios en los procedimientos y funciones.</b><br>";
}
echo "<li>&nbsp;&nbsp;&nbsp;<a href='wlimpiar.php?camara=0'>[Presione aqui para terminar]</a></li>";

?>