Ir para conteúdo
  • Cadastre-se

Sommus

Membros
  • Total de ítens

    286
  • Registro em

  • Última visita

  • Days Won

    1

Posts postados por Sommus

  1. Boa tarde,

     

    Estou tentando emitir um CT-e complementar pelo monitor, o txt é criado com a chave do cte complementado (grupo infCteComp) mas o número não vai para o xml e acaba retornando o seguinte erro:

    ERRO: Falha na validação dos dados do conhecimento 1003

    TAG:<infCte versao="2.00" Id="CTe31140719371245000153570000000010031537274587"><infCteComp> ID:#411/chave(Chave do CTe) - Nenhum valor informado.

    '' violates pattern constraint of '[0-9]{44}'.

    The element '{http://www.portalfiscal.inf.br/cte}chave' with value '' failed to parse.

     

    Vi um post mais antigo dizendo que o ct-e complementar não havia sido implementado na versão 1.04 , na versão 2.00 já foi implementado?

  2. Pessoal,

    Também fizemos alguns testes e está funcionando bem. Porém, está realmente um pouco lento do que com a serial...

    Quanto ao conversor USB, em alguns casos estamos trabalhando com eles e funcionando 100%... Talvez, o problema pode estar no fabricante que escolheram... No nosso caso nunca tivemos problemas... Se autorizado pelos moderadores posso citar o que estamos utilizando....

    Até mais,

    Reginaldo

  3. Pessoal,

    Se observarem bem a tabela de perfil de requisitos do PAFECF verão que muitos estados ainda estão firmes com o PAFECF, alguns mais exigentes que MG...

    Inclusive nessa versão 2.01, legislação ficou ainda mais rigida, principalmente para postos de combustíveis...

    Quanto a SAT e NFCe em SP. O que ouvi na AUTOCOM, na palestra dada pelos representantes responsaveis dos projetos nos estados, é que SP adotaria o SAT a partir de abril/2014 e que a NFCe seria a contingência do SAT...

  4. Caro Daniel,

     

    Obrigado por responder...

     

    Realmente, era esse o problema... Assim que postei o tópico, fomos verificar o log e percebemos isso... Porém, a mensagem retornada pelo ECF nos confundiu e apontava para problemas com a "mensagem promocional", sendo que, na verdade, o cupom não havia sido totalmente pago, por causa de um problema de arredondamento, que já foi resolvido....

     

    Grato pela atenção,

     

    Reginaldo

    • Curtir 1
  5. Prezados,

     

    O seguinte erro ocorre na EPSON, ao enviar o comando "FECHACUPOM"

     

     

    ECF.FECHACUPOM("MD5: d5b7a370d7fd3142939da11ed2547e57|TQ:01 BB:01 BC:01 EI:0000000 EF:0000020|CONVENIO: SOMMUS (00006)|VENDA: 0020000043 OPERADOR: master (01)|")
    ERRO: Erro retornado pela Impressora: Epson
     
    Erro: 0A27 - Mensagem promocional não pode ser impressa.

     

    Nos outros ECFs (Bematech, Sweda e Daruma) funciona normalmente...

     

    O mais estranho é que na mesma EPSON, onde o erro acima ocorre, o comando abaixo funciona:

     

     

    ECF.FECHACUPOM("MD5: d5b7a370d7fd3142939da11ed2547e57|CONVENIO: SOMMUS (00006)|VENDA: 0020000046 OPERADOR: master (01)|")
    OK: ?
     

    A única diferença entre os dois comandos é a segunda linha da mensagem promocional: TQ:01 BB:01 BC:01 EI:0000000 EF:0000020|

     

    Entrei em contato com o suporte ao desenvolvedor da ESPON, e me disseram que essa mensagem somente ocorre quando há algum caractere que o ECF não aceita... Não vi nada disso na mensagem enviada...

     

    Obrigado pela atenção,

     

     

    Aguardo retorno,

     

    Reginaldo

  6. Pessoal,

     

    A quem se interessar, seque abaixo função para realizar o arredondamento ABNT (Arredondamento utilizado no ECF)

     

    Escrevi na linguagem Harbour, mas, basta apenas trocar os comandos para converter para qualquer outra linguagem (Se precisarem de ajuda na conversão, é só postar aqui, que tentarei ajudar)

     

    FUNCTION Round_ABNT(nValor,nDecimais)
    
    
       LOCAL nRetorno:=nValor, cDecimais:=SubStr(Str(nValor),At('.',Str(nValor))+1), nSubsequente:=nDecimais+1
       
       if nDecimais<1
          RETURN Int(nRetorno)
       endif
    
    
       if Len(cDecimais) <= nDecimais
          RETURN nRetorno
       endif
       
       if SubStr(cDecimais,nSubsequente,1)>'5' .or. SubStr(cDecimais,nSubsequente,1)<'5' //Se a casa decimal SUBSEQUENTE for DIFERENTE de 5
          nRetorno:=Round(nValor,nDecimais)                                              //ARREDONDA
        elseif SubStr(cDecimais,nSubsequente,1)=='5'                                     //Se a casa decimal SUBSEQUENTE for IGUAL a 5
          if Mod(Val(SubStr(cDecimais,nDecimais,1)),2) <> 0                              //Se a casa decimal que será CONSERVADA, for IMPAR
             nRetorno:=Round(nValor,nDecimais)                                           //ARREDONDA
           else                                                                          //se a casa decimal que será CONSERVADA, for PAR
             if Val(SubStr(cDecimais,nSubsequente+1,1)) > 0                                //Se APÓS a casa decimal SUBSEQUENTE, houver ALGUM algarismo MAIOR que ZERO
                nRetorno:=Round(nValor,nDecimais)                                        //ARREDONDA
              else                                                                       //Se APÓS a casa decimal SUBSEQUENTE, não houver NENHUM outro algarismo ou TODOS forem iguais a ZERO
                nRetorno:=Truncate(nValor,nDecimais)                                     //TRUNCA (Esse é o único momento em que o "arredondamento ABNT" se diferencia do "arredondamento normal")
             endif
          endif
       endif
       
    RETURN nRetorno
    
    
    
    
    FUNCTION Truncate(nValor,nDecimais)
    
    
       LOCAL nRetorno:=nValor, cDecimais:=SubStr(Str(nValor),At('.',Str(nValor))+1)
       
       if nDecimais<1
          RETURN Int(nRetorno)
       endif
       
       if Len(cDecimais) <= nDecimais
          RETURN nRetorno
       endif
       
       nRetorno:=Val( Str(Int(nValor))+'.'+SubStr(cDecimais,1,nDecimais) )
    
    
    RETURN nRetorno
    
     
     

    Nos vários testes que fiz aqui, funcionou muito bem, se encontrarem algum bug, favor, reportar aqui... Obrigado!

     

    Espero ter contribuído,

     

    Abraços,

     

    Reginaldo

    • Curtir 4
    • Obrigado 1
  7. Pessoal,

    Eu utilizo o acbrmonitor, da seguinte forma:

    Independente do comando que irei executar (Abertura de cupom, leitura x, etc...), sempre executo antes, o comando "Ativo" para verificar se está ativo, e se não, executo o comando "Ativar"... Essa é a forma correta de utilização? Alguém faz de forma diferente?

    Obrigado pela atenção

    Reginaldo

×
×
  • 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.