Arquitetura de Módulos¶
Objetivo¶
Documentar a estrutura modular da localização brasileira CIEL IT, suas dependências internas e externas, e a organização em camadas lógicas para facilitar a compreensão do sistema como um todo.
Diagrama de Dependências¶
graph TD
subgraph "Camada 1 — Núcleo Fiscal"
CORE["l10n_br_ciel_it_account<br/>(Módulo Core)"]
end
subgraph "Camada 2 — Extensões Enterprise"
ACCT["l10n_br_ciel_it_account_accountant<br/>(Batch Payment, CIAP, Cash Flow)"]
REPAIR["l10n_br_ciel_it_account_repair<br/>(Assistência Técnica)"]
end
subgraph "Camada 3 — Fluxos Específicos"
SALE_OUT["l10n_br_ciel_it_sale_output<br/>(Saída de Vendas)"]
PURCH_OUT["l10n_br_ciel_it_purchase_output<br/>(Saída de Compras)"]
SUBSCR["l10n_br_ciel_it_sale_subscription<br/>(Assinaturas)"]
end
subgraph "Camada 4 — Canais de Venda"
WEBSITE["l10n_br_ciel_it_website<br/>(E-commerce)"]
POS["l10n_br_ciel_it_pos<br/>(PDV / NFC-e)"]
end
subgraph "Camada 5 — Pagamentos"
CIELO["l10n_br_ciel_it_payment_cielo"]
REDE["l10n_br_ciel_it_payment_rede"]
PAGBANK["l10n_br_ciel_it_payment_pag_bank"]
end
subgraph "Camada 6 — Logística"
MELHOR["l10n_br_ciel_it_delivery_melhorenvio<br/>(Melhor Envio)"]
end
subgraph "Camada 7 — Comunicação"
WA["wa<br/>(WhatsApp Business)"]
end
ACCT --> CORE
REPAIR --> CORE
SALE_OUT --> CORE
PURCH_OUT --> CORE
SUBSCR --> CORE
WEBSITE --> CORE
POS --> CORE
CIELO -.-> CORE
REDE -.-> CORE
PAGBANK -.-> CORE
MELHOR -.->|"delivery"| CORE
WA -.->|"mail"| CORE
Legenda: Setas sólidas (→) indicam dependência direta via
__manifest__.py. Setas tracejadas (-.->) indicam integração funcional indireta (compartilham dados mas não declaram dependência direta).
Camadas Lógicas¶
Camada 1 — Núcleo Fiscal (l10n_br_ciel_it_account)¶
É o módulo obrigatório e ponto central de toda a localização. Contém:
| Domínio | Componentes |
|---|---|
| Cadastros Fiscais | Empresa (res.company), Parceiros (res.partner), Produtos (product.template), País/UF/Município (res.country) |
| Motor de Impostos | Cálculo de ICMS, IPI, PIS, COFINS, ISS, retenções, DIFAL, FCP, IBS/CBS |
| Operações Fiscais | CFOP, Operações, Tipos de Documento, Mensagens Fiscais |
| Documentos Fiscais | NF-e, NFS-e, NFC-e: emissão, autorização, CCe, cancelamento |
| Obrigações Acessórias | SPED (EFD, ECD, ECF, DCTF, FCI), REINF |
| Comércio Exterior | Siscomex DUIMP/CATP, DI, atributos NCM |
| Financeiro / Bancário | Cobrança escritural, destinação bancária, pagamento escritural |
| Apuração Fiscal | Apuração de impostos (caixa/competência), saldo credor |
| Encerramento | Year-end closing (DRE → lucro/prejuízo) |
| Relatórios | Livros fiscais (entrada/saída), relatório fiscal Excel, apuração ICMS |
| Frontend (OWL) | Botões de remessa/retorno bancário, destinação bancária |
Arquivo: l10n_br_ciel_it_account/__manifest__.py
Dependências Odoo: base, mail, contacts, delivery, account, purchase, purchase_requisition, uom, stock, sale, product_expiry, payment, sale_stock, analytic, stock_delivery, hr, hr_contract, stock_account
Camada 2 — Extensões Enterprise¶
l10n_br_ciel_it_account_accountant¶
| Arquivo | Classe | Escopo |
|---|---|---|
account_asset.py |
AccountAsset | Extensões fiscais para ativo imobilizado |
account_batch_payment.py |
AccountBatchPayment | Pagamento em lote com dados bancários BR |
account_cash_flow_p_r_report.py |
CashFlowPRReport | Relatório de fluxo de caixa a pagar/receber (43 KB) |
account_ciap.py |
AccountCiap | Controle de Crédito de ICMS do Ativo Permanente |
account_followup_report.py |
AccountFollowupReport | Extensão do follow-up de cobrança |
reconciliation_widget.py |
ReconciliationWidget | Extensão do widget de reconciliação |
Dependências: l10n_br_ciel_it_account, módulos Enterprise (account_accountant, account_asset, etc.)
l10n_br_ciel_it_account_repair¶
Extensão fiscal para ordens de reparo/assistência técnica. Adiciona campos fiscais brasileiros às ordens de reparo do módulo repair.
Camada 3 — Fluxos Específicos¶
| Módulo | Escopo |
|---|---|
l10n_br_ciel_it_sale_output |
Personalização de saídas de venda (dados adicionais no faturamento) |
l10n_br_ciel_it_purchase_output |
Personalização de saídas de compra |
l10n_br_ciel_it_sale_subscription |
Fiscal brasileiro aplicado a assinaturas recorrentes |
Camada 4 — Canais de Venda¶
l10n_br_ciel_it_website (E-commerce)¶
- Consulta de CEP no checkout com preenchimento automático
- Campos CPF/CNPJ no formulário de checkout
- Cálculo de frete baseado em CEP
l10n_br_ciel_it_pos (PDV)¶
- Emissão de NFC-e (modelo 65) no ponto de venda
- Captura de CPF no cupom fiscal
- Modo de contingência offline
Camada 5 — Pagamentos¶
Todos os módulos de pagamento dependem apenas do módulo payment do Odoo (framework base de pagamentos) e se integram indiretamente com o módulo core via sale.order.
| Módulo | Gateway | Métodos | API |
|---|---|---|---|
l10n_br_ciel_it_payment_cielo |
Cielo 3.0 | Crédito, Débito, Pix | api.cieloecommerce.cielo.com.br |
l10n_br_ciel_it_payment_rede |
Rede e-Rede | Crédito, Débito | api.userede.com.br |
l10n_br_ciel_it_payment_pag_bank |
PagBank | Pix, Boleto, Crédito | api.pagseguro.com |
Camada 6 — Logística¶
l10n_br_ciel_it_delivery_melhorenvio¶
| Arquivo | Classe | Escopo |
|---|---|---|
delivery_melhorenvio.py |
DeliveryMelhorEnvio | Cotação, criação de envio, rastreamento, cancelamento via API Melhor Envio |
stock_package_type.py |
StockPackageType | Extensão para tipos de embalagem |
Dependências: delivery, mail
API: melhorenvio.com.br/api/v2
Camada 7 — Comunicação¶
wa (WhatsApp Business)¶
| Arquivo | Classe | Escopo |
|---|---|---|
wa_wa.py |
WaWa | Modelo principal de mensagens WA |
wa_api.py |
WaApi | Cliente da API WA Business |
wa_server.py |
WaServer | Gerenciamento de servidor WA |
wa_session.py |
WaSession | Sessões ativas (QR code, status) |
wa_template.py |
WaTemplate | Templates de mensagem HSM |
mail_thread.py |
MailThread | Integração WA no chatter do Odoo |
chatbot_script.py |
ChatBotScript | Automação de chatbot |
ir_actions_server.py |
IrActionsServer | Ações automáticas via WA |
Dependências: base, mail, contacts
Estrutura de Diretórios do Módulo Core¶
l10n_br_ciel_it_account/
├── __manifest__.py # Manifesto do módulo
├── models/ # Models Python (regras de negócio)
│ ├── account.py # AccountMove, AccountMoveLine (NF-e, impostos)
│ ├── res_company.py # Configuração fiscal da empresa
│ ├── res_partner.py # Parceiros (CNPJ/CPF, IE, CNAE)
│ ├── product.py # Produtos (NCM, CEST, DUIMP)
│ ├── sale_order.py # Vendas (simulação fiscal, CFOP, operações)
│ ├── purchase.py # Compras (importação XML, CFOP entrada)
│ ├── stock_picking.py # Estoque (faturamento por entrega)
│ ├── delivery_carrier.py # Transportadoras (peso, volumes)
│ ├── fiscal_reports.py # Livros fiscais (entrada/saída)
│ ├── account_report.py # Relatório fiscal Excel
│ ├── duimp_catp_client.py # Cliente API Siscomex
│ ├── l10n_br_ciel_it_account_apuracao.py # Apuração de impostos
│ ├── l10n_br_ciel_it_year_end_closing.py # Encerramento exercício
│ ├── res_country.py # Municípios IBGE
│ ├── uom_uom.py # UoM fiscal
│ ├── sale_report.py # Relatório de vendas BR
│ └── stock_valuation_recompute.py # Recálculo valorização
├── views/ # Views XML (formulários, listas, menus)
├── data/ # Dados iniciais (CFOPs, sequências, classificações)
├── security/ # Regras de acesso e grupos
├── report/ # Templates QWeb para relatórios PDF
├── reinf/ # Eventos REINF (XML)
├── sped/ # Obrigações SPED
│ ├── efd/ # EFD ICMS/IPI e Contribuições
│ │ ├── icms_ipi/ # Registros EFD ICMS/IPI
│ │ └── pis_cofins/ # Registros EFD Contribuições
│ ├── ecd/ # Escrituração Contábil Digital
│ ├── ecf/ # Escrituração Contábil Fiscal
│ ├── dctf/ # DCTF
│ └── fci/ # Ficha de Conteúdo de Importação
└── static/ # Assets frontend (JS/OWL, XML)
└── src/
├── js/ # Controllers OWL (cobrança, pagamento, destinação bancária)
└── xml/ # Templates de botões OWL
Fluxo de Dados Simplificado¶
flowchart LR
A["Pedido de Venda<br/>(sale.order)"] --> B["Simulação Fiscal<br/>(simulate_impostos)"]
B --> C["Fatura<br/>(account.move)"]
C --> D["Transmissão<br/>(NF-e/NFS-e)"]
D --> E["SEFAZ /<br/>Prefeitura"]
C --> F["Apuração<br/>(apuracao)"]
F --> G["Guia de<br/>Pagamento"]
C --> H["SPED / REINF"]
I["Pedido de Compra<br/>(purchase.order)"] --> J["Importação<br/>XML NF-e"]
J --> C
K["PDV / E-commerce"] --> A
Referências Cruzadas¶
- Anterior: Visão Geral
- Próximo: Configuração da Empresa
- Índice: Sumário Geral