# Mapa Fiscal Tributário
## Descrição
O projeto **Mapa Fiscal Tributário** é uma solução desenvolvida para gerenciar cenários e operações fiscais, considerando diferentes contextos tributários como classe fiscal do produto, natureza da operação e estados de origem e destino. Ele foi projetado para ser altamente configurável e modular, permitindo o uso em diversos regimes tributários e perfis de contribuintes.
---
## Principais Componentes
### 1. **Modelos de Dados**
- **`MapaFiscal`**: Representa o mapa fiscal, com classes fiscais, cenários e operações.
- **`ClasseFiscal`**: Detalha a classificação fiscal de produtos, como NCM, origem, segmento e alÃquotas.
- **`CenarioFiscal`**: Representa configurações especÃficas para operações fiscais em determinado contexto.
- **`OperacaoFiscal`**: Define detalhes operacionais como CFOP, CST, alÃquotas de ICMS, PIS, COFINS e IPI.
### 2. **Regras Fiscais**
- **`RegraFiscalProcessor`**: Processa as regras tributárias com base no contexto fiscal e nos parâmetros fornecidos, calculando alÃquotas de ICMS, PIS, COFINS e IPI.
### 3. **Contextos Fiscais**
- **`ContextoFiscal`**: Interface base para diferentes fontes de dados fiscais.
- **`JSONContexto`**: Implementação que carrega dados fiscais a partir de arquivos JSON.
- **`ContextoFiscalFactory`**: Fabrica contextos fiscais dinamicamente com base em registros.
---
## Casos de Uso
### Cenário: Gerar um Mapa Fiscal com Base em um Arquivo JSON
#### 1. Configurar o Contexto
Registre um contexto fiscal baseado no formato JSON:
```python
from mapafiscal.contexto.factory import ContextoFiscalFactory
from mapafiscal.common import RegimeTributacao, PerfilContribuinte
contexto = ContextoFiscalFactory.criar_contexto(
nome="json",
uf_origem="SP",
regime_tributacao=RegimeTributacao.LUCRO_PRESUMIDO,
perfil_empresa=PerfilContribuinte.COMERCIO_VAREJISTA,
contexto_file="caminho/para/dados.json"
)
```
#### 2. Construir o Mapa Fiscal
Use o processador de regras fiscais para criar um mapa fiscal:
```python
from mapafiscal.model import MapaFiscal
from mapafiscal.processor import RegraFiscalProcessor
mapa_fiscal = MapaFiscal(
nome="Mapa SP",
uf_origem="SP",
tributacao=RegimeTributacao.LUCRO_PRESUMIDO
)
processador = RegraFiscalProcessor(contexto)
classe_fiscal = processador.process_classe_fiscal(
codigo="001",
ncm="12345678",
descricao="Produto Exemplo",
origem=0,
cest="12.345.67",
segmento="Segmento Exemplo"
)
mapa_fiscal._classes_fiscais.append(classe_fiscal)
```
#### 3. Exportar Resultado
Exporte os resultados para um arquivo Excel:
```python
from mapafiscal.excel import ExcelExporter
exportador = ExcelExporter(mapa_fiscal)
exportador.to_excel("mapa_fiscal.xlsx")
```
---
## Como Executar
### Executar via Linha de Comando
O script `build_cenario.py` permite gerar um mapa fiscal diretamente via terminal:
```bash
python build_cenario.py --filename caminho/para/dados.json
```
Este comando gerará um arquivo `mapafiscal.xlsx` contendo os cenários processados.
---
## Estrutura de Arquivos do Projeto
- **`common.py`**: Contém enums e classes comuns usadas em todo o projeto.
- **`model.py`**: Define os modelos de dados principais.
- **`contexto_fiscal.py`**: Define a interface base e funcionalidades gerais para contextos fiscais.
- **`contexto_factory.py`**: Permite criar contextos fiscais dinamicamente.
- **`contexto_registry.py`**: Gerencia registros de diferentes implementações de contexto.
- **`json_contexto.py`**: Implementação de contexto fiscal baseado em JSON.
- **`mapa_fiscal_processor.py`**: Processa cenários e operações fiscais.
- **`build_cenario.py`**: Script para gerar mapas fiscais via terminal.
---
## Contribuições
Contribuições são bem-vindas! Para relatar problemas ou sugerir melhorias, crie uma issue ou envie um pull request.
---
## Licença
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.
Raw data
{
"_id": null,
"home_page": "https://github.com/ismaelnjr/mapafiscal-project.git",
"name": "mapafiscal",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "mapa fiscal tributario receita federal",
"author": "Ismael Nascimento",
"author_email": "ismaelnjr@icloud.com",
"download_url": "https://files.pythonhosted.org/packages/78/1e/01ce42fd680d69af1f3185083ac293947bcdfacb1b68fac6af4b0691dfbd/mapafiscal-0.2.2.tar.gz",
"platform": null,
"description": "\r\n# Mapa Fiscal Tribut\u00c3\u00a1rio\r\n\r\n## Descri\u00c3\u00a7\u00c3\u00a3o\r\nO projeto **Mapa Fiscal Tribut\u00c3\u00a1rio** \u00c3\u00a9 uma solu\u00c3\u00a7\u00c3\u00a3o desenvolvida para gerenciar cen\u00c3\u00a1rios e opera\u00c3\u00a7\u00c3\u00b5es fiscais, considerando diferentes contextos tribut\u00c3\u00a1rios como classe fiscal do produto, natureza da opera\u00c3\u00a7\u00c3\u00a3o e estados de origem e destino. Ele foi projetado para ser altamente configur\u00c3\u00a1vel e modular, permitindo o uso em diversos regimes tribut\u00c3\u00a1rios e perfis de contribuintes.\r\n\r\n---\r\n\r\n## Principais Componentes\r\n\r\n### 1. **Modelos de Dados**\r\n- **`MapaFiscal`**: Representa o mapa fiscal, com classes fiscais, cen\u00c3\u00a1rios e opera\u00c3\u00a7\u00c3\u00b5es.\r\n- **`ClasseFiscal`**: Detalha a classifica\u00c3\u00a7\u00c3\u00a3o fiscal de produtos, como NCM, origem, segmento e al\u00c3\u00adquotas.\r\n- **`CenarioFiscal`**: Representa configura\u00c3\u00a7\u00c3\u00b5es espec\u00c3\u00adficas para opera\u00c3\u00a7\u00c3\u00b5es fiscais em determinado contexto.\r\n- **`OperacaoFiscal`**: Define detalhes operacionais como CFOP, CST, al\u00c3\u00adquotas de ICMS, PIS, COFINS e IPI.\r\n\r\n### 2. **Regras Fiscais**\r\n- **`RegraFiscalProcessor`**: Processa as regras tribut\u00c3\u00a1rias com base no contexto fiscal e nos par\u00c3\u00a2metros fornecidos, calculando al\u00c3\u00adquotas de ICMS, PIS, COFINS e IPI.\r\n\r\n### 3. **Contextos Fiscais**\r\n- **`ContextoFiscal`**: Interface base para diferentes fontes de dados fiscais.\r\n- **`JSONContexto`**: Implementa\u00c3\u00a7\u00c3\u00a3o que carrega dados fiscais a partir de arquivos JSON.\r\n- **`ContextoFiscalFactory`**: Fabrica contextos fiscais dinamicamente com base em registros.\r\n\r\n---\r\n\r\n## Casos de Uso\r\n\r\n### Cen\u00c3\u00a1rio: Gerar um Mapa Fiscal com Base em um Arquivo JSON\r\n\r\n#### 1. Configurar o Contexto\r\nRegistre um contexto fiscal baseado no formato JSON:\r\n```python\r\nfrom mapafiscal.contexto.factory import ContextoFiscalFactory\r\nfrom mapafiscal.common import RegimeTributacao, PerfilContribuinte\r\n\r\ncontexto = ContextoFiscalFactory.criar_contexto(\r\n nome=\"json\",\r\n uf_origem=\"SP\",\r\n regime_tributacao=RegimeTributacao.LUCRO_PRESUMIDO,\r\n perfil_empresa=PerfilContribuinte.COMERCIO_VAREJISTA,\r\n contexto_file=\"caminho/para/dados.json\"\r\n)\r\n```\r\n\r\n#### 2. Construir o Mapa Fiscal\r\nUse o processador de regras fiscais para criar um mapa fiscal:\r\n```python\r\nfrom mapafiscal.model import MapaFiscal\r\nfrom mapafiscal.processor import RegraFiscalProcessor\r\n\r\nmapa_fiscal = MapaFiscal(\r\n nome=\"Mapa SP\",\r\n uf_origem=\"SP\",\r\n tributacao=RegimeTributacao.LUCRO_PRESUMIDO\r\n)\r\n\r\nprocessador = RegraFiscalProcessor(contexto)\r\nclasse_fiscal = processador.process_classe_fiscal(\r\n codigo=\"001\",\r\n ncm=\"12345678\",\r\n descricao=\"Produto Exemplo\",\r\n origem=0,\r\n cest=\"12.345.67\",\r\n segmento=\"Segmento Exemplo\"\r\n)\r\nmapa_fiscal._classes_fiscais.append(classe_fiscal)\r\n```\r\n\r\n#### 3. Exportar Resultado\r\nExporte os resultados para um arquivo Excel:\r\n```python\r\nfrom mapafiscal.excel import ExcelExporter\r\n\r\nexportador = ExcelExporter(mapa_fiscal)\r\nexportador.to_excel(\"mapa_fiscal.xlsx\")\r\n```\r\n\r\n---\r\n\r\n## Como Executar\r\n\r\n### Executar via Linha de Comando\r\nO script `build_cenario.py` permite gerar um mapa fiscal diretamente via terminal:\r\n```bash\r\npython build_cenario.py --filename caminho/para/dados.json\r\n```\r\nEste comando gerar\u00c3\u00a1 um arquivo `mapafiscal.xlsx` contendo os cen\u00c3\u00a1rios processados.\r\n\r\n---\r\n\r\n## Estrutura de Arquivos do Projeto\r\n- **`common.py`**: Cont\u00c3\u00a9m enums e classes comuns usadas em todo o projeto.\r\n- **`model.py`**: Define os modelos de dados principais.\r\n- **`contexto_fiscal.py`**: Define a interface base e funcionalidades gerais para contextos fiscais.\r\n- **`contexto_factory.py`**: Permite criar contextos fiscais dinamicamente.\r\n- **`contexto_registry.py`**: Gerencia registros de diferentes implementa\u00c3\u00a7\u00c3\u00b5es de contexto.\r\n- **`json_contexto.py`**: Implementa\u00c3\u00a7\u00c3\u00a3o de contexto fiscal baseado em JSON.\r\n- **`mapa_fiscal_processor.py`**: Processa cen\u00c3\u00a1rios e opera\u00c3\u00a7\u00c3\u00b5es fiscais.\r\n- **`build_cenario.py`**: Script para gerar mapas fiscais via terminal.\r\n\r\n---\r\n\r\n## Contribui\u00c3\u00a7\u00c3\u00b5es\r\nContribui\u00c3\u00a7\u00c3\u00b5es s\u00c3\u00a3o bem-vindas! Para relatar problemas ou sugerir melhorias, crie uma issue ou envie um pull request.\r\n\r\n---\r\n\r\n## Licen\u00c3\u00a7a\r\nEste projeto est\u00c3\u00a1 licenciado sob a Licen\u00c3\u00a7a MIT. Veja o arquivo LICENSE para mais detalhes.\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Gerador de mapa fiscal com base em regras fiscais",
"version": "0.2.2",
"project_urls": {
"Homepage": "https://github.com/ismaelnjr/mapafiscal-project.git"
},
"split_keywords": [
"mapa",
"fiscal",
"tributario",
"receita",
"federal"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1eb62d55e67583a290d54380082daff70354804d4352c63923ab0a36043d9150",
"md5": "ff52e8a2e3ec17a77a30c7013aac16bb",
"sha256": "d3c4adabfac2406dad945f15f91fd9cd68958dff21c83fe6eb227702602a26dc"
},
"downloads": -1,
"filename": "mapafiscal-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ff52e8a2e3ec17a77a30c7013aac16bb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 288744,
"upload_time": "2024-12-21T00:56:49",
"upload_time_iso_8601": "2024-12-21T00:56:49.600752Z",
"url": "https://files.pythonhosted.org/packages/1e/b6/2d55e67583a290d54380082daff70354804d4352c63923ab0a36043d9150/mapafiscal-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "781e01ce42fd680d69af1f3185083ac293947bcdfacb1b68fac6af4b0691dfbd",
"md5": "5848682f692b3843ae2800567a5bc5b8",
"sha256": "58449efde0a3c6946d4ae776618e559c7a8f8fb7b386fcfb09a3f01a69edfe2e"
},
"downloads": -1,
"filename": "mapafiscal-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "5848682f692b3843ae2800567a5bc5b8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 278415,
"upload_time": "2024-12-21T00:56:52",
"upload_time_iso_8601": "2024-12-21T00:56:52.300171Z",
"url": "https://files.pythonhosted.org/packages/78/1e/01ce42fd680d69af1f3185083ac293947bcdfacb1b68fac6af4b0691dfbd/mapafiscal-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-21 00:56:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ismaelnjr",
"github_project": "mapafiscal-project",
"github_not_found": true,
"lcname": "mapafiscal"
}