AnonSec Shell
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/www/lrsys_apps/leve/application/plugins/module_helpdesk/assets/libs/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/lrsys/www/lrsys_apps/leve/application/plugins/module_helpdesk/assets/libs/Helper.php
<?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) {
        $sla = 0;
        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'));

        if ($diff->days == 0) {
            if ($dataAux->format('D') != 'Sun' && $dataAux->format('D') != 'Sat') {
                if ($hora_end >= 18) {
                    $hora_end = 18;
                    $min_end = 0;
                }

                //tratamento ANDRE task whats 22/06/2021
                if ($hora_init >= 18) {
                    $hora_init = 18;
                    $min_init = 0;
                }


                if ($hora_init < 8) {
                    $hora_init = 8;
                    $min_init = 0;
                }

                //tratamento ANDRE task whats 22/06/2021
                if ($hora_end < 8) {
                    $hora_end = 8;
                    $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;

                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;
                }
                //tratamento André
                if ($hora_init >= 18) {
                    $hora_init = 18;
                    $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->days; $i++) {
                $count_day++;
                $dataAux->add(new DateInterval('P1D'));
                if ($count_day == $diff->days) {
                    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;
                            }
                            //tratamento André
                            if ($hora_end <= 8) {
                                $hora_end = 8;
                                $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, ".", "");
    }

    public function transformSlaDecimal($date, $dateEnd = null) {
        $sla = $this->transformSla($date, $dateEnd);

        $time = explode(" ", $sla);
        $retorno = intval(substr($time[0], 0, -1)) + intval(substr($time[1], 0, -1)) / 60;
        return number_format($retorno, 2);
    }

    /**
     * @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();
        if ($ticket)
            return $ticket->fullname;
        else
            return "";
    }

    /**
     * @param string $ticket_id
     * @return array
     */
    public function getSerial($client_id) {
        if ($client_id != null) {
            $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;
        } else {
            return null;
        }
    }

    /**
     * @return array
     */
    public function getAllSerial() {
        try {
            $return2 = ORM::for_table('crm_customfields')
                    ->table_alias('c')
                    ->select_expr('r.fvalue as serial,r.relid  as client_id')
                    ->join('crm_customfieldsvalues', 'r.fieldid = c.id  ', 'r')
                    ->where('c.fieldname', 'serial_numbers')
                    ->find_many();

            $return = array();
            foreach ($return2 as $c) {
                if (isset($c->serial)) {
                    $serial = explode(',', $c->serial);
                    foreach ($serial as $s) {
                        $return[] = array("client_id" => $c->client_id, 'serial' => trim($s));
                    }
                }
            }

            return $return;
          
        } catch (Exception $e) {
            return array();
        }
    }

    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;
    }

}

Anon7 - 2022
AnonSec Team