base4sistemas / satcfe Goto Github PK
View Code? Open in Web Editor NEWAbstração do acesso ao equipamento SAT
Home Page: https://satcfe.readthedocs.io/
License: Apache License 2.0
Abstração do acesso ao equipamento SAT
Home Page: https://satcfe.readthedocs.io/
License: Apache License 2.0
A resposta de cancelamento da última venda identifica errado o nome da função executada. É identificado EnviarDadosVenda
quando, na verdade, deveria ser CancelarUtimaVenda
.
A classe satcfe.entidades.Imposto
documenta os parâmetros cofins
, cofinsst
e issqn
como sendo do tipo str
. Os textos que documentam os parâmetros, entretanto, estão corretos.
Alteração entre as ER 2.19.07 e 2.20.06.
Atributo IE
(elemento C12
do Emitente C01
do CF-e de venda e de cancelamento) na redação atual aceita entre 2 e 12 digitos numéricos (apenas algarismos). A nova redação diz que deverá também aceitar espaços em branco e, caso a IE possua menos de 12 digitos, o AC e não mais o equipamento SAT, deverá preencher com espaços à direita (eg. supondo que o número "260110"
seja uma IE válida em SP, então o AC deverá ajustá-lo para "260110 "
).
Essa alteração impacta a classe satcfe.entidades.Emitente
na regex que valida o atributo. A classe deverá garantir que o preenchimento com espaços seja feito corretamente.
Mais detalhes no Anexo 5 da ER 2.20.06.
A ER 2.22.04 inclui uma nova função ConsultaUltimaSessaoFiscal
, item 6.1.16.
A ER 2.17.10 introduz um novo campo ao layout do CF-e, CEST
(I05w
) para o Código Especificador da Substituição Tributária. Mais detalhes sobre o Código CEST no wiki do projeto.
Se as informações do destinário forem informadas no CF-e de cancelamento, o XML resultante, que será enviado para o equipamento SAT, acabará incluindo as tags E02 CNPJ
ou E03 CPF
, o que é incorreto, conforme documentado na ER SAT 2.28.05, de 01 de março de 2021. Porém, se o código cliente não informar um destinatário, ou informar uma entidade de destinatário sem dados, será produzido um CF-e de cancelamento válido, que deverá ser processado sem problemas pelo equipamento SAT.
O seguinte trecho do código precisa considerar o flag que indica um cupom de cancelamento e levantar uma exceção caso a entidade satcfe.entidades.Destinatario
inclua alguma informação (CPF, CNPJ ou nome).
Notei que o equipamento SAT da Tanca (SDK-1000), quando está em processamento, retorna uma resposta contendo 6 campos, ao invés dos 5 campos esperados para uma resposta padrão. Por exemplo, para ConsultarSAT
resulta em 005877|08098|0000|SAT em processamento. Tente novamente.||
. Para o comando ExtrairLogs
resulta em 040836|15098|0000|SAT em processamento. Tente novamente.||
.
O equipamento permaneceu nessa condição por um longo tempo, muito além do timeout determinado para a função de TesteFimAFim
que deu origem ao problema, mantendo acesso também o LED Conectado ao AC. Para retornar à condição normal, foi necessário reiniciar o equipamento.
Em determinado momento o equipamento acendeu o LED laranja (CF-e SAT pendente) e permaneceu acesso por pelo menos duas semanas. Era possível comunicar-se com o equipamento normalmente, já que a situação de CF-e pendente é prevista: quando houvesse conexão com o SEFAZ, o equipamento simplesmente enviaria os CF-e pendentes. Mas isso não aconteceu. O equipamento não transmite os CF-e pendentes por não conseguir se comunicar com a SEFAZ (por alguma razão desconhecida) e não resulta o conteúdo do log (de nenhum comando na verdade).
A Especificação de Requisitos não me parece clara quanto ao 6º campo que aparece na resposta quando o equipamento está em processamento. O campo adicional, 3º a partir da esquerda (com o valor 0000
, que não deveria estar presente) parece ser o CCCC (ER SAT itens 6.3.1 e 6.3.2), mas os comandos não estão relacionados com vendas ou cancelamento. Por essa razão, acredito que possa ser um erro no firmware do equipamento.
Não foi observado comportamento similar em outros equipamentos SAT usados nos testes (kits de desenvolvimento): Dimep D-SAT e Bematech RB-1000 FI. Não foi observado comportamento similar nos equipamentos em produção.
Links para tópicos com problemas relacionados, no fórum do fabricante:
Olá pessoal!
Estou iniciando os testes aqui com o SAT Elgin Linker II. Fiz o seguinte teste:
`from satcfe import BibliotecaSAT
from satcfe import ClienteSATLocal
from satcfe import ClienteSATHub
cliente = ClienteSATHub('192.168.1.100', 8088, numero_caixa=15)
resposta = cliente.consultar_sat()
print(resposta.mensagem)`
No entanto não consegue conectar (o teste via serial/usb deu certinho). Sabe onde descubro por qual porta devo conectar (se for este o problema)?
Obrigado!
Como instalo a última versão do satcfe pelo pip install?
Quando executo
pip install satcfe
me retorna
Requirement alredy satisfied
boa tarde.
comecei o desenvolvimento com o SAT UR (urano) - devenvolvimento;
posso testar a app/api com ele.
Conforme a ER 2.17.10, a função AssociarAssinatura
(item 6.1.10) terá seu retorno modificado com a inclusão do campo CCCC
na resposta.
Impacto Provavelmente será necessário escrever um tratamento especifico para esta resposta.
Posso fazer isso se quiserem!
Em CFeVenda, na entidade Emitente, o campo indRatISSQN e' obrigatorio.
Vejo 2 possiveis solucoes, a mais simples e' atualizar a documentacao. Outa solucao possivel seria alterar em entidades.py, mas imagino que isso tenha outras implicacoes no software.
Existe alguma forma de, através das bibliotecas disponibilizadas, baixar o arquivo XML a partir da chave do CFE / QR Code no CFE? Caso não exista, poderia informar a API adequada? Obrigado.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.