src.dualinventive.com/mtinfo/dist/webroot/support/sync_sc.php

195 lines
11 KiB
PHP

<?php
// Required pages
require_once("../include/utilities.php");
require_once("../include/db.php");
require_once("../include/session.php");
require_once("../include/secure_server.php");
// Increase excution time
ini_set("max_execution_time","240");
// CLI used?
if( isset($argc) && $argc > 1 ) {
// called from the command-line
parse_str($argv[1], $_GET);
}
// Turn on output buffering
ob_start();
// Return all released project
//db_store_data("update project set sstatus='niet vrijgegeven'");
// Initial values
$index = 0;
//// Get all available projects (parents)
//if (!isset($_GET['project'])) {
// $projects = db_fetch_data("select * from project where parent is null");
//}
//else {
// $projects = db_fetch_data("select * from project where parent is null and id=" . $_GET['project'] . "");
//}
if ((isset($_GET['project'])) || (isset($_GET['project_name'])) || (isset($_GET['customer'])) || (isset($_GET['customer_name']))) {
if (isset($_GET['project'])) {
// Get project info
$projects = db_fetch_data("select * from project where parent is null and id=" . (int)$_GET['project'] . "");
}
else if (isset($_GET['project_name'])) {
// Get project info
$projects = db_fetch_data("select * from project where parent is null and naam='" . mysql_real_escape_string($_GET['project_name']) . "'");
}
else if (isset($_GET['customer'])) {
// Get project info
$projects = db_fetch_data("select * from project where parent is null and klant='" . mysql_real_escape_string($_GET['customer']) . "'");
}
else if (isset($_GET['customer_name'])) {
// Get customer
$customer = db_fetch_data("select * from klant where klantnaam='" . mysql_real_escape_string($_GET['customer_name']) . "'");
if (is_array($customer)) {
// Get project info
$projects = db_fetch_data("select * from project where parent is null and klant='" . $customer[0]['id'] . "'");
}
}
if (is_array($projects)) {
foreach($projects as $project) {
// Create "project" array
$items = array($project);
if ($project['sstatus'] != "vrijgegeven") {
// Collect all periods
$periods = db_fetch_project_periods($project['id']);
if (is_array($periods)) {
foreach($periods as $period) {
array_push($items, $period);
}
}
// Update periods (to be sure the status are in sync with the project!)
if (is_array($items)) {
foreach($items as $item) {
if (($item['pstatus'] != $project['pstatus']) || ($item['ostatus'] != $project['ostatus'])) {
db_store_data("UPDATE project SET pstatus='" . $project['pstatus'] . "', ostatus='" . $project['ostatus'] . "' where id=" . $item['id']);
}
}
}
if (is_array($items)) {
foreach($items as $item) {
// Create original item
$org_item = $item;
// Initial pstatus/ostatus values
$org_item['pstatus'] = "concept";
$org_item['ostatus'] = "concept";
// Parse step by step to the secure server
if (is_null($item['parent'])) {
echo "<br><br><b>" . ++$index . ") Project name: " . $item['naam'] . " (database id: " . $item['id'] . ")</b>";
}
else {
echo "<br><br><b>- period name: " . $item['naam'] . " (database id: " . $item['id'] . ")</b>";
}
// Delete complete instruction
echo "<br> - Delete phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, "", "verwijderen")) ? "Does not exists" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
// Store concept (Always needed)
echo "<br> - Concept phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, "", "", "", "", "", array("sstatus" => "niet vrijgegeven",
"pstatus" => "concept",
"ostatus" => "concept",
"status" => ""))) ? "ERROR" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
// Store planning ready
$org_item['pstatus'] = "concept";
if (in_array($item['pstatus'], array("gereed", "geverifieerd", "gevalideerd"))) {
echo "<br> - Planning ready phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, array("general" => $org_item), "", "", "", "", array("sstatus" => "niet vrijgegeven",
"pstatus" => "gereed",
"ostatus" => "concept"))) ? "ERROR" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
$org_item['pstatus'] = "gereed";
}
// Store planning verified
if (in_array($item['pstatus'], array("geverifieerd", "gevalideerd"))) {
echo "<br> - Planning verified phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, array("general" => $org_item), "", "", "", "", array("sstatus" => "niet vrijgegeven",
"pstatus" => "geverifieerd",
"ostatus" => "concept"))) ? "ERROR" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
$org_item['pstatus'] = "geverifieerd";
}
// Store planning validated
if (in_array($item['pstatus'], array("gevalideerd"))) {
echo "<br> - Planning validated phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, array("general" => $org_item), "", "", "", "", array("sstatus" => "niet vrijgegeven",
"pstatus" => "gevalideerd",
"ostatus" => "concept"))) ? "ERROR" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
$org_item['pstatus'] = "gevalideerd";
}
// Store design ready
if (in_array($item['ostatus'], array("gereed", "geverifieerd", "gevalideerd"))) {
echo "<br> - Design ready phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, array("general" => $org_item), "", "", "", "", array("sstatus" => "niet vrijgegeven",
"ostatus" => "gereed"))) ? "ERROR" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
$org_item['ostatus'] = "gereed";
}
// Store design verified
if (in_array($item['ostatus'], array("geverifieerd", "gevalideerd"))) {
echo "<br> - Design verified phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, array("general" => $org_item), "", "", "", "", array("sstatus" => "niet vrijgegeven",
"ostatus" => "geverifieerd"))) ? "ERROR" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
$org_item['ostatus'] = "geverifieerd";
}
// Store design validated
if (in_array($item['ostatus'], array("gevalideerd"))) {
echo "<br> - Design validated phase: ";
$start = microtime_float();
echo (sc_wi($item['id'], ($item['parent'] == NULL) ? TRUE : FALSE, $dummy1, array("general" => $org_item), "", "", "", "", array("sstatus" => "niet vrijgegeven",
"ostatus" => "gevalideerd"))) ? "ERROR" : "OK";
echo " (Time: " . (microtime_float() - $start) . ")";
$org_item['ostatus'] = "gevalideerd";
}
}
}
}
else {
echo "<br><br><b>" . ++$index . ") Project released: " . $project['naam'] . " (database id: " . $project['id'] . ")</b>";
}
}
}
else {
echo "Invalid/no project(s)";
}
}
else {
echo "Invalid project";
}
// Display output
echo ob_get_clean();
?>