HEX
Server: Apache
System: Linux iad1-shared-e1-19 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User: austral3d (14892361)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /home/austral3d/fourdplan.com/webservices4.3dev/ActualizarInstancias.php
 <?php
	
require_once("comun/conexion_mysqli.php");
require_once("fdp/FdpNode.php");

$db = fdp_connect();

$objInstancia = new Instancia();
$xml_string = file_get_contents('php://input'); 
$xml = new SimpleXMLElement($xml_string);

if($xml->getName() == "plan")
{
	$result = [];
	$fe_result = [];
	if(isset($xml->workpackage)) {
		$wpId = processWP($xml->workpackage);
		if($wpId != 0) {
			$result["id_workpackage"] = $wpId;
		}
	}
	
	foreach ($xml as $name => $value) {
		if($name != "instancias" && $name != "workpackage" && $name != "id_estado") {
			$result[$name] = $value; 
		}
	}

	$fechaEstado = new FechaEstado();

	foreach ($xml->instancias->id as $id) {
		$objInstancia->update($db, $id, $result);
		if(isset($xml->id_estado)) {
			$fe_result["id_instancia"] = $id;
			$fe_result["id_estado"] = $xml->id_estado;
			$fe_result["fecha"] = $xml->montaje_inicio_programado;

			$sql_fechas = "
				SELECT id
				FROM fecha_estado
				WHERE id_instancia = ".$fe_result['id_instancia']."
				AND id_estado = ".$fe_result['id_estado'];
			$fechas = fdp_query_all($db, $sql_fechas);

			if(!$fechas || sizeof($fechas) == 0)
			{
				$fechaEstado->insert($db, $fe_result);
			}
			else
			{
				$fechaEstado->update($db, $fechas[0]["id"], $fe_result);
			}
		}
	}
}
else if($xml->getName() == "real")
{
	$fechaEstado = new FechaEstado();
	foreach ($xml->instancias->id as $id) {
		$result["id_instancia"] = $id;
		$result["id_estado"] = $xml->id_estado;
		$result["fecha"] = $xml->montaje_inicio_programado;
		$sql_fechas = "
			SELECT id
			FROM fecha_estado
			WHERE id_instancia = ".$result["id_instancia"]."
			AND fecha = ".$result['fecha'];
		$fechas = fdp_query_all($db, $sql_fechas);
		if(!$fechas || sizeof($fechas) == 0)
		{
			$fechaEstado->insert($db, $result);
		}
		else
		{
			$fechaEstado->update($db, $fechas[0]["id"], $result);
		}
	}
}
else
{
	echo ("Error");
}

echo ("ok");

function processWP($wp)
{
	global $db;
	$sql_id_workpackage = "
		SELECT id
		FROM workpackage
		WHERE nombre = '$wp->nombre'
		AND id_assembly = $wp->id_assembly";
	$wps = fdp_query_all($db, $sql_id_workpackage);
	
	if ($wp->nombre == "")
		return 0;
	
	else if (!$wps || sizeof($wps) == 0)
	{
		$sql_insert_wp = "
			INSERT INTO workpackage(nombre, id_assembly)
			VALUES ('$wp->nombre', $wp->id_assembly)";
		$res = fdp_query($db, $sql_insert_wp);
		return mysqli_insert_id($db);
	}
	else {
		return $wp->id;
	}
}

?>