Metadata-Version: 2.1
Name: satextrato
Version: 0.3
Summary: Impressão dos Extratos do CF-e-SAT
Home-page: http://github.com/base4sistemas/satextrato/
Author: Daniel Gonçalves
Author-email: daniel@base4.com.br
License: Apache Software License
Description: 
        Projeto SATExtrato
        ==================
        
        .. image:: https://travis-ci.org/base4sistemas/satextrato.svg?branch=master
            :target: https://travis-ci.org/base4sistemas/satextrato
            :alt: Build status
        
        .. image:: https://img.shields.io/pypi/status/satextrato.svg
            :target: https://pypi.python.org/pypi/satextrato/
            :alt: Development status
        
        .. image:: https://img.shields.io/badge/python%20version-2.7-blue.svg
            :target: https://pypi.python.org/pypi/satextrato/
            :alt: Supported Python versions
        
        .. image:: https://img.shields.io/pypi/l/satextrato.svg
            :target: https://pypi.python.org/pypi/satextrato/
            :alt: License
        
        .. image:: https://img.shields.io/pypi/v/satextrato.svg
            :target: https://pypi.python.org/pypi/satextrato/
            :alt: Latest version
        
        .. image:: https://badges.gitter.im/Join%20Chat.svg
           :alt: Join the chat at https://gitter.im/base4sistemas/satcfe
           :target: https://gitter.im/base4sistemas/satcfe?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
        
        -------
        
        This project prints receipts for fiscal electronic documents called "CF-e".
        Those documents are created through a system called `SAT-CF-e`_ which 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 variable names, classes and methods, are written in Brazilian
        portuguese.
        
        -------
        
        Este projeto realiza a impressão dos **Extratos do CF-e-SAT** em impressoras
        ESC/POS |reg| 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 projeto `PyESCPOS`_.
        
        Para autorizar e transmitir documentos eletrônicos através da tecnologia
        `SAT-CF-e`_ é preciso comunicar-se com os equipamentos SAT. Para isso, dê uma
        olhada no `Projeto SATCFe`_. **Este projeto lida apenas com a impressão do
        extrato de documentos CF-e.**
        
        
        Exemplos de Uso
        ===============
        
        Há dois tipos de documentos CF-e-SAT: de **venda** e de **cancelamento** de uma
        venda anteriormente autorizada.
        
        
        Extratos do CF-e de Venda
        -------------------------
        
        Para emitir um extrato de um CF-e de venda, você irá precisar do `XML`_ do
        CF-e-SAT de venda, que é o documento fiscal, e de uma impressora que seja
        compatível com o padrão ESC/POS |reg|:
        
        .. sourcecode:: python
        
            from escpos import SerialConnection
            from escpos.impl.daruma import DR700
            from satextrato import ExtratoCFeVenda
        
            conn = SerialConnection.create('COM1:9600,8,1,N')
            impressora = DR700(conn)
            impressora.init()
        
            with open(r'C:\CFe351702.xml', 'r') as fp:
                extrato = ExtratoCFeVenda(fp, impressora)
                extrato.imprimir()
        
        Veja as implementações ESC/POS |reg| disponíveis no projeto `PyESCPOS`_
        
        
        Extratos do CF-e de Cancelamento
        --------------------------------
        
        Para emitir um extrato do CF-e-SAT de cancelamento, além do documento de
        cancelamento você também irá precisar do documento da venda, ao qual o documento
        de cancelamento se refere. Seguindo a mesma linha do exemplo anterior:
        
        .. sourcecode:: python
        
            with open('CFe_1.xml', 'r') as fvenda, open('CFeCanc_1.xml', 'r') as fcanc:
                extrato = ExtratoCFeCancelamento(fvenda, fcanc, impressora)
                extrato.imprimir()
        
        
        Wiki do Projeto
        ===============
        
        Visite o `Wiki`_ do 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 Ajudar
        ============================
        
        Primeiro, configure seu ambiente de desenvolvimento:
        
        .. sourcecode:: shell
        
            git clone git@github.com:base4sistemas/satextrato.git
            cd satextrato
            python -m venv .env
            source .env/bin/activate
            pip install -r requirements/dev.txt
            tox
        
        
        Executando Testes
        -----------------
        
        Simplesmente execute ``pytest`` ou então ``tox`` para 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*).
        
        Você pode mudar isso, realizando testes contra uma impressora ESC/POS real,
        usando as opções customizadas. Use ``pytest --help`` e procure pela seção
        *custom options*. Por exemplo, para imprimir em uma Daruma DR700 conectada à
        porta serial ``COM1``:
        
        .. sourcecode:: shell-session
        
            pytest \
                --escpos-impl=escpos.impl.daruma.DR700 \
                --escpos-if=serial \
                --escpos-if-settings=COM1:9600,8,1,N,RTSCTS
        
        Ou via ``tox``, em uma impressora com interface ETH (*ethernet*):
        
        .. sourcecode:: shell-session
        
            tox -e py37 -- \
                --escpos-impl=escpos.impl.epson.TMT20 \
                --escpos-if=network \
                --escpos-if-settings=192.168.1.200:9100
        
        Note que executar os testes de ambientes relacionados à interfaces de conexão
        específicos (eg. ``py37-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 um `null modem <https://en.wikipedia.org/wiki/Null_modem#Virtual_null_modem>`_.
        
        
        Isenção de Responsabilidade
        ===========================
        
        Por favor, **leia atentamente**:
        
            A **Base4 Sistemas** e 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.**
        
        ..
            Sphinx Documentation: Substitutions at
            http://sphinx-doc.org/rest.html#substitutions
            Codes copied from reStructuredText Standard Definition Files at
            http://docutils.sourceforge.net/docutils/parsers/rst/include/isonum.txt
        
        
        .. |reg|  unicode:: U+00AE .. REGISTERED SIGN
            :ltrim:
        
        
        .. _`SAT-CF-e`: https://portal.fazenda.sp.gov.br/servicos/sat/Paginas/Sobre.aspx
        .. _`PyESCPOS`: https://github.com/base4sistemas/pyescpos
        .. _`Projeto SATCFe`: https://github.com/base4sistemas/satcfe
        .. _`XML`: http://www.w3.org/XML/
        .. _`Wiki`: https://github.com/base4sistemas/satextrato/wiki
        
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: Portuguese (Brazilian)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Office/Business :: Financial :: Point-Of-Sale
Classifier: Topic :: Printing
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Description-Content-Type: text/x-rst
