public override void Salvar() { try { cpc_DadosGerais.Controls.Validate(); if (Parametros.Usuario == Parametros.Administrador && !Conexao.Banco.TB_DIV_USUARIOs.Any(a => a.LOGIN == Parametros.Usuario)) { throw new Exception("É necessário cadastrar o usuário administrador para efetuar o lançamento da evolução!"); } loginAtendente = ccbe_Atendente.GetSelectedValue(); var evento = new E_EVENTO { OPERACAO = Operacao.Cadastrar, ID_CHAMADO = id_chamado, DT_EVENTO = Conexao.Banco.GetDate(), STATUS = ccbe_Status.GetSelectedValue(), DS_EVENTO = cme_Descricao.Text.Treat(), TP_EVENTO = ccbe_Tipo.GetSelectedValue(), ANEXOS = bs_Anexos.List.Cast <E_ANEXO>().ToList(), LOGIN_ATENDENTE = loginAtendente }; var transacao = 0; if (C_EVENTO.Salvar(evento, ref transacao, false, 0, "", new E_TRANSF_ATENDENTE { OPERACAO = Operacao.Cadastrar, ID_CHAMADO = id_chamado, LOGIN_NEW = ccbe_Atendente.GetSelectedValue(), LOGIN_OLD = Conexao.Banco.TB_DIV_CHAMADOs.FirstOrDefault(a => a.ID_CHAMADO == id_chamado).LOGIN_ATENDENTE })) { Finalizar(); if (evento.TP_EVENTO == "E") { Email.Enviar(Conexao.Banco.TB_DIV_CHAMADOs.FirstOrDefault(a => a.ID_CHAMADO == id_chamado), OperacaoEmail.Evolucao); } } } catch (Exception excessao) { Mensagens.Alerta(excessao.Tratar()); } }
private void Evoluir(bool finalizar = false) { try { if (gv_Chamado.GetSelectedRows().Count() == 0) { throw Excessoes.AlterandoSemRegistro("um chamado"); } var chamado = gv_Chamado.GetSelectedRow <E_CHAMADO>(); if (finalizar && chamado.LOGIN_SOLICITANTE != Parametros.Usuario && !Parametros.IsAdministrator()) { throw new Exception("Somente o solicitante ou o administrador podem finalizar o chamado!"); } if (!finalizar && chamado.LOGIN_ATENDENTE.Treat().Length == 0) { throw new Exception("Não é permitido evoluir um chamado sem atendimento!"); } if ((!finalizar && chamado.LOGIN_ATENDENTE != Parametros.Usuario) && !Parametros.IsAdministrator()) { throw new Exception("Somente o solicitante, atendente ou o administrador podem evoluir o chamado!"); } if (finalizar) { if (Parametros.IsAdministrator() && !Conexao.Banco.TB_DIV_USUARIOs.Any(a => a.LOGIN == Parametros.Usuario)) { throw new Exception("É necessário cadastrar o usuário administrador para efetuar o lançamento da evolução!"); } var siglaFinalizar = Conexao.Banco.TB_DIV_STATUS.FirstOrDefault(a => a.ST_FINALIZAR == "S"); if (siglaFinalizar == null) { throw new Exception("É necessário cadastrar a sigla de finalização para efetuar o lançamento da evolução!"); } var evento = new E_EVENTO { OPERACAO = Operacao.Cadastrar, ID_CHAMADO = chamado.ID_CHAMADO, DT_EVENTO = Conexao.Banco.GetDate(), STATUS = siglaFinalizar.SIGLA_STATUS, DS_EVENTO = "FINALIZADO PELO USUÁRIO: " + Parametros.Usuario, TP_EVENTO = "I", ANEXOS = new List <E_ANEXO>(), LOGIN_FINALIZADOR = Parametros.Usuario }; var formaAvaliacao = new FAvaliacao_Lancamento(); if (formaAvaliacao.ShowDialog() != DialogResult.OK) { return; } var transacao = 0; C_EVENTO.Salvar(evento, ref transacao, finalizar, formaAvaliacao.tbc_Nota.Value, formaAvaliacao.cme_Sugestao.Text.Treat()); Email.Enviar(Conexao.Banco.TB_DIV_CHAMADOs.FirstOrDefault(a => a.ID_CHAMADO == chamado.ID_CHAMADO), OperacaoEmail.Finalizacao); } else { using (var forma = new FEvolucao_Lancamento { id_chamado = chamado.ID_CHAMADO, loginAtendente = (string)gv_Chamado.GetRowCellValue(gv_Chamado.FocusedRowHandle, colLOGIN_ATENDENTE) }) { if (forma.ShowDialog() == DialogResult.OK) { cse_Identificador.Value = chamado.ID_CHAMADO; } } } Buscar(); } catch (Exception excessao) { Mensagens.Alerta(excessao.Tratar()); } }