# Update fitur multi Cabang - POS WEB
## Redesign schema
### auth
- table **auth_tenant**:
- jika `is_multi_store=TRUE` = multi_cabang
- table **auth_user**:
- tambahkan kolom `cabang_id` reference m_cabang(id)
- jika auth_tenant.is_multi_store = true, maka setiap user harus mempunyai `cabang_id`
- jika auth_tenant.is_multi_store = false, maka cabang_id diisi NULL
- table **m_gudang**
- menambahkan kolom `cabang_id`
- jika auth_tenant.is_multi_store = true, maka setiap gudang harus mempunyai `cabang_id`
- jika auth_tenant.is_multi_store = false, maka cabang_id diisi NULL
### master data
- menambahkan table baru **m_item_harga_cabang**:
```
tenant_id character(36) NOT NULL references auth_tenant(id),
cabang_id character(36) COLLATE references m_cabang(id),
id character varying(36) NOT NULL primary key,
item_id character varying(36) COLLATE pg_catalog."default" NOT NULL,
satuan_id character varying(36) COLLATE pg_catalog."default" NOT NULL,
qty_max bigint DEFAULT 999999999,
harga1 numeric(18,2) DEFAULT 0,
created_by character varying(100) COLLATE pg_catalog."default",
created_at timestamp with time zone DEFAULT now(),
updated_by character varying(100) COLLATE pg_catalog."default",
updated_at timestamp with time zone,
is_deleted boolean DEFAULT false,
harga2 numeric(18,2) DEFAULT 0,
harga3 numeric(18,2) DEFAULT 0,
harga4 numeric(18,2) DEFAULT 0,
```
- m_item_harga_promo
-
### penjualan
- table **ar_inv**
- menambahkan kolom `cabang_id`
- jika auth_tenant.is_multi_store = true, maka setiap penjualan harus mempunyai `cabang_id`
- jika auth_tenant.is_multi_store = false, maka cabang_id diisi NULL
- table **billing**
- menambahkan kolom `cabang_id`
- jika auth_tenant.is_multi_store = true, maka setiap billing harus mempunyai `cabang_id`
- jika auth_tenant.is_multi_store = false, maka cabang_id diisi NULL
- table
### pembelian
- table **ap_inv**
- menambahkan kolom `cabang_id`
- jika `auth_tenant.is_multi_store = true`, maka setiap pembelian harus mempunyai `cabang_id`
- jika `auth_tenant.is_multi_store = false`, maka cabang_id diisi NULL
- table **ap_payment**
- menambahkan kolom `cabang_id`
- jika `auth_tenant.is_multi_store = true`, maka setiap pembelian harus mempunyai `cabang_id`
- jika `auth_tenant.is_multi_store = false`, maka cabang_id diisi NULL
### persediaan
- table **mutasi_item**
- menambahkan kolom `cabang_id`
- jika `auth_tenant.is_multi_store = true`, maka setiap mutasi harus mempunyai `cabang_id`
- jika `auth_tenant.is_multi_store = false`, maka cabang_id diisi NULL
- table **transfer**
- menambahkan kolom `cabang_id`
- jika `auth_tenant.is_multi_store = true`, maka setiap transfer harus mempunyai `cabang_id`
- jika `auth_tenant.is_multi_store = false`, maka cabang_id diisi NULL