private function carregarDadosManter($connection, $id = "", $mensagem = "") { if (!Functions::isEmpty($id)) { $model = new TiposAmbientesModel(); $tiposAmbientes = $model->loadById($connection, $id); } else { $tiposAmbientes = new TiposAmbientesVo(); } return $this->trabalharDadosManter($tiposAmbientes, $mensagem); }
private function populateVo($connection, $row) { $usuarioModel = new UsuariosModel(); $usuarioVo = $usuarioModel->loadById($connection, $row->cha_cdiusuario); $requisitanteVo = $usuarioModel->loadById($connection, $row->cha_cdiusuario_requisitante); $atendenteVo = $usuarioModel->loadById($connection, $row->cha_cdiusuario_atendente); $situacaoModel = new SituacoesModel(); $situacaoVo = $situacaoModel->loadById($connection, $row->cha_cdisituacao); $empresaModel = new EmpresasModel(); $empresaVo = $empresaModel->loadById($connection, $row->cha_cdiempresa); $categoriaModel = new CategoriasModel(); $categoriaVo = $categoriaModel->loadById($connection, $row->cha_cdicategoria); $tipoAmbienteModel = new TiposAmbientesModel(); $tipoAmbienteVo = $tipoAmbienteModel->loadById($connection, $row->cha_cditipoambiente); $tipoProdutoModel = new TiposProdutosModel(); $tipoProdutoVo = $tipoProdutoModel->loadById($connection, $row->cha_cditipoproduto); $modulosModel = new ModulosModel(); $moduloVo = $modulosModel->loadById($connection, $row->cha_cdimodulo); $prioridadeModel = new PrioridadesModel(); $prioridadeVo = $prioridadeModel->loadById($connection, $row->cha_cdiprioridade); $vo = new ChamadosVo(); $vo->setId($row->cha_cdichamado); $vo->setUsuario($usuarioVo); $vo->setRequisitante($requisitanteVo); $vo->setAtendente($atendenteVo); $vo->setData(Functions::toDate($row->cha_dtdcriacao)); $vo->setSituacao($situacaoVo); $vo->setEmpresa($empresaVo); $vo->setCategoria($categoriaVo); $vo->setTipoAmbiente($tipoAmbienteVo); $vo->setTipoProduto($tipoProdutoVo); $vo->setModulo($moduloVo); $vo->setPrioridade($prioridadeVo); $vo->setImpacto($row->cha_oplimpacto); $vo->setUsuariosAfetados($row->cha_nuiusuariosafetados); $vo->setAreasAfetadas($row->cha_nuiareasafetadas); $vo->setPrevisaoTermino(Functions::toDate($row->cha_dtdprevisaotermino)); $vo->setAssunto($row->cha_dssassunto); $vo->setObservacao($row->cha_dsbobservacao); return $vo; }
public function salvarCadastrarAction() { $connection = Databases::connect(); $chamadosModel = new ChamadosModel(); $chamadoVo = $chamadosModel->loadById($connection, $this->getParametroTela('id')); $situacoesModel = new SituacoesModel(); $situacaoVo = $situacoesModel->loadById($connection, $this->getParametroTela('situacao')); $usuariosModel = new UsuariosModel(); $usuarioVo = $usuariosModel->loadById($connection, $this->getParametroTela('usuario')); $requisitanteVo = $usuariosModel->loadById($connection, $this->getParametroTela('requisitante')); $atendenteVo = $usuariosModel->loadById($connection, $this->getParametroTela('atendente')); $empresasModel = new EmpresasModel(); $empresaVo = $empresasModel->loadById($connection, $this->getParametroTela('empresa')); $categoriasModel = new CategoriasModel(); $categoriaVo = $categoriasModel->loadById($connection, $this->getParametroTela('categoria')); $tiposAmbientesModel = new TiposAmbientesModel(); $tipoAmbienteVo = $tiposAmbientesModel->loadById($connection, $this->getParametroTela('tipoAmbiente')); $tiposProdutosModel = new TiposProdutosModel(); $tipoProdutoVo = $tiposProdutosModel->loadById($connection, $this->getParametroTela('tipoProduto')); $modulosModel = new ModulosModel(); $moduloVo = $modulosModel->loadById($connection, $this->getParametroTela('modulo')); $prioridadesModel = new PrioridadesModel(); $prioridadeVo = $prioridadesModel->loadById($connection, $this->getParametroTela('prioridade')); if (Functions::isEmpty($this->getParametroTela('impacto'))) { $impacto = 0; } else { $impacto = $this->getParametroTela('impacto'); } if (Functions::isEmpty($this->getParametroTela('id'))) { $modo = "I"; } else { $modo = "A"; } $vo = new ChamadosVo(); $vo->setId($this->getParametroTela('id')); $vo->setUsuario($usuarioVo); $vo->setRequisitante($requisitanteVo); $vo->setAtendente($atendenteVo); $vo->setData($this->getParametroTela('data')); $vo->setSituacao($situacaoVo); $vo->setEmpresa($empresaVo); $vo->setCategoria($categoriaVo); $vo->setTipoAmbiente($tipoAmbienteVo); $vo->setTipoProduto($tipoProdutoVo); $vo->setModulo($moduloVo); $vo->setPrioridade($prioridadeVo); $vo->setImpacto($impacto); $vo->setUsuariosAfetados($this->getParametroTela('usuariosAfetados')); $vo->setAreasAfetadas($this->getParametroTela('areasAfetadas')); $vo->setPrevisaoTermino($this->getParametroTela('previsaoTermino')); $vo->setAssunto($this->getParametroTela('assunto')); $vo->setObservacao($this->getParametroTela('observacao')); $vo->setAnexo($_FILES["anexo"]); $erro = false; // Validações adicionais de segurança para o perfil de cliente if ($_SESSION['perfilCliente'] == 1) { // Valida se cliente fez malandragem de trocar empresa if ($this->clienteSelecionouEmpresaInvalida($connection, $empresaVo->getId())) { $erro = true; $mensagem = 'N' . 'Percebemos que você selecionou uma empresa diferente da sua. Por motivos de segurança, não gravaremos o chamado'; } // Valida se cliente fez malandragem de trocar usuário /* if ($this->clienteSelecionouUsuarioInvalido($connection, $usuarioVo->getId())) { $erro = true; $mensagem = 'N' . 'Percebemos que você selecionou um usuário de uma empresa diferente da sua. Por motivos de segurança, não gravaremos o chamado'; } */ 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 (!$erro) { $mensagem = $this->validarFormulario($vo); } if (substr($mensagem, 0, 1) == 'S') { $id = $this->salvarRegistro($connection, $vo); $vo->setId($id); $alteracoes = $this->verificarAlteracoes($chamadoVo, $vo); // Lançamento de Histórico do Chamado if (!Functions::isEmpty($alteracoes)) { $usuarioLogadoVo = $usuariosModel->loadById($connection, $_SESSION['usuarioCodigo']); $historico = new ChamadosHistoricosVo(); $historico->setChamado($vo); $historico->setUsuario($usuarioLogadoVo); $historico->setData(date('Y-m-d H:i')); $historico->setObservacao($alteracoes); $historico->setAnexo($vo->getAnexo()); $historicosModel = new ChamadosHistoricosModel(); $historicosModel->save($connection, $historico); } // Disparo de E-mail Comunicando if (!Functions::isEmpty($alteracoes)) { $txt = '<font color="red"><b>OBS: Este e-mail foi gerado automaticamente. Favor não responder para este endereço.</b></font><br /><br />'; if ($modo == "I") { if ($_SESSION['perfilCliente'] == 1) { $subject = 'BasisIT :: Inclusão de Chamado :: Número ' . $vo->getId() . ' :: ' . $vo->getEmpresa()->getDescricao(); $txt = $txt . '<b>' . $vo->getUsuario()->getNome() . '</b> da empresa <b>' . $vo->getEmpresa()->getDescricao() . '</b> criou o chamado <b>' . $vo->getId() . ' - ' . $vo->getAssunto() . '</b> na categoria <b>' . $vo->getCategoria()->getDescricao() . '.</b>'; } else { $subject = 'BasisIT :: Inclusão de Chamado :: Número ' . $vo->getId() . ' :: ' . $vo->getEmpresa()->getDescricao(); $txt = $txt . 'Este chamado foi registrado pela <b>BasisIT</b> em nome do <b>' . $vo->getRequisitante()->getNome() . '</b> da empresa <b>' . $vo->getEmpresa()->getDescricao() . '</b>.<br />Chamado: <b>' . $vo->getId() . ' - ' . $vo->getAssunto() . '</b> na categoria <b>' . $vo->getCategoria()->getDescricao() . '.</b>'; } } else { $subject = 'BasisIT :: Nova Interação no Chamado :: Número ' . $vo->getId() . ' :: ' . $vo->getEmpresa()->getDescricao(); $txt = $txt . 'Informamos que houve uma nova interação no chamado ' . $vo->getId() . ' - ' . $vo->getAssunto() . '.'; } $txt = $txt . '<br /><br />Você receberá um aviso a cada notificação feita.<br /><br />'; $txt = $txt . '<fieldset><legend><b>Descrição da Interação:</b></legend>' . $alteracoes . '</fieldset>'; $arrTo = array(); // Usuário if (!Functions::isEmpty($vo->getUsuario()->getEmail())) { $to = $vo->getUsuario()->getEmail(); array_push($arrTo, $to); } // Requisitante if (!Functions::isEmpty($vo->getRequisitante()->getEmail()) && $vo->getRequisitante()->getEmail() != $vo->getUsuario()->getEmail()) { $to = $vo->getRequisitante()->getEmail(); array_push($arrTo, $to); } // Atendente if (!Functions::isEmpty($vo->getAtendente()->getEmail()) && $vo->getAtendente()->getEmail() != $vo->getUsuario()->getEmail()) { $to = $vo->getAtendente()->getEmail(); array_push($arrTo, $to); } $arrCco = array(); // Se for inclusão de chamado, coloca em cópia oculta a galera dos parâmetros if ($modo == "I") { // Manda E-mail para todos os destinatários definidos no cadastro de parâmetros $destinatarios = explode(';', Functions::getParametro('destinatários')); foreach ($destinatarios as $to) { array_push($arrCco, $to); } } // Dispara o email Functions::email($arrTo, $subject, $txt, $arrCco); } // Lançamento de Apontamento Automático /* if ( ($modo == "I") && ($vo->getAtendente()->getId() == $vo->getUsuario()->getId()) ) { $controller = new ApontamentosController(); $mensagem = $controller->iniciar($connection, "C", $vo->getId(), "Iniciado automaticamente"); } */ } $dados = $this->carregarDadosManter($connection, $vo, $mensagem); Databases::disconnect($connection); $this->exibirTelaManter($dados); }