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
    Isso vai gerar um diretório dist com o projeto empacotado. Entra no diretório dist e executa pip install satcomum-<resto-do-nome-do-arquivo>
    Faz isso dentro do teu ambiente virtual (claro)
    E aí então vc instala o projeto satcfe normalmente: pip install satcfe
    A ideia é que, como a dependência satcomum já vai estar instalada (com o teu hack pro CNPJ do emulador funcionar), o pip só vai instalar a satcfe e vc vai ter um ambiente que vai funcionar pro emulador do SAT. Acho que isso resolve pra você fazer seus testes. Tenta aí se algo der errado a gente vai trocando uma ideia.
    Rodolfo Sousa
    @rodolfowf
    Oi @danielgoncalves , obrigado pelas informações, deu certo aqui, show de bola. Vou abrir um chamado na SEFAZ, mas como vc disse, acho difícil eles mudarem isso. Nem iria usar o emulador mas as coisas estão andando devagar na parte burocrática e com isso o meu kit de dev sat ainda não está pronto, mas com o que tenho posso adiantar muita coisa. Aproveitando, eu vi que aqui um colega já reportou o erro 'Procedure probably called with too many arguments (12 bytes in excess)', que é o retorno de qqt funcao do SAT. Mas pelo que entendi, pode ser a DLL do SAT, certo ? que no meu caso é a DLL do emulador.
    Daniel Gonçalves
    @danielgoncalves
    Massa que deu certo @rodolfowf :clap: Sobre a DLL do emulador eu não cheguei a usar. Mas esse erro que vc comentou teve um pessoal que descobriu que era um problema na compilação da DLL. O fabricante compilou a DLL de uma forma diferente e parece que resolveu, então pode ser sim algo relacionado à DLL, mas não me lembro exatamente quem era ou quem era o fabricante. Isso foi lá em 2015.
    Rodolfo Sousa
    @rodolfowf
    @danielgoncalves Show de bola, bom saber. Deixo aqui meus parabéns para todos envolvidos no projeto, está ótimo. Em breve espero poder contribuir também. Abs
    Rodolfo Sousa
    @rodolfowf
    Pessoal, boa tarde. Em relação ao emulador poder ser vinculado com outro CNPJ sem ser o 11111111111111, abri um chamado com a SEFAZ e como de imaginar, responderam que não sera feita nenhuma modificação no emulador, ele só funciona com o CNPJ 11111..... Bem, chegou meu kit aqui, um SAT SWEDA porem não consigo instanciar, diz que nao foi possivel encontrar o modulo especificado, esse erro parece ser quando o caminho\arquivo nao existe pois mudando o caminho para um inexistente, o erro é o mesmo. quando eu coloco uma a dll vs 32bits ele diz que nao é valido, ou seja, o codigo esta achando a dll. Só não entendo pq não consegue "carrega-la", alguém já passou por isso ?
    Igor
    @igorocampos
    @rodolfowf isso acontece geralmente quando uma das dependencias da DLL que vc está usando (e como vc disse foi encontrada) não é encontrada
    então além da dll, é necessário que esteja disponivel todas as suas dependencias também.
    Rodolfo Sousa
    @rodolfowf
    @igorocampos pois é, estranho que estou baixando todas as dlls (total de 6) do hardware direto do fabricante (Sweda) na versao do sistema operacional (64bits) . coloco na raiz do C: e dou permissao total para a pasta. Vou continuar tentando aqui, se conseguir posto aqui para historico.
    ah, e obrigado pela dica @igorocampos
    Rodolfo Sousa
    @rodolfowf
    Fiz um teste aqui, baixei a dll de outro fabricante(tanca) e o codigo funcionou. Na tanca só precisa de uma dll, e na sweda precisa de 6. Vou falar com o suporte da Sweda para ver se eles tem outra versão ou ate uma correção....
    Igor
    @igorocampos
    Isso é uma droga mesmo. Um dos grandes pontos fortes do Sat na epoca que foi concebida era justamente parar com a palhaçada de cada fabricante fazer uma dll, cada um de um jeito... De que adianta especificar nomes de metodos sem padronizar convenção de chamada na biblioteca. Ou como é o seu caso, fabricante condicionar uso de sei la qtas dlls... No minimo deveriam obrigar a embutir td num so arquivo...
    Rodolfo Sousa
    @rodolfowf
    exatamente, deveria ter alguma bancada para manter isso em "ordem", esse tipo de coisa pode sair dos trilhos, e oq era pra ser mais pratico e simples, vai se tornando complexo e demorado...
    Rodolfo Sousa
    @rodolfowf
    Pessoal, para deixar registrado. A Sweda me respondeu e me orientou a copiar as DLLs dentro da pasta system32, fiz isso e funcionou. Fica ai para referência . As DLLs das outras fabricantes eu nao tive problema (Tanca e Bematech). Vlw
    thmrdev
    @thmrdev
    Boa tarde Galera...ao tentar rodar no windows, estou recebendo:

    SATHub versao 0.3
    [-] "Equipamento SAT 1"
    [-] Biblioteca "/opt/fabricante/libsat.so"
    [-] Convencao Chamada 1 - Standard C
    [-]

    Traceback (most recent call last):
    File "runserver.py", line 4, in <module>
    from sathub import app
    File "C:\Users\Thiago\sathub\sathub__init__.py", line 35, in <module>
    import sathub.api
    File "C:\Users\Thiago\sathub\sathub\api.py", line 20, in <module>
    from flask.ext import restful
    ImportError: No module named ext

    Alguém consegue e tem disponibilidade p/ me ajudar?
    Daniel Gonçalves
    @danielgoncalves
    @thmrdev Primeiro vc precisa resolver o acesso a DLL do SAT. Note que está dizendo "Biblioteca /opt/fabricante/libsat.so" e "Convenção de chamada 1 - Standard C"... No Windows a biblioteca será uma DLL e a convenção de chamada será 2 - Windows stdcall
    @thmrdev Mas o problema aí é ainda anterior, porque tá acusando um erro de 'import'. Isso significa que os requisitos não foram instalados.
    Eu te aconselho a fazer o SATHub rodar em uma VM usando uma distro como Ubuntu server
    Na documentação do SATHub tem um passo-a-passo para criar uma VM como essa: https://sathub.readthedocs.io/pt_BR/latest/
    O projeto do SATHub faz tempo que não tem mudanças, mas ele é bastante funcional. Eu mesmo uso muito aqui todo dia.
    Ele roda no Windows também (conheço um pessoal que usa no Windows), mas não é minha área de domínio
    thmrdev
    @thmrdev
    @danielgoncalves Obrigado, realmente pulei essa parte na doc, instalando os requisitos tudo funcionou.
    Obrigado.
    Nicolás David Muñoz Cuervo
    @nicdamun

    Hello, when I try to execute the python library. It says:

    Erro ao tentar abrir a porta
    Traceback (most recent call last):
    File "SATTest.py", line 6, in <module>
    response = client.consultar_sat()
    File "/home/muy/Development/satcfe-master/satcfe/clientelocal.py", line 109, in consultar_sat
    return RespostaSAT.consultar_sat(retorno)
    File "/home/muy/Development/satcfe-master/satcfe/resposta/padrao.py", line 120, in consultar_sat
    resposta = analisar_retorno(retorno, funcao='ConsultarSAT')
    File "/home/muy/Development/satcfe-master/satcfe/resposta/padrao.py", line 225, in analisar_retorno
    ).format(retorno))
    satcfe.excecoes.ErroRespostaSATInvalida: Resposta n\xe3o possui pipes separando os campos: 'Erro ao tentar abrir a porta'

    Do you know how to fix this? We have the SAT connected to a linux server and to the internet
    image.png
    This is the only code we have for the moment
    Daniel Gonçalves
    @danielgoncalves

    @nicdamun Take a look at your SAT device's manual. On Linux systems you usually have to create a udev rule [1] to map the USB port to a "/dev/XXX" file (where "XXX" representing some serial tty device). For example, SAT model TS1000 (vendor Tanca [2]), you have to create a udev rule similar to:

    # 0525:a4a7 Netchip Technology, Inc. Linux-USB Serial Gadget (CDC ACM mode)
    SUBSYSTEM=="tty", ACTION=="add", KERNELS=="2-1.2:2.0", ATTRS{idVendor}=="0525", ATTR{idProduct}=="a4a7", SYMLINK+="ttyTS0"
    SUBSYSTEM=="tty", ACTION=="remove", KERNELS=="2-1.2:2.0", ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a4a7", SYMLINK-="ttyTS0"

    But these instructions my vary from vendor to vendor and model to model. If you still get in trouble, write in your SAT vendor and model, and we'll try to help.

    [1] http://reactivated.net/writing_udev_rules.html
    [2] https://tanca.com.br/automacao-comercial-produto.php?cod=53

    @nicdamun (forgot the KERNELS part in the above example, since they aren't really necessary)
    Nicolás David Muñoz Cuervo
    @nicdamun
    Thank you @danielgoncalves , our SAT vendor is DIMEP and model is D-SAT 2.0 / VERSAO: 01.01.01
    Nicolás David Muñoz Cuervo
    @nicdamun
    We created the rule just as you told us but no luck, we have idVendor=0525 and idProduct=14a7
    Nicolás David Muñoz Cuervo
    @nicdamun
    It worked, we had to add sudo before the command that ran the library and add the rule you wrote. Thanks!
    Daniel Gonçalves
    @danielgoncalves
    @nicdamun Nice! Glad it worked :smile:
    edilson1235
    @edilson1235
    Estou Usando Devian9/Python3.8 o aparelho SAT da ControlId, quando tento executar o comando "ConsultarSAT" recebo uma string vazia.
    Daniel Gonçalves
    @danielgoncalves

    Com o SAT iD conectado na máquina, o comando lsusb deve mostrar o dispositivo como 1D6B:0104 Linux Foundation Multifunction Composite Gadget. Se o aparelho estiver sendo listado, aí vc deveria checar:

    1) A bilioteca está onde deveria? O arquivo é libsatid.so.1.2.3 e deveria ficar em /usr/lib64 ou equivalente no Debian (eu uso Fedora);

    2) Quando o SAT é plugado no PC ele fica associado à /dev/ttyACM0 ou /dev/ttyACM1 (a que estiver disponível). Checa isso com o comando: udevadm info /dev/ttyACM0, a saída deverá ser algo como:

    $ udevadm info /dev/ttyACM1
    P: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/tty/ttyACM1
    N: ttyACM1
    L: 0
    S: serial/by-path/pci-0000:00:1d.0-usb-0:1.4:1.0
    S: serial/by-id/usb-Control_iD_S@T-iD_900025017-if00
    E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/tty/ttyACM1
    E: DEVNAME=/dev/ttyACM1

    3) As dependências da biblioteca estão resolvidas? Checa com o comando ldd /caminho/para/libsatid.so.1.2.3, a saída deverá ser algo como:

    $ ldd /usr/lib64/libsatid.so.1.2.3 
    linux-vdso.so.1 (0x00007fff8f94b000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fcb68973000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fcb68959000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fcb68793000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fcb6864d000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fcb68e1b000)

    Se tudo isso estiver OK, a pergunta final é: Você já tentou conectar no SAT usando o software do fabricante? Eles tem pra Linux também. Mesmo sendo um equipamento para desenvolvimento é quase certeza que precisa ser ativado. Confirma com o suporte deles antes. O meu aqui teve que ser ativado, mesmo sendo de desenvolvimento.

    @edilson1235 A resposta acima ficou dificil de ler porque a formatação de texto do gitter não ajuda. Se não der pra entender, só perguntar de novo ;)
    (a formatação melhorou, deu pra editar, eu é que tava fazendo arte, kkk)
    edilson1235
    @edilson1235
    1) A bilioteca está onde deveria? O arquivo é libsatid.so.1.2.3 e deveria ficar em /usr/lib64 ou equivalente no Debian (eu uso Fedora); Sobre isso, a biblioteca deve ser setada no componente satcfe cliente = ClienteSATLocal(
    ... BibliotecaSAT('/caminho/para/libsat.so'),
    ... codigo_ativacao='12345678') o caminho é /usr/lib64/libsatid.so.1.2.3?
    edilson1235
    @edilson1235
    Ignora mensagem anterior, deu certo, funcionou perfeitamente, segui os passos citado por você e foi, só executei um comando a mais que foi "chmod 2777 /dev/ttyACM0
    ", mas tá ok você ajudou muitos valeu e bom dia.
    edilson1235
    @edilson1235
    Boa tarde, uma dúvida se tenho uma impressora por exemplo ControlId que não está na lista "https://github.com/base4sistemas/pyescpos" de impressora suportadas oque posso fazer, seria o caso de gerar um pdf na mão e enviar para impressora?
    Daniel Gonçalves
    @danielgoncalves
    @edilson1235 O modelo Print iD Touch acabou de ser implementado na biblioteca, mas os fontes ainda não foram liberados. Isso deverá acontecer dentro das próximas semanas. Enquanto isso você pode usar a implementação do modelo Epson TMT20 que existe na biblioteca, sem nenhum ajuste necessário.

    Ignora mensagem anterior, deu certo, funcionou perfeitamente, segui os passos citado por você e foi, só executei um comando a mais que foi "chmod 2777 /dev/ttyACM0
    ", mas tá ok você ajudou muitos valeu e bom dia.

    Legal, que bom que funcionou :wink:

    edilson1235
    @edilson1235
    Valeu pela atenção, resolvi a impressão de outra forma, deu tudo certo, esse fórum é muito útil, quando eu tiver mais experiencia posso ajudar os outros, vou participar mais.
    edilson1235
    @edilson1235
    Boa tarde, tem alguma expectativa de implementar o tipo de documento PIX na biblioteca.
    Daniel Gonçalves
    @danielgoncalves

    @edilson1235 Sim! O projeto é separado em 3 bibliotecas: satcomum, satcfe e satextrato.

    Há alguns dias eu publiquei a satcomum versão 2.2 que contém as constantes de meios de pagamento, incluindo o novo Pix, em conformidade com a ER SAT 2.28.05 (que é mais recente).

    Nas próximas semanas, vou atualizar as outras duas bibliotecas também. Se estiver interessado em saber da movimentação no repositório, clique em "Watch" nos repositórios e escolha as notificações que quer receber.

    edilson1235
    @edilson1235
    Obrigado vou acompanhar sim!!!