private PesquisarPedidos PesquisaPedidosApi(PesquisarRequest filtros) { var parametros = new Dictionary <string, object>(); if (filtros != null) { parametros = new Dictionary <string, object> { { "cliente", filtros.cliente }, { "cpf_cnpj", filtros.cpf_cnpj }, { "dataInicial", filtros.dataInicial }, { "dataFinal", filtros.dataFinal }, { "numeroEcommerce", filtros.numeroEcommerce }, { "numero", filtros.numero }, { "idVendedor", filtros.idVendedor }, { "nomeVendedor", filtros.nomeVendedor } }; } else { parametros = null; } IRestResponse response = GET_ApiTiny(MetodoApiEnum.PesquisaPedidos, parametros); return(JsonConvert.DeserializeObject <PesquisarPedidos>(response.Content)); }
public List <PesquisarNotaFiscal> ListarTodos(PesquisarRequest filtros) { var lista = new List <PesquisarNotaFiscal>(); var pesquisaNotaFiscal = this.PesquisaNotaFiscalApi(filtros); //Apenas considera as NF que tenham numero de pedido/ecommerce relacionado pesquisaNotaFiscal.retorno.notas_fiscais = pesquisaNotaFiscal.retorno.notas_fiscais.FindAll(p => p.nota_fiscal.numero_ecommerce != null).OrderByDescending(p => p.nota_fiscal.numero_ecommerce.Value).ToList(); //Se ocorreu sucesso na consulta a API, inclui o retorno da API na lista if (pesquisaNotaFiscal.retorno.status_processamento.Equals((int)StatusProcessamentoEnum.SolicitacaoProcessadaComSucesso)) { //Recupera os detalhes da Nota Fiscal for (int i = 0; i < pesquisaNotaFiscal.retorno.notas_fiscais.Count; i++) { pesquisaNotaFiscal.retorno.notas_fiscais[i].detalhes = this.ObterNotaFiscalApi(pesquisaNotaFiscal.retorno.notas_fiscais[i].nota_fiscal.id.ToString()); //Se ocorreu algum erro na consulta do detalhe da NF via API, seta o erro para ser exibido em tela if (!pesquisaNotaFiscal.retorno.notas_fiscais[i].detalhes.retorno.status_processamento.Equals((int)StatusProcessamentoEnum.SolicitacaoProcessadaComSucesso)) { foreach (var itemErro in pesquisaNotaFiscal.retorno.notas_fiscais[i].detalhes.retorno.erros) { pesquisaNotaFiscal.retorno.erros.Add(itemErro); } } } } lista.Add(pesquisaNotaFiscal); return(lista); }
public List <PesquisarPedidos> ListarTodos(PesquisarRequest filtros) { var lista = new List <PesquisarPedidos>(); var pesquisaPedido = this.PesquisaPedidosApi(filtros); //Se ocorreu sucesso na consulta a API, inclui o retorno da API na lista if (pesquisaPedido.retorno.status_processamento.Equals((int)StatusProcessamentoEnum.SolicitacaoProcessadaComSucesso)) { //Recupera os detalhes do pedido for (int i = 0; i < pesquisaPedido.retorno.pedidos.Count; i++) { pesquisaPedido.retorno.pedidos[i].detalhes = this.ObterPedidoApi(pesquisaPedido.retorno.pedidos[i].pedido.id.ToString()); } } lista.Add(pesquisaPedido); return(lista); }
private PesquisarNotaFiscal PesquisaNotaFiscalApi(PesquisarRequest filtros) { var parametros = new Dictionary <string, object>(); if (filtros != null) { parametros = new Dictionary <string, object> { { "numero", filtros.numero }, { "tipoNota", "S" }, //Apenas NF de Saída { "dataInicial", filtros.dataInicial }, { "dataFinal", filtros.dataFinal }, { "numeroEcommerce", filtros.numeroEcommerce } }; } else { parametros = null; } IRestResponse response = GET_ApiTiny(MetodoApiEnum.PesquisaNotaFiscal, parametros); return(JsonConvert.DeserializeObject <PesquisarNotaFiscal>(response.Content)); }
public string ExportarNotaFiscal(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 }; PesquisarNotaFiscal pesquisarNotaFiscalAPI = null; if (id.Equals(0) && dataInicial == null) { pesquisarNotaFiscalAPI = _bllNotaFiscal.ListarTodos(null).FirstOrDefault(); } else { pesquisarNotaFiscalAPI = _bllNotaFiscal.ListarTodos(filtros).FirstOrDefault(); } #region " - Notas Fiscais - " List <NotaFiscalLayout> listaNotaFiscal = new List <NotaFiscalLayout>(); if (pesquisarNotaFiscalAPI != null) { foreach (var notaFiscal in pesquisarNotaFiscalAPI.retorno.notas_fiscais) { try { NotaFiscalLayout notaFiscalLayout = new NotaFiscalLayout(); //notaFiscalLayout.idTiny = notaFiscal.detalhes.retorno.nota_fiscal.id; if (notaFiscal.detalhes.retorno.status_processamento.Equals((int)StatusProcessamentoEnum.SolicitacaoProcessadaComSucesso)) { notaFiscalLayout.nr_pedido = notaFiscal.detalhes.retorno.nota_fiscal.numero_ecommerce.ToString(); notaFiscalLayout.nr_cnpj_remetente = notaFiscal.detalhes.retorno.nota_fiscal.cliente.cpf_cnpj; notaFiscalLayout.nr_cnpj_destinatario = notaFiscal.detalhes.retorno.nota_fiscal.cliente.cpf_cnpj; notaFiscalLayout.nr_ie = notaFiscal.detalhes.retorno.nota_fiscal.cliente.ie; notaFiscalLayout.nm_razao_social = notaFiscal.detalhes.retorno.nota_fiscal.cliente.nome; notaFiscalLayout.ds_endereco = notaFiscal.detalhes.retorno.nota_fiscal.cliente.endereco; notaFiscalLayout.nr_numero = notaFiscal.detalhes.retorno.nota_fiscal.cliente.numero; notaFiscalLayout.ds_complemento = notaFiscal.detalhes.retorno.nota_fiscal.cliente.complemento; notaFiscalLayout.ds_bairro = notaFiscal.detalhes.retorno.nota_fiscal.cliente.bairro; notaFiscalLayout.ds_cidade = notaFiscal.detalhes.retorno.nota_fiscal.cliente.cidade; notaFiscalLayout.ds_uf = notaFiscal.detalhes.retorno.nota_fiscal.cliente.uf; notaFiscalLayout.ds_cep = notaFiscal.detalhes.retorno.nota_fiscal.cliente.cep; notaFiscalLayout.codigo_IBGE = _bllCep.ObterEnderecoCompleto(notaFiscalLayout.ds_cep).ibge; notaFiscalLayout.nr_telefone = notaFiscal.detalhes.retorno.nota_fiscal.cliente.fone; notaFiscalLayout.nr_chave_acesso = notaFiscal.detalhes.retorno.nota_fiscal.chave_acesso; notaFiscalLayout.vl_declarado_nf = notaFiscal.detalhes.retorno.nota_fiscal.valor_produtos.ToString(); notaFiscalLayout.nr_qtde_teorico = notaFiscal.detalhes.retorno.nota_fiscal.quantidade_volumes.ToString(); notaFiscalLayout.nr_peso_teorico = notaFiscal.detalhes.retorno.nota_fiscal.peso_bruto.ToString(); notaFiscalLayout.dt_inicio = notaFiscal.detalhes.retorno.nota_fiscal.data_emissao; notaFiscalLayout.dt_previsao = string.Format("{0} {1}", notaFiscal.detalhes.retorno.nota_fiscal.data_saida, notaFiscal.detalhes.retorno.nota_fiscal.hora_saida); notaFiscalLayout.nm_solicitante = notaFiscal.detalhes.retorno.nota_fiscal.nome_vendedor; notaFiscalLayout.Nr_Nota = string.Format("{0}/{1}", notaFiscal.detalhes.retorno.nota_fiscal.numero.ToString(), notaFiscal.detalhes.retorno.nota_fiscal.serie.ToString()); } else { notaFiscalLayout.nr_pedido = notaFiscal.detalhes.retorno.erros.FirstOrDefault().erro; } listaNotaFiscal.Add(notaFiscalLayout); } catch (Exception ex) //Try catch para capturar quando a API estoura as chamadas dela, e da um erro. { } } } else { NotaFiscalLayout notaFiscalLayout = new NotaFiscalLayout(); notaFiscalLayout.nr_pedido = pesquisarNotaFiscalAPI.retorno.erros.FirstOrDefault().erro; listaNotaFiscal.Add(notaFiscalLayout); } #endregion return(this.ExportarNotaFiscal(listaNotaFiscal)); }
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)); }