Package: satextrato
Projeto SATExtratoThis project prints receipts for fiscal electronic documents called “CF-e”.
Those documents are created through a system calledSAT-CF-ewhich is a
system for autorization and transmission of fiscal documents, developed by
Finance Secretary of state of São Paulo, Brazil. The entire project,
including variables, methods and class names, as well as documentation,
are written in brazilian portuguese.Este projeto realiza a impressão dosExtratos do CF-e-SATem impressoras
ESC/POS® e são normalmente impressos em mini-impressoras de cupons,
térmicas ou de impacto, mas não limitado à elas. As impressoras, marcas e
modelos suportados dependem dos modelos suportados no projetoPyESCPOS.Para autorizar e transmitir documentos eletrônicos através da tecnologiaSAT-CF-eé preciso comunicar-se com os equipamentos SAT. Para isso, dê uma
olhada noProjeto SATCFe.Este projeto lida apenas com a impressão do
extrato de documentos CF-e.Exemplos de UsoHá dois tipos de documentos CF-e-SAT: documentos devendae documentos
decancelamentode uma venda anteriormente autorizada.Extratos do CF-e de VendaPara emitir um extrato de um CF-e-SAT de venda, você irá precisar do arquivoXMLdo CF-e-SAT de venda, que é o próprio documento fiscal, e de uma
impressora que seja suportada pelo projetoPyESCPOS:fromescposimportSerialConnectionfromescpos.impl.epsonimportTMT20fromsatextratoimportExtratoCFeVendaconn=SerialConnection.create('COM1:9600,8,1,N')impressora=TMT20(conn)impressora.init()withopen(r'C:\CFe351702.xml','r')asfp:extrato=ExtratoCFeVenda(fp,impressora)extrato.imprimir()Veja as implementações ESC/POS® disponíveis no projetoPyESCPOSExtratos do CF-e de CancelamentoPara emitir um extrato de um CF-e-SAT de cancelamento você irá precisar de dois
arquivosXML: o documento de venda e o documento de cancelamento. Seguindo a
mesma linha do exemplo anterior:cfe_venda=r'C:\CFe_venda.xml'cfe_canc=r'C:\CFe_cancelamento.xml'withopen(cfe_venda,'r')asfvenda,open(cfe_canc,'r')asfcanc:extrato=ExtratoCFeCancelamento(fvenda,fcanc,impressora)extrato.imprimir()Wiki do ProjetoVisite oWikido projeto para saber como configurar as várias partes do
extrato ou então para encontrar outros exemplos e mais informações.Você é Bem-vindo para AjudarPrimeiro, configure seu ambiente de desenvolvimento e execute os testes:$gitclonegit@github.com:base4sistemas/satextrato.git$cdsatextrato$python-mvenv.env$source.env/bin/activate(.env)$pipinstall--upgradepip(.env)$pipinstall-rrequirements/dev.txt(.env)$toxMais Sobre TestesSimplesmente executepytestou entãotoxpara executar os testes
contra várias versões de Python. Por padrão, as impressões dos extratos de
testes serão enviadas para uma interface que realmente não faz nada
(dummy printer).Você pode mudar isso, realizando testes contra uma impressora ESC/POS real
conectada ao seu computador, usando as opções customizadas.
Usepytest--helpe procure pela seçãocustom options. Por exemplo,
para imprimir em uma Bematech MP-2800 TH conectada à porta serialCOM1:pytest \
    --escpos-impl=escpos.impl.bematech.MP2800TH \
    --escpos-if=serial \
    --escpos-if-settings=COM1:9600,8,1,N,RTSCTS \
    --config-file=/home/user/satextrato.iniOu viatox, em uma impressora com interface ETH (ethernet):tox -e py39 -- \
    --escpos-impl=escpos.impl.controlid.PrintIdTouch \
    --escpos-if=network \
    --escpos-if-settings=192.168.1.200:9100 \
    --config-file=/home/user/satextrato.iniNote que executar os testes de ambientes relacionados à interfaces de conexão
específicos (eg.py39-serial), só faz sentido se você especificar também
as configurações da interface via--escpos-if-*que irá configurar a
interface onde provavelmente terá uma impressora real conectada ou, no mínimo,
um emulador ou umnull modem.Isenção de ResponsabilidadePor favor,leia atentamente:ABase4 Sistemase os desenvolvedores envolvidos neste projeto, NÃO
ASSUMEM NEM TEM QUALQUER RESPONSABILIDADE sobre os “Extratos do CF-e-SAT”
gerados por esta biblioteca de código, seja diretamente ou através de uma
APLICAÇÃO USUÁRIA.Use por sua própria conta e risco.