Beispiel #1
0
        public async Task <PedidoItemModel> BuscaItemPorIdItem(int id_item)
        {
            if (id_item == 0)
            {
                return(null);
            }
            else
            {
                string url = Uri.EscapeUriString(string.Format("http://mrsistemas.net/grupo_mr_api/api/PedidoItem/RetornaItemPorIdItem?id_item={0}", id_item));

                _client = new HttpClient();
                var response = await _client.GetAsync(url);

                if (response.StatusCode == HttpStatusCode.NotFound)
                {
                    _pedidoItem = new PedidoItemModel();
                }
                else
                {
                    var content = await response.Content.ReadAsStringAsync();

                    var pedidoitem = JsonConvert.DeserializeObject <PedidoItemModel>(content);
                    _pedidoItem = new PedidoItemModel();
                    _pedidoItem = (PedidoItemModel)pedidoitem;
                }
                return(_pedidoItem);
            }
        }
Beispiel #2
0
        public async Task <int> Incluir(PedidoViewModel pedidoView)
        {
            try
            {
                PedidoModel pedidox = new PedidoModel();


                pedidox.ClienteId = pedidoView.ClienteId;
                foreach (var item in pedidoView.PedidoItem)
                {
                    PedidoItemModel pedidoItem = new PedidoItemModel();

                    pedidoItem.ProdutoId     = item.ProdutoId;
                    pedidoItem.Quantidade    = item.Quantidade;
                    pedidoItem.Referencia    = item.Referencia;
                    pedidoItem.ValorUnitario = item.ValorUnitario;

                    pedidox.PedidoItem.Add(pedidoItem);
                }



                if (!pedidox.PedidoValido())
                {
                    throw new Exception("Pedido não contempla quantidade necessária ou máximo permitido");
                }


                if (pedidox.ClienteId.HasValue)
                {
                    ClienteModel clienteExiste = await _clienteRepositorio.GetById(pedidox.ClienteId.Value);

                    pedidox.ClienteId  = clienteExiste.ClienteId;
                    pedidox.EnderecoId = clienteExiste.EnderecoId;
                }

                else
                {
                    pedidox.Endereco             = new EnderecoModel();
                    pedidox.Endereco.Logradouro  = pedidoView.Logradouro;
                    pedidox.Endereco.Cep         = pedidoView.Cep;
                    pedidox.Endereco.Numero      = pedidoView.Numero;
                    pedidox.Endereco.Complemento = pedidoView.Complemento;
                    pedidox.Endereco.Bairro      = pedidoView.Bairro;
                    pedidox.Endereco.Cidade      = pedidoView.Cidade;
                    pedidox.Endereco.Estado      = pedidoView.Estado;
                }



                await _pedidoRepositorio.Add(pedidox);

                return(pedidox.PedidoId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ActionResult PedidoDetalhe(int idPedido)
        {
            var pedidoService = new PedidoService(new ContextMercadOn());
            var model         = new PedidoItemModel();

            model.Itens = pedidoService.BuscarPedidoDetalhe(idPedido);

            return(View(model));
        }
Beispiel #4
0
        public async void DeletarItem(object sender, EventArgs e)
        {
            try
            {
                if (!CrossConnectivity.Current.IsConnected)
                {
                    await DisplayAlert("Alerta!", "Sem conexão com à Internet.", "OK");

                    return;
                }
                var answer = await DisplayAlert("Alerta!", "Deseja excluir o item selecionado?", "Sim", "Não");

                if (answer)
                {
                    var             item = (Xamarin.Forms.Button)sender;
                    PedidoItemModel lst  = (from itm in pItem.Items
                                            where itm.IdItem.ToString() == item.CommandParameter.ToString()
                                            select itm).FirstOrDefault <PedidoItemModel>();
                    //pItem.Items.Remove(lst);
                    Item = new PedidoItemService();
                    var deletou = await Item.DeletaPedidoItem(Convert.ToInt32(item.CommandParameter));

                    List <PedidoItemModel> items = new List <PedidoItemModel>();
                    Item  = new PedidoItemService();
                    items = await Item.BuscaItemPorIdPedido(GlobalVariables.GlobalPedido.IdPedido);

                    if (items.Count > 0)
                    {
                        ped_items.Clear();
                        foreach (PedidoItemModel itm in items)
                        {
                            ped_items.Add(itm);
                        }
                        CarregaItensPedido(items);
                        CalculaQtdItemPedido();
                        CalculaVlrPedido();
                        CalculaDescPedido();
                        CalculaTotalPedido();
                    }
                    if (deletou > 0)
                    {
                        await DisplayAlert("Alerta!", "Item deletado com sucesso.", "OK");
                    }
                    else
                    {
                        await DisplayAlert("Alerta!", "Falha ao excluir item. Tente novamente.", "OK");
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Beispiel #5
0
        public int InserirPedidoItem(PedidoItemModel pedidoItem)
        {
            var metodo     = "api/pedidoItem/";
            var objeto     = ObjetoToJson(pedidoItem);
            var retornoApi = ChamadaPost(metodo, objeto);

            if (retornoApi.Status == HttpStatusCode.OK)
            {
                pedidoItem = JsonConvert.DeserializeObject <PedidoItemModel>(retornoApi.Objeto);
            }

            return(pedidoItem.Id);
        }
Beispiel #6
0
 private void CalculaTotalPedido()
 {
     try
     {
         pItem = new ItemList(ped_items);
         var i = new PedidoItemModel
         {
             ValorTotal = pItem.Items.Sum(it => (it.ValorProduto - it.ValorDesconto) * it.Quantidade),
         };
         lblTotal.Text = i.ValorTotal.ToString();
     }
     catch (Exception)
     {
     }
 }
Beispiel #7
0
 private void CalculaDescPedido()
 {
     try
     {
         pItem = new ItemList(ped_items);
         var i = new PedidoItemModel
         {
             ValorDesconto = pItem.Items.Sum(it => it.ValorDesconto),
         };
         lblDesconto.Text = i.ValorDesconto.ToString();
     }
     catch (Exception)
     {
     }
 }
Beispiel #8
0
 private void CalculaVlrPedido()
 {
     try
     {
         pItem = new ItemList(ped_items);
         var i = new PedidoItemModel
         {
             ValorProduto = pItem.Items.Sum(it => it.ValorProduto * it.Quantidade),
         };
         lblValor.Text = i.ValorProduto.ToString();
     }
     catch (Exception)
     {
     }
 }
Beispiel #9
0
 private void CalculaQtdItemPedido()
 {
     try
     {
         pItem = new ItemList(ped_items);
         var i = new PedidoItemModel
         {
             Quantidade = pItem.Items.Sum(it => it.Quantidade),
         };
         lblQuantidade.Text = i.Quantidade.ToString();
     }
     catch (Exception)
     {
     }
 }
Beispiel #10
0
        public async Task <Boolean> AtualizaPedidoItem(PedidoItemModel item)
        {
            if (item == null)
            {
                return(false);
            }
            else
            {
                string url = string.Concat("http://mrsistemas.net/grupo_mr_api/api/PedidoItem/AtualizaPedidoItem",
                                           "?IdItem=" + item.IdItem.ToString(),
                                           "&IdPedido=" + item.IdPedido.ToString(),
                                           "&IdFornecedor=" + item.IdFornecedor.ToString(),
                                           "&IdProduto=" + item.IdProduto.ToString(),
                                           "&NomeProduto=" + item.NomeProduto.ToString(),
                                           "&CodigoProduto=" + item.CodigoProduto.ToString(),
                                           "&Quantidade=" + item.Quantidade.ToString(),
                                           "&ValorProduto=" + item.ValorProduto.ToString(),
                                           "&PercentualDesconto=" + item.PercentualDesconto.ToString(),
                                           "&ValorDesconto=" + item.ValorDesconto.ToString(),
                                           "&PercentualDescontoDist=" + item.PercentualDescontoDist.ToString(),
                                           "&ValorDescontoDist=" + item.ValorDescontoDist.ToString(),
                                           "&IdCampanha=" + item.IdCampanha.ToString(),
                                           "&Obs=" + item.Obs);
                _client = new HttpClient();
                var serializedProduto = JsonConvert.SerializeObject(item);
                var content           = new StringContent(serializedProduto, Encoding.UTF8, "application/json");
                var response          = await _client.PostAsync(url, content);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Beispiel #11
0
        public async Task <Int32> ExisteItemNoPedido(int id_pedido, int id_produto)
        {
            if (id_pedido == 0)
            {
                return(0);
            }
            else
            {
                string url = Uri.EscapeUriString(string.Format("http://mrsistemas.net/grupo_mr_api/api/PedidoItem/RetornaItemPorPedido?id_pedido={0}&id_produto={1}", id_pedido, id_produto));

                _client = new HttpClient();
                var response = await _client.GetAsync(url);

                if (response.StatusCode == HttpStatusCode.NotFound)
                {
                    return(0);
                }
                else
                {
                    string content = await response.Content.ReadAsStringAsync();

                    JObject output = JObject.Parse(content);
                    _pedidoItem = new PedidoItemModel();

                    _pedidoItem.IdItem = (int)output.SelectToken("IdItem");

                    if (_pedidoItem.IdItem > 0)
                    {
                        return(_pedidoItem.IdItem);
                    }
                    else
                    {
                        return(0);
                    }
                }
            }
        }
        public ActionResult Index(CheckoutModel model)
        {
            if (ModelState.IsValid)
            {
                var apiServico = new ApiServico();

                // gravar Pedido
                var pedido = new PedidoModel
                {
                    IdCliente          = model.IdCliente,
                    IdFormaPagamento   = model.IdFormaPagamento,
                    UsuarioAtualizacao = "LEONARDO",
                    DataAtualizacao    = DateTime.Now,
                    Valor = 3000
                };

                var idPedido = apiServico.InserirPedido(pedido);

                // gravar PedidoProduto (para cada produto)
                foreach (var item in Carrinho.Itens)
                {
                    for (int i = 0; i < item.Quantidade; i++)
                    {
                        var pedidoItem = new PedidoItemModel
                        {
                            IdPedido            = idPedido,
                            IdProdutoFornecedor = item.IdProduto,
                            IdFornecedor        = item.IdFornecedor,
                            NomeProduto         = item.Nome,
                            Imagem             = string.Empty,
                            ValorFornecedor    = item.ValorFornecedor,
                            ValorVenda         = item.ValorVenda,
                            UsuarioAtualizacao = "LEONARDO"
                        };

                        var idPedidoProduto = apiServico.InserirPedidoItem(pedidoItem);
                    }
                }

                // gravar Status do Pedido
                var statusPedido = new StatusPedidoModel
                {
                    IdPedido       = idPedido,
                    IdStatusPedido = 1,
                    DescStatus     = "Pedido Recebido",
                    DataInclusao   = DateTime.Now
                };

                var idStatusPedido = apiServico.InserirStatusPedido(statusPedido);


                // Zerar Carrinho
                Session["SessionCarrinho"] = null;

                var sucesso = new PedidoFinalizadoModel();


                return(View("Sucesso", sucesso));
            }
            else
            {
                model.IdCliente = Login.Id;
                model.Carrinho  = Carrinho;
                return(View(model));
            }
        }
Beispiel #13
0
        private async void InserirItem(object sender, EventArgs e)
        {
            try
            {
                if (!CrossConnectivity.Current.IsConnected)
                {
                    await DisplayAlert("Alerta!", "Sem conexão com à Internet.", "OK");

                    return;
                }
                if (quantidade == 0)
                {
                    quantidade = 1;
                }
                ProdutosService      prodService = new ProdutosService();
                List <ProdutosModel> prod        = new List <ProdutosModel>();

                if (quantidade == 0)
                {
                    PedidoItemService novoItem = new PedidoItemService();
                    var answer = await DisplayAlert("Alerta!", "Deseja excluir o item" + codigo + "? ", "Sim", "Não");

                    if (answer)
                    {
                        var deletou = await novoItem.DeletaPedidoItem(GlobalVariables.GlobalPedido.IdPedido, codigo);

                        if (deletou > 0)
                        {
                            await DisplayAlert("Alerta!", "Item deletado com sucesso.", "OK");
                        }
                        else
                        {
                            await DisplayAlert("Alerta!", "Falha ao excluir item. Tente novamente.", "OK");
                        }
                    }
                    ECcodigo.Text        = "";
                    ECqtde.Text          = "";
                    lblItemDigitado.Text = "";
                    ECcodigo.Focus();
                    return;
                }
                prod = await prodService.BuscaProdutosPorCodigo(codigo, GlobalVariables.campanha);

                if (prod != null && prod.Count > 0)
                {
                    PedidoItemService novoItem = new PedidoItemService();
                    PedidoItemModel   item     = new PedidoItemModel();

                    Int32   existente = 0;
                    Boolean novo      = false;

                    item.IdPedido               = GlobalVariables.GlobalPedido.IdPedido;
                    item.IdFornecedor           = prod[0].IdFornecedor;
                    item.IdProduto              = prod[0].IdProduto;
                    item.NomeProduto            = prod[0].NomeProduto;
                    item.CodigoProduto          = prod[0].Codigo;
                    item.Quantidade             = quantidade;
                    item.ValorProduto           = prod[0].Preco;
                    item.PercentualDesconto     = (decimal)GlobalVariables.percDesconto;
                    item.PercentualDescontoDist = prod[0].DescDist;
                    item.ValorDesconto          = item.ValorProduto * (item.PercentualDesconto / 100);
                    item.ValorDescontoDist      = item.ValorProduto * (item.PercentualDescontoDist / 100);
                    item.Obs        = "";
                    item.IdCampanha = GlobalVariables.campanha;

                    existente = await novoItem.ExisteItemNoPedido(item.IdPedido, item.IdProduto);

                    if (existente > 0)
                    {
                        this.IsBusy = true;
                        item.IdItem = existente;
                        await novoItem.AtualizaPedidoItem(item);

                        ped_items.Add(item);
                        this.IsBusy = false;
                    }
                    else
                    {
                        this.IsBusy = true;
                        novo        = await novoItem.InserePedidoItem(item);

                        ped_items.Add(item);
                        this.IsBusy = false;
                    }
                    if (existente > 0 || novo == true)
                    {
                        CalculaQtdItemPedido();
                        CalculaVlrPedido();
                        CalculaDescPedido();
                        CalculaTotalPedido();

                        ECcodigo.Text        = "";
                        ECqtde.Text          = "";
                        lblItemDigitado.Text = "";
                        ECcodigo.Focus();

                        List <PedidoItemModel> items = await Item.BuscaItemPorIdPedido(GlobalVariables.GlobalPedido.IdPedido);

                        {
                            if (items.Count > 0)
                            {
                                CarregaItensPedido(items);
                                CalculaQtdItemPedido();
                                CalculaVlrPedido();
                                CalculaDescPedido();
                                CalculaTotalPedido();
                            }
                        }
                    }
                }
                else
                {
                    ECcodigo.Text        = "";
                    ECqtde.Text          = "";
                    lblItemDigitado.Text = "";
                    ECcodigo.Focus();
                }
            }
            catch (Exception)
            {
            }
        }