<?php
include_once("connect.php");
include_once("funciones.php");

$op = isset($_REQUEST['op']) ? $_REQUEST['op'] : '';
$id = isset($_REQUEST['id']) ? "'".$_REQUEST['id']."'" : '0';
$act_tipo = isset($_POST['act_tipo']) ? $_POST['act_tipo'] : '0';
    
switch($op)
{
	case 'load':
		$query = "SELECT P.*, PorcentAvancePresup, PorcentAvanceReal, CostoPresup, CostoReal FROM proyectos P LEFT JOIN progreso R ON P.IdProyecto = R.IdProyecto WHERE P.IdPrograma = $id";
		$res = mysql_query($query);

		xmlDoc();
		print '<rows>'."\n";
		if(mysql_num_rows($res))
		{
			while ($row=mysql_fetch_array($res)){
			
				$fechafin = muestraFecha($row['FechaFinalPresup']);
				$fechaini = muestraFecha($row['FechaInicioPresup']);
				$fechainireal = muestraFecha($row['FechaInicioReal']);
	
				print '<row id="'.$row['IdProyecto'].'">'."\n";
				print     '<cell>'.muestraStr($row['Nombre']).'</cell>'."\n".
						  '<cell>'.muestraVal($row['CostoTotal']).'</cell>'."\n".
						  '<cell>'.$fechaini.'</cell>'."\n".
						  '<cell>'.$fechafin.'</cell>'."\n".
						  '<cell>'.$fechainireal.'</cell>'."\n".
						  '<cell>'.muestraVal($row['PorcentAvancePresup']).'</cell>'."\n".
						  '<cell>'.muestraVal($row['CostoPresup']).'</cell>'."\n".
						  '<cell>'.muestraVal($row['PorcentAvanceReal']).'</cell>'."\n".
						  '<cell>'.muestraVal($row['CostoReal']).'</cell>'."\n";
				print '</row>'."\n";
			}
		}
		print '</rows>';
		break;

	case 'base':
		$query = "SELECT * FROM baseline WHERE IdProyecto = $id";
		$res = mysql_query($query);

		xmlDoc();
		print '<rows>'."\n";
		if(mysql_num_rows($res))
		{
			while ($row=mysql_fetch_array($res)){
			
				print '	<row id="'.$row['Mes'].'">'."\n".
							'<cell>'.$row['Mes'].'</cell>'."\n".
							'<cell>'.$row['AvancePresup'].'</cell>'."\n".
							'<cell>'.muestraVal($row['CostoPresup']).'</cell>'."\n".
							'<cell>'.$row['AvanceReal'].'</cell>'."\n".
							'<cell>'.muestraVal($row['CostoReal']).'</cell>'."\n".
						'</row>'."\n";
			}
		}
		print '</rows>';
		break;

	case "delete":
		mysql_query("START TRANSACTION");
		$query = "DELETE FROM proyectos WHERE IdProyecto = $id";
		$query2 = "DELETE FROM progreso WHERE IdProyecto = $id";
		$query3 = "DELETE FROM baseline WHERE IdProyecto = $id";
       	if(mysql_query($query) && mysql_query($query2) && mysql_query($query3))
		{
			mysql_query("COMMIT");
			print("Proyecto eliminado correctamente");
		}
		else
		{
			mysql_query("ROLLBACK");
			die("Error al eliminar proyecto");
		}
		break;
		
	case 'get':
		$query = "SELECT * FROM proyectos WHERE IdProyecto = $id";
		$res = mysql_query($query);

		xmlDoc();
		print '<data>'."\n";
		if(mysql_num_rows($res))
		{
			$row=mysql_fetch_array($res);
			
			print '<nombre>'.muestraStr($row['Nombre']).'</nombre>'."\n".
				  '<costo>'.muestraVal($row['CostoTotal']).'</costo>'."\n".
				  '<inicio>'.muestraFecha($row['FechaInicioPresup']).'</inicio>'."\n".
				  '<inicio_ro>'.muestraFecha($row['FechaInicioPresup']).'</inicio_ro>'."\n".
				  '<final>'.muestraFecha($row['FechaFinalPresup']).'</final>'."\n".
				  '<final_ro>'.muestraFecha($row['FechaFinalPresup']).'</final_ro>'."\n".
				  '<cambios>'.$row['CambiosBL'].'</cambios>'."\n";
		}
		print '</data>';
		break;
		
	case "ini":
		$fecha = "'".date('Y-m-d')."'";
		$query = "UPDATE proyectos SET FechaInicioReal = $fecha WHERE IdProyecto = $id";
		if(mysql_query($query))
			print("Proyecto Iniciado correctamente");
		else
			die("Error al Iniciar proyecto");
		break;

	case 'update':
		$fecha = "'".date('Y-m-d')."'";
		$costototal = limpiaVal($_POST['costo']); 
		$fechaini = limpiaFecha($_POST['inicio_ro']);
		$fechafin = limpiaFecha($_POST['final_ro']);

		mysql_query("START TRANSACTION");

		$correcto = true;
		$baseline = $_POST['baseline'];
		$filas = explode("@@||",$baseline);

		$avancepresup = 0; 
		$costopresup = 0; 
		$avancereal = 0; 
		$costoreal = 0; 

		for($i=0;$i<count($filas);$i++)
		{
			$columnas = explode("@@",$filas[$i]);
			if($columnas[0])
			{
				$mes = "'".$columnas[0]."'";
				$avprev = $columnas[1];
				$valprev = limpiaVal($columnas[2]);
				$avreal = $columnas[3] ? $columnas[3] : 'NULL';
				$valreal = $columnas[4] ? limpiaVal($columnas[4]) : 'NULL';
				
				$query = "UPDATE baseline SET AvanceReal = $avreal, CostoReal = $valreal WHERE Mes = $mes AND IdProyecto = $id";
				if(!mysql_query($query))
				{
					$correcto = false;
				}
				
				if($columnas[3])
				{
					$avancepresup += $avprev; 
					$costopresup += $valprev; 
					$avancereal += $avreal; 
					$costoreal += $valreal; 
				}
			}
		}

		//Earned Value
		$EV = $costototal * $avancereal / 100;
		
		//Variacion Costo
		$variacosto = $EV - $costoreal;
		if($EV > 0)
			$pctcosto = $variacosto / $EV * 100;
		else
			$pctcosto = 0;
			 
		//Variacion Plan
		$variaplan = $EV - ($costototal * $avancepresup / 100);
		$date1 = explode("-",str_replace("'","",$fechafin));
		$date2 = explode("-",str_replace("'","",$fechaini));
		$date1 = mktime(0,0,0,$date1[1],$date1[0],$date1[2]);
		$date2 = mktime(0,0,0,$date2[1],$date2[0],$date2[2]);
		$dateDiff = $date1 - $date2;
		$fullDays = floor($dateDiff/(60*60*24));
		if($fullDays>0)
			$ratio = $costototal / $fullDays;
		else
			$ratio = 0;
		
		if($ratio>0)	
			$variaplandias = floor($variaplan / $ratio); 
		else
			$variaplandias = 0; 
				
		if($avancereal == 100)
			$fechafinreal = $fecha;
		else
			$fechafinreal = 'NULL';

		$RS = mysql_query("SELECT * FROM progreso WHERE IdProyecto = $id");
		if(mysql_num_rows($RS))
			$query = "UPDATE progreso SET PorcentAvancePresup = $avancepresup, PorcentAvanceReal = $avancereal, CostoPresup = $costopresup, CostoReal = $costoreal, Fecha = $fecha WHERE IdProyecto = $id";
		else
			$query = "INSERT INTO progreso (IdProyecto, VariacionCosto, VariacionPlan, VariacionPlanDias, PorcentAvancePresup, PorcentAvanceReal, CostoPresup, CostoReal, Fecha) VALUES ($id, $variacosto, $variaplan, $variaplandias, $avancepresup, $avancereal, $costopresup, $costoreal, $fecha)";
		
		if(!mysql_query($query))
			$correcto = false;


		if($correcto)
		{
			mysql_query("COMMIT");
			print("Proyecto actualizado correctamente");
		}
		else
		{
			mysql_query("ROLLBACK");
			print("Error al actualizar proyecto");
		}
		break;

	case 'proy':
		$programa = $_POST['programa'];
		$nombre = "'".utf8_decode($_POST['nombre'])."'";
		$costo = limpiaVal($_POST['costo']); 
		$fechaini = limpiaFecha($_POST['inicio']);
		$fechafin = limpiaFecha($_POST['final']);

		$correcto = false;
		mysql_query("START TRANSACTION");

		if($act_tipo==1)
			$query = "INSERT INTO proyectos (IdPrograma, Nombre, CostoTotal, FechaInicioPresup, FechaFinalPresup) VALUES ($programa, $nombre, $costo, $fechaini, $fechafin)";
		else
		{
			$proyId = $id;
			mysql_query("DELETE FROM baseline WHERE IdProyecto = $id");
			$query = "UPDATE proyectos SET CostoTotal = $costo, CambiosBL = CambiosBL + 1 WHERE IdProyecto = $id";
		}
		if(mysql_query($query))
		{
			if(!$proyId)
			$proyId = mysql_insert_id();
			
			$values = '';
			$baseline = $_POST['baseline'];
			$filas = explode("@@||",$baseline);
			for($i=0;$i<count($filas);$i++)
			{
				$columnas = explode("@@",$filas[$i]);
				if($columnas[0])
				{
					$mes = "'".$columnas[0]."'";
					$avance = $columnas[1];
					$valor = limpiaVal($columnas[2]);
					
					$values .= (empty($values) ? '' : ',') . "($mes,$avance,$valor,$proyId)";
				}
			}
			$query = "INSERT INTO baseline(Mes, AvancePresup, CostoPresup, IdProyecto) VALUES $values";
			if(mysql_query($query))
			{
				$correcto = true;
			}
		}	

		if($correcto)
		{
			mysql_query("COMMIT");
			print("Proyecto almacenado correctamente");
		}
		else
		{
			mysql_query("ROLLBACK");
			die("Error al almacenar proyecto");
		}
		break;
}
mysql_close();
?>