private function populateVo($connection, $row)
 {
     $chamadoModel = new ChamadosModel();
     $chamadoVo = $chamadoModel->loadById($connection, $row->chh_cdichamado);
     $usuarioModel = new UsuariosModel();
     $usuarioVo = $usuarioModel->loadById($connection, $row->chh_cdiusuario);
     $vo = new ChamadosHistoricosVo();
     $vo->setId($row->chh_cdichamadohistorico);
     $vo->setChamado($chamadoVo);
     $vo->setUsuario($usuarioVo);
     $vo->setData(Functions::toDateTime($row->chh_dtddata));
     $vo->setObservacao($row->chh_dsbobservacao);
     $vo->setAnexo($row->chh_dsbanexo);
     return $vo;
 }
示例#2
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);
 }