コード例 #1
0
ファイル: Taxa.cs プロジェクト: magnumvalente/BrasilDidaticos
        /// <summary>
        /// Método para salvar o taxa
        /// </summary>
        /// <param name="Taxas">Objeto com os dados do taxa</param>
        /// <returns>Contrato.RetornoTaxa</returns>
        internal static Contrato.RetornoTaxa SalvarTaxa(Contrato.EntradaTaxa entradaTaxa)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoTaxa retTaxa = new Contrato.RetornoTaxa();

            // Verifica se as informações do taxa foram informadas
            string strValidacao = ValidarTaxaPreenchida(entradaTaxa.Taxa);

            // Objeto que recebe o retorno da sessão
            Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaTaxa.UsuarioLogado, Chave = entradaTaxa.Chave });

            // Verifica se o usuário está autenticado
            if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
            {
                // Se existe algum erro
                if (strValidacao.Length > 0)
                {
                    retTaxa.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                    retTaxa.Mensagem = strValidacao;
                }
                else
                {
                    // Loga no banco de dados
                    Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

                    // Busca o taxa no banco
                    List<Dados.TAXA> lstTaxas = (from t in context.T_TAXA
                                                    where (t.NOME_TAXA == entradaTaxa.Taxa.Nome
                                                          && (entradaTaxa.EmpresaLogada.Id == Guid.Empty || t.ID_EMPRESA == entradaTaxa.EmpresaLogada.Id))
                                                       || (entradaTaxa.Novo == null && entradaTaxa.Taxa.Id == t.ID_TAXA)
                                                    select t).ToList();

                     // Verifica se foi encontrado algum registro
                    if (lstTaxas.Count > 0 && entradaTaxa.Novo != null && (bool)entradaTaxa.Novo)
                    {
                        // Preenche o objeto de retorno
                        retTaxa.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retTaxa.Mensagem = string.Format("A taxa de nome '{0}' já existe!", lstTaxas.First().NOME_TAXA);
                    }
                    else
                    {
                        // Se existe a taxa
                        if (lstTaxas.Count > 0)
                        {
                            // Atualiza a taxa
                            lstTaxas.First().NOME_TAXA = entradaTaxa.Taxa.Nome;
                            lstTaxas.First().BOL_DESCONTO = entradaTaxa.Taxa.Desconto;
                            lstTaxas.First().BOL_FORNECEDOR = entradaTaxa.Taxa.Fornecedor;
                            lstTaxas.First().BOL_PRODUTO = entradaTaxa.Taxa.Produto;
                            lstTaxas.First().BOL_ATIVO = entradaTaxa.Taxa.Ativo;
                            lstTaxas.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstTaxas.First().LOGIN_USUARIO = entradaTaxa.UsuarioLogado;
                        }
                        else
                        {
                            // Cria a taxa
                            Dados.TAXA tTaxa = new Dados.TAXA();
                            tTaxa.ID_TAXA = Guid.NewGuid();
                            tTaxa.NOME_TAXA = entradaTaxa.Taxa.Nome;
                            tTaxa.ID_EMPRESA = entradaTaxa.EmpresaLogada.Id;
                            tTaxa.BOL_DESCONTO = entradaTaxa.Taxa.Desconto;
                            tTaxa.BOL_FORNECEDOR = entradaTaxa.Taxa.Fornecedor;
                            tTaxa.BOL_PRODUTO = entradaTaxa.Taxa.Produto;
                            tTaxa.BOL_ATIVO = entradaTaxa.Taxa.Ativo;
                            tTaxa.DATA_ATUALIZACAO = DateTime.Now;
                            tTaxa.LOGIN_USUARIO = entradaTaxa.UsuarioLogado;

                            context.AddToT_TAXA(tTaxa);
                        }

                        // Salva as alterações
                        context.SaveChanges();

                        // Preenche o objeto de retorno
                        retTaxa.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;
                    }
                }
            }
            else
            {
                // retorna quando o usuário não está autenticado
                retTaxa.Codigo = retSessao.Codigo;
                retTaxa.Mensagem = retSessao.Mensagem;
            }

            // retorna dos dados
            return retTaxa;
        }