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