Exemplo n.º 1
0
        /// <summary>
        /// Método para salvar o usuário
        /// </summary>
        /// <param name="Sessao">Objeto com os dados do usuário a Logar</param>
        /// <returns>Contrato.RetornoFornecedor</returns>
        internal static Contrato.RetornoSessao ExcluirSessao(Contrato.Sessao Sessao)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoSessao retSessao = new Contrato.RetornoSessao();

            // Verifica se as informações do usuário foram informadas
            string strValidacao = ValidarSessaoPreenchido(Sessao);

            // Se existe algum erro
            if (strValidacao.Length > 0)
            {
                retSessao.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                retSessao.Mensagem = strValidacao;
            }
            else
            {
                // Loga no banco de dados
                Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

                // Busca o usuário no banco
                List<Dados.SESSAO> lstSessoes = (from s in context.T_SESSAO
                                                 where s.LOGIN_USUARIO == Sessao.Login
                                                 && s.DES_CHAVE == Sessao.Chave
                                                 select s).ToList();

                // Verifica se foi encontrado algum registro
                if (lstSessoes.Count > 0)
                {
                    // Exclui a sessão do usuário
                    context.T_SESSAO.DeleteObject(lstSessoes.First());

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

                    // Preenche o objeto de retorno
                    retSessao.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;
                }
                else
                {
                    // Preenche o objeto de retorno
                    retSessao.Codigo = Contrato.Constantes.COD_RETORNO_VAZIO;
                }
            }

            // retorna dos dados
            return retSessao;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Método para salvar o fornecedor
        /// </summary>
        /// <param name="entradaFornecedor">Objeto com os dados do fornecedor</param>
        /// <returns>Contrato.RetornoFornecedor</returns>
        internal static Contrato.RetornoFornecedor SalvarFornecedor(Contrato.EntradaFornecedor entradaFornecedor)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoFornecedor retFornecedor = new Contrato.RetornoFornecedor();

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

            // Verifica se o usuário está autenticado
            if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
            {
                // Verifica se as informações do fornecedor foram informadas
                string strValidacao = ValidarFornecedorPreenchido(entradaFornecedor.Fornecedor);

                // Se existe algum erro
                if (strValidacao.Length > 0)
                {
                    retFornecedor.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                    retFornecedor.Mensagem = strValidacao;
                }
                else
                {
                    // Loga no banco de dados
                    Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();
                    context.ContextOptions.LazyLoadingEnabled = true;

                    // Busca o fornecedor no banco
                    List<Dados.FORNECEDOR> lstFornecedores = (from f in context.T_FORNECEDOR
                                                              where (f.COD_FORNECEDOR == entradaFornecedor.Fornecedor.Codigo
                                                                    && (entradaFornecedor.Fornecedor.Cpf_Cnpj != null || f.CPF_CNJP_FORNECEDOR == entradaFornecedor.Fornecedor.Cpf_Cnpj)
                                                                    && (entradaFornecedor.EmpresaLogada.Id == Guid.Empty || f.ID_EMPRESA == entradaFornecedor.EmpresaLogada.Id))
                                                                 || (entradaFornecedor.Novo == null && entradaFornecedor.Fornecedor.Id == f.ID_FORNECEDOR)
                                                              select f).ToList();

                    // Verifica se foi encontrado algum registro
                    if (lstFornecedores.Count > 0 && entradaFornecedor.Novo != null && (bool)entradaFornecedor.Novo)
                    {
                        // Preenche o objeto de retorno
                        retFornecedor.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retFornecedor.Mensagem = string.Format("O fornecedor de código '{0}' já existe!", lstFornecedores.First().COD_FORNECEDOR);
                    }
                    else
                    {
                        // Se existe o fornecedor
                        if (lstFornecedores.Count > 0)
                        {
                            bool atualizarProdutos = false;

                            // Atualiza o fornecedor
                            lstFornecedores.First().NOME_FORNECEDOR = entradaFornecedor.Fornecedor.Nome;
                            lstFornecedores.First().BOL_PESSOA_FISICA = entradaFornecedor.Fornecedor.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false;
                            lstFornecedores.First().CPF_CNJP_FORNECEDOR = entradaFornecedor.Fornecedor.Cpf_Cnpj;
                            lstFornecedores.First().NUM_VALOR_ATACADO = entradaFornecedor.Fornecedor.ValorPercentagemAtacado;
                            lstFornecedores.First().NUM_VALOR_VAREJO = entradaFornecedor.Fornecedor.ValorPercentagemVarejo;
                            lstFornecedores.First().BOL_ATIVO = (bool)entradaFornecedor.Fornecedor.Ativo;
                            lstFornecedores.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstFornecedores.First().LOGIN_USUARIO = entradaFornecedor.UsuarioLogado;

                            // verifica se o fornecedor foi desativado
                            atualizarProdutos = (bool)entradaFornecedor.Fornecedor.Ativo == false;

                            // Verifica se é para atualizar os produtos
                            if (!atualizarProdutos)
                                // verifica se a quantidade de taxas foi alterada
                                atualizarProdutos = (entradaFornecedor.Fornecedor.Taxas == null && lstFornecedores.First().T_FORNECEDOR_TAXA.Count > 0) || (entradaFornecedor.Fornecedor.Taxas != null && lstFornecedores.First().T_FORNECEDOR_TAXA.Count != entradaFornecedor.Fornecedor.Taxas.Count);

                            // Verifica se é para atualizar os produtos
                            if (entradaFornecedor.Fornecedor.Taxas != null && !atualizarProdutos)
                                // Para cada taxa existente
                                foreach (Contrato.Taxa t in entradaFornecedor.Fornecedor.Taxas)
                                {
                                    // Verifica se é para atualizar os produtos
                                    if (!atualizarProdutos)
                                        // Verifica se alguma informação da taxa foi atualizada
                                        atualizarProdutos = (from ft in lstFornecedores.First().T_FORNECEDOR_TAXA where ft.ID_TAXA == t.Id && (ft.NUM_VALOR != t.Valor || ft.ORD_PRIORIDADE != t.Prioridade) select ft).Count() > 0;
                                    else
                                        break;
                                }

                            // Apaga todas as taxas que estão relacionadas ao fornecedor
                            while (lstFornecedores.First().T_FORNECEDOR_TAXA.Count > 0)
                            {
                                context.T_FORNECEDOR_TAXA.DeleteObject(lstFornecedores.First().T_FORNECEDOR_TAXA.First());
                            }

                            // Preenche as taxas do fornecedor
                            PreencherTaxaFornecedor(entradaFornecedor, lstFornecedores.First());

                            // Verifica se é para atualizar os produtos
                            if (atualizarProdutos)
                                // Atualiza o valor das taxas nos produtos
                                SalvarProdutosFornecedor(entradaFornecedor);
                        }
                        else
                        {
                            // Recupera o código do cliente
                            string codigoFornecedor = string.Empty;
                            if (entradaFornecedor.Fornecedor.Codigo != string.Empty)
                                codigoFornecedor = entradaFornecedor.Fornecedor.Codigo;
                            else
                            {
                                System.Data.Objects.ObjectParameter objCodigoFornecedor = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32));
                                context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_FORNECEDOR, entradaFornecedor.EmpresaLogada.Id, objCodigoFornecedor);
                                codigoFornecedor = Util.RecuperaCodigo((int)objCodigoFornecedor.Value, Contrato.Constantes.TIPO_COD_FORNECEDOR);
                            }

                            // Cria o fornecedor
                            Dados.FORNECEDOR tFornecedor = new Dados.FORNECEDOR();
                            tFornecedor.ID_FORNECEDOR = Guid.NewGuid();
                            tFornecedor.COD_FORNECEDOR = codigoFornecedor;
                            tFornecedor.NOME_FORNECEDOR = entradaFornecedor.Fornecedor.Nome;
                            tFornecedor.ID_EMPRESA = entradaFornecedor.EmpresaLogada.Id;
                            tFornecedor.BOL_PESSOA_FISICA = entradaFornecedor.Fornecedor.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false;
                            tFornecedor.CPF_CNJP_FORNECEDOR = entradaFornecedor.Fornecedor.Cpf_Cnpj;
                            tFornecedor.NUM_VALOR_ATACADO = entradaFornecedor.Fornecedor.ValorPercentagemAtacado;
                            tFornecedor.NUM_VALOR_VAREJO = entradaFornecedor.Fornecedor.ValorPercentagemVarejo;
                            tFornecedor.BOL_ATIVO = (bool)entradaFornecedor.Fornecedor.Ativo;
                            tFornecedor.DATA_ATUALIZACAO = DateTime.Now;
                            tFornecedor.LOGIN_USUARIO = entradaFornecedor.UsuarioLogado;

                            // Preenche as taxas do fornecedor
                            PreencherTaxaFornecedor(entradaFornecedor, tFornecedor);

                            // Adiciona o fornecedor na tabela
                            context.AddToT_FORNECEDOR(tFornecedor);
                        }

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

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

            // retorna dos dados
            return retFornecedor;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Método para salvar o orcamento
        /// </summary>
        /// <param name="entradaOrcamento">Objeto com os dados do orcamento</param>
        /// <returns>Contrato.RetornoOrcamento</returns>
        internal static Contrato.RetornoOrcamento SalvarOrcamento(Contrato.EntradaOrcamento entradaOrcamento)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoOrcamento retOrcamento = new Contrato.RetornoOrcamento();

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

            // Verifica se o usuário está autenticado
            if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
            {
                // Verifica se as informações do orcamento foram informadas
                string strValidacao = ValidarOrcamentoPreenchido(entradaOrcamento.Orcamento);

                // Se existe algum erro
                if (strValidacao.Length > 0)
                {
                    retOrcamento.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                    retOrcamento.Mensagem = strValidacao;
                }
                else
                {
                    // Loga no banco de dados
                    Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();
                    context.ContextOptions.LazyLoadingEnabled = true;

                    // Busca o orcamento no banco
                    List<Dados.ORCAMENTO> lstOrcamentos = (from p in context.T_ORCAMENTO
                                                           where (p.COD_ORCAMENTO == entradaOrcamento.Orcamento.Codigo
                                                                 && (entradaOrcamento.EmpresaLogada.Id == Guid.Empty || p.ID_EMPRESA == entradaOrcamento.EmpresaLogada.Id))
                                                              || (entradaOrcamento.Novo == null && entradaOrcamento.Orcamento.Id == p.ID_ORCAMENTO)
                                                           select p).ToList();

                    // Verifica se foi encontrado algum registro
                    if (lstOrcamentos.Count > 0 && entradaOrcamento.Novo != null && (bool)entradaOrcamento.Novo)
                    {
                        // Preenche o objeto de retorno
                        retOrcamento.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retOrcamento.Mensagem = string.Format("O orcamento de código '{0}' já existe!", lstOrcamentos.First().COD_ORCAMENTO);
                    }
                    else
                    {
                        // Se existe o orcamento
                        if (lstOrcamentos.Count > 0)
                        {
                            // Atualiza o orcamento
                            lstOrcamentos.First().COD_ORCAMENTO = entradaOrcamento.Orcamento.Codigo;
                            lstOrcamentos.First().DATA_ORCAMENTO = entradaOrcamento.Orcamento.Data;
                            lstOrcamentos.First().ID_CLIENTE = entradaOrcamento.Orcamento.Cliente.Id;
                            lstOrcamentos.First().ID_ESTADO_ORCAMENTO = entradaOrcamento.Orcamento.Estado.Id;
                            lstOrcamentos.First().ID_USUARIO_VENDEDOR = entradaOrcamento.Orcamento.Vendedor.Id;
                            lstOrcamentos.First().ID_USUARIO_RESPONSAVEL = entradaOrcamento.Orcamento.Responsavel.Id;
                            lstOrcamentos.First().NUM_DESCONTO = entradaOrcamento.Orcamento.ValorDesconto;
                            lstOrcamentos.First().NUM_PRAZO_ENTREGA = entradaOrcamento.Orcamento.PrazoEntrega;
                            lstOrcamentos.First().NUM_VALIDADE_ORCAMENTO = entradaOrcamento.Orcamento.ValidadeOrcamento;
                            lstOrcamentos.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstOrcamentos.First().LOGIN_USUARIO = entradaOrcamento.UsuarioLogado;

                            // Apaga todos os itens que estão relacionados
                            while (lstOrcamentos.First().T_ITEM.Count > 0)
                            {
                                context.T_ITEM.DeleteObject(lstOrcamentos.First().T_ITEM.First());
                            }

                            // Verifica se existe algum item associado ao orçamento
                            if (entradaOrcamento.Orcamento.Itens != null)
                            {
                                // Para cada item associado
                                foreach (Contrato.Item item in entradaOrcamento.Orcamento.Itens)
                                {
                                    Negocio.Item.SalvarItemOrcamento(lstOrcamentos.First(), entradaOrcamento.UsuarioLogado, item);
                                }
                            }
                        }
                        else
                        {
                            // Recupera o código do orçamento
                            string codigoOrcamento = string.Empty;
                            if (entradaOrcamento.Orcamento.Codigo != string.Empty)
                                codigoOrcamento = entradaOrcamento.Orcamento.Codigo;
                            else
                            {
                                System.Data.Objects.ObjectParameter objCodigoOrcamento = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32));
                                context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_ORCAMENTO, entradaOrcamento.EmpresaLogada.Id, objCodigoOrcamento);
                                codigoOrcamento = Util.RecuperaCodigo((int)objCodigoOrcamento.Value, Contrato.Constantes.TIPO_COD_ORCAMENTO);
                            }

                            // Cria o orcamento
                            Dados.ORCAMENTO tOrcamento = new Dados.ORCAMENTO();
                            tOrcamento.ID_ORCAMENTO = Guid.NewGuid();
                            tOrcamento.COD_ORCAMENTO = codigoOrcamento;
                            tOrcamento.DATA_ORCAMENTO = entradaOrcamento.Orcamento.Data;
                            tOrcamento.ID_EMPRESA = entradaOrcamento.EmpresaLogada.Id;
                            tOrcamento.ID_CLIENTE = entradaOrcamento.Orcamento.Cliente.Id;
                            tOrcamento.ID_ESTADO_ORCAMENTO = entradaOrcamento.Orcamento.Estado.Id;
                            tOrcamento.ID_USUARIO_VENDEDOR = entradaOrcamento.Orcamento.Vendedor.Id;
                            tOrcamento.ID_USUARIO_RESPONSAVEL = entradaOrcamento.Orcamento.Responsavel.Id;
                            tOrcamento.NUM_DESCONTO = entradaOrcamento.Orcamento.ValorDesconto;
                            tOrcamento.NUM_PRAZO_ENTREGA = entradaOrcamento.Orcamento.PrazoEntrega;
                            tOrcamento.NUM_VALIDADE_ORCAMENTO = entradaOrcamento.Orcamento.ValidadeOrcamento;
                            tOrcamento.DATA_ATUALIZACAO = DateTime.Now;
                            tOrcamento.LOGIN_USUARIO = entradaOrcamento.UsuarioLogado;

                            // Verifica se existe algum item associado ao orçamento
                            if (entradaOrcamento.Orcamento.Itens != null)
                            {
                                // Para cada item associado
                                foreach (Contrato.Item item in entradaOrcamento.Orcamento.Itens)
                                {
                                    Negocio.Item.SalvarItemOrcamento(tOrcamento, entradaOrcamento.UsuarioLogado, item);
                                }
                            }

                            context.AddToT_ORCAMENTO(tOrcamento);
                        }

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

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

            // retorna dos dados
            return retOrcamento;
        }
Exemplo n.º 4
0
        /// <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;
        }
Exemplo n.º 5
0
        /// <summary>
        /// Método para salvar o usuário
        /// </summary>
        /// <param name="entradaUsuario">Objeto com os dados do usuário a Logar</param>
        /// <returns>Contrato.RetornoUsuario</returns>
        internal static Contrato.RetornoUsuario SalvarUsuario(Contrato.EntradaUsuario entradaUsuario)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoUsuario retUsuario = new Contrato.RetornoUsuario();

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

            // Verifica se o usuário está autenticado
            if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
            {

                // Verifica se as informações do usuário foram informadas
                string strValidacao = ValidarUsuarioPreenchido(entradaUsuario.Usuario);

                // Se existe algum erro
                if (strValidacao.Length > 0)
                {
                    retUsuario.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                    retUsuario.Mensagem = strValidacao;
                }
                else
                {
                    // Loga no banco de dados
                    Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

                    // Busca o usuário no banco
                    List<Dados.USUARIO> lstUsuarios = (from u in context.T_USUARIO
                                                              where (u.LOGIN_USUARIO == entradaUsuario.Usuario.Login
                                                                 && (entradaUsuario.EmpresaLogada.Id == Guid.Empty || u.ID_EMPRESA == entradaUsuario.EmpresaLogada.Id)
                                                                ||  (entradaUsuario.Novo == null && entradaUsuario.Usuario.Id == u.ID_USUARIO))
                                                              select u).ToList();

                    // Verifica se foi encontrado algum registro
                    if (lstUsuarios.Count > 0 && entradaUsuario.Novo != null && (bool)entradaUsuario.Novo)
                    {
                        // Preenche o objeto de retorno
                        retUsuario.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retUsuario.Mensagem = string.Format("O usuário de Login '{0}' já existe!", lstUsuarios.First().LOGIN_USUARIO);
                    }
                    else
                    {
                        // Se existe o usuário
                        if (lstUsuarios.Count > 0 )
                        {
                            // Atualiza o fornecedor
                            lstUsuarios.First().NOME_USUARIO = entradaUsuario.Usuario.Nome;
                            lstUsuarios.First().LOGIN_USUARIO = entradaUsuario.Usuario.Login;
                            lstUsuarios.First().SENHA_USUARIO = entradaUsuario.Usuario.Senha;
                            lstUsuarios.First().BOL_ATIVO = (bool)entradaUsuario.Usuario.Ativo;
                            lstUsuarios.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstUsuarios.First().USUARIO_LOGADO = entradaUsuario.UsuarioLogado;

                            // Apaga todos os perfis que estão relacionados
                            while (lstUsuarios.First().T_USUARIO_PERFIL.Count > 0)
                            {
                                context.T_USUARIO_PERFIL.DeleteObject(lstUsuarios.First().T_USUARIO_PERFIL.First());
                            }

                            // Verifica se existe algum perfil associado ao usuário
                            if (entradaUsuario.Usuario.Perfis != null)
                            {
                                // Para cada perfil associado
                                foreach (Contrato.Perfil perfil in entradaUsuario.Usuario.Perfis)
                                {
                                    // Associa o perfil ao usuário
                                    lstUsuarios.First().T_USUARIO_PERFIL.Add(new Dados.USUARIO_PERFIL()
                                    {
                                        ID_USUARIO_PERFIL = Guid.NewGuid(),
                                        ID_USUARIO = lstUsuarios.First().ID_USUARIO,
                                        ID_PERFIL = perfil.Id,
                                        LOGIN_USUARIO = entradaUsuario.UsuarioLogado,
                                        DATA_ATUALIZACAO = DateTime.Now
                                    });
                                }
                            }
                        }
                        else
                        {
                            // Cria o usuário
                            Dados.USUARIO tUsuario = new Dados.USUARIO();
                            tUsuario.ID_USUARIO = Guid.NewGuid();
                            tUsuario.NOME_USUARIO = entradaUsuario.Usuario.Nome;
                            tUsuario.LOGIN_USUARIO = entradaUsuario.Usuario.Login;
                            tUsuario.SENHA_USUARIO = entradaUsuario.Usuario.Senha;
                            tUsuario.ID_EMPRESA = entradaUsuario.EmpresaLogada.Id;
                            tUsuario.BOL_ATIVO = (bool)entradaUsuario.Usuario.Ativo;
                            tUsuario.DATA_ATUALIZACAO = DateTime.Now;
                            tUsuario.USUARIO_LOGADO = entradaUsuario.UsuarioLogado;

                            if (entradaUsuario.Usuario.Perfis != null)
                            {
                                foreach (Contrato.Perfil perfil in entradaUsuario.Usuario.Perfis)
                                {
                                    tUsuario.T_USUARIO_PERFIL.Add(new Dados.USUARIO_PERFIL()
                                    {
                                        ID_USUARIO_PERFIL = Guid.NewGuid(),
                                        ID_USUARIO = entradaUsuario.Usuario.Id,
                                        ID_PERFIL = perfil.Id,
                                        LOGIN_USUARIO = entradaUsuario.UsuarioLogado,
                                        DATA_ATUALIZACAO = DateTime.Now
                                    });
                                }
                            }

                            context.AddToT_USUARIO(tUsuario);
                        }

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

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

            // retorna dos dados
            return retUsuario;
        }
Exemplo n.º 6
0
        /// <summary>
        /// Método para salvar o parametro
        /// </summary>
        /// <param name="Parametro">Objeto com os dados do parametro</param>
        /// <param name="usuarioLogado">Nome do usuário Logado</param>
        /// <returns>Contrato.RetornoParametro</returns>
        internal static Contrato.RetornoParametro SalvarParametro(Contrato.Parametro Parametro, string usuarioLogado, Guid idEmpresa)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoParametro retParametro = new Contrato.RetornoParametro();

            // Verifica se as informações do parametro foram informadas
            string strValidacao = ValidarParametroPreenchido(Parametro);

            // Se existe algum erro
            if (strValidacao.Length > 0)
            {
                retParametro.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                retParametro.Mensagem = strValidacao;
            }
            else
            {
                // Loga no banco de dados
                Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

                // Busca o parametro no banco
                List<Dados.PARAMETRO> lstParametros = (from p in context.T_PARAMETRO
                                                       where
                                                            (p.COD_PARAMETRO == Parametro.Codigo)
                                                         && (idEmpresa == Guid.Empty || p.ID_EMPRESA == idEmpresa)
                                                       select p).ToList();

                // Se existe o parametro
                if (lstParametros.Count > 0)
                {
                    // Atualiza o parametro
                    lstParametros.First().VALOR_PARAMETRO = Parametro.Valor;
                    lstParametros.First().DATA_ATUALIZACAO = DateTime.Now;
                    lstParametros.First().LOGIN_USUARIO = usuarioLogado;
                }

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

                // Preenche o objeto de retorno
                retParametro.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;
            }

            return retParametro;
        }
Exemplo n.º 7
0
        /// <summary>
        /// Método para salvar a sessão
        /// </summary>
        /// <param name="Sessao">Objeto com os dados da sessão</param>
        /// <returns>Contrato.RetornoSessao</returns>
        internal static Contrato.RetornoSessao SalvarSessao(Contrato.Sessao Sessao)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoSessao retSessao = new Contrato.RetornoSessao();

            // Verifica se as informações do usuário foram informadas
            string strValidacao = ValidarSessaoPreenchido(Sessao);

            // Se existe algum erro
            if (strValidacao.Length > 0)
            {
                retSessao.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                retSessao.Mensagem = strValidacao;
            }
            else
            {
                // Loga no banco de dados
                Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

                // Busca o usuário no banco
                List<Dados.SESSAO> lstSessoes = (from s in context.T_SESSAO
                                                          where s.LOGIN_USUARIO == Sessao.Login
                                                          select s).ToList();

                // Verifica se foi encontrado algum registro
                if (lstSessoes.Count > 0 )
                {
                    if (lstSessoes.First().DES_CHAVE != Sessao.Chave)
                    {
                        // Preenche o objeto de retorno
                        retSessao.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retSessao.Mensagem = string.Format("O usuário de Login '{0}' já está logado!", Sessao.Login);
                    }
                }
                else
                {
                    // Cria o usuário
                    Dados.SESSAO tSessao = new Dados.SESSAO();
                    tSessao.ID_SESSAO = Guid.NewGuid();
                    tSessao.LOGIN_USUARIO = Sessao.Login;
                    tSessao.DATA_LOGIN = DateTime.Now;
                    tSessao.DES_CHAVE = Sessao.Chave;
                    context.AddToT_SESSAO(tSessao);

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

                    // Preenche o objeto de retorno
                    retSessao.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;
                }
            }

            // retorna dos dados
            return retSessao;
        }
Exemplo n.º 8
0
        /// <summary>
        /// Método para salvar os item do orçamento
        /// </summary>
        /// <param name="Item">Objeto com os dados do item</param>
        /// <returns>Contrato.RetornoTaxa</returns>
        internal static Contrato.RetornoItem SalvarItemOrcamento(Dados.ORCAMENTO Orcamento, string UsuarioLogado, Contrato.Item Item)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoItem retItem = new Contrato.RetornoItem();

            // Loga no banco de dados
            Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

            // Cria o item
            Dados.ITEM tItem = new Dados.ITEM()
            {
                ID_ITEM = Guid.NewGuid(),
                DES_ITEM = Item.Descricao,
                ID_ORCAMENTO = Orcamento.ID_ORCAMENTO,
                NUM_QUANTIDADE = Item.Quantidade,
                NUM_VALOR_CUSTO = Item.ValorCusto,
                NUM_VALOR_UNITARIO = Item.ValorUnitario,
                NUM_DESCONTO = Item.ValorDesconto,
                LOGIN_USUARIO = UsuarioLogado,
                DATA_ATUALIZACAO = DateTime.Now
            };

            if (Item.Produto != null)
            {
                tItem.ID_PRODUTO = Item.Produto.Id;
                if (Item.UnidadeMedida != null)
                    tItem.ID_UNIDADE_MEDIDA = Item.UnidadeMedida.Id;

                // Verifica se o orçamento foi aprovado
                if (Orcamento.T_ESTADO_ORCAMENTO != null && Orcamento.T_ESTADO_ORCAMENTO.COD_ESTADO_ORCAMENTO == string.Format("0{0}", (int)Contrato.Enumeradores.EstadoOrcamento.Aprovado))
                {
                    // Atualiza a quantidade de produtos
                    if (Item.UnidadeMedida != null && Item.UnidadeMedida.Id != Guid.Empty)
                    {
                        Contrato.UnidadeMedida uMedida = Item.Produto.UnidadeMedidas.Where(um => um.Id == Item.UnidadeMedida.Id).FirstOrDefault();
                        if (uMedida != null)
                        {
                            uMedida.Quantidade = uMedida.Quantidade - Item.Quantidade;
                            context.T_PRODUTO_UNIDADE_MEDIDA.Where(pum => pum.ID_UNIDADE_MEDIDA == uMedida.Id && pum.ID_PRODUTO == Item.Produto.Id).FirstOrDefault().NUM_QUANTIDADE = uMedida.Quantidade;
                        }
                    }
                    else
                    {
                        Item.Produto.Quantidade = Item.Produto.Quantidade - Item.Quantidade;
                        context.T_PRODUTO.Where(p => p.ID_PRODUTO == Item.Produto.Id).FirstOrDefault().NUM_QUANTIDADE = Item.Produto.Quantidade;
                    }
                }
            }

            Orcamento.T_ITEM.Add(tItem);

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

            // Preenche o objeto de retorno
            retItem.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;

            // retorna dos dados
            return retItem;
        }
Exemplo n.º 9
0
        /// <summary>
        /// Método para salvar o cliente
        /// </summary>
        /// <param name="entradaCliente">Objeto com os dados do cliente</param>
        /// <returns>Contrato.RetornoCliente</returns>
        internal static Contrato.RetornoCliente SalvarCliente(Contrato.EntradaCliente entradaCliente)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoCliente retCliente = new Contrato.RetornoCliente();

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

            // Verifica se o usuário está autenticado
            if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
            {
                // Verifica se as informações do cliente foram informadas
                string strValidacao = ValidarClientePreenchido(entradaCliente.Cliente);

                // Se existe algum erro
                if (strValidacao.Length > 0)
                {
                    retCliente.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                    retCliente.Mensagem = strValidacao;
                }
                else
                {
                    // Loga no banco de dados
                    Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();
                    context.ContextOptions.LazyLoadingEnabled = true;

                    // Busca o cliente no banco
                    List<Dados.CLIENTE> lstClientes = (from c in context.T_CLIENTE
                                                              where (c.COD_CLIENTE == entradaCliente.Cliente.Codigo
                                                                     && (entradaCliente.Cliente.Cpf_Cnpj != null || c.CPF_CNJP_CLIENTE == entradaCliente.Cliente.Cpf_Cnpj)
                                                                     && (entradaCliente.EmpresaLogada.Id == Guid.Empty || c.ID_EMPRESA == entradaCliente.EmpresaLogada.Id))
                                                                 || (entradaCliente.Novo == null && entradaCliente.Cliente.Id == c.ID_CLIENTE)
                                                              select c).ToList();

                    // Verifica se foi encontrado algum registro
                    if (lstClientes.Count > 0 && entradaCliente.Novo != null && (bool)entradaCliente.Novo)
                    {
                        // Preenche o objeto de retorno
                        retCliente.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retCliente.Mensagem = string.Format("O cliente de código '{0}' já existe!", lstClientes.First().COD_CLIENTE);
                    }
                    else
                    {
                        // Se existe o cliente
                        if (lstClientes.Count > 0)
                        {
                            // Atualiza o cliente
                            lstClientes.First().NOME_CLIENTE = entradaCliente.Cliente.Nome;
                            lstClientes.First().CAIXA_ESCOLAR = entradaCliente.Cliente.CaixaEscolar;
                            lstClientes.First().BOL_ATIVO = entradaCliente.Cliente.Ativo;
                            lstClientes.First().BOL_PESSOA_FISICA = entradaCliente.Cliente.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false;
                            lstClientes.First().CPF_CNJP_CLIENTE = entradaCliente.Cliente.Cpf_Cnpj;
                            lstClientes.First().DES_EMAIL = entradaCliente.Cliente.Email;
                            lstClientes.First().DES_INSCRICAO_ESTADUAL = entradaCliente.Cliente.InscricaoEstadual;
                            lstClientes.First().NUM_TELEFONE = entradaCliente.Cliente.Telefone;
                            lstClientes.First().NUM_CELULAR = entradaCliente.Cliente.Celular;
                            lstClientes.First().DES_ENDERECO = entradaCliente.Cliente.Endereco;
                            lstClientes.First().NUM_ENDERECO = entradaCliente.Cliente.Numero;
                            lstClientes.First().CMP_ENDERECO = entradaCliente.Cliente.Complemento;
                            lstClientes.First().NUM_CEP = entradaCliente.Cliente.Cep;
                            lstClientes.First().DES_BAIRRO = entradaCliente.Cliente.Bairro;
                            lstClientes.First().DES_CIDADE = entradaCliente.Cliente.Cidade;
                            lstClientes.First().COD_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Codigo;
                            lstClientes.First().DES_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Nome;
                            lstClientes.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstClientes.First().LOGIN_USUARIO = entradaCliente.UsuarioLogado;
                            lstClientes.First().ID_CLIENTE_MATRIZ = entradaCliente.Cliente.ClienteMatriz != null ? entradaCliente.Cliente.ClienteMatriz.Id: Guid.Empty;
                        }
                        else
                        {
                            // Recupera o código do cliente
                            string codigoCliente = string.Empty;
                            if (entradaCliente.Cliente.Codigo != string.Empty)
                                codigoCliente = entradaCliente.Cliente.Codigo;
                            else
                            {
                                System.Data.Objects.ObjectParameter objCodigoOrcamento = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32));
                                context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_CLIENTE, entradaCliente.EmpresaLogada.Id, objCodigoOrcamento);
                                codigoCliente = Util.RecuperaCodigo((int)objCodigoOrcamento.Value, Contrato.Constantes.TIPO_COD_CLIENTE);
                            }

                            // Cria o cliente
                            Dados.CLIENTE tCliente = new Dados.CLIENTE();
                            tCliente.ID_CLIENTE = Guid.NewGuid();
                            tCliente.COD_CLIENTE = codigoCliente;
                            tCliente.NOME_CLIENTE = entradaCliente.Cliente.Nome;
                            tCliente.ID_EMPRESA = entradaCliente.EmpresaLogada.Id;
                            tCliente.BOL_ATIVO = entradaCliente.Cliente.Ativo;
                            tCliente.CAIXA_ESCOLAR = entradaCliente.Cliente.CaixaEscolar;
                            tCliente.BOL_PESSOA_FISICA = entradaCliente.Cliente.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false;
                            tCliente.CPF_CNJP_CLIENTE = entradaCliente.Cliente.Cpf_Cnpj;
                            tCliente.DES_EMAIL = entradaCliente.Cliente.Email;
                            tCliente.NUM_TELEFONE = entradaCliente.Cliente.Telefone;
                            tCliente.NUM_CELULAR = entradaCliente.Cliente.Celular;
                            tCliente.DES_INSCRICAO_ESTADUAL = entradaCliente.Cliente.InscricaoEstadual;
                            tCliente.DES_ENDERECO = entradaCliente.Cliente.Endereco;
                            tCliente.NUM_ENDERECO = entradaCliente.Cliente.Numero;
                            tCliente.CMP_ENDERECO = entradaCliente.Cliente.Complemento;
                            tCliente.NUM_CEP = entradaCliente.Cliente.Cep;
                            tCliente.DES_BAIRRO = entradaCliente.Cliente.Bairro;
                            tCliente.DES_CIDADE = entradaCliente.Cliente.Cidade;
                            tCliente.COD_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Codigo;
                            tCliente.DES_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Nome;
                            tCliente.DATA_ATUALIZACAO = DateTime.Now;
                            tCliente.LOGIN_USUARIO = entradaCliente.UsuarioLogado;
                            tCliente.ID_CLIENTE_MATRIZ = entradaCliente.Cliente.ClienteMatriz != null ? entradaCliente.Cliente.ClienteMatriz.Id : Guid.Empty;

                            // Adiciona o cliente na tabela
                            context.AddToT_CLIENTE(tCliente);
                        }

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

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

            // retorna dos dados
            return retCliente;
        }
Exemplo n.º 10
0
        /// <summary>
        /// Método para salvar a unidade de medida
        /// </summary>
        /// <param name="UnidadeMedidas">Objeto com os dados da unidade de medida</param>
        /// <returns>Contrato.RetornoUnidadeMedida</returns>
        internal static Contrato.RetornoUnidadeMedida SalvarUnidadeMedida(Contrato.EntradaUnidadeMedida entradaUnidadeMedida)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoUnidadeMedida retUnidadeMedida = new Contrato.RetornoUnidadeMedida();

            // Verifica se as informações do unidademedida foram informadas
            string strValidacao = ValidarUnidadeMedidaPreenchido(entradaUnidadeMedida.UnidadeMedida);

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

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

                    // Busca o unidademedida no banco
                    List<Dados.UNIDADE_MEDIDA> lstUnidadeMedidas = (from um in context.T_UNIDADE_MEDIDA
                                                    where (um.COD_UNIDADE_MEDIDA == entradaUnidadeMedida.UnidadeMedida.Codigo
                                                       && (entradaUnidadeMedida.EmpresaLogada.Id == Guid.Empty || um.ID_EMPRESA == entradaUnidadeMedida.EmpresaLogada.Id))
                                                       || (entradaUnidadeMedida.Novo == null && entradaUnidadeMedida.UnidadeMedida.Id == um.ID_UNIDADE_MEDIDA)
                                                    select um).ToList();

                     // Verifica se foi encontrado algum registro
                    if (lstUnidadeMedidas.Count > 0 && entradaUnidadeMedida.Novo != null && (bool)entradaUnidadeMedida.Novo)
                    {
                        // Preenche o objeto de retorno
                        retUnidadeMedida.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retUnidadeMedida.Mensagem = string.Format("A unidade de medida de código '{0}' já existe!", lstUnidadeMedidas.First().COD_UNIDADE_MEDIDA);
                    }
                    else
                    {
                        // Se existe o unidademedida
                        if (lstUnidadeMedidas.Count > 0)
                        {
                            // Atualiza o unidademedida
                            lstUnidadeMedidas.First().NOME_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Nome;
                            lstUnidadeMedidas.First().DES_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Descricao;
                            lstUnidadeMedidas.First().BOL_ATIVO = entradaUnidadeMedida.UnidadeMedida.Ativo;
                            lstUnidadeMedidas.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstUnidadeMedidas.First().LOGIN_USUARIO = entradaUnidadeMedida.UsuarioLogado;
                        }
                        else
                        {
                            // Cria o unidademedida
                            Dados.UNIDADE_MEDIDA tUnidadeMedida = new Dados.UNIDADE_MEDIDA();
                            tUnidadeMedida.ID_UNIDADE_MEDIDA = Guid.NewGuid();
                            tUnidadeMedida.COD_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Codigo;
                            tUnidadeMedida.NOME_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Nome;
                            tUnidadeMedida.DES_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Descricao;
                            tUnidadeMedida.ID_EMPRESA = entradaUnidadeMedida.EmpresaLogada.Id;
                            tUnidadeMedida.BOL_ATIVO = entradaUnidadeMedida.UnidadeMedida.Ativo;
                            tUnidadeMedida.DATA_ATUALIZACAO = DateTime.Now;
                            tUnidadeMedida.LOGIN_USUARIO = entradaUnidadeMedida.UsuarioLogado;

                            context.AddToT_UNIDADE_MEDIDA(tUnidadeMedida);
                        }

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

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

            // retorna dos dados
            return retUnidadeMedida;
        }
Exemplo n.º 11
0
        /// <summary>
        /// Método para salvar o perfil
        /// </summary>
        /// <param name="Perfis">Objeto com os dados do perfil</param>
        /// <returns>Contrato.RetornoPerfil</returns>
        internal static Contrato.RetornoPerfil SalvarPerfil(Contrato.EntradaPerfil entradaPerfil)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoPerfil retPerfil = new Contrato.RetornoPerfil();

            // Verifica se as informações do perfil foram informadas
            string strValidacao = ValidarPerfilPreenchido(entradaPerfil.Perfil);

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

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

                    // Busca o perfil no banco
                    List<Dados.PERFIL> lstPerfis = (from p in context.T_PERFIL
                                                    where (p.COD_PERFIL == entradaPerfil.Perfil.Codigo
                                                          && (entradaPerfil.EmpresaLogada.Id == Guid.Empty || p.ID_EMPRESA == entradaPerfil.EmpresaLogada.Id))
                                                       || (entradaPerfil.Novo == null && entradaPerfil.Perfil.Id == p.ID_PERFIL)
                                                    select p).ToList();

                     // Verifica se foi encontrado algum registro
                    if (lstPerfis.Count > 0 && entradaPerfil.Novo != null && (bool)entradaPerfil.Novo)
                    {
                        // Preenche o objeto de retorno
                        retPerfil.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retPerfil.Mensagem = string.Format("O perfil de código '{0}' já existe!", lstPerfis.First().COD_PERFIL);
                    }
                    else
                    {
                        // Se existe o perfil
                        if (lstPerfis.Count > 0)
                        {
                            // Atualiza o perfil
                            lstPerfis.First().NOME_PERFIL = entradaPerfil.Perfil.Nome;
                            lstPerfis.First().DES_PERFIL = entradaPerfil.Perfil.Descricao;
                            lstPerfis.First().BOL_ATIVO = entradaPerfil.Perfil.Ativo;
                            lstPerfis.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstPerfis.First().LOGIN_USUARIO = entradaPerfil.UsuarioLogado;

                            // Apaga todos os perfis que estão relacionados
                            while (lstPerfis.First().T_PERFIL_PERMISSAO.Count > 0)
                            {
                                context.T_PERFIL_PERMISSAO.DeleteObject(lstPerfis.First().T_PERFIL_PERMISSAO.First());
                            }

                            // Verifica se existe algum perfil associado ao usuário
                            if (entradaPerfil.Perfil.Permissoes != null)
                            {
                                // Para cada perfil associado
                                foreach (Contrato.Permissao permissao in entradaPerfil.Perfil.Permissoes)
                                {
                                    // Associa o perfil ao usuário
                                    lstPerfis.First().T_PERFIL_PERMISSAO.Add(new Dados.PERFIL_PERMISSAO()
                                    {
                                        ID_PERFIL_PERMISSAO = Guid.NewGuid(),
                                        ID_PERFIL = lstPerfis.First().ID_PERFIL,
                                        ID_PERMISSAO = permissao.Id,
                                        LOGIN_USUARIO = entradaPerfil.UsuarioLogado,
                                        DATA_ATUALIZACAO = DateTime.Now
                                    });
                                }
                            }
                        }
                        else
                        {
                            // Cria o perfil
                            Dados.PERFIL tPerfil = new Dados.PERFIL();
                            tPerfil.ID_PERFIL = Guid.NewGuid();
                            tPerfil.ID_EMPRESA = entradaPerfil.EmpresaLogada.Id;
                            tPerfil.COD_PERFIL = entradaPerfil.Perfil.Codigo;
                            tPerfil.NOME_PERFIL = entradaPerfil.Perfil.Nome;
                            tPerfil.DES_PERFIL = entradaPerfil.Perfil.Descricao;
                            tPerfil.BOL_ATIVO = entradaPerfil.Perfil.Ativo;
                            tPerfil.DATA_ATUALIZACAO = DateTime.Now;
                            tPerfil.LOGIN_USUARIO = entradaPerfil.UsuarioLogado;

                            // Verifica se existe algum perfil associado ao usuário
                            if (entradaPerfil.Perfil.Permissoes != null)
                            {
                                // Para cada perfil associado
                                foreach (Contrato.Permissao permissao in entradaPerfil.Perfil.Permissoes)
                                {
                                    // Associa o perfil ao usuário
                                    tPerfil.T_PERFIL_PERMISSAO.Add(new Dados.PERFIL_PERMISSAO()
                                    {
                                        ID_PERFIL_PERMISSAO = Guid.NewGuid(),
                                        ID_PERFIL = entradaPerfil.Perfil.Id,
                                        ID_PERMISSAO = permissao.Id,
                                        LOGIN_USUARIO = entradaPerfil.UsuarioLogado,
                                        DATA_ATUALIZACAO = DateTime.Now
                                    });
                                }
                            }

                            context.AddToT_PERFIL(tPerfil);
                        }

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

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

            // retorna dos dados
            return retPerfil;
        }
Exemplo n.º 12
0
        /// <summary>
        /// Método para salvar o produto
        /// </summary>
        /// <param name="entradaProduto">Objeto com os dados do produto</param>
        /// <returns>Contrato.RetornoProduto</returns>
        internal static Contrato.RetornoProduto SalvarProdutos(Contrato.EntradaProdutos entradaProdutos)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoProduto retProduto = new Contrato.RetornoProduto();

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

            // Verifica se o usuário está autenticado
            if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
            {
                if (entradaProdutos.Produtos != null)
                {
                    // Loga no banco de dados
                    Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

                    // Se o identificador do fornecedor está vazio
                    if (entradaProdutos.Fornecedor != null && entradaProdutos.Fornecedor.Id == Guid.Empty)
                        // Busca os dados do fornecedor
                        entradaProdutos.Fornecedor = Fornecedor.BuscarFornecedor((from f in context.T_FORNECEDOR where f.COD_FORNECEDOR == entradaProdutos.Fornecedor.Codigo select f).FirstOrDefault());

                    // Para cada produto existente na lista
                    foreach (Contrato.Produto produto in entradaProdutos.Produtos)
                    {
                        // Se encontrou o fornecedor
                        if (entradaProdutos.Fornecedor != null)
                            // Define o fornecedor do produto
                            produto.Fornecedor = entradaProdutos.Fornecedor;

                        // Verifica se as informações do produto foram informadas
                        string strValidacao = ValidarProdutoPreenchido(produto);

                        // Se existe algum erro
                        if (strValidacao.Length > 0)
                        {
                            retProduto.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                            retProduto.Mensagem = strValidacao;
                        }
                        else
                        {
                            context.ContextOptions.LazyLoadingEnabled = true;
                            // Busca o produto no banco
                            List<Dados.PRODUTO> lstProdutos = (from p in context.T_PRODUTO
                                                                where
                                                                     p.ID_PRODUTO == produto.Id && produto.Id != Guid.Empty  &&
                                                                     p.ID_FORNECEDOR == produto.Fornecedor.Id
                                                                select p).ToList();

                            // Se existe o produto
                            if (lstProdutos.Count > 0)
                            {
                                // Atualiza o produto
                                lstProdutos.First().COD_BARRAS = produto.CodigoBarras;
                                lstProdutos.First().NUM_QUANTIDADE = produto.Quantidade;
                                lstProdutos.First().NUM_VALOR = produto.ValorBase;
                                lstProdutos.First().NUM_VALOR_ATACADO = produto.ValorPercentagemAtacado;
                                lstProdutos.First().NUM_VALOR_VAREJO = produto.ValorPercentagemVarejo;
                                lstProdutos.First().ID_FORNECEDOR = produto.Fornecedor.Id;
                                lstProdutos.First().NCM_PRODUTO = produto.Ncm;
                                lstProdutos.First().BOL_ATIVO = (bool)produto.Fornecedor.Ativo;
                                lstProdutos.First().DATA_ATUALIZACAO = DateTime.Now;
                                lstProdutos.First().LOGIN_USUARIO = entradaProdutos.UsuarioLogado;

                                // Apaga todas as taxas que estão relacionados
                                while (lstProdutos.First().T_PRODUTO_TAXA.Count > 0)
                                {
                                    context.T_PRODUTO_TAXA.DeleteObject(lstProdutos.First().T_PRODUTO_TAXA.First());
                                }

                                // Se existe o forneedor
                                if (entradaProdutos.Fornecedor != null)
                                {
                                    // Verifica se existe alguma taxa associada ao fornecedor
                                    if (produto.Fornecedor.Taxas != null)
                                    {
                                        // Para cada taxa associada
                                        foreach (Contrato.Taxa taxa in produto.Fornecedor.Taxas)
                                        {
                                            Negocio.Taxa.SalvarTaxaProduto(lstProdutos.First(), entradaProdutos.UsuarioLogado, taxa);
                                        }
                                    }
                                }

                                // Verifica se existe alguma taxa associada ao produto
                                if (produto.Taxas != null)
                                {
                                    // Para cada taxa associada
                                    foreach (Contrato.Taxa taxa in produto.Taxas)
                                    {
                                        Negocio.Taxa.SalvarTaxaProduto(lstProdutos.First(), entradaProdutos.UsuarioLogado, taxa);
                                    }
                                }
                            }
                            else
                            {
                                // Cria o produto
                                Dados.PRODUTO tProduto = new Dados.PRODUTO();
                                tProduto.ID_PRODUTO = Guid.NewGuid();
                                tProduto.COD_PRODUTO = BuscarCodigoProduto(entradaProdutos.EmpresaLogada.Id);
                                tProduto.COD_BARRAS = produto.CodigoBarras;
                                tProduto.NOME_PRODUTO = produto.Nome;
                                tProduto.COD_PRODUTO_FORNECEDOR = produto.CodigoFornecedor;
                                tProduto.ID_FORNECEDOR = produto.Fornecedor.Id;
                                tProduto.NUM_QUANTIDADE = produto.Quantidade;
                                tProduto.NUM_VALOR = produto.ValorBase;
                                tProduto.NUM_VALOR_ATACADO = produto.ValorPercentagemAtacado;
                                tProduto.NUM_VALOR_VAREJO = produto.ValorPercentagemVarejo;
                                tProduto.NCM_PRODUTO = produto.Ncm;
                                tProduto.BOL_ATIVO = produto.Ativo;
                                tProduto.DATA_ATUALIZACAO = DateTime.Now;
                                tProduto.LOGIN_USUARIO = entradaProdutos.UsuarioLogado;

                                // Verifica se existe alguma taxa associada ao produto
                                if (produto.Fornecedor.Taxas != null)
                                {
                                    // Para cada taxa associada
                                    foreach (Contrato.Taxa taxa in produto.Fornecedor.Taxas)
                                    {
                                        Negocio.Taxa.SalvarTaxaProduto(tProduto, entradaProdutos.UsuarioLogado, taxa);
                                    }
                                }

                                context.AddToT_PRODUTO(tProduto);
                            }
                        }
                    }

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

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

            // retorna dos dados
            return retProduto;
        }
Exemplo n.º 13
0
        /// <summary>
        /// Método para salvar o produto
        /// </summary>
        /// <param name="entradaProduto">Objeto com os dados do produto</param>
        /// <returns>Contrato.RetornoProduto</returns>
        internal static Contrato.RetornoProduto SalvarProduto(Contrato.EntradaProduto entradaProduto)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoProduto retProduto = new Contrato.RetornoProduto();

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

            // Verifica se o usuário está autenticado
            if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
            {
                // Verifica se as informações do produto foram informadas
                string strValidacao = ValidarProdutoPreenchido(entradaProduto.Produto);

                // Se existe algum erro
                if (strValidacao.Length > 0)
                {
                    retProduto.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO;
                    retProduto.Mensagem = strValidacao;
                }
                else
                {
                    // Loga no banco de dados
                    Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();
                    context.ContextOptions.LazyLoadingEnabled = true;

                    // Busca o produto no banco
                    List<Dados.PRODUTO> lstProdutos = (from p in context.T_PRODUTO
                                                       where (p.COD_PRODUTO == entradaProduto.Produto.Codigo
                                                          || (entradaProduto.Novo == null && entradaProduto.Produto.Id == p.ID_PRODUTO)
                                                          || (entradaProduto.Novo.Value == true && p.COD_PRODUTO_FORNECEDOR == entradaProduto.Produto.CodigoFornecedor && p.COD_PRODUTO_FORNECEDOR != string.Empty && p.ID_FORNECEDOR == entradaProduto.Produto.Fornecedor.Id))
                                                       select p).ToList();

                    // Verifica se foi encontrado algum registro
                    if (lstProdutos.Count > 0 && entradaProduto.Novo != null && (bool)entradaProduto.Novo)
                    {
                        // Preenche o objeto de retorno
                        retProduto.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO;
                        retProduto.Mensagem = string.Format("O produto de código '{0}' já existe!", lstProdutos.First().COD_PRODUTO);
                    }
                    else
                    {
                        // Se existe o produto
                        if (lstProdutos.Count > 0)
                        {
                            // Atualiza o produto
                            lstProdutos.First().NOME_PRODUTO = entradaProduto.Produto.Nome;
                            lstProdutos.First().COD_BARRAS = entradaProduto.Produto.CodigoBarras;
                            lstProdutos.First().NUM_QUANTIDADE = entradaProduto.Produto.Quantidade;
                            lstProdutos.First().NUM_VALOR = entradaProduto.Produto.ValorBase;
                            lstProdutos.First().NUM_VALOR_ATACADO = entradaProduto.Produto.ValorPercentagemAtacado;
                            lstProdutos.First().NUM_VALOR_VAREJO = entradaProduto.Produto.ValorPercentagemVarejo;
                            lstProdutos.First().COD_PRODUTO_FORNECEDOR = entradaProduto.Produto.CodigoFornecedor;
                            lstProdutos.First().ID_FORNECEDOR = entradaProduto.Produto.Fornecedor.Id;
                            lstProdutos.First().NCM_PRODUTO = entradaProduto.Produto.Ncm;
                            lstProdutos.First().BOL_ATIVO = entradaProduto.Produto.Ativo;
                            lstProdutos.First().DATA_ATUALIZACAO = DateTime.Now;
                            lstProdutos.First().LOGIN_USUARIO = entradaProduto.UsuarioLogado;

                            // Apaga todas as taxas que estão relacionados
                            while (lstProdutos.First().T_PRODUTO_TAXA.Count > 0)
                            {
                                context.T_PRODUTO_TAXA.DeleteObject(lstProdutos.First().T_PRODUTO_TAXA.First());
                            }

                            // Verifica se existe alguma taxa associada ao produto
                            if (entradaProduto.Produto.Taxas != null)
                            {
                                // Para cada taxa associada
                                foreach (Contrato.Taxa taxa in entradaProduto.Produto.Taxas)
                                {
                                    Negocio.Taxa.SalvarTaxaProduto(lstProdutos.First(), entradaProduto.UsuarioLogado, taxa);
                                }
                            }

                            // Apaga todas as unidades de medidas que estão relacionados
                            while (lstProdutos.First().T_PRODUTO_UNIDADE_MEDIDA.Count > 0)
                            {
                                context.T_PRODUTO_UNIDADE_MEDIDA.DeleteObject(lstProdutos.First().T_PRODUTO_UNIDADE_MEDIDA.First());
                            }

                            // Verifica se existe alguma unidade de medida associado ao produto
                            if (entradaProduto.Produto.UnidadeMedidas != null)
                            {
                                // Para cada taxa associada
                                foreach (Contrato.UnidadeMedida unidadeMedida in entradaProduto.Produto.UnidadeMedidas)
                                {
                                    Negocio.UnidadeMedida.SalvarUnidadeMedidaProduto(lstProdutos.First(), entradaProduto.UsuarioLogado, unidadeMedida);
                                }
                            }
                        }
                        else
                        {
                            // Recupera o código do produto
                            string codigoProduto = string.Empty;
                            if (entradaProduto.Produto.Codigo != string.Empty)
                                codigoProduto = entradaProduto.Produto.Codigo;
                            else
                            {
                                System.Data.Objects.ObjectParameter objCodigoProduto = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32));
                                context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_PRODUTO, entradaProduto.EmpresaLogada.Id, objCodigoProduto);
                                codigoProduto = Util.RecuperaCodigo((int)objCodigoProduto.Value, Contrato.Constantes.TIPO_COD_PRODUTO);
                            }

                            // Cria o produto
                            Dados.PRODUTO tProduto = new Dados.PRODUTO();
                            tProduto.ID_PRODUTO = Guid.NewGuid();
                            tProduto.COD_PRODUTO = codigoProduto;
                            tProduto.COD_BARRAS = entradaProduto.Produto.CodigoBarras;
                            tProduto.NOME_PRODUTO = entradaProduto.Produto.Nome;
                            tProduto.COD_PRODUTO_FORNECEDOR = entradaProduto.Produto.CodigoFornecedor;
                            tProduto.ID_FORNECEDOR = entradaProduto.Produto.Fornecedor.Id;
                            tProduto.NCM_PRODUTO = entradaProduto.Produto.Ncm;
                            tProduto.NUM_VALOR = entradaProduto.Produto.ValorBase;
                            tProduto.NUM_VALOR_ATACADO = entradaProduto.Produto.ValorPercentagemAtacado;
                            tProduto.NUM_VALOR_VAREJO = entradaProduto.Produto.ValorPercentagemVarejo;
                            tProduto.NUM_QUANTIDADE = entradaProduto.Produto.Quantidade;
                            tProduto.BOL_ATIVO = entradaProduto.Produto.Ativo;
                            tProduto.DATA_ATUALIZACAO = DateTime.Now;
                            tProduto.LOGIN_USUARIO = entradaProduto.UsuarioLogado;

                            // Verifica se existe alguma taxa associada ao produto
                            if (entradaProduto.Produto.Taxas != null)
                            {
                                // Para cada taxa associada
                                foreach (Contrato.Taxa taxa in entradaProduto.Produto.Taxas)
                                {
                                    Negocio.Taxa.SalvarTaxaProduto(tProduto, entradaProduto.UsuarioLogado, taxa);
                                }
                            }

                            // Verifica se existe alguma unidade de medida associado ao produto
                            if (entradaProduto.Produto.UnidadeMedidas != null)
                            {
                                // Para cada taxa associada
                                foreach (Contrato.UnidadeMedida unidadeMedida in entradaProduto.Produto.UnidadeMedidas)
                                {
                                    Negocio.UnidadeMedida.SalvarUnidadeMedidaProduto(lstProdutos.First(), entradaProduto.UsuarioLogado, unidadeMedida);
                                }
                            }

                            context.AddToT_PRODUTO(tProduto);
                        }

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

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

            // retorna dos dados
            return retProduto;
        }
Exemplo n.º 14
0
        /// <summary>
        /// Método para salvar os item do pedido
        /// </summary>
        /// <param name="ItemPedido">Objeto com os dados do item</param>
        /// <returns>Contrato.RetornoItem</returns>
        internal static Contrato.RetornoItemPedido SalvarItemPedidoPedido(Dados.PEDIDO Pedido, string UsuarioLogado, Contrato.ItemPedido ItemPedido)
        {
            // Objeto que recebe o retorno do método
            Contrato.RetornoItemPedido retItemPedido = new Contrato.RetornoItemPedido();

            // Loga no banco de dados
            Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS();

            // Cria o item
            Dados.ITEM_PEDIDO tItemPedido = new Dados.ITEM_PEDIDO()
            {
                ID_ITEM_PEDIDO = Guid.NewGuid(),
                ID_PEDIDO = Pedido.ID_PEDIDO,
                NUM_QUANTIDADE = ItemPedido.Quantidade,
                NUM_VALOR = ItemPedido.Valor,
                NUM_DESCONTO = ItemPedido.ValorDesconto,
                LOGIN_USUARIO = UsuarioLogado,
                DATA_ATUALIZACAO = DateTime.Now
            };

            if (ItemPedido.Produto != null)
            {
                tItemPedido.ID_PRODUTO = ItemPedido.Produto.Id;
                if (ItemPedido.UnidadeMedida != null)
                    tItemPedido.ID_UNIDADE_MEDIDA = ItemPedido.UnidadeMedida.Id;

                // Verifica se o pedido foi aprovado
                if (Pedido.T_ESTADO_PEDIDO != null && Pedido.T_ESTADO_PEDIDO.COD_ESTADO_PEDIDO == string.Format("0{0}", (int)Contrato.Enumeradores.EstadoPedido.Aprovado))
                {
                    // Atualiza a quantidade de produtos
                    if (ItemPedido.UnidadeMedida != null && ItemPedido.UnidadeMedida.Id != Guid.Empty)
                    {
                        Contrato.UnidadeMedida uMedida = ItemPedido.Produto.UnidadeMedidas.Where(um => um.Id == ItemPedido.UnidadeMedida.Id).FirstOrDefault();
                        if (uMedida != null)
                        {
                            uMedida.Quantidade = uMedida.Quantidade + ItemPedido.Quantidade;
                            context.T_PRODUTO.Where(p => p.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault().NUM_VALOR = ItemPedido.Valor / uMedida.QuantidadeItens;
                            context.T_PRODUTO_UNIDADE_MEDIDA.Where(pum => pum.ID_UNIDADE_MEDIDA == uMedida.Id && pum.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault().NUM_QUANTIDADE = uMedida.Quantidade;
                        }
                    }
                    else
                    {
                        ItemPedido.Produto.Quantidade = ItemPedido.Produto.Quantidade + ItemPedido.Quantidade;
                        Dados.PRODUTO objProduto = context.T_PRODUTO.Where(p => p.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault();
                        objProduto.NUM_QUANTIDADE = ItemPedido.Quantidade;
                        objProduto.NUM_VALOR = ItemPedido.Valor;
                    }
                }
            }

            Pedido.T_ITEM_PEDIDO.Add(tItemPedido);

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

            // Preenche o objeto de retorno
            retItemPedido.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO;

            // retorna dos dados
            return retItemPedido;
        }