Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 26-01-2019 em todas as áreas
-
Se ele está cancelando a transação ao comandar o pagamento é porque o ACBrTEFD entendeu que o pagamento não foi efetivado no ECF. Verifique o que pode estar acontecendo nesse sentido. Por exemplo, talvez a função de retorno do estado do ECF não esteja correta. Veja essa parte do seu log: -- 24/01 16:21:20:234 - InfoECF: ineEstadoECF -- 24/01 16:21:20:234 - Ret: P -- 24/01 16:21:20:234 - InfoECF: ineSubTotal -- 24/01 16:21:20:234 - Ret: 50 -- 24/01 16:21:20:235 - TEF_DIAL ECFPagamento: Indice: 02 Valor: 50,00 -- 24/01 16:21:20:235 - InfoECF: ineSubTotal -- 24/01 16:21:20:235 - Ret: 50 -- 24/01 16:21:20:236 - InfoECF: ineTotalAPagar -- 24/01 16:21:20:236 - Ret: 0 -- 24/01 16:21:20:236 - ImprimirTransacoesPendentes -- 24/01 16:21:20:236 - InfoECF: ineEstadoECF -- 24/01 16:21:20:236 - Ret: P -- 24/01 16:21:20:237 - FinalizarCupom -- 24/01 16:21:20:237 - BloquearMouseTeclado: SIM -- 24/01 16:21:20:237 - InfoECF: ineEstadoECF -- 24/01 16:21:20:238 - Ret: P -- 24/01 16:21:20:238 - InfoECF: ineSubTotal -- 24/01 16:21:20:238 - Ret: 50 -- 24/01 16:21:20:238 - InfoECF: ineTotalAPagar -- 24/01 16:21:20:239 - Ret: 0 -- 24/01 16:21:20:239 - InfoECF: ineEstadoECF -- 24/01 16:21:20:239 - Ret: P Mesmo depois de FinalizarCupom, o estado do ECF continua P. Se eu não me engano, P é de Pagamento. O ECF deveria ter fechado o cupom. Veja também o funcionamento do programa de exemplo. Daí você pode comparar os logs.1 ponto
-
Depende do seu contrato com o cliente. Aqui nós temos contratos em que o cliente tem todas as atualizações do SPED e outros em que é vendido a parte. Agora, se o seu sistema tem ou não as informações pra gerar, aí é outra história....1 ponto
-
@EMBarbosa Show parabéns, funcionou perfeitamente! Na segunda irei colocar em produção. OBS: Também segui os passos que @Amarildo de Matos e @Daniel Simoes mencionaram.1 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
Olá! Fiquei caçando uma solução por dias na internet, em vão, e então peguei um dia fazendo inúmeros testes e monitorando o tráfego do Software Manifestador, para consulta ele somente acessa o IP 200.198.239.181, que é do domínio www1.nfe.fazenda.gov.br, que é do webservice do NFeDistribuicaoDFe. Não consegui descriptografar o tráfego para ter certeza do caminho do webservice, então resolvi inspecionar os "jar" baixados pelo "jnlp", descompactei e tentei encontrar alguma string que me indicasse um webservice diferente... Sem sucesso. Como eu já tinha todos os class, resolvi usar o "javap" e inspecionar os bytecodes... Sem sucesso. Fui mais além e utilizei então dois descompiladores e encontrei algo que me chamou a atenção, pois encontrei nos arquivo XML de consulta estavam com a versão 1.35: ---> br/gov/sp/fazenda/dsmd/ws/destinadas/br/gov/sp/fazenda/dsmd/common/util/DocumentoUtil400.java:1567: consNFeDest.setVersao(br.gov.sp.fazenda.dsmd.schemas.mdnfe.v100.TVerDistDFe.X_1_35); ---> br/gov/sp/fazenda/dsmd/ws/destinadas/br/gov/sp/fazenda/dsmd/schemas/mdnfe/v100/TVerDistDFe.java:26: public static final Enum X_1_35 = Enum.forString("1.35"); O mesmo para TVerResEvento e TVerResNFe, então encontrei os 'xsd"s da versão 1.35 e comparando com a 1.01 do pacote PL v1.02, alterou-se o xsd dos tipos de "tiposDistDFe_v1.01.xsd" para "tiposBasico_v1.03.xsd" contendo agora TNSU e TVerDistDFe, cUFAutor obrigatório, consChNFe não existe nessa versão, cSitConf agora existe no resNFe. Bom, a princípio alterei a versão na consulta por NSU para versão 1.35 para testar e funcionou bem, veio o cSitConf. Não sei se fiz tudo isso "à toa", mas como eu não encontrei a solução em lugar nenhum, resolvi ir a fundo, encontrar a solução e colocar aqui. v1.35.zip1 ponto
-
Resolvido. Segui as orientações desse tópico: Como fiz: 01 - Atualizei as DLL's 02 - Excluí os Schemas e coloquei novamente (percebi que tinha schemas antigos). Obrigado @André Ferreira de Moraes Obrigado @Graça1 ponto
-
Boa tarde, if ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[ i ].schema = schProcNFe then begin // XML completo de uma nota sXML := ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[ i ].XML end; schProcNFe = Nota Fiscal Completa, schresNFe = Resumo de uma Nota Fiscal, schresEvento = Resumo de um Evento schprocEventoNFe = Evento Completo,1 ponto
-
Bom dia Doidopb, Quando executamos o método DistribuicaoDFe ou DistribuicaoDFePorUltNSU é retornado um lote de até 50 documentos, documentos estes já informados na minha postagem anterior. Nesse retorno temos os campo ultNSU (último Numero Sequencial Único) e maxNSU (máximo Numero Sequencial Único). Suponha que na SEFAZ consta 70 documentos e que eles estejam numerados (NSU) de 101 a 170. Ao executar um dos métodos acima, como dito, será retornado um lote com até 50 documentos. Logo nesse retorno terei os documentos de 101 até 150, você concorda? Nesse retorno o valor de ultNSU será 150, pois é o numero de NSU do último NSU que consta no lote. E o valor de maxNSU será 170, pois é o numero NSU do último documento na SEFAZ, supondo que não entrou mais nenhum documento da base de dados da SEFAZ. Ao executar novamente um dos métodos acima (informando no terceiro campo o valor 150), teremos os documentos cujo NSU vai de 151 até 170, ou seja os 20 restantes. Nesse retorno os valores de ultNSU é 170 e de maxNSU é 170. Quando os valores de ultNSU é igual a maxNSU significa que você baixou todos os documentos disponíveis na base de dados da SEFAZ. Neste caso você deve aguardar algumas horas para realizar uma nova consulta. No meu entendimento você deve se manifestar sobre todos os resumos de notas retornados. Caso você não deseja ficar baixando os documentos até que apareça o XML completo da nota manifestada, basta usar o método que o André lhe mostrou. Resumindo: 1. Loop - Executar DistribuicaoDFePorUltNSU até que os valores de ultNSU e maxNSU sejam iguais; 2. Manifestar sobre cada resumo de nota que conste no grid; 3. Aguardar algumas horas e retornar ao passo 1. Observação: No passo 1 identificar os tipos de documentos retornados, se for resumo de nota, montar um grid, se for uma nota salvar em disco ou no banco de dados o XML da mesma.1 ponto
-
Vamos a um exemplo: Suponha que foram emitidas 200 notas contra o seu CNPJ, logo a numeração do NSU é de 1 a 200. Ao executar o DistribuicaoDFe serão retornados os primeiros 50 resumos, ou seja, os NSU de 1 a 50. A propriedade ultNSU vai conter o valor 50 e o valor de maxNSU é 200. Vamos supor que mais nenhuma nota seja emitida contra o seu CNPJ e você realiza a manifestação dos 50 primeiros resumos. Ao fazer isso, o XML completo das 50 notas manifestadas receberam os NSU de 201 a 250. Ao executar o DistribuicaoDFe pela segunda vez serão retornados os próximos 50 resumos (NSU de 51 a 100), os valores de ultNSU será 100 e de maxNSU será 250, correto? Vamos continuar supondo que mais nenhuma nota foi emitida contra o seu CNPJ e você se manifestou sobre esse outros 50 resumos. A SEFAZ vai disponibilizar os XML completos dessas outras 50 notas com NSU de 251 a 300, esta entendendo o mecanismo desse Web Service? A cada execução do DistribuicaoDFe consigo baixar da SEFAZ lotes de até 50 documentos que podem ser resumos de notas, resumos de eventos, eventos e notas. Se inicialmente eu tinha 200 resumos, será necessário executar 4 vezes o DistribuicaoDFe para conseguir baixar tudo. Se a medida que eu baixo um lote, já realizo a manifestação acabo liberando os XML completos das notas manifestadas e essas notas vão para o final da fila. Se você manifestar as 200 notas, ao executar pela quinta vez o DistribuicaoDFe terá como retorno um lote de 50 XML das primeiras notas manifestadas. Resumindo para baixar os 200 resumos será necessário executar o DistribuicaoDFe 4 vezes e mais essa quantidade de vezes para baixar as 200 notas. Mas lembre-se que a qualquer momento alguém pode estar emitindo nota contra o seu CNPJ bem como eventos, como carta de correção ou até mesmo o cancelamento de alguma nota.1 ponto
-
Boa noite, Sim, é assim mesmo que funciona, devemos executar o método DistribuicaoDFe realizar a manifestação das notas e repetir o processo. Com isso novos resumos serão retornados bem como os XML completos das notas já manifestadas. Para armazenar o XML retornado no banco de dados já tentou fazer desta forma: sXML := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[ x ].XML;1 ponto
-
Boa Noite amigos tenho uma duvida que é a seguinte Tenho um manifestador de notas fiscais então criei uma rotina que faz manifestação em massa ela funciona muito bem so que tenho visto que manifesto no máximo 20 nfes por vez, então vem a pergunta xiste um limite de manifestação? posso manifetar algo de 100 ou duzentas noas por vez? desde ja grato pela ajuda1 ponto
-
Julimar uanto a consulta já sabia que cada loop percorria 50 mil notas agora pra manifestar o máximo é 50 por vez ja não sabia obrigado1 ponto