Pular para conteúdo

Bloco K — Produção e Estoque

Finalidade

Escriturar movimentação de estoque e produção, com dados de inventário escriturado, ordens de produção e insumos consumidos.


K010 — Tipo de Leiaute

Campo Origem Regra
IND_TP_LEIAUTE 🏢 company.l10n_br_ind_tp_leiaute_k010 ou '1' ✅ Empresa → Tipo Leiaute K

Valores possíveis: 1 (simplificado), 2 (completo), 3 (restrito)


K100 — Período de Apuração

Campo Origem
DT_INI ⚙️ self.date_ini
DT_FIN ⚙️ self.date_fim

K200 — Estoque Escriturado

Origem dos dados: stock.valuation.layer (camadas de valorização de estoque)

Filtros Aplicados

product_ids = search([
    l10n_br_ncm_id != False,
    l10n_br_tipo_produto in ['00','01','02','03','04','05','06','10'],
    type != 'consu'
])

stock_valuation_ids = search([
    product_id in product_ids,
    create_date <= date_fim,
    company_id = company_id
])

Campos

Campo Origem Regra
DT_EST ⚙️ self.date_fim Data final do período
COD_ITEM 📦 product.default_code
QTD 🧮 max(sum(svl.quantity), 0) Mínimo zero
IND_EST 🔒 '0' (próprio) Fixo

Regra: Produtos com quantidade zero ou negativa são ignorados.


K230 — Produção (Ordens de Produção — MRP)

Origem dos dados: stock.move com production_id

Filtros

stock_move_ids = search([
    production_id != False,
    state = 'done',
    date >= date_ini,
    date <= date_fim,
    company_id = company_id
])

Campos

Campo Origem Regra
DT_INI_OP 📄 production.date_start (somente data)
DT_FIN_OP 📄 move.move_line_ids[0].date ✅ Primeira linha do movimento
COD_DOC_OP 📄 production.name (máx 30 chars) ✅ Nome da OP
COD_ITEM 📦 production.product_id.default_code ✅ Produto acabado
QTD_ENC 📄 move.move_line_ids[0].quantity ✅ Quantidade encerrada

Nota: Gera um K230 para cada stock.move vinculado a uma OP, não para cada OP.


K235 — Insumos Consumidos

Origem dos dados: stock.move com raw_material_production_id

Filtros

stock_move_raw_ids = search([
    raw_material_production_id = production_id,
    state = 'done'
])

Campos

Campo Origem Regra
DT_SAIDA 📄 move_raw.move_line_ids[0].date ✅ Data do consumo
COD_ITEM 📦 move_raw.product_id.default_code ✅ Insumo
QTD 📄 move_raw.move_line_ids[0].quantity ✅ Quantidade consumida
COD_INS_SUBST 🔒 '' Não implementado

Hierarquia de Registros

flowchart TD
    K1["K001 (Abertura)"]
    K10["K010 (Tipo Leiaute)"]
    K100["K100 (Período)"]
    K200["K200 (Estoque Escriturado)"]
    K230["K230 (Produção)"]
    K235["K235 (Insumos)"]
    K990["K990 (Encerramento)"]

    K1 --> K10
    K10 --> K100
    K100 --> K200
    K100 --> K230
    K230 --> K235
    K100 --> K990

Dependências

Pré-requisito Efeito
Módulo MRP instalado Sem MRP, K230/K235 não geram dados
Produtos com NCM Produtos sem NCM são excluídos do K200
Produtos com default_code Referência obrigatória para COD_ITEM
OP finalizada (state = 'done') OPs em andamento não geram K230/K235
Camadas de valorização (stock.valuation.layer) Base do K200

Problemas Comuns

Sintoma Causa Solução
K200 vazio Sem estoque ou sem NCM nos produtos Verificar NCM e l10n_br_tipo_produto
K230/K235 vazio Sem OPs finalizadas no período Verificar ordens de produção
Quantidade K200 zerada Todas as camadas de valorização com qty ≤ 0 Verificar movimentações de estoque

Referências