File: /home/austral3d/fourdplan.com/webservices4.0dev/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 = [];
$wpId = processWP($xml->workpackage);
if($wpId != 0) {
$result["workpackage_id"] = $wpId;
}
foreach ($xml as $name => $value) {
if($name != "instancias" && $name != "workpackage") {
$result[$name] = $value;
}
}
foreach ($xml->instancias->id as $id) {
$objInstancia->update($db, $id, $result);
}
}
else if($xml->getName() == "real")
{
$fechaEstado = new FechaEstado();
$result["fecha"] = $xml->montaje_inicio_programado;
$result["id_estado"] = $xml->estado;
foreach ($xml->instancias->id as $id) {
$sql_fechas = "
SELECT id
FROM fechaestado
WHERE id_instancia = $id
AND id_estado = '$xml->estado'";
$fechas = fdp_query_all($db, $sql_fechas);
if(sizeof($fechas) == 0)
{
$sql_insert_fecha = "
INSERT INTO fechaestado(id_instancia, id_estado, fecha)
VALUES ($id, '$xml->estado', '$xml->montaje_inicio_programado')";
fdp_query($db, $sql_insert_fecha);
}
else
{
$result["id_instancia"] = $id;
$fechaEstado->update($db, $fechas[0]["id"], ["fecha" => $xml->montaje_inicio_programado]);
}
}
}
else
{
echo ("Error");
}
echo ("ok");
function processWP($wp)
{
global $db;
$sql_id_workpackage = "
SELECT id
FROM workpackage
WHERE nombre = '$wp->nombre'
AND assembly_id = $wp->assembly_id";
$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, assembly_id)
VALUES ('$wp->nombre', $wp->assembly_id)";
$res = fdp_query($db, $sql_insert_wp);
return mysqli_insert_id($db);
}
else {
return $wp->id;
}
}
?>