Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Daniel Gonçalves
    @danielgoncalves
    No Linux, também. O único que não rodou no Linux foi o Bematch RB-1000, mas acho que foi mais porque o suporte da Bematech simplesmente ignorou nossas tentativas de contato. Eles não responderam nenhum e-mail nosso (isso foi em 2015). Como praticamente não havia demanda pra Bematech, nós deixamos pra lá.
    Raphael Rodrigues Nogueira
    @rodriguesraphael
    @danielgoncalves eu conversei com pessoal da dimep e realmente tinha problemas no so deles, eu compilei novamente e deu certo
    único problema é que só consegui me comunicar com o device usando sudo
    sabe como permitir essa comunicação sem usar o root? assim eu poderia usar virtualenv
    Daniel Gonçalves
    @danielgoncalves
    @rodriguesraphael Você já tentou adicionar o seu usuário ao grupo dialout (ou ao grupo de acesso dos /dev/tty* de comunicações seriais)? O nome desse grupo varia de distro para distro. Nos Debian-like geralmente é dialout.

    Normalmente isso é feito assim:

    $ sudo usermod -a -G [groupname] [username]

    Raphael Rodrigues Nogueira
    @rodriguesraphael
    vou tentar amanhã, o SAT ficou na empresa
    Raphael Rodrigues Nogueira
    @rodriguesraphael
    @danielgoncalves como eu emito um SATCFE em ambiente de homologação, não encontrei essa informação na documentação, seria usando o SATHUB em modo Debug?
    Daniel Gonçalves
    @danielgoncalves
    @rodriguesraphael Não existe "ambiente de homologação". Você precisa de um equipamento SAT para desenvolvedor, que você adquire diretamente com os fabricantes (pelo menos eu nunca vi em revendedores).
    A alternativa seria usar o emulador SAT (se é que ainda existe). Nunca usei.
    @/all Testes em Python 3.6 passando. Há um branch "py3" no repositório que vocês podem ir acompanhando. Se fizerem testes e quiserem compartilhar, eu agradeço.
    image.png
    Raphael Rodrigues Nogueira
    @rodriguesraphael
    @danielgoncalves já vi sobre o ambiente de homologação
    já recebi um equipamento
    sobre a versão py3
    estou usando no dev aqui
    até agora sem erros
    Raphael Rodrigues Nogueira
    @rodriguesraphael
    aliás @danielgoncalves estou emitindo sem problemas o único problema encontrado até agora foi na geração do qrcode, mas este vi q vc já anotou
    Daniel Gonçalves
    @danielgoncalves
    @rodriguesraphael Obrigado pelo feedback
    Borreli
    @Borreli
    Olá, tudo bem?
    Estou utilizando o módulo a uns meses com um sat desenvolvedor Tanca e nunca tive problemas.
    Porém, ao tentar conectar a um sat desenvolvedor da Control ID, recebi o seguinte erro: ValueError: Procedure probably called with too many arguments (4 bytes in excess)
    Acredito que seja ao ligado a chamada da função da lib deles, mas não sou familiarizado com C.
    Alguém saberia o que posso fazer para conseguir conectar a esse Sat?
    Daniel Gonçalves
    @danielgoncalves

    @Borreli Há um argumento convencao que indica o modelo de chamada da (Standard C ou Windows stdcall). O link [1] é a documentação do argumento (projeto satcfe) e [2] é a constante a ser usada (projeto satcomum). Provavelmente, esse é o problema.

    [1] https://satcfe.readthedocs.io/pt_BR/latest/apidoc/base.html#satcfe.base.BibliotecaSAT.convencao
    [2] https://github.com/base4sistemas/satcomum/blob/master/satcomum/constantes.py#L46

    @Borreli Esse argumento que eu citei (convencao) é da classe satcfe.base.BibliotecaSAT: https://satcfe.readthedocs.io/pt_BR/latest/cliente.html#instanciando-um-cliente-sat
    Daniel Gonçalves
    @danielgoncalves
    @/all Projetos satcfe e satcomum convertidos para Python 3. O primeiro no branch py3 e o segundo no branch master.
    @/all Todas as funções SAT agora estão cobertas por testes :sunglasses:
    Borreli
    @Borreli
    @danielgoncalves Testei com a convecao em Standard C, e ocorreu um erro diferente (satcfe.excecoes.ErroRespostaSATInvalida: Resposta nao possui pipes separando os campos: ""). Eu estou utilizando Python 2.7 x86 no Windows 7 x64. Testei tanto com a DLL disponibilizada no site do fabricante do Sat, quanto com a DLL que vem na pasta do utilitário deles, e as duas resultaram nesse mesmo erro.
    @danielgoncalves Obrigado pela atualização. Pretendo migrar o meu sistema para Python 3 em breve.
    Borreli
    @Borreli
    @danielgoncalves O retorno do função consultar_sat está sendo um unicode vazio
    Daniel Gonçalves
    @danielgoncalves
    @Borreli Você deveria utilizar a classe ClienteSATLocal para acessar as funções. Para retornar um unicode vazio é estranho, me parece que você está usando a classe FuncoesSAT diretamente.
    :point_up: June 26, 2019 11:07 AM Não sei se essa mistura de arquiteturas é o que está provocando problemas no acesso à biblioteca SAT. Eu imagino pelas suas respostas seguintes que funcionou, que mudou o erro (unicode vazio na consultar sat). Não sou especialista no assunto, mas acho que se você está usando Python 32bit então a biblioteca SAT deveria ser 32bit também, mas posso estar errado.
    Borreli
    @Borreli
    @danielgoncalves Eu estou utilizando a classe ClienteSATLocal, exatamente como mostra a documentação. Estou testando tanto no Sat desenvolvedor Tanca, como no Control Id, e o erro ocorre somente no Control Id.
    Borreli
    @Borreli
    @danielgoncalves Também estou utilizando a biblioteca SAT 32bit. A 64bit não é encontrada pelo módulo Win32.
    @danielgoncalves Acredito que pela padronização das DLL de comunicação com o Sat, não deveria ocorrer esse erro (ValueError: Procedure probably called with too many arguments (4 bytes in excess)). Pois todas as funções presentes na DLL devem possuir a assinatura igual ao padrão. Existe a possibilidade das funções da DLL da Control Id possua uma assinatura diferente?
    Daniel Gonçalves
    @danielgoncalves
    :point_up: June 28, 2019 2:36 PM Esse erro "4 bytes in excess" eu vi várias vezes em 2015 quando começamos a receber os equipamentos de desenvolvimento com as bibliotecas. Na época reportamos erros desse tipo nas bibliotecas da Tanca, Dimep e Nitere e eles fizeram ajustes. Fizemos inclusive algumas interações com a Tanca (foram muito legais) e realmente havia um problema nas bibliotecas Linux, que esses fabricantes corrigiram.
    @Borreli Tenta entrar em contato com o fabricante do Control Id pra ver o que eles dizem. Pode ser algum problema de compilação, arquitetura, etc. Geralmente eles tem algum método de ativar um log para ajudar a depurar o problema. Tem que entrar em contato com eles e ter paciência, até corrigir.
    @Borreli Não tivemos sorte com a Bematech. Suporte deles muito burocrático, foi impossível fazer a biblioteca Linux deles rodar. Tenho notícias de vários usuários com Bematech rodando sem problemas no Windows, mas nenhum relato sobre Linux. Eles são míopes para a plataforma.
    Daniel Gonçalves
    @danielgoncalves
    Nós mesmos temos um Bematech RB1000-FI aqui, mas só funciona com a biblioteca Windows.
    Borreli
    @Borreli
    @danielgoncalves Não sabia que era tão comum esses problemas. Legal essa comunicação com os desenvolvedores, pensei que a padronização em si já ajustava tudo.
    Entrei em contato com o suporte da Control Id e atualizo qualquer descoberta, muito obrigado.
    Eu sou super paciente, o problema é o chefe querendo a solução para ontem kkkkk.
    Realmente é chato a fabricante não dar o suporte necessário, isso limita o desenvolvedor e consequentemente quem trabalha com o sistema.
    @danielgoncalves Por não ser familiarizado com C e comunicação com equipamentos, não sei até onde poderei tratar com o suporte deles. Caso tenha interesse, pode entrar em contato com a empresa e solicitar um Sat de desenvolvedor, eles são muito atenciosos e fornecem o equipamento até a homologação.
    Daniel Gonçalves
    @danielgoncalves
    @Borreli OK! Continua reportando a evolução dos contatos aí. Boa sorte
    Borreli
    @Borreli
    @danielgoncalves Claro. Obrigado.
    Raphael Rodrigues Nogueira
    @rodriguesraphael
    Fala Daniel
    Raphael Rodrigues Nogueira
    @rodriguesraphael
    Tem como eu alguma forma de gerar o a assinatura AC para usar/ativar o SAT?
    Daniel Gonçalves
    @danielgoncalves

    @rodriguesraphael Tem sim. O algoritmo é o SHA256 aplicado sobre uma sequencia de 28 digitos: 14 digitos do CNPJ da software house + 14 digitos do CNPJ do estabelecimento emitente. Então fica assim, usando OpenSSL em um terminal linux:

    echo -n 1111111111111122222222222222 | \ openssl dgst -sha256 -sign ~/.path/to/your/private.pem | \ openssl enc -base64 -e

    O arquivo private.pem contém a parte privada do seu certificado (da software house), o mesmo que está no SGR-SAT (lá na SEFAZ)

    Em Python você pode usar subprocess.check_output (por exemplo) para invocar o OpenSSL para gerar o código de vinculação .
    Ou usar uma abstração mais especializada, o que te for mais confortável.
    Só lembrando que essa descrição de como formar a sequência e todos os detalhes estão na ER-SAT. É sempre bom baixar a mais recente e dar uma olhada.
    Daniel Gonçalves
    @danielgoncalves
    @all Acabei de subir o release 2.0 do projeto satcomum. A versão 2.0 desse projeto continua compatível com as versões atuais de satcfe e satextrato, porém ela dá suporte à Python 3. Na verdade ela é um ensaio para o release 2.0 do projeto principal, satcfe, também suportando Python 2 e 3, que deverá estar pronto no máximo em setembro deste ano.
    Daniel Gonçalves
    @danielgoncalves
    @all Implementada função ConsultarUltimaSessaoFiscal (ER 2.22.04). Com essa implementação o projeto está em conformidade até a ER 2.27.05, que é a mais recente. Essas implementações estão no branch py3. É provável que o release 2.0 do projeto satcfe seja liberado nessa semana.
    Daniel Gonçalves
    @danielgoncalves
    @all Acabei de liberar a versão 2.0 da satcfe no PyPI e o código já está no master. Devo começar a portar as bibliotecas PyESCPOS e satextrato agora em outubro. A intenção é ter as bibliotecas todas portadas para Python 3 antes do final do ano.