コード例 #1
0
        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"));
        }
コード例 #2
0
        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));
        }