/// <summary>
 /// Create a new PRODUTO object.
 /// </summary>
 /// <param name="iD_PRODUTO">Initial value of the ID_PRODUTO property.</param>
 /// <param name="iD_FORNECEDOR">Initial value of the ID_FORNECEDOR property.</param>
 /// <param name="nOME_PRODUTO">Initial value of the NOME_PRODUTO property.</param>
 /// <param name="bOL_ATIVO">Initial value of the BOL_ATIVO property.</param>
 /// <param name="dATA_ATUALIZACAO">Initial value of the DATA_ATUALIZACAO property.</param>
 /// <param name="lOGIN_USUARIO">Initial value of the LOGIN_USUARIO property.</param>
 /// <param name="nUM_VALOR">Initial value of the NUM_VALOR property.</param>
 /// <param name="nUM_QUANTIDADE">Initial value of the NUM_QUANTIDADE property.</param>
 public static PRODUTO CreatePRODUTO(global::System.Guid iD_PRODUTO, global::System.Guid iD_FORNECEDOR, global::System.String nOME_PRODUTO, global::System.Boolean bOL_ATIVO, global::System.DateTime dATA_ATUALIZACAO, global::System.String lOGIN_USUARIO, global::System.Decimal nUM_VALOR, global::System.Int32 nUM_QUANTIDADE)
 {
     PRODUTO pRODUTO = new PRODUTO();
     pRODUTO.ID_PRODUTO = iD_PRODUTO;
     pRODUTO.ID_FORNECEDOR = iD_FORNECEDOR;
     pRODUTO.NOME_PRODUTO = nOME_PRODUTO;
     pRODUTO.BOL_ATIVO = bOL_ATIVO;
     pRODUTO.DATA_ATUALIZACAO = dATA_ATUALIZACAO;
     pRODUTO.LOGIN_USUARIO = lOGIN_USUARIO;
     pRODUTO.NUM_VALOR = nUM_VALOR;
     pRODUTO.NUM_QUANTIDADE = nUM_QUANTIDADE;
     return pRODUTO;
 }
Esempio n. 2
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;
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the T_PRODUTO EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToT_PRODUTO(PRODUTO pRODUTO)
 {
     base.AddObject("T_PRODUTO", pRODUTO);
 }
Esempio n. 4
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;
        }