Blocos G, H e K — CIAP, Inventário, Produção e Estoque
Bloco G — CIAP (Ativo Imobilizado)
G001 — Abertura
Indicador de movimento definido automaticamente. Se existirem ativos (account.asset), IND_MOV = '0'.
G110 — ICMS - Ativo Permanente
| Campo |
Origem |
Regra |
DT_INI / DT_FIN |
⚙️ Período do SPED |
🧮 |
SALDO_IN_ICMS / SOM_PARC / VL_TRIB_EXP / VL_TOTAL / IND_PER_SAI / ICMS_APROP / SOM_ICMS_OC |
🔒 0.00 |
Fixo (stub) |
⚠️ CIAP parcialmente implementado: Os valores de apuração do G110 são todos zero. O registro existe no código mas falta a lógica de cálculo.
G125 — Movimentação do Bem
| Campo |
Origem |
Regra |
COD_IND_BEM |
📦 asset.id |
🔒 |
TIPO_MOV |
🔒 'SI' (saldo inicial) |
Fixo |
DT_MOV |
📦 depreciation_move.date |
Última depreciação |
NUM_PARC |
🧮 Contador de depreciações lançadas |
Calculado |
VL_PARC_PASS |
📦 depreciation_move.amount_total |
💰 |
VL_IMOB_ICMS_OP |
📋 original_move_line.l10n_br_icms_valor |
💰 |
VL_IMOB_ICMS_ST |
📋 original_move_line.l10n_br_icmsst_valor |
💰 |
G130/G140 — Documento de Entrada do Bem / Componentes
| Campo G130 |
Origem |
IND_EMIT |
🧮 CNPJ empresa na chave |
COD_PART |
👤 partner.id |
COD_MOD / SERIE / NUM_DOC / CHV_NFE_CTE / DT_DOC |
📄 Dados da NF de entrada |
| Campo G140 |
Origem |
NUM_ITEM |
📋 Sequência |
COD_ITEM |
📦 product.id |
QTDE |
📋 line.quantity |
UNID |
📦 product_uom.name |
VL_ICMS_OP_APLICADO |
📋 line.l10n_br_icms_valor |
VL_ICMS_ST_APLICADO |
📋 line.l10n_br_icmsst_valor |
Bloco H — Inventário Físico
H005 — Totais do Inventário
| Campo |
Origem |
Regra |
DT_INV |
⚙️ self.h005_dt_inv |
✅ SPED → Data do Inventário |
VL_INV |
🧮 self.h005_vl_inv — soma dos H010 |
Acumulado |
MOT_INV |
🔒 '01' (final do período) |
Fixo |
Pré-requisito: h005_dt_inv deve estar preenchido. Se vazio, bloco H não é gerado.
H010 — Itens do Inventário
Origem: Camadas de valorização de estoque (stock.valuation.layer).
| Campo |
Origem |
Regra |
COD_ITEM |
📦 product.default_code |
✅ |
UNID |
📦 product.uom_id.l10n_br_codigo_sefaz |
✅ |
QTD |
🧮 sum(stock_valuation.quantity) — mínimo 0 |
Calculado |
VL_UNIT |
🧮 vl_item / abs(qtd) |
Calculado |
VL_ITEM |
🧮 sum(stock_valuation.value) — mínimo 0 |
Calculado |
IND_PROP |
🔒 '0' (próprio) |
Fixo |
COD_CTA |
📦 categ.property_stock_valuation_account_id.code |
✅ |
Filtros:
- Somente produtos com NCM (l10n_br_ncm_id)
- Exclui produtos consumíveis (type == 'consu')
- stock_valuation.create_date <= h005_dt_inv
Bloco K — Produção e Estoque
K010 — Tipo de Leiaute
| Campo |
Origem |
Regra |
IND_TP_LEIAUTE |
🏢 company.l10n_br_ind_tp_leiaute_k010 ou '1' |
✅ Empresa → Tipo Leiaute K |
K100 — Período
| Campo |
Origem |
DT_INI / DT_FIN |
⚙️ Período do SPED |
K200 — Estoque Escriturado
Origem: Camadas de valorização de estoque no final do período.
| Campo |
Origem |
Regra |
DT_EST |
⚙️ self.date_fim |
Período |
COD_ITEM |
📦 product.default_code |
✅ |
QTD |
🧮 sum(stock_valuation.quantity) — mínimo 0 |
Calculado |
IND_EST |
🔒 '0' (próprio) |
Fixo |
Filtros:
- NCM obrigatório
- l10n_br_tipo_produto in ['00'...'06','10']
- Exclui quantidade zero
K230 — Produção (Ordens de Produção)
Origem: stock.move com production_id no período.
| Campo |
Origem |
Regra |
DT_INI_OP |
📄 production.date_start |
✅ |
DT_FIN_OP |
📄 move_line.date |
✅ |
COD_DOC_OP |
📄 production.name |
✅ |
COD_ITEM |
📦 production.product.default_code |
✅ Produto acabado |
QTD_ENC |
📄 move_line.quantity |
✅ |
K235 — Insumos Consumidos
| Campo |
Origem |
Regra |
COD_ITEM |
📦 move_raw.product.default_code |
✅ Insumo |
DT_SAIDA |
📄 move_line.date |
✅ |
QTD |
📄 move_line.quantity |
✅ |
Referências