Ir para conteúdo
  • Cadastre-se

Alexsander

Membros
  • Total de ítens

    383
  • Registro em

  • Última visita

  • Days Won

    2

Tudo que Alexsander postou

  1. Não é tão simples... porque o ZERO não existe nesta lista (pois zeros à direita após a vírgula não têm valor, lembra?). Na verdade é preciso estipular uma "regra de desempate" para usar quando o algarismo for 5, pois 0,125 está EXATAMENTE no meio entre 0,12 e 0,13. Uma das regras, por exemplo, usa o algarismo anterior para desempatar: "se depois do 5 não tiver número significativo, observa-se o algarismo anterior, se for par conserva e se for ímpar aumenta." [1] 1-2-3-4 = arredonda pra baixo 6-7-8-9 = arredonda pra cima 5 = usa alguma regra de desempate [1] http://professor.ucg.br/SiteDocente/adm ... AMENTO.doc
  2. Não estou pedindo ajuda pra resolver o problema... estou apenas tentando entender o que houve. Se a DANFE é impressa a partir do XML, como conseguiram imprimir um valor que NÃO está no XML? Se fosse o contrário, um valor do XML que não saiu impresso, até daria pra imaginar o erro. Mas imprimir algo que não existe é estranho, fico pensando que tipo de gambiarra eles fizeram. O único lugar do XML onde as datas aparecem é nas observações, no meio de um monte de texto. Aparentemente o software deles monta o PDF a partir do banco de dados, não a partir do XML!!! Eu achava que isso não era permitido, mas não achei nenhuma legislação mencionando isto explicitamente.
  3. Não sei. Eis o trecho do XML que fala sobre o aplicativo: 0 V26.9.2
  4. PS: Há uma diferença de 55 segundos entre o par (protocolo+datahora) da DANFE e do XML. O número do protocolo é o mesmo nos dois. Um BUG no aplicativo de NFe do fornecedor poderia causar isto?
  5. Um cliente recebeu uma NFe cujo XML não tem as datas das duplicatas mas a DANFE imprimiu as datas. Isso é normal? 53756 9520.77 9520.77 53756 3173.59 53756 3173.59 53756 3173.59 DANFE:
  6. A sefaz aceitou pq as chaves são diferentes. Seu sistema deverá controlar essa informação. Acho isso um absurdo, pois nada impede que o cliente emita uma NF pelo "aplicativo emissor" (ou por outro aplicativo qualquer) e repita números à vontade. Não posso controlar o que ocorre FORA do meu aplicativo. Na minha opinião a SEFAZ deveria no mínimo considerar o trio (cnpj + série + nº da nota) como chave primária e rejeitar duplicidade.
  7. Comigo ocorreu o contrário. O cliente tinha emitido manualmente 2 notas em ambiente de produção pelo "Aplicativo Emissor", aquele feito pela SEFAZ de SP, no final do ano passado. Agora em janeiro, quando terminei os testes com o módulo emissor de NFe do meu ERP e mudei para o ambiente de produção, perguntei quantas NF eles tinham feito por aquele aplicativo. Por engano, me informaram que tinham emitido apenas UMA (esqueceram que foram duas). Resetei a SEQUENCE para a próxima NF ser de número 2 e fizemos uma NF. Ela foi emitida normalmente! Depois, quando perceberam o erro, cancelaram a "segunda" NF nº 2 pelo ERP (já testaram emissão e cancelamento logo de cara). O webservice da SEFAZ daqui não deveria ter rejeitado esta segunda NFe número 2, série 1 -- mesmo tendo sido em anos diferentes? As chaves delas foram as seguintes (removi apenas o CNPJ): 431012...550010000000021119800006 431101...550010000000021813588798
  8. O que falta é gerar o PDF?
  9. Era isso mesmo, obrigado!
  10. Seguem os XML gerados pela aba "Teste" em anexo. 4311933247600010255001000000005000000005-ped-inu.xml 4311933247600010255001000000005000000005-inu.xml PS: Será que tem problema o inicial e o final serem os mesmos? Quero inutilizar apenas UM número.
  11. Não consegui fazer funcionar, vejam imagem em anexo. ACBrNFeMonitor2 versão 0.6.0c.
  12. Mais um "Caso de Sucesso": ontem emiti as primeiras NFe usando o ACBrNFeMonitor2 via Sockets. O cliente, uma rede de lojas, utiliza Linux Ubuntu (versões entre 9.04 e 10.10) nas estações, que são 32 e 64 bits. O meu ERP foi inicialmente feito em Delphi 7, mas está sendo convertido para Lazarus -- a emissão de NFe já está na "versão 3", em Lazarus. O servidor do ACBrNFeMonitor2 é uma máquina Windows XP que fica na Matriz; antes ele rodava apenas o servidor do TEF dedicado (da SiTef). Por enquanto apenas uma das filiais emite NFe, mas o plano é implantar em toda a rede, num total de 11 CNPJ (com 3 "raízes" diferentes). Estou fazendo agora a importação de XML para a "Entrada de Nota" dos fornecedores e implementando alguns detalhes de NFe que ficaram faltando, como anulação de numeração e outros comandos menos usados. Além da NFe, uso o ACBr também para acessar impressoras térmicas (Argox), inclusive já contribuí com patches. Eu também usava os componentes de ECF antes, mas com a chegada do TEF achei melhor focar no ERP (que inclui um WMS bem sofisticado) e terceirizar o PDV. Realmente foi um alívio, pois é complicado dar suporte ao PDV com TEF dedicado numa operação de varejo com tantas lojas.
  13. No processo do meu ERP a DANFE é enviada por email para o cliente e para a expedição, que podem imprimir quantas cópias quiser a partir do PDF. Depois há um processo de "Confirmação de impressão da DANFE" onde o funcionário da expedição lê o código de barras da DANFE para informar ao sistema que ela já foi impressa, tirando da lista de "DANFE a imprimir".
  14. Página 28 do manual: "Identificador de controle do envio do lote. Número seqüencial auto-incremental, de controle correspondente ao identificador único do lote enviado. A responsabilidade de gerar e controlar esse número é exclusiva do contribuinte."
  15. Seu tag diz 2429.98 mas você não passou nenhum vBC nos itens.
  16. Localizei o problema. As mensagens de erro estão vindo em algum ENCODING (aparentemente LATIN1 ou algo assim) que faz a rotina RecvString esvaziar o buffer e retornar uma string vazia. Coloquei um debug pra mostrar byte a byte o que está vindo e no primeiro acento de "ERRO: Falha na validação" já aborta ao tentar adicionar na string. Por enquanto coloquei um teste pra só adicionar na string se o ASCII for abaixo de 127 mas futuramente vou tentar alguma outra solução mais elegante.
  17. Tentei fazer exatamente como o seu código e ainda não funcionou: function TfrmEmissaoNFe.ExecutaComando(cmd: string): string; var respbyte: Byte; resp: string; begin btnAbortar.Enabled := true; btnAbortar.Tag := 0; telnet.SetSendTimeout(200); telnet.SendString(cmd+CRLF+'.'+CRLF); resp := Trim(AnsiToUtf8(telnet.RecvTerminated(TIMEOUT,#03))); if resp = '' then begin respbyte := 0; while (respbyte <> 3) and (btnAbortar.Tag = 0) do begin respbyte := telnet.RecvByte(10); resp := resp + chr(respbyte); Application.ProcessMessages; end; resp := Trim(AnsiToUtf8(resp)); end; btnAbortar.Enabled := false; Result := resp; end; Ainda estou recebendo a string vazia quando há erro. Se não houver erro, funciona normalmente. A constante TIMEOUT está com o valor 500, como no seu exemplo, e declarei telnet:TTCPBlockSocket também. Alguma sugestão? Estou usando o synapse do SVN (revisão 129), FPC 2.4.0 (release) e Lazarus do SVN (branch "0.9.30 fixes", que será o release 0.9.30). Meu Linux é o Ubuntu 10.10 versão 32 bits rodando num vmware dentro de um Ubuntu 10.10 64 bits, o servidor do ACBrNFeMonitor2 0.6.0c é um Windows XP rodando direto na máquina, que além do ACBrNFeMonitor2 roda apenas o software de controle do SiTef.
  18. Estou usando um TTelnetSend. Você declarou fsSock como o quê? Eu vi que no seu código o RecvTerminated pode retornar uma string vazia. Neste caso é preciso ler DE NOVO, desta vez byte a byte? Isso não é estranho?
  19. Eu mostrei aqui os 2 códigos, da rotina de recepção e do teste do OK. Onde estou fazendo errado?
  20. Mas veja o meu código: se "resp" não for 'OK' é executado um "ShowMessage(resp)" que deveria mostrar a mensagem de erro. Está aparecendo apenas uma caixa de diálogo em branco. PS: Estou usando Lazarus no Linux, mas a máquina com o monitor tem Windows XP.
  21. NFE.CRIARNFE(" ... ") ERRO: Falha na validação dos dados da nota 6 TAG: ID:B04/natOp(Descrição da Natureza da Operação) - Tamanho maior que o máximo permitido [VENDA DE MERCADORIA, ADQUIRIDA OU RECEBIDA DE TERCEIROS, SUJEITA AO REGIME DE SUBSTITUICAO TRIBUTARIA, NA CONDICAO DE CONTRIBUINTE-SUBSTITUIDO]. 'VENDA DE MERCADORIA, ADQUIRIDA OU RECEBIDA DE TERCEIROS, SUJEITA AO REGIME DE SUBSTITUICAO TRIBUTARIA, NA CONDICAO DE C...' violates maxLenght constraint of '60'. The element '{http://www.portalfiscal.inf.br/nfe}natOp' with value 'VENDA DE MERCADORIA, ADQUIRIDA OU RECEBIDA DE TERCEIROS, SUJEITA AO REGIME DE SUBSTITUICAO TRIBUTARIA, NA CONDICAO DE C...' failed to parse. PS: Eu sei que a descrição está grande demais, já corrigi, mas gostaria de poder receber estes erros sem ter que olhar o log.
  22. Estou usando ACBrNFeMonitor2 versão 0.6.0c via Sockets. Como obter o retorno dos erros? Tive um erro de validação no campo NATOP porque meu BD tinha uma "natureza de operação" muito grande, com mais de 60 caracteres, mas tive que ver o LOG para achar o erro. Aparentemente o comando "CRIANFE" via Sockets estava retornando em branco. Minha rotina para envio de comandos é bem simples: function TfrmEmissaoNFe.ExecutaComando(cmd: string): string; begin telnet.Send(cmd+sLineBreak+'.'+sLineBreak); Result := Trim(telnet.RecvTerminated(#03)); end; Estou fazendo assim para pegar os erros: resp := ExecutaComando(Format('NFE.CRIARNFE("%s")',[lstNFe.Text])); if LeftStr(resp,2) <> 'OK' then begin Screen.Cursor := crDefault; ShowMessage(resp); Exit; end; Alguma sugestão?
  23. Localizei o problema, meu INI estava indo errado.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...