%PDF- %PDF-
| Direktori : /var/www/projetos/suporte.iigd.com.br/plugins/dashboard/front/inc/ |
| Current File : /var/www/projetos/suporte.iigd.com.br/plugins/dashboard/front/inc/functions.php |
<?php
function conv_data($data) {
if($data != "") {
$source = $data;
$date = new DateTime($source);
switch ($_SESSION['glpidate_format']) {
case "0": $dataf = $date->format('Y-m-d'); break;
case "1": $dataf = $date->format('d-m-Y'); break;
case "2": $dataf = $date->format('m-d-Y'); break;
}
return $dataf;}
else {
return "";
}
}
function conv_data_hora($data) {
if($data != "") {
$source = $data;
$date = new DateTime($source);
switch ($_SESSION['glpidate_format']) {
case "0": $dataf = $date->format('Y-m-d H:i'); break;
case "1": $dataf = $date->format('d-m-Y H:i'); break;
case "2": $dataf = $date->format('m-d-Y H:i'); break;
}
return $dataf;
}
else {
return "";
}
}
function time_ext($solvedate)
{
$time = $solvedate; // time duration in seconds
if ($time == 0){
return '';
}
$days = floor($time / (60 * 60 * 24));
$time -= $days * (60 * 60 * 24);
$hours = floor($time / (60 * 60));
$time -= $hours * (60 * 60);
$minutes = floor($time / 60);
$time -= $minutes * 60;
$seconds = floor($time);
$time -= $seconds;
$return = "{$days}d {$hours}h {$minutes}m {$seconds}s"; // 1d 6h 50m 31s
return $return;
}
function time_hrs($time)
{
if ($time == 0){
return '';
}
// $days = floor($time / 86400); // 60*60*24
// $time -= $days * 86400;
$hours = floor($time / (60 * 60));
$time -= $hours * (60 * 60);
$minutes = floor($time / 60);
$time -= $minutes * 60;
$seconds = floor($time);
$time -= $seconds;
$return = "{$hours}h {$minutes}m {$seconds}s"; // 1d 6h 50m 31s
return $return;
}
function time_hrs2($time)
{
if ($time == 0){
return '';
}
$hours = floor($time / (60 * 60));
$time -= $hours * (60 * 60);
$minutes = floor($time / 60);
$time -= $minutes * 60;
$seconds = floor($time);
$time -= $seconds;
$return = $hours; // 1d 6h 50m 31s
return $return;
}
function dropdown($name, array $options, $selected=null)
{
/*** begin the select ***/
$dropdown = '<select id="sel1" style="width: 300px;" autofocus onChange="javascript: document.form1.submit.focus()" name="'.$name.'" id="'.$name.'">'."\n";
$selected = $selected;
/*** loop over the options ***/
foreach( $options as $key=>$option )
{
/*** assign a selected value ***/
$select = $selected==$key ? ' selected' : null;
/*** add each option to the dropdown ***/
$dropdown .= '<option value="'.$key.'"'.$select.'>'.$option.'</option>'."\n";
}
/*** close the select ***/
$dropdown .= '</select>'."\n";
/*** and return the completed dropdown ***/
return $dropdown;
}
function dropdown2( $name, array $options, $selected=null )
{
/*** begin the select ***/
$dropdown = '<select style="width: 300px; height: 27px;" autofocus name="'.$name.'" id="'.$name.'">'."\n";
$selected = $selected;
/*** loop over the options ***/
foreach( $options as $key=>$option )
{
/*** assign a selected value ***/
$select = $selected==$key ? ' selected' : null;
/*** add each option to the dropdown ***/
$dropdown .= '<option value="'.$key.'"'.$select.'>'.$option.'</option>'."\n";
}
/*** close the select ***/
$dropdown .= '</select>'."\n";
/*** and return the completed dropdown ***/
return $dropdown;
}
function margins() {
global $DB;
$query_lay = "SELECT value FROM glpi_plugin_dashboard_config WHERE name = 'layout' AND users_id = ".$_SESSION['glpiID']." ";
$result_lay = $DB->query($query_lay);
$layout = $DB->result($result_lay,0,'value');
//redirect to index
if($layout == '0')
{
// sidebar
$margin = '0px 3% 0px 5%';
}
if($layout == 1 || $layout == '' )
{
//top menu
$margin = '0px 2% 0px 2%';
}
return $margin;
}
//segundos para h:m:s
/*
$segundos = 15058084;
//$converter = date('H:i:s',mktime(0,0,$segundos,15,03,2013));//Converter os segundos em no formato mm:ss
$converter = date('H:i:s',mktime(0,0,$segundos));//Converter os segundos em no formato mm:ss
echo $converter;//no exemplo ira retornar 02:15
*/
function getEntityName($id) {
global $DB;
if ($id == ''){
return '';
}
else {
$sql_ent = "
SELECT name
FROM `glpi_entities`
WHERE id = ".$id." ";
$result_ent = $DB->query($sql_ent);
$name = $DB->result($result_ent,0,'name');
return $name;
}
}
function getEntityLevel($id) {
global $DB;
if ($id == ''){
return '';
}
else {
$sql_ent = "
SELECT level
FROM `glpi_entities`
WHERE id = ".$id." ";
$result_ent = $DB->query($sql_ent);
$level = $DB->result($result_ent,0,'level');
return $level;
}
}
function getChildren($node) {
global $DB;
global $nodes;
if ($node == -1) {
$pos = 0;
foreach ($_SESSION['glpiactiveprofile']['entities'] as $entity) {
$ID = $entity['id'];
$is_recursive = $entity['is_recursive'];
$path = [
// append r for root nodes, id are uniques in jstree.
// so, in case of presence of this id in subtree of other nodes,
// it will be removed from root nodes
'id' => $ID.'r',
'text' => Dropdown::getDropdownName("glpi_entities", $ID)
];
if ($is_recursive) {
$path['children'] = true;
$query2 = "SELECT count(*)
FROM `glpi_entities`
WHERE `entities_id` = '$ID'";
$result2 = $DB->query($query2);
if ($DB->result($result2, 0, 0) > 0) {
//apend a i tag (one of shortest tags) to have the is_recursive link
//$path['text'].= '<i/>';
if (isset($ancestors[$ID])) {
$path['state']['opened'] = 'true';
}
}
}
$nodes[] = $path;
}
} else { // standard node
$node_id = $node;
$query = "SELECT ent.`id`, ent.`name`, ent.`sons_cache`, count(sub_entities.id) as nb_subs, ent.`level`
FROM `glpi_entities` as ent
LEFT JOIN `glpi_entities` as sub_entities
ON sub_entities.entities_id = ent.id
WHERE ent.`entities_id` = '$node_id'
GROUP BY ent.`id`, ent.`name`, ent.`sons_cache`
ORDER BY `name`";
if ($result = $DB->query($query)) {
while ($row = $DB->fetchAssoc($result)) {
$path = [
'id' => $row['id'],
'text' => $row['name'],
'level' => $row['level'],
];
if ($row['nb_subs'] > 0) {
//apend a i tag (one of shortest tags) to have the is_recursive link
//$path['text'].= '<i/>';
$path['children'] = true;
if (isset($ancestors[$row['id']])) {
$path['state']['opened'] = 'true';
}
}
$nodes[] = $path;
}
}
}
//return json_encode($nodes);
return $nodes;
}
function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}
return $temp_array;
}
function super_unique($array)
{
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ($result as $key => $value)
{
if ( is_array($value) )
{
$result[$key] = super_unique($value);
}
}
return $result;
}
//calcular custos de chamado
function computeCost($item) {
global $DB;
$totalcost = 0;
$query = "SELECT `glpi_ticketcosts`.*
FROM `glpi_tickets`, `glpi_ticketcosts`
WHERE `glpi_ticketcosts`.`tickets_id` = `glpi_tickets`.`id`
AND glpi_tickets.id = ".$item."
AND (`glpi_ticketcosts`.`cost_time` > '0'
OR `glpi_ticketcosts`.`cost_fixed` > '0'
OR `glpi_ticketcosts`.`cost_material` > '0')";
$result = $DB->query($query);
$i = 0;
if ($DB->numrows($result)) {
while ($data = $DB->fetchAssoc($result)) {
$totalcost += TicketCost::computeTotalCost($data["actiontime"], $data["cost_time"],
$data["cost_fixed"], $data["cost_material"]);
}
}
return $totalcost;
}
?>