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;
}
}
?>