Pular para conteúdo

Compras e Importação

Objetivo

Documentar o fluxo completo de compras nacionais e importação na localização brasileira, incluindo os tipos de entrada, DF-e (Documento Fiscal Eletrônico), importação de NF-e, cálculo reverso de impostos, e integração com Siscomex.


Compras → Pedidos → Pedidos de Compra Contabilidade → Documentos Fiscais → DF-e Entrada


Implementação Técnica

  • Model: purchase.order (herança) — classe PurchaseOrder
  • Model linhas: purchase.order.line (herança) — classe PurchaseOrderLine
  • Arquivo: l10n_br_ciel_it_account/models/purchase.py (linha 104)

Tipos de Pedido de Entrada

O sistema define 40+ tipos de pedido de entrada (TIPO_PEDIDO_ENTRADA), organizados por categoria:

Categoria Exemplos
Compra compra, compra-ent-futura, compra-rec-ent-futura, compra-venda-ordem
Importação importacao, importacao-transporte, comp-importacao
Serviço servico, credito-imposto
Retornos retorno, demonstracao, mostruario, feira, consignacao, comodato, deposito, conserto
Industrialização rem-industrializacao, industrializacao, serv-industrializacao
Devolução devolucao (emissão própria), devolucao_compra (devolução de venda)
Locação locacao, ret-locacao
Transferências transf-filial

Entradas Sem Financeiro

A lista TIPO_PEDIDO_ENTRADA_NO_PAYMENT define operações que não geram movimentação financeira (retornos, industrialização, transferências, etc.).


Campos Fiscais do Pedido de Compra

Cabeçalho

Campo Tipo Descrição Padrão
l10n_br_tipo_pedido Selection Tipo de entrada (40+ opções) compra
l10n_br_operacao_consumidor Selection Se é operação consumidor final 0
l10n_br_compra_indcom Selection Destinação de uso uso
l10n_br_imposto_auto Boolean Calcular impostos automaticamente True
dfe_id Many2one Documento Fiscal Eletrônico (DF-e) vinculado
original_currency_id Many2one Moeda original (para importação)

Linha de Compra — Campos Adicionais

Campo Tipo Descrição
l10n_br_operacao_manual Boolean Permite definir operação manualmente
l10n_br_compra_indcom Selection Destinação de uso por linha
dfe_line_id Many2one Linha do DF-e vinculada
l10n_br_unit_tax Float Valor unitário com imposto
l10n_br_di_adicao_id Many2one DI/Adição (importação)

Todos os campos de impostos (ICMS, IPI, PIS, COFINS, II, ICMS ST, ISS, retenções, IBS/CBS/IS) são duplicados nas linhas de compra, seguindo o mesmo padrão das linhas de venda — ver Cálculo de Impostos.


Regras de Negócio

1. Cálculo de Impostos na Entrada

Regra funcional: O motor de cálculo de compras segue a mesma lógica do motor de vendas, porém com l10n_br_tipo_operacao = 'entrada' e usando TIPO_PEDIDO_ENTRADA.

Trigger: @api.onchange('order_line','l10n_br_tipo_pedido','partner_id','company_id','l10n_br_frete','l10n_br_seguro','l10n_br_despesas_acessorias')

2. Destinação de Uso (Herança do Parceiro)

Regra funcional: Ao criar um pedido de compra, o sistema herda a l10n_br_compra_indcom (destinação de uso) cadastrada no parceiro.

Implementação técnica: create() verifica partner.l10n_br_compra_indcom e seta como valor padrão se não informado.

3. Importação de NF-e (XML)

O campo dfe_id vincula o pedido a um DF-e importado. Ao gerar a fatura (action_create_invoice()), o sistema: - Copia chave de acesso, número, série e XML autorizado do DF-e - Preenche data de emissão e data de entrada - Identifica automaticamente o tipo de documento (NF-e, CT-e) - Detecta se o fornecedor é Simples Nacional (crédito ICMS)

4. Seleção Automática de Diário

Regra funcional: O diário contábil é selecionado automaticamente com base no tipo de pedido de entrada.

Hierarquia de busca: 1. Diário da empresa atual com l10n_br_tipo_pedido_entrada correspondente 2. Diário da empresa pai com l10n_br_tipo_pedido_entrada 3. Mapeamento via tabela l10n_br_ciel_it_account.tipo.pedido.diario

5. Devolução de Compra

Regra funcional: Pedidos com l10n_br_tipo_pedido em TIPO_PEDIDO_ENTRADA_DEVOLUCAO geram faturas do tipo out_refund (nota de crédito de saída).

6. Controle de Estoque em Operação

Regra funcional: A operação fiscal define via l10n_br_movimento_estoque se a entrada gera movimentação no estoque. Se desabilitado, nenhum picking é gerado ao confirmar.

Implementação técnica: _create_picking() é sobrescrito — pedidos cujas operações não movimentam estoque são filtrados antes de chamar super().

7. Sincronização CATP (Siscomex)

Ação action_sync_catp_products() permite enviar todos os produtos do pedido para o Portal Único Siscomex (CATP) de uma vez.


Importação — Campos Específicos

Para pedidos de importação (importacao, comp-importacao), campos adicionais na fatura incluem:

Campo Descrição
Via de transporte DI Marítima, Aérea, Rodoviária, etc. (12 opções)
Tipo de importação Conta própria, Conta e ordem, Encomenda
Despesas de importação Frete, seguro, AFRMM, aduaneira, tributos
Tipo de rateio Peso, valor FOB ou valor CIF
DI/Adição Dados da Declaração de Importação
II (Imposto de Importação) Base, alíquota e valor calculados

Para detalhes da integração Siscomex, consulte Siscomex DUIMP/CATP.


Cenários de Uso / Troubleshooting

1. "Não encontrado Diário para o tipo de pedido de entrada informado"

  • Causa: Não existe diário de compra configurado para o tipo de entrada selecionado
  • Solução: Criar diário em Contabilidade → Configuração → Diários com l10n_br_tipo_pedido_entrada ou configurar mapeamento em l10n_br_ciel_it_account.tipo.pedido.diario

2. Estoque não movimentado após confirmação

  • Causa: A operação fiscal tem l10n_br_movimento_estoque = False
  • Solução: Verificar a operação fiscal vinculada ao pedido

3. Impostos divergentes da NF-e do fornecedor

  • Verificar: Operações fiscais de entrada estão configuradas corretamente
  • Verificar: NCM/UF para a combinação UF origem → UF destino
  • Alternativa: Desabilitar l10n_br_imposto_auto e definir valores manualmente

Referências Cruzadas