Example #1
0
        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());
            }
        }
Example #2
0
        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());
            }
        }