public ActionResult Index(PesquisarPedidos obj) { if (ModelState.IsValid) { TempData["datas"] = string.Format("{0}|{1}", obj.filtros.dataInicial, obj.filtros.dataFinal); TempData["datas1"] = string.Format("{0}|{1}", obj.filtros.dataInicial, obj.filtros.dataFinal); var lista = _bll.ListarTodos(obj.filtros); return(View(lista)); } return(RedirectToAction("Index")); }
public string ExportarPedido(long id, string dataInicial, string dataFinal) { string idParametro = null; if (id > 0) { idParametro = id.ToString(); } PesquisarRequest filtros = new PesquisarRequest() { numero = idParametro, dataInicial = dataInicial, dataFinal = dataFinal }; PesquisarPedidos pedidoPesquisaApi = null; if (id.Equals(0) && dataInicial == null) { pedidoPesquisaApi = _bllPedidos.ListarTodos(null).FirstOrDefault(); } else { pedidoPesquisaApi = _bllPedidos.ListarTodos(filtros).FirstOrDefault(); } #region " - Pedidos - " LayoutArquivoPedidos layoutArquivoPedidos = new LayoutArquivoPedidos(); List <PedidoLayout> listaPedidos = new List <PedidoLayout>(); List <ProdutoLayout> listaProdutos = new List <ProdutoLayout>(); List <EnderecoLayout> listaEnderecos = new List <EnderecoLayout>(); if (pedidoPesquisaApi != null) { foreach (var pedido in pedidoPesquisaApi.retorno.pedidos) { try { //Se for igual a 0, ira retornar todos os pedidos ou entao retorna apenas o pedido selecionado if (id.Equals(0) || pedido.pedido.numero.Equals((int)id)) { ObterNotaFiscal notaFiscalDetalhe = _bllNotaFiscal.ObterNotaFiscalApi(pedido.pedido.id_nota_fiscal.ToString()); PedidoLayout pedidoLayout = new PedidoLayout(); pedidoLayout.idTiny = pedido.pedido.id; pedidoLayout.Numero = pedido.pedido.numero.ToString(); pedidoLayout.RazaoSocial = pedido.detalhes.retorno.pedido.cliente.nome; pedidoLayout.NomeFantasia = pedido.detalhes.retorno.pedido.cliente.nome_fantasia; pedidoLayout.Pessoa = pedido.detalhes.retorno.pedido.cliente.tipo_pessoa; if (pedido.detalhes.retorno.pedido.cliente.tipo_pessoa.Trim().ToUpper().Equals("J")) { pedidoLayout.CNPJ = pedido.detalhes.retorno.pedido.cliente.cpf_cnpj; } if (pedido.detalhes.retorno.pedido.cliente.tipo_pessoa.Trim().ToUpper().Equals("F")) { pedidoLayout.CPF = pedido.detalhes.retorno.pedido.cliente.cpf_cnpj; } pedidoLayout.IE = pedido.detalhes.retorno.pedido.cliente.ie; pedidoLayout.NumeroPedidoCliente = pedido.detalhes.retorno.pedido.numero_ordem_compra; pedidoLayout.NumeroNota = notaFiscalDetalhe.retorno.nota_fiscal.numero.ToString(); pedidoLayout.DataPedido = Convert.ToDateTime(pedido.pedido.data_pedido); pedidoLayout.ObsFaturamento = pedido.detalhes.retorno.pedido.obs; listaPedidos.Add(pedidoLayout); #region " - Produtos - " int contadorProduto = 0; foreach (var produto in pedido.detalhes.retorno.pedido.itens) { contadorProduto++; //incrementa um produto ProdutoLayout produtoLayout = new ProdutoLayout(); produtoLayout.idTiny = pedidoLayout.idTiny; produtoLayout.Item = contadorProduto.ToString(); produtoLayout.NumeroPedido = pedidoLayout.Numero; //produtoLayout.EAN = ; //<ToDo> Não localizamos o EAN var itemNota = notaFiscalDetalhe.retorno.nota_fiscal.itens.Find(p => p.item.descricao.Trim() == produto.item.descricao.Trim() && p.item.codigo.Trim() == produto.item.codigo.Trim()); if (itemNota != null) { produtoLayout.NCM = itemNota.item.ncm; } produtoLayout.CodigoProduto = produto.item.codigo; produtoLayout.DescricaoProduto = produto.item.descricao; produtoLayout.Quantidade = produto.item.quantidade.ToString(); produtoLayout.Unidade = produto.item.unidade; produtoLayout.ValorUnitarioVenda = produto.item.valor_unitario; produtoLayout.ValorUnitarioRetorno = produto.item.valor_unitario; listaProdutos.Add(produtoLayout); } #endregion #region " - Endereços - " EnderecoLayout enderecoLayout = new EnderecoLayout(); enderecoLayout.idTiny = pedidoLayout.idTiny; enderecoLayout.NumeroPedido = pedidoLayout.Numero; var cliente = pedido.detalhes.retorno.pedido.cliente; enderecoLayout.Telefone = cliente.fone; enderecoLayout.Email = cliente.email; //Endereço Principal enderecoLayout.Endereco = cliente.endereco; enderecoLayout.Numero = cliente.numero; enderecoLayout.Complemento = cliente.complemento; enderecoLayout.CEP = cliente.cep; enderecoLayout.Bairro = cliente.bairro; enderecoLayout.CodIBGE = _bllCep.ObterEnderecoCompleto(enderecoLayout.CEP).ibge; //Endereço Cobrança - repetir o endereço principal enderecoLayout.EnderecoCobranca = enderecoLayout.Endereco; enderecoLayout.NumeroCobranca = enderecoLayout.Numero; enderecoLayout.ComplementoCobranca = enderecoLayout.Complemento; enderecoLayout.CEPCobranca = enderecoLayout.CEP; enderecoLayout.BairroCobranca = enderecoLayout.Bairro; enderecoLayout.CodIBGECobranca = enderecoLayout.CodIBGE; listaEnderecos.Add(enderecoLayout); #endregion } } catch (Exception ex) //Try catch para capturar quando a API estoura as chamadas dela, e da um erro. { } } } #endregion layoutArquivoPedidos.listaPedidos = listaPedidos; layoutArquivoPedidos.listaProdutos = listaProdutos; layoutArquivoPedidos.listaEnderecos = listaEnderecos; return(this.ExportarPedido(layoutArquivoPedidos)); }