| Server IP : 162.214.74.102 / Your IP : 216.73.216.192 Web Server : Apache System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64 User : lrsys ( 1015) PHP Version : 5.6.40 Disable Function : exec,passthru,shell_exec,system MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/lrsys/public_html/lrsys_apps/leo/application/plugins/module_helpdesk/assets/libs/ |
Upload File : |
<?php
/**
* Created by PhpStorm.
* User: juelis
* Date: 12/03/17
* Time: 20:25
*/
class Helper
{
/** @var array $_L */
protected $_L;
/**
* Helper constructor.
* @param array|null $_L
*/
public function __construct($_L = null)
{
$this->_L = $_L;
}
/**
* @param int $status
* @return string
*/
public function formatOSStatus($status)
{
switch ($status) {
case 'Atendence':
return "<span class=\"badge badge-default\">{$this->_L['module_helpdesk status Atendence']}</span>";
case 'Closed':
return "<span class=\"badge badge-success\">{$this->_L['module_helpdesk status Closed']}</span>";
case 'Open':
return "<span class=\"badge badge-danger\">{$this->_L['module_helpdesk status Open']}</span>";
}
return '';
}
/**
* @param int $status
* @return string
*/
public function formatSlaValue($status, $value)
{
switch ($status) {
case 'Atendence':
return "<span class=\"badge badge-default\">".$value."</span>";
case 'Closed':
return "<span class=\"badge badge-success\">".$value."</span>";
case 'Open':
return "<span class=\"badge badge-danger\">".$value."</span>";
}
return '';
}
/**
* @param string $date
* @return string
*/
public function transformDatePtToEn($date)
{
$d = DateTime::createFromFormat('d/m/Y H:i:s', $date);
return $d->format('Y-m-d H:i:s');
}
/**
* @param string $date
* @return string
*/
public function transformDateEnToPt($date)
{
$d = DateTime::createFromFormat('Y-m-d H:i:s', $date);
return $d->format('d/m/Y H:i:s');
}
/**
* @param string $date
* @return string
*/
public function transformSla($dateInit, $dateEnd = null)
{
if($dateEnd)
{
$dateEndAux = new DateTime($dateEnd);
}
else
{
$dateEndAux = new DateTime();
}
// Pego somente horário comercial
$dateInitAux = new DateTime($dateInit);
$dateInitDiff = new DateTime($dateInitAux->format('Y-m-d'));
$diff = $dateEndAux->diff($dateInitDiff);
$dataAux = new DateTime($dateInit);
// Pego as Horas e Minutos
$hora_init = intval($dateInitAux->format('H'));
$min_init = intval($dateInitAux->format('i'));
$hora_end = intval($dateEndAux->format('H'));
$min_end = intval($dateEndAux->format('i'));
$sla = 0;
if($diff->d == 0)
{
if($dataAux->format('D') != 'Sun' && $dataAux->format('D') != 'Sat')
{
if($hora_end >= 18)
{
$hora_end = 18;
$min_end = 0;
}
if($hora_init < 8)
{
$hora_init = 8;
$min_init = 0;
}
// Converto os horários em minutos
$min_end_total = $hora_end * 60 + $min_end;
$min_init_total = $hora_init * 60 + $min_init;
if($hora_init < 12)
{
if($hora_end >= 12 && $hora_end < 14)
{
$intervalo = $min_end_total - (12*60);
$sla = 12*60 - $min_init_total;
}
elseif($hora_end >= 14)
{
$sla = $min_end_total - $min_init_total - 120;
}
else
{
$sla = $min_end_total - $min_init_total;
}
}
elseif($hora_init >= 12 && $hora_init < 14)
{
$hora_init = 14;
$min_init = 0;
if($hora_end < 14)
{
$hora_end = 14;
$min_end = 0;
}
// Converto os horários em minutos
$min_end_total = $hora_end * 60 + $min_end;
$min_init_total = $hora_init * 60 + $min_init;
$sla = $min_end_total - $min_init_total;
}
else
{
$sla = $min_end_total - $min_init_total;
}
}
}
else
{
if($dataAux->format('D') != 'Sun' && $dataAux->format('D') != 'Sat')
{
$hora_end = 18;
$min_end = 0;
if($hora_init <= 8)
{
$hora_init = 8;
$min_init = 0;
}
// Converto os horários em minutos
$min_end_total = $hora_end * 60 + $min_end;
$min_init_total = $hora_init * 60 + $min_init;
if($hora_init < 12)
{
$sla = $min_end_total - $min_init_total - 120;
}
elseif($hora_init >= 12 && $hora_init < 14)
{
$hora_init = 14;
$min_init = 0;
$min_init_total = $hora_init * 60 + $min_init;
$sla = $min_end_total - $min_init_total;
}
else
{
$sla = $min_end_total - $min_init_total;
}
}
$count_day = 0;
for ($i = 1; $i <= $diff->d; $i++)
{
$count_day++;
$dataAux->add(new DateInterval('P1D'));
if($count_day == $diff->d)
{
if($dataAux->format('D') != 'Sun' && $dataAux->format('D') != 'Sat')
{
$hora_end = intval($dateEndAux->format('H'));
$min_end = intval($dateEndAux->format('i'));
if($hora_end >= 8)
{
if($hora_end >= 18)
{
$hora_end = 18;
$min_end = 0;
}
$hora_init = 8;
$min_init = 0;
// Converto os horários em minutos
$min_end_total = $hora_end * 60 + $min_end;
$min_init_total = $hora_init * 60 + $min_init;
if($hora_end >= 12 && $hora_end < 14)
{
$sla += 12*60 - $min_init_total;
}
elseif($hora_end >= 14)
{
$sla += $min_end_total - $min_init_total - 120;
}
else
{
$sla += $min_end_total - $min_init_total;
}
}
}
}
else
{
if($dataAux->format('D') != 'Sun' && $dataAux->format('D') != 'Sat')
{
$sla += 8*60;
}
}
}
}
// $sla = $dateEnd - strtotime($dateInit);
// return number_format($sla/3600,0)."h"." ". number_format(($sla%3600)/60,0)."m";
return (number_format($sla/60,0))."h"." ".($sla%60)."m";
}
/**
* @param string $date
* @return string
*/
public function transformSlaInt($date, $dateEnd = null)
{
if($dateEnd)
{
$dateEnd = strtotime($dateEnd);
}
else
{
$dateEnd = time();
}
$sla = $dateEnd - strtotime($date);
return number_format($sla/3600,0);
}
/**
* @param string $ticket_id
* @return string
*/
public function getRequester($ticket_id)
{
$ticket = ORM::for_table('module_helpdesk_tickets')
->table_alias('t')
->select('t.*')
->select('r.fullname')
->join('sys_users', 't.requester_id = r.id', 'r')
->where('t.id', $ticket_id)
->find_one();
return $ticket->fullname;
}
/**
* @param string $ticket_id
* @return array
*/
public function getSerial($client_id)
{
$return = ORM::for_table('crm_customfields')
->table_alias('c')
->select('r.fvalue', 'serial')
->join('crm_customfieldsvalues', 'r.fieldid = c.id AND r.relid = '.$client_id, 'r')
->where('c.fieldname', 'serial_numbers')
->find_one();
if(isset($return->serial))
{
$return = explode(',', $return->serial);
}
// var_dump($return);
return $return;
}
public function getAccounts($type = null, $cost_center_id = null) {
$d = ORM::for_table('crm_accounts')
->table_alias('c')
->select('c.*');
if($cost_center_id > 0)
{
$d->where('cost_center_id', $cost_center_id);
}
if (!empty($type)) {
$d->join('crm_accounts_groups', array('c.id', '=', 'ag.crm_accounts_id'), 'ag')
->join('crm_groups', array('g.id', '=', 'ag.crm_group_id'), 'g')
->where('g.gname', $type);
}
$crms = $d->find_many();
$data = array();
foreach ($crms as $c)
{
$data[] = array(
'id' => $c->id,
'name' => $c->account,
'text' => $c->account,
'cpf_cnpj' => $c->cpf_cnpj,
'account' => $c->account,
'company' => $c->company,
'kinf_of_person' => $c->kind_of_person,
'foreign_doc_identification' => $c->foreign_doc_identification,
);
}
return $data;
}
public function getProducts($category = null)
{
$data = array();
$d = ORM::for_table('sys_items')
->table_alias('i')
->select('i.*')
->left_outer_join('sys_items_category', array('is.id', '=', 'i.category_id'), 'is')
->order_by_asc('i.description');
if ($category) {
$d->where('is.name', $category);
}
$prods = $d->find_many();
foreach ($prods as $p) {
$data[] = array(
'id' => $p->id,
'text' => $p->item_number . " | " . $p->description,
'price' => $p->sales_price
);
}
return $data;
}
/**
* @param string $value
* @return array
*/
public function getComponentes($value)
{
$arr_value = explode('|', $value);
$item = trim($arr_value[0]).' | '.trim($arr_value[1]);
$quantidade = isset($arr_value[2])? preg_replace('/QTD: /', '', trim($arr_value[2])):'';
$problema = isset($arr_value[3])? preg_replace('/PROBLEMA: /', '', trim($arr_value[3])):'';
$solucao = isset($arr_value[4])? preg_replace('/SOLUÇÃO: /', '', trim($arr_value[4])):'';
$obs = isset($arr_value[5])? preg_replace('/OBS: /', '', trim($arr_value[5])):'';
$return = array('item' => $item,
'quantidade' => $quantidade,
'problema' => $problema,
'solucao' => $solucao,
'obs' => $obs);
return $return;
}
/**
* @param string $value
* @return array
*/
public function getComponentesOrcamentos($value)
{
$arr_value = explode('|', $value);
$item = trim($arr_value[0]).' | '.trim($arr_value[1]);
$quantidade = isset($arr_value[2])? preg_replace('/QTD: /', '', trim($arr_value[2])):'';
$valor = isset($arr_value[3])? preg_replace('/VALOR: /', '', trim($arr_value[3])):'';
$obs = isset($arr_value[4])? preg_replace('/OBS: /', '', trim($arr_value[4])):'';
$return = array('item' => $item,
'quantidade' => $quantidade,
'valor' => $valor,
'obs' => $obs);
return $return;
}
}