Example #1
0
 public function cancelarAction($mensagem = "")
 {
     $connection = Databases::connect();
     $id = $this->getParametroTela('id');
     $chamadoModel = new ChamadosModel();
     $chamadoVo = $chamadoModel->loadById($connection, $id);
     $apontamentoModel = new ApontamentosModel();
     $apontamento = $apontamentoModel->verificaSeAberto($connection, "C", $id);
     $apontamentoController = new ApontamentosController();
     $mensagem = $apontamentoController->validarIniciarApontamento(new AtividadesVo(), $chamadoVo, $apontamento, "C", $id);
     // Validações adicionais de segurança para o perfil de cliente
     if ($_SESSION['perfilCliente'] == 1) {
         if ($chamadoVo->getSituacao() != "") {
             // Solicitação número 2 do documento "Ajuste_Sistema_Chamados_Ver1_11.pdf"
             if ($chamadoVo->getSituacao()->getId() == $_SESSION['situacaoFinalizada']) {
                 $erro = true;
                 $mensagem = 'N' . 'Chamado se encontra finalizado e portanto não pode mais ser alterado.';
             }
             // Solicitação número 2 do documento "Ajuste_Sistema_Chamados_Ver1_11.pdf"
             if ($chamadoVo->getSituacao()->getId() == $_SESSION['situacaoCancelada']) {
                 $erro = true;
                 $mensagem = 'N' . 'Chamado se encontra cancelado e portanto não pode mais ser alterado.';
             }
         }
     }
     if (substr($mensagem, 0, 1) == 'S') {
         $situacaoModel = new SituacoesModel();
         $situacaoVo = $situacaoModel->loadById($connection, $_SESSION['situacaoCancelada']);
         // Cancelado
         $chamadoVo->setSituacao($situacaoVo);
         $chamadoModel->save($connection, $chamadoVo);
         $usuarioModel = new UsuariosModel();
         $usuarioVo = $usuarioModel->loadById($connection, $_SESSION['usuarioCodigo']);
         $chamadoHistoricoVo = new ChamadosHistoricosVo();
         $chamadoHistoricoVo->setChamado($chamadoVo);
         $chamadoHistoricoVo->setData(date('Y-m-d H:i'));
         $chamadoHistoricoVo->setUsuario($usuarioVo);
         $chamadoHistoricoVo->setObservacao("* Chamado cancelado");
         $chamadoHistoricoModel = new ChamadosHistoricosModel();
         $chamadoHistoricoModel->save($connection, $chamadoHistoricoVo);
         // Disparo de E-mail Comunicando
         $recipients = array();
         $subject = 'BasisIT :: Cancelamento de Chamado :: Número ' . $chamadoVo->getId() . ' :: ' . $chamadoVo->getEmpresa()->getDescricao();
         $txt = '<font color="red"><b>OBS: Este e-mail foi gerado automaticamente. Favor não responder para este endereço.</b></font><br /><br />';
         $txt = $txt . 'Informamos que houve uma nova interação no chamado ' . $chamadoVo->getId() . ' - ' . $chamadoVo->getAssunto() . '.<br /><br />';
         $txt = $txt . '<fieldset><legend><b>Descrição da Interação:</b></legend>* O chamado foi cancelado</fieldset>';
         // E-mail para o usuário que abriu o chamado vai sempre
         if (!Functions::isEmpty($chamadoVo->getUsuario()->getEmail())) {
             $to = $chamadoVo->getUsuario()->getEmail();
             array_push($recipients, $to);
         }
         if (!Functions::isEmpty($chamadoVo->getRequisitante()->getEmail()) && $chamadoVo->getRequisitante()->getEmail() != $chamadoVo->getUsuario()->getEmail()) {
             $to = $chamadoVo->getRequisitante()->getEmail();
             array_push($recipients, $to);
         }
         if (!Functions::isEmpty($chamadoVo->getAtendente()->getEmail()) && $chamadoVo->getAtendente()->getEmail() != $chamadoVo->getUsuario()->getEmail()) {
             $to = $chamadoVo->getAtendente()->getEmail();
             array_push($recipients, $to);
         }
         Functions::email($recipients, $subject, $txt);
     }
     $dados = $this->carregarDadosManter($connection, $id, $mensagem);
     Databases::disconnect($connection);
     $this->exibirTelaManter($dados);
 }
Example #2
0
 public function loadRelatorioAtendimentosAnalitico($connection, $periodoInicial, $periodoFinal, $empresa, $situacao, $tipoAvaliacao)
 {
     $registros = array();
     $query = "  SELECT ch.cha_cdichamado, ch.cha_dtdcriacao\n                    ,      us.usu_dssnome, ep.emp_dssempresa\n                    ,      st.sit_dsssituacao, cg.cat_dsscategoria\n                    ,      ta.tpa_dsstipoambiente, tp.tpp_dsstipoproduto\n                    ,      md.mod_dssmodulo, ch.cha_dssassunto\n                    ,      SEC_TO_TIME(SUM(TIME_TO_SEC(ap.apo_hrsfaturadas))) apo_hrsfaturadas\n                    FROM   chamados            ch\n                    INNER  JOIN apontamentos   ap ON ap.apo_cdichamado      = ch.cha_cdichamado\n                    LEFT   JOIN usuarios       us ON us.usu_cdiusuario      = ch.cha_cdiusuario\n                    LEFT   JOIN empresas       ep ON ep.emp_cdiempresa      = ch.cha_cdiempresa\n                    LEFT   JOIN situacoes      st ON st.sit_cdisituacao     = ch.cha_cdisituacao\n                    LEFT   JOIN categorias     cg ON cg.cat_cdicategoria    = ch.cha_cdicategoria\n                    LEFT   JOIN tiposambientes ta ON ta.tpa_cditipoambiente = ch.cha_cditipoambiente\n                    LEFT   JOIN tiposprodutos  tp ON tp.tpp_cditipoproduto  = ch.cha_cditipoproduto\n                    LEFT   JOIN modulos        md ON md.mod_cdimodulo       = ch.cha_cdimodulo\n                    WHERE  date_format(ap.apo_dtdinicio, '%Y-%m-%d') BETWEEN :periodoInicial AND :periodoFinal\n                    AND    date_format(ap.apo_dtdfim   , '%Y-%m-%d') BETWEEN :periodoInicial AND :periodoFinal ";
     if (!Functions::isEmpty($empresa)) {
         $query .= " AND ep.emp_cdiempresa = :empresa ";
     }
     if (!Functions::isEmpty($situacao)) {
         $query .= " AND st.sit_cdisituacao = :situacao ";
     }
     if (!Functions::isEmpty($tipoAvaliacao)) {
         if ($tipoAvaliacao == 1) {
             $query .= " AND ap.apo_cdimodofaturamento in (1,2,3) ";
         } else {
             if ($tipoAvaliacao == 2) {
                 $query .= " AND ap.apo_cdimodofaturamento in (1,2) ";
             } else {
                 if ($tipoAvaliacao == 3) {
                     $query .= " AND ap.apo_cdimodofaturamento in (3) ";
                 }
             }
         }
     }
     $query .= " GROUP BY ch.cha_cdichamado, ch.cha_dtdcriacao\n                    ,        us.usu_dssnome, ep.emp_dssempresa\n                    ,        st.sit_dsssituacao, cg.cat_dsscategoria\n                    ,        ta.tpa_dsstipoambiente, tp.tpp_dsstipoproduto\n                    ,        md.mod_dssmodulo, ch.cha_dssassunto\n                    ORDER BY ch.cha_cdichamado ";
     $stmt = $connection->prepare($query);
     if (!Functions::isEmpty($periodoInicial)) {
         $stmt->bindParam(':periodoInicial', Functions::toDateToSql($periodoInicial));
     }
     if (!Functions::isEmpty($periodoFinal)) {
         $stmt->bindParam(':periodoFinal', Functions::toDateToSql($periodoFinal));
     }
     if (!Functions::isEmpty($empresa)) {
         $stmt->bindParam(':empresa', $empresa);
     }
     if (!Functions::isEmpty($situacao)) {
         $stmt->bindParam(':situacao', $situacao);
     }
     $stmt->execute();
     $rows = $stmt->fetchAll();
     foreach ($rows as $row) {
         $chamadosHistoricosModel = new ChamadosHistoricosModel();
         $chamadosHistoricosArray = $chamadosHistoricosModel->loadByChamado($connection, $row->cha_cdichamado);
         if (Functions::isEmpty($row->apo_hrsfaturadas)) {
             $horasFaturadas = '00:00:00';
         } else {
             $horasFaturadas = $row->apo_hrsfaturadas;
         }
         $registro = array('chamadoCodigo' => $row->cha_cdichamado, 'chamadoData' => Functions::toDate($row->cha_dtdcriacao), 'usuarioNome' => $row->usu_dssnome, 'empresaDescricao' => $row->emp_dssempresa, 'situacaoDescricao' => $row->sit_dsssituacao, 'categoriaDescricao' => $row->cat_dsscategoria, 'tipoAmbienteDescricao' => $row->tpa_dsstipoambiente, 'tipoProdutoDescricao' => $row->tpp_dsstipoproduto, 'moduloDescricao' => $row->mod_dssmodulo, 'chamadoAssunto' => $row->cha_dssassunto, 'horasFaturadas' => $horasFaturadas, 'chamadoHistoricoArray' => $chamadosHistoricosArray);
         array_push($registros, $registro);
     }
     return $registros;
 }