Fix expense to be nullable without raw material.
This commit is contained in:
@@ -3,7 +3,7 @@ CREATE TABLE purchase_category_presets (
|
||||
parent_id UUID REFERENCES purchase_category_presets(id) ON DELETE SET NULL,
|
||||
code VARCHAR(100) NOT NULL UNIQUE,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
type VARCHAR(20) NOT NULL CHECK (type IN ('raw_material', 'non_inventory')),
|
||||
type VARCHAR(20) NOT NULL CHECK (type IN ('raw_material', 'expense')),
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
is_active BOOLEAN NOT NULL DEFAULT true,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
||||
@@ -17,7 +17,7 @@ CREATE TABLE purchase_categories (
|
||||
parent_id UUID REFERENCES purchase_categories(id) ON DELETE SET NULL,
|
||||
code VARCHAR(100) NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
type VARCHAR(20) NOT NULL CHECK (type IN ('raw_material', 'non_inventory')),
|
||||
type VARCHAR(20) NOT NULL CHECK (type IN ('raw_material', 'expense')),
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
is_system BOOLEAN NOT NULL DEFAULT false,
|
||||
is_active BOOLEAN NOT NULL DEFAULT true,
|
||||
@@ -38,8 +38,8 @@ CREATE INDEX idx_purchase_categories_is_active ON purchase_categories(is_active)
|
||||
|
||||
INSERT INTO purchase_category_presets (code, name, type, sort_order)
|
||||
VALUES
|
||||
('hpp', 'HPP', 'raw_material', 1),
|
||||
('biaya_lain_lain', 'Biaya Lain-lain', 'non_inventory', 2)
|
||||
('bahan_baku', 'Bahan Baku', 'raw_material', 1),
|
||||
('biaya_lain_lain', 'Biaya Lain-lain', 'expense', 2)
|
||||
ON CONFLICT (code) DO NOTHING;
|
||||
|
||||
INSERT INTO purchase_category_presets (parent_id, code, name, type, sort_order)
|
||||
@@ -47,18 +47,14 @@ SELECT parent.id, child.code, child.name, child.type, child.sort_order
|
||||
FROM purchase_category_presets parent
|
||||
JOIN (
|
||||
VALUES
|
||||
('hpp', 'hpp_bakso_mie_ayam', 'Bakso & Mie Ayam', 'raw_material', 1),
|
||||
('hpp', 'hpp_nusantara', 'Nusantara', 'raw_material', 2),
|
||||
('hpp', 'hpp_ramen', 'Ramen', 'raw_material', 3),
|
||||
('hpp', 'hpp_minuman_kopi', 'Minuman/Kopi', 'raw_material', 4),
|
||||
('biaya_lain_lain', 'biaya_atk_perlengkapan', 'ATK & Perlengkapan', 'non_inventory', 1),
|
||||
('biaya_lain_lain', 'biaya_makan_karyawan', 'Makan Karyawan', 'non_inventory', 2),
|
||||
('biaya_lain_lain', 'biaya_bensin_parkir', 'Bensin & Parkir', 'non_inventory', 3),
|
||||
('biaya_lain_lain', 'biaya_kebersihan_keamanan', 'Kebersihan & Keamanan', 'non_inventory', 4),
|
||||
('biaya_lain_lain', 'biaya_gaji_dw', 'Gaji DW', 'non_inventory', 5),
|
||||
('biaya_lain_lain', 'biaya_gaji_staff', 'Gaji Staff', 'non_inventory', 6),
|
||||
('biaya_lain_lain', 'biaya_internet_server', 'Internet & Server', 'non_inventory', 7),
|
||||
('biaya_lain_lain', 'biaya_air_listrik', 'Air & Listrik', 'non_inventory', 8),
|
||||
('biaya_lain_lain', 'biaya_promosi', 'Promosi', 'non_inventory', 9)
|
||||
('biaya_lain_lain', 'biaya_atk_perlengkapan', 'ATK & Perlengkapan', 'expense', 1),
|
||||
('biaya_lain_lain', 'biaya_makan_karyawan', 'Makan Karyawan', 'expense', 2),
|
||||
('biaya_lain_lain', 'biaya_bensin_parkir', 'Bensin & Parkir', 'expense', 3),
|
||||
('biaya_lain_lain', 'biaya_kebersihan_keamanan', 'Kebersihan & Keamanan', 'expense', 4),
|
||||
('biaya_lain_lain', 'biaya_gaji_dw', 'Gaji DW', 'expense', 5),
|
||||
('biaya_lain_lain', 'biaya_gaji_staff', 'Gaji Staff', 'expense', 6),
|
||||
('biaya_lain_lain', 'biaya_internet_server', 'Internet & Server', 'expense', 7),
|
||||
('biaya_lain_lain', 'biaya_air_listrik', 'Air & Listrik', 'expense', 8),
|
||||
('biaya_lain_lain', 'biaya_promosi', 'Promosi', 'expense', 9)
|
||||
) AS child(parent_code, code, name, type, sort_order) ON parent.code = child.parent_code
|
||||
ON CONFLICT (code) DO NOTHING;
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
ALTER TABLE purchase_category_presets DROP CONSTRAINT IF EXISTS purchase_category_presets_type_check;
|
||||
ALTER TABLE purchase_categories DROP CONSTRAINT IF EXISTS purchase_categories_type_check;
|
||||
|
||||
UPDATE purchase_category_presets
|
||||
SET type = 'non_inventory'
|
||||
WHERE type = 'expense';
|
||||
|
||||
UPDATE purchase_categories
|
||||
SET type = 'non_inventory'
|
||||
WHERE type = 'expense';
|
||||
|
||||
UPDATE purchase_category_presets
|
||||
SET code = 'hpp', name = 'HPP'
|
||||
WHERE code = 'bahan_baku' AND type = 'raw_material';
|
||||
|
||||
UPDATE purchase_categories
|
||||
SET code = 'hpp', name = 'HPP'
|
||||
WHERE code = 'bahan_baku' AND type = 'raw_material';
|
||||
|
||||
UPDATE purchase_category_presets
|
||||
SET is_active = true
|
||||
WHERE code LIKE 'hpp\_%' ESCAPE '\' AND type = 'raw_material';
|
||||
|
||||
UPDATE purchase_categories
|
||||
SET is_active = true
|
||||
WHERE code LIKE 'hpp\_%' ESCAPE '\' AND type = 'raw_material';
|
||||
|
||||
ALTER TABLE purchase_category_presets
|
||||
ADD CONSTRAINT purchase_category_presets_type_check CHECK (type IN ('raw_material', 'non_inventory'));
|
||||
|
||||
ALTER TABLE purchase_categories
|
||||
ADD CONSTRAINT purchase_categories_type_check CHECK (type IN ('raw_material', 'non_inventory'));
|
||||
@@ -0,0 +1,36 @@
|
||||
ALTER TABLE purchase_category_presets DROP CONSTRAINT IF EXISTS purchase_category_presets_type_check;
|
||||
ALTER TABLE purchase_categories DROP CONSTRAINT IF EXISTS purchase_categories_type_check;
|
||||
|
||||
UPDATE purchase_category_presets
|
||||
SET type = 'expense'
|
||||
WHERE type = 'non_inventory';
|
||||
|
||||
UPDATE purchase_categories
|
||||
SET type = 'expense'
|
||||
WHERE type = 'non_inventory';
|
||||
|
||||
UPDATE purchase_category_presets
|
||||
SET code = 'bahan_baku', name = 'Bahan Baku'
|
||||
WHERE code = 'hpp' AND type = 'raw_material';
|
||||
|
||||
UPDATE purchase_categories
|
||||
SET code = 'bahan_baku', name = 'Bahan Baku'
|
||||
WHERE code = 'hpp' AND type = 'raw_material';
|
||||
|
||||
UPDATE purchase_category_presets
|
||||
SET is_active = false
|
||||
WHERE code LIKE 'hpp\_%' ESCAPE '\' AND type = 'raw_material';
|
||||
|
||||
UPDATE purchase_categories
|
||||
SET is_active = false
|
||||
WHERE code LIKE 'hpp\_%' ESCAPE '\' AND type = 'raw_material';
|
||||
|
||||
ALTER TABLE purchase_category_presets
|
||||
ADD CONSTRAINT purchase_category_presets_type_check CHECK (type IN ('raw_material', 'expense'));
|
||||
|
||||
ALTER TABLE purchase_categories
|
||||
ADD CONSTRAINT purchase_categories_type_check CHECK (type IN ('raw_material', 'expense'));
|
||||
|
||||
ALTER TABLE purchase_order_items ALTER COLUMN ingredient_id DROP NOT NULL;
|
||||
ALTER TABLE purchase_order_items ALTER COLUMN quantity DROP NOT NULL;
|
||||
ALTER TABLE purchase_order_items ALTER COLUMN unit_id DROP NOT NULL;
|
||||
Reference in New Issue
Block a user