src.dualinventive.com/mtinfo/dist/webroot/rc-4.05/scripts/page/menu_material_content.php

295 lines
13 KiB
PHP

<?php
/** \file scripts\page\menu_material_content.php
* \brief DI webinterface material menu content script.
* \author Rob Schalken, Core|Vision
* \version 1.0
* \date 17-10-2008
*
* This file gives an overview of all assigned/non-assigned materials
*/
print_form_start("form", "javascript:FormAction('action/_a_menu_material');");
// Initial value
$equipment_available = 0;
/************************************/
/* Title */
/************************************/
print_title("Assign equipment");
// Retrieve all device types
$types = db_fetch_system_devices($_SESSION[$_PAGE_INFO['id']]['i18n']);
// Determine amount per device type
if (is_array($types)) {
// Retrieve project information
$projects = db_fetch_projects("", $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id'], 1);
foreach($types as $type) {
// Retrieve lance information
$lances = db_fetch_lances($_SESSION[$_PAGE_INFO['id']]['login']['customer']['id'], "", $type['id'], "", array("service", "winkel", "actief"));
if ((is_array($lances)) && (!empty($lances))) {
$equipment_available = 1;
/************************************/
/* Subtitle */
/************************************/
print_subtitle($type['naam']);
/************************************/
/* Equipment Overview */
/************************************/
// Fill arrays
$id = "";
$id[0] = "";
$value = "";
$value[0] = array("","","");
// Initial values
$owned = 0;
$hire = 0;
$service = 0;
$rented = 0;
$inactive = 0;
$owned_array = array();
$hire_array = array();
$total_array = array();
$service_array = array();
$rented_array = array();
$rented_to_array = array();
$inactive_array = array();
$available_array = array();
$assigned_array = array();
$result_array = array();
$multiple_array = array();
if (is_array($lances)) {
foreach($lances as $lance) {
// Owner?
if ($lance['eigenaar'] == $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id']) {
$owned++;
array_push($owned_array , ",- " . $lance['idcode']);
array_push($total_array , ",- " . $lance['idcode']);
array_push($available_array, ",- " . $lance['idcode']);
}
// hired?
else if ($lance['gebruiker'] == $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id']) {
$hire++;
$cust = db_fetch_customer($lance['gebruiker'], 1);
array_push($hire_array , ",- " . $lance['idcode'] . " (" . $cust['bedrijfsnaam'] . ")");
array_push($total_array , ",- " . $lance['idcode']);
array_push($available_array, ",- " . $lance['idcode']);
}
// In service?
if (in_array($lance['lans_status'], array("service", "winkel"))) {
$service++;
array_push($service_array, ",- " . $lance['idcode']);
}
// Rented?
else if ((strlen($lance['gebruiker'])) && ($lance['gebruiker'] != $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id'])) {
$rented++;
$cust = db_fetch_customer($lance['gebruiker'], 1);
array_push($rented_to_array , ",- " . $lance['idcode'] . " (" . $cust['bedrijfsnaam'] . ")");
array_push($rented_array, ",- " . $lance['idcode']);
}
// Non-active
else if (in_array($lance['klant_status'], array("inactief"))) {
$inactive++;
array_push($inactive_array, ",- " . $lance['idcode']);
}
}
}
// Remove service/rented/non-active/assigned from available array
if (is_array($available_array)) {
if (is_array($service_array)) {
foreach($service_array as $item) {
$pos = array_search($item, $available_array);
array_splice($available_array, $pos, 1);
}
}
if (is_array($rented_array)) {
foreach($rented_array as $item) {
$pos = array_search($item, $available_array);
array_splice($available_array, $pos, 1);
}
}
if (is_array($inactive_array)) {
foreach($inactive_array as $item) {
$pos = array_search($item, $available_array);
array_splice($available_array, $pos, 1);
}
}
}
// Assigned/Requested
$request = 0;
$assigned = 0;
$open_request = 0;
$result_array = $available_array;
if (is_array($projects)) {
foreach($projects as $project) {
// Requested
$amount = db_fetch_project_amounts($project['id'], $type['id']);
$request += $amount['aantal'];
// Assigned (only non-rented and active equipment)
$project_lances = db_fetch_project_lances($project['id'], $type['id'], "", 1, array("actief"),array("actief"));
if (is_array($project_lances)) {
$assigned_project = sizeof($project_lances);
foreach($project_lances as $lance) {
array_push($assigned_array, ",- " . $lance['idcode']);
// In result array? => Remove
$pos = array_search(",- " . $lance['idcode'], $result_array);
if ($pos !== FALSE) {
array_splice($result_array, $pos, 1);
}
}
}
else {
$assigned_project = 0;
}
$assigned = $assigned + $assigned_project;
// Open request
if ($amount['aantal'] > $assigned_project) {
$open_request += $amount['aantal'] - $assigned_project;
}
}
}
// Multiple assignments (only active, rest is handled by service/non-active!!)
$multiple_assigned = db_fetch_project_double_assigned_lances($_SESSION[$_PAGE_INFO['id']]['login']['customer']['id'], $type['id'], array("actief"), array("actief"));
$multiple = 0;
if (is_array($multiple_assigned)) {
foreach($multiple_assigned as $item) {
if (db_check_lance_active($item, $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id'])) {
$lance_projects = db_fetch_lance_projects($item, 1, $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id']);
if (is_array($lance_projects)) {
$lance = db_fetch_lance($item, "", 1);
for($i=0; $i < sizeof($lance_projects); $i++) {
array_push($multiple_array, ",- " . $lance['idcode']);
$multiple++;
}
}
}
}
}
// Counters
$value[1] = array(color => "" ,"Owned" , $owned);
$value[2] = array(color => "" ,"Hired" , $hire);
$value[3] = array(color => "" ,"" , "------- +");
$value[4] = array(color => "" ,"Total fleet" , $owned + $hire);
$value[5] = array(color => "service" ,"In service" , $service);
$value[6] = array(color => "rented" ,"Hired out" , $rented);
$value[7] = array(color => "inactive" ,"Inactive" , $inactive);
$value[8] = array(color => "" ,"" , "------- -");
$value[9] = array(color => "" ,"Available" , $owned + $hire - $service - $rented - $inactive);
$value[10] = array(color => "" ,"Assigned to project" , $assigned);
$value[11] = array(color => "" ,"" , "------- -");
$value[12] = array(color => "" ,"Result" , $owned + $hire - $service - $rented - $inactive - $assigned);
$value[13] = array(color => "d_assigned_project" ,"Multiple project assignments" , $multiple);
$value[14] = array(color => "" ,"Open requests" , $open_request);
// Sort all arrays
array_multisort($owned_array, SORT_STRING, $owned_array);
array_multisort($hire_array, SORT_STRING, $hire_array);
array_multisort($total_array, SORT_STRING, $total_array);
array_multisort($service_array, SORT_STRING, $service_array);
array_multisort($rented_to_array, SORT_STRING, $rented_to_array);
array_multisort($inactive_array, SORT_STRING, $inactive_array);
array_multisort($available_array, SORT_STRING, $available_array);
array_multisort($assigned_array, SORT_STRING, $assigned_array);
array_multisort($multiple_array, SORT_STRING, $multiple_array);
// Popup message
$id[1] = (empty($owned_array)) ? "" : _("Owned") . ":" . implode($owned_array);
$id[2] = (empty($hire_array)) ? "" : _("Hired") . ":" . implode($hire_array);
$id[3] = "";
$id[4] = (empty($total_array)) ? "" : _("Total fleet") . ":" . implode($total_array);
$id[5] = (empty($service_array)) ? "" : _("In service") . ":" . implode($service_array);
$id[6] = (empty($rented_to_array))? "" : _("Hired out") . ":" . implode($rented_to_array);
$id[7] = (empty($inactive_array)) ? "" : _("Inactive") . ":" . implode($inactive_array);
$id[8] = "";
$id[9] = (empty($available_array))? "" : _("Available") . ":" . implode($available_array);
$id[10] = (empty($assigned_array)) ? "" : _("Assigned to project") . ":" . implode($assigned_array);
$id[11] = "";
$id[12] = (empty($result_array)) ? "" : _("Result") . ":" . implode($result_array);
$id[13] = (empty($multiple_array)) ? "" : _("Multiple project assignments") . ":" . implode($multiple_array);
$id[14] = "";
// Set values
$value1[1] = array((is_array($lances)) ? sizeof($lances) : 0, $req, $grant, sizeof($unassinged_lances));
print_table(_("Totals overview"), $type['id'] . "_total", $value, "", $id, array(54,24,18), array("L","C","L"), "", "onSubmit('show_equip', '', 1);", "", "", 0, 1);
/************************************/
/* Project overview */
/************************************/
// Fill arrays
$id = "";
$id[0] = "";
$opt = "";
$opt[0] = "";
$value = "";
$value[0] = array(_("Project"), _("Requested"), _("Expected"), _("Assigned"));
if (is_array($projects)) {
foreach($projects as $project) {
// Expected/Assigned
$project_lances = db_fetch_project_lances($project['id'], $type['id'], "", 0, array("service","winkel", "actief"));
$assigned = 0;
$expected = 0;
if (is_array($project_lances)) {
foreach($project_lances as $project_lance) {
if (db_check_lance_active($project_lance['id'], $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id'])) {
$assigned++;
}
else {
$expected++;
}
}
}
// Add project shortcut
array_push($id, $project['id']);
// Get project amounts
$amount = db_fetch_project_amounts($project['id'], $type['id']);
$amount['aantal'] = (is_array($amount)) ? $amount['aantal'] : 0;
// Color assignment
$color = db_check_project_color($project['id'], $type['id'], $_SESSION[$_PAGE_INFO['id']]['login']['customer']['id']);
// Get all info
array_push($value, array($project['naam'], $amount['aantal'], $expected, $assigned, color => $color));
}
}
// Show when not empty
if (sizeof($value) > 1) {
print_table(_("Projects"), $type['id'] . "_id", $value, "", $id, array(34, 22, 22, 22), array("L","C","C","C"), array(), "onSubmit('project', '', 0);", "", "", 0, 1);
}
}
}
}
if (!$equipment_available) {
echo "<tr>\n";
echo "<td></td>\n";
echo "<td></td>\n";
echo "<td>\n";
echo _("There is no equipment to assign");
echo "</td>\n";
echo "</tr>\n";
}
print_form_end();
?>