コード例 #1
0
        /// <summary>
        /// Retorna os dados estruturais de um componente isolado
        /// </summary>
        /// <param name="filial"></param>
        /// <param name="codigo"></param>
        /// <returns></returns>
        public async Task <JsonResult> GetInformationByCodigo(string filial, string codigo, string formula)
        {
            codigo = codigo.PadRight(15, ' ');
            EstruturaProduto estru = await produtoDAO.GetDadosDaEstruturaAsync(filial, codigo.Substring(0, 15));

            return(Json(new { estrutura = estru, success = true }));
        }
コード例 #2
0
        public EstruturaProduto Put([FromBody] Models.Produto produto)
        {
            EstruturaProduto estruturaProduto = new EstruturaProduto();

            try
            {
                BaseProdutos baseProdutos = new BaseProdutos();

                if (produto == null)
                {
                    throw new Exception("o produto a ser alterado não pode ser nulo");
                }


                if (produto.idProduct == 0)
                {
                    throw new Exception("Favor selecionar um produto!");
                }

                List <Models.Produto> listProdutos = new List <Models.Produto>();

                string ListaProdutosSession = HttpContext.Session.GetString("Produtos");

                if (string.IsNullOrEmpty(ListaProdutosSession))
                {
                    listProdutos = baseProdutos.PopularProdutos();
                }
                else
                {
                    listProdutos = JsonConvert.DeserializeObject <List <Models.Produto> >(ListaProdutosSession);
                }

                Models.Produto produtoAlterado = listProdutos.Where(x => x.idProduct == produto.idProduct).SingleOrDefault();

                if (produtoAlterado == null)
                {
                    throw new Exception("produto selecionado não existe");
                }

                listProdutos.Remove(produtoAlterado);
                listProdutos.Add(produto);

                estruturaProduto.Produtos = listProdutos;

                string listaProdutos = JsonConvert.SerializeObject(estruturaProduto.Produtos);

                HttpContext.Session.SetString("Produtos", listaProdutos);

                return(estruturaProduto);
            }
            catch (Exception ex)
            {
                estruturaProduto.isError       = true;
                estruturaProduto.descricaoErro = ex.Message;

                return(estruturaProduto);
            }
        }
コード例 #3
0
        public EstruturaProduto Delete(int idProduto)
        {
            EstruturaProduto estruturaProduto = new EstruturaProduto();

            try
            {
                BaseProdutos baseProdutos = new BaseProdutos();

                if (idProduto == 0)
                {
                    //Retornar produto que contenha o id especificado

                    throw new Exception("produto selecionado não existe");
                }

                List <Models.Produto> listProdutos = new List <Models.Produto>();

                string ListaProdutosSession = HttpContext.Session.GetString("Produtos");

                if (string.IsNullOrEmpty(ListaProdutosSession))
                {
                    listProdutos = baseProdutos.PopularProdutos();
                }
                else
                {
                    listProdutos = JsonConvert.DeserializeObject <List <Models.Produto> >(ListaProdutosSession);
                }

                Models.Produto produtoRemovido = listProdutos.Where(x => x.idProduct == idProduto).SingleOrDefault();

                if (produtoRemovido == null)
                {
                    throw new Exception("produto selecionado não existe");
                }

                listProdutos.Remove(produtoRemovido);

                estruturaProduto.Produtos = listProdutos;

                string listaProdutos = JsonConvert.SerializeObject(estruturaProduto.Produtos);

                HttpContext.Session.SetString("Produtos", listaProdutos);

                return(estruturaProduto);
            }
            catch (Exception ex)
            {
                estruturaProduto.isError       = true;
                estruturaProduto.descricaoErro = ex.Message;

                return(estruturaProduto);
            }
        }
コード例 #4
0
        public EstruturaProduto Get(int?idProduto)
        {
            EstruturaProduto estruturaProduto = new EstruturaProduto();

            try
            {
                BaseProdutos baseProdutos = new BaseProdutos();

                List <Models.Produto> listProdutos = new List <Models.Produto>();

                string ListaProdutosSession = HttpContext.Session.GetString("Produtos");

                if (string.IsNullOrEmpty(ListaProdutosSession))
                {
                    listProdutos = baseProdutos.PopularProdutos();
                }
                else
                {
                    listProdutos = JsonConvert.DeserializeObject <List <Models.Produto> >(ListaProdutosSession);
                }

                //Criar método para popular lista de produtos

                if (idProduto.HasValue)
                {
                    //Retornar produto que contenha o id especificado
                    estruturaProduto.Produtos = listProdutos.Where(x => x.idProduct == idProduto).ToList();

                    if (estruturaProduto.Produtos.Count == 0)
                    {
                        throw new Exception("Produto Selecionado não Existe");
                    }

                    return(estruturaProduto);
                }

                estruturaProduto.Produtos = listProdutos;

                string listaProdutos = JsonConvert.SerializeObject(listProdutos);

                HttpContext.Session.SetString("Produtos", listaProdutos);

                return(estruturaProduto);
            }
            catch (Exception ex)
            {
                estruturaProduto.isError       = true;
                estruturaProduto.descricaoErro = ex.Message;

                return(estruturaProduto);
            }
        }
コード例 #5
0
        public EstruturaProduto Post(Models.Produto produto)
        {
            EstruturaProduto estruturaProduto = new EstruturaProduto();

            try
            {
                BaseProdutos baseProdutos = new BaseProdutos();

                if (produto == null)
                {
                    //Erro
                    throw new Exception("o produto a ser inserido não pode ser nulo");
                }
                //Realizar outras validações

                List <Models.Produto> listProdutos = new List <Models.Produto>();

                string ListaProdutosSession = HttpContext.Session.GetString("Produtos");

                if (string.IsNullOrEmpty(ListaProdutosSession))
                {
                    listProdutos = baseProdutos.PopularProdutos();
                }
                else
                {
                    listProdutos = JsonConvert.DeserializeObject <List <Models.Produto> >(ListaProdutosSession);
                }

                if (listProdutos.Where(x => x.idProduct == produto.idProduct).SingleOrDefault() != null)
                {
                    throw new Exception("Já existe um produto com esse Identificador registrado");
                }

                listProdutos.Add(produto);

                estruturaProduto.Produtos = listProdutos;

                string listaProdutos = JsonConvert.SerializeObject(estruturaProduto.Produtos);

                HttpContext.Session.SetString("Produtos", listaProdutos);

                return(estruturaProduto);
            }
            catch (Exception ex)
            {
                estruturaProduto.isError       = true;
                estruturaProduto.descricaoErro = ex.Message;

                return(estruturaProduto);
            }
        }
コード例 #6
0
        private EstruturaProduto APIListarProdutoPorID(int id)
        {
            using (var client = new HttpClient())
            {
                string endpoint = $"https://localhost:44383/api/Produto?idProduto=" + id;

                var response = client.GetAsync(endpoint).Result;

                var responseString = response.Content.ReadAsStringAsync().Result;

                EstruturaProduto estruturaProduto = Newtonsoft.Json.JsonConvert.DeserializeObject <EstruturaProduto>(responseString);

                if (!response.IsSuccessStatusCode)
                {
                    estruturaProduto.descricaoErro = "Erro ao listar Produtos";
                    estruturaProduto.isError       = true;
                }

                return(estruturaProduto);
            }
        }
コード例 #7
0
        /// <summary>
        /// Obtem a descrição do Produto buscando pelo código e Filial
        /// </summary>
        /// <param name="filial"></param>
        /// <param name="codigoProduto"></param>
        /// <returns></returns>
        public async Task <EstruturaProduto> GetDadosDaEstruturaAsync(string filial, string codigoProduto)
        {
            Produto          produto   = new Produto();
            EstruturaProduto estrutura = new EstruturaProduto();

            using (SqlCommand comando = conecxao.CreateCommand())
            {
                string query = String.Format("select B1_FILIAL,B1_TIPO," +
                                             " B1_DESC," +
                                             " B1_GRUPO,B1_UM, " +
                                             " ISNULL(Z06_CUSTO1,0) AS Z06_CUSTO1" +
                                             " from SB1010 SB1" +
                                             " LEFT JOIN Z06010 AS Z06 ON  Z06_PROD=B1_COD AND  Z06_FILIAL=B1_FILIAL" +
                                             " where" +
                                             " SB1.D_E_L_E_T_=''" +
                                             " AND B1_COD='{0}'" +
                                             " AND B1_FILIAL='{1}'", codigoProduto, filial);

                comando.CommandText = query;

                using (SqlDataReader leitor = await comando.ExecuteReaderAsync())
                {
                    while (leitor.Read())
                    {
                        estrutura.DescricaoComponente = leitor["B1_DESC"].ToString();
                        estrutura.Filial           = leitor["B1_FILIAL"].ToString();
                        estrutura.Tipo             = leitor["B1_TIPO"].ToString();
                        estrutura.Unidade          = leitor["B1_UM"].ToString();
                        estrutura.CustoMateriPrima = Convert.ToDouble(leitor["Z06_CUSTO1"]);
                    }
                }
                if (estrutura.Tipo == "PA")
                {
                    produto = await this.GetByCodigoAsync(codigoProduto, filial, this.LastFormula(codigoProduto, filial), 1);

                    estrutura.CustoMateriPrima = produto.GetCustoTotalNivelComRendimento(1);
                }
            }
            return(estrutura);
        }
コード例 #8
0
        public EstruturaProduto ListarProdutos()
        {
            EstruturaProduto estruturaProduto = new EstruturaProduto();

            try
            {
                estruturaProduto = APIListarProduto();

                if (estruturaProduto.isError.HasValue)
                {
                    throw new Exception(estruturaProduto.descricaoErro);
                }

                return(estruturaProduto);
            }
            catch (Exception ex)
            {
                estruturaProduto.isError       = true;
                estruturaProduto.descricaoErro = ex.Message;

                return(estruturaProduto);
            }
        }
コード例 #9
0
        public EstruturaVenda InserirProduto([FromBody] EstruturaEntradaCriarVenda entrada, int idVenda)
        {
            EstruturaVenda estruturaVenda = new EstruturaVenda();

            try
            {
                BaseVendas baseProdutos = new BaseVendas();

                if (entrada == null)
                {
                    throw new Exception("o produto a ser inserido não pode ser nulo");
                }


                if (idVenda == 0)
                {
                    throw new Exception("Favor selecionar uma venda!");
                }

                string ListaVendasSession = HttpContext.Session.GetString("Vendas");
                if (string.IsNullOrEmpty(ListaVendasSession))
                {
                    throw new Exception("Não há vendas Registradas");
                }
                else
                {
                    estruturaVenda.Vendas = JsonConvert.DeserializeObject <List <Models.Vendas> >(ListaVendasSession);
                }

                Models.Vendas VendaAlterada = estruturaVenda.Vendas.Where(x => x.idVenda == idVenda).SingleOrDefault();

                if (VendaAlterada == null)
                {
                    throw new Exception("A venda selecionada não existe");
                }

                foreach (var item in entrada.EntradaCriarVenda)
                {
                    EstruturaProduto estruturaProduto = APIListarProdutoPorID(item.idProduto);

                    Models.Produto produto = new Models.Produto();

                    produto.idProduct   = item.idProduto;
                    produto.productName = estruturaProduto.Produtos[0].productName;
                    produto.description = estruturaProduto.Produtos[0].description;
                    produto.cathegory   = estruturaProduto.Produtos[0].cathegory;
                    produto.price       = estruturaProduto.Produtos[0].price;
                    produto.quantidade  = item.quantidadeProdutos;

                    VendaAlterada.produtos.Add(produto);

                    VendaAlterada.valorTotal = VendaAlterada.valorTotal + estruturaProduto.Produtos[0].price * item.quantidadeProdutos;
                }

                string listaVendas = JsonConvert.SerializeObject(estruturaVenda.Vendas);

                HttpContext.Session.SetString("Vendas", listaVendas);

                return(estruturaVenda);
            }
            catch (Exception ex)
            {
                estruturaVenda.isError       = true;
                estruturaVenda.descricaoErro = ex.Message;

                return(estruturaVenda);
            }
        }
コード例 #10
0
        public EstruturaVenda Post(EstruturaEntradaCriarVenda entrada)
        {
            EstruturaVenda estruturaVenda = new EstruturaVenda();

            string ListaVendasSession = HttpContext.Session.GetString("Vendas");

            if (!string.IsNullOrEmpty(ListaVendasSession))
            {
                estruturaVenda.Vendas = JsonConvert.DeserializeObject <List <Models.Vendas> >(ListaVendasSession);
            }

            List <Models.Vendas> listVendas = new List <Models.Vendas>();

            try
            {
                if (entrada == null)
                {
                    //Erro
                    throw new Exception("A venda a ser criada não pode ser nula");
                }
                //Realizar outras validações

                Models.Vendas venda = new Models.Vendas();
                venda.produtos = new List <Models.Produto>();

                foreach (var item in entrada.EntradaCriarVenda)
                {
                    EstruturaProduto estruturaProduto = APIListarProdutoPorID(item.idProduto);

                    Models.Produto produto = new Models.Produto();

                    produto.idProduct   = item.idProduto;
                    produto.productName = estruturaProduto.Produtos[0].productName;
                    produto.description = estruturaProduto.Produtos[0].description;
                    produto.cathegory   = estruturaProduto.Produtos[0].cathegory;
                    produto.price       = estruturaProduto.Produtos[0].price;
                    produto.quantidade  = item.quantidadeProdutos;

                    venda.produtos.Add(produto);

                    venda.valorTotal = venda.valorTotal + estruturaProduto.Produtos[0].price * item.quantidadeProdutos;

                    if (!string.IsNullOrEmpty(ListaVendasSession))
                    {
                        List <Models.Vendas> Vendas = JsonConvert.DeserializeObject <List <Models.Vendas> >(ListaVendasSession);

                        venda.idVenda = 0;

                        foreach (var sale in Vendas)
                        {
                            if (sale.idVenda > venda.idVenda)
                            {
                                venda.idVenda = sale.idVenda;
                            }
                        }

                        venda.idVenda++;
                    }
                    else
                    {
                        venda.idVenda = 1;
                    }
                }

                estruturaVenda.Vendas.Add(venda);

                string listaVendas = JsonConvert.SerializeObject(estruturaVenda.Vendas);

                HttpContext.Session.SetString("Vendas", listaVendas);

                return(estruturaVenda);
            }
            catch (Exception ex)
            {
                estruturaVenda.isError       = true;
                estruturaVenda.descricaoErro = ex.Message;

                return(estruturaVenda);
            }
        }