Files

GRT Inventory Business Category

Ringkasan

grt_inventory_business_category menambahkan segregasi Business Category pada area Inventory.

Cakupan utama:

  • Stock Picking per business category
  • Stock Team per business category
  • Warehouse per business category
  • propagasi category ke stock move dan valuation accounting

Dependensi

  • stock_account
  • sale_stock
  • purchase_stock
  • grt_business_category_base
  • grt_sales_business_category
  • grt_purchase_business_category

Model Utama

stock.picking

Penambahan utama:

  • business_category_id
  • stock_team_id
  • inventory_analytic_account_id

Perilaku utama:

  • category bisa mengikuti picking type warehouse atau stock team
  • validasi memastikan warehouse/team/category konsisten
  • validasi menolak proses bila category kosong saat validasi transfer

stock.move

Penambahan utama:

  • business_category_id
  • stock_team_id
  • inventory_analytic_account_id

Perilaku utama:

  • category dipropagasikan dari picking, sale/purchase context, dan manufacturing context
  • account move line valuation dapat mewarisi analytic account inventory

stock.warehouse

Penambahan utama:

  • business_category_id
  • stock_team_id

Security Rule

Model yang dibatasi category:

  • stock.picking
  • stock.move
  • stock.warehouse
  • stock.team
  • stock.quant
  • product.template
  • product.product
  • account.move (inventory business category)
  • account.move.line (inventory business category)

Prinsip akses:

  • user inventory hanya bisa akses company + category efektif
  • manager inventory tetap dibatasi category efektif
  • admin modul tetap dibatasi category efektif
  • hanya super admin (UID 1) yang dapat bypass penuh

Update Akses Ketat (2026-04-16)

Perubahan hardening yang diterapkan:

  • ditambahkan guard domain stock.picking._search agar query selalu dipersempit ke company + category efektif
  • ditambahkan stock.picking.check_access_rule agar akses lintas category ditolak dengan pesan jelas
  • bypass berbasis base.group_system di validasi operasional stock.picking diubah menjadi bypass hanya untuk SUPERUSER_ID (UID 1)

Implikasi:

  • menghapus filter list default tidak membuat user bisa melihat transfer lintas category
  • admin inventory harus tetap didaftarkan ke team/category terkait

Langkah Deploy

  1. restart service Odoo
  2. upgrade modul grt_inventory_business_category
  3. uji user non-super-admin dengan menghapus filter default pada Transfer list
  4. uji akses record lintas category dan pastikan muncul penolakan akses