229 lines
9.0 KiB
SQL
229 lines
9.0 KiB
SQL
-- ============================================================================
|
|
-- ERP GENERIC - SEED DATA: SAMPLE DATA (Development)
|
|
-- ============================================================================
|
|
-- Description: Sample partners, products, and transactions for testing
|
|
-- ============================================================================
|
|
|
|
-- ===========================================
|
|
-- UUID REFERENCE (from previous seeds)
|
|
-- ===========================================
|
|
-- TENANT_DEMO: 1c7dfbb0-19b8-4e87-a225-a74da6f26dbf
|
|
-- COMPANY_DEMO: 50fa9b29-504f-4c45-8f8a-3d129cfc6095
|
|
|
|
-- ===========================================
|
|
-- SAMPLE PARTNERS (Customers & Vendors)
|
|
-- ===========================================
|
|
|
|
-- Customer 1 - Acme Corporation
|
|
INSERT INTO core.partners (id, tenant_id, name, legal_name, partner_type, is_customer, is_supplier, is_company, email, phone, tax_id, created_at)
|
|
VALUES (
|
|
'dda3e76c-0f92-49ea-b647-62fde7d6e1d1',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'Acme Corporation',
|
|
'Acme Corporation S.A. de C.V.',
|
|
'company',
|
|
true,
|
|
false,
|
|
true,
|
|
'ventas@acme.mx',
|
|
'+52 55 1111 2222',
|
|
'ACM123456ABC',
|
|
CURRENT_TIMESTAMP
|
|
) ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- Customer 2 - Tech Solutions
|
|
INSERT INTO core.partners (id, tenant_id, name, legal_name, partner_type, is_customer, is_supplier, is_company, email, phone, tax_id, created_at)
|
|
VALUES (
|
|
'78291258-da01-4560-a49e-5047d92cf11f',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'Tech Solutions',
|
|
'Tech Solutions de México S.A.',
|
|
'company',
|
|
true,
|
|
false,
|
|
true,
|
|
'contacto@techsolutions.mx',
|
|
'+52 55 3333 4444',
|
|
'TSM987654XYZ',
|
|
CURRENT_TIMESTAMP
|
|
) ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- Vendor 1 - Materiales del Centro
|
|
INSERT INTO core.partners (id, tenant_id, name, legal_name, partner_type, is_customer, is_supplier, is_company, email, phone, tax_id, created_at)
|
|
VALUES (
|
|
'643c97e3-bf44-40ed-bd01-ae1f5f0d861b',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'Materiales del Centro',
|
|
'Materiales del Centro S. de R.L.',
|
|
'company',
|
|
false,
|
|
true,
|
|
true,
|
|
'ventas@materialescentro.mx',
|
|
'+52 55 5555 6666',
|
|
'MDC456789DEF',
|
|
CURRENT_TIMESTAMP
|
|
) ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- Vendor 2 - Distribuidora Nacional
|
|
INSERT INTO core.partners (id, tenant_id, name, legal_name, partner_type, is_customer, is_supplier, is_company, email, phone, tax_id, created_at)
|
|
VALUES (
|
|
'79f3d083-375e-4e50-920b-a3630f74d4b1',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'Distribuidora Nacional',
|
|
'Distribuidora Nacional de Productos S.A.',
|
|
'company',
|
|
false,
|
|
true,
|
|
true,
|
|
'pedidos@distnacional.mx',
|
|
'+52 55 7777 8888',
|
|
'DNP321654GHI',
|
|
CURRENT_TIMESTAMP
|
|
) ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ===========================================
|
|
-- SAMPLE PRODUCT CATEGORIES
|
|
-- ===========================================
|
|
|
|
INSERT INTO core.product_categories (id, tenant_id, name, code, parent_id, full_path, active, created_at)
|
|
VALUES
|
|
('f10ee8c4-e52e-41f5-93b3-a140d09dd807', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', 'All Products', 'ALL', NULL, 'All Products', true, CURRENT_TIMESTAMP),
|
|
('b1517141-470a-4835-98ff-9250ffd18121', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', 'Raw Materials', 'RAW', 'f10ee8c4-e52e-41f5-93b3-a140d09dd807', 'All Products / Raw Materials', true, CURRENT_TIMESTAMP),
|
|
('0b55e26b-ec64-4a80-aab3-be5a55b0ca88', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', 'Finished Goods', 'FIN', 'f10ee8c4-e52e-41f5-93b3-a140d09dd807', 'All Products / Finished Goods', true, CURRENT_TIMESTAMP),
|
|
('e92fbdc8-998f-4bf2-8a00-c7efd3e8eb64', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', 'Services', 'SRV', 'f10ee8c4-e52e-41f5-93b3-a140d09dd807', 'All Products / Services', true, CURRENT_TIMESTAMP)
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ===========================================
|
|
-- SAMPLE PRODUCTS
|
|
-- ===========================================
|
|
|
|
INSERT INTO inventory.products (id, tenant_id, name, code, barcode, category_id, product_type, uom_id, cost_price, list_price, created_at)
|
|
VALUES
|
|
-- Product 1: Raw material - Steel Sheet
|
|
(
|
|
'ccbc64d7-06f9-47a1-9ad7-6dbfbbf82955',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'Steel Sheet 4x8',
|
|
'MAT-001',
|
|
'7501234567890',
|
|
'b1517141-470a-4835-98ff-9250ffd18121',
|
|
'storable',
|
|
(SELECT id FROM core.uom WHERE code = 'unit' LIMIT 1),
|
|
350.00,
|
|
500.00,
|
|
CURRENT_TIMESTAMP
|
|
),
|
|
-- Product 2: Finished good - Metal Cabinet
|
|
(
|
|
'1d4bbccb-1d83-4b15-a85d-687e378fff96',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'Metal Cabinet Large',
|
|
'PROD-001',
|
|
'7501234567891',
|
|
'0b55e26b-ec64-4a80-aab3-be5a55b0ca88',
|
|
'storable',
|
|
(SELECT id FROM core.uom WHERE code = 'unit' LIMIT 1),
|
|
1800.00,
|
|
2500.00,
|
|
CURRENT_TIMESTAMP
|
|
),
|
|
-- Product 3: Service - Installation
|
|
(
|
|
'aae17b73-5bd2-433e-bb99-d9187df398b8',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'Installation Service',
|
|
'SRV-001',
|
|
NULL,
|
|
'e92fbdc8-998f-4bf2-8a00-c7efd3e8eb64',
|
|
'service',
|
|
(SELECT id FROM core.uom WHERE code = 'h' LIMIT 1),
|
|
300.00,
|
|
500.00,
|
|
CURRENT_TIMESTAMP
|
|
)
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ===========================================
|
|
-- SAMPLE WAREHOUSE & LOCATIONS
|
|
-- ===========================================
|
|
|
|
INSERT INTO inventory.warehouses (id, tenant_id, company_id, name, code, is_default, active, created_at)
|
|
VALUES (
|
|
'40ea2e44-31aa-4e4c-856d-e5c3dd0b942f',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'50fa9b29-504f-4c45-8f8a-3d129cfc6095',
|
|
'Main Warehouse',
|
|
'WH-MAIN',
|
|
true,
|
|
true,
|
|
CURRENT_TIMESTAMP
|
|
) ON CONFLICT (id) DO NOTHING;
|
|
|
|
INSERT INTO inventory.locations (id, tenant_id, warehouse_id, name, complete_name, location_type, active, created_at)
|
|
VALUES
|
|
('7a57d418-4ea6-47d7-a3e0-2ade4c95e240', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', '40ea2e44-31aa-4e4c-856d-e5c3dd0b942f', 'Stock', 'WH-MAIN/Stock', 'internal', true, CURRENT_TIMESTAMP),
|
|
('3bea067b-5023-474b-88cf-97bb0461538b', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', '40ea2e44-31aa-4e4c-856d-e5c3dd0b942f', 'Input', 'WH-MAIN/Input', 'internal', true, CURRENT_TIMESTAMP),
|
|
('8f97bcf7-a34f-406e-8292-bfb04502a4f8', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', '40ea2e44-31aa-4e4c-856d-e5c3dd0b942f', 'Output', 'WH-MAIN/Output', 'internal', true, CURRENT_TIMESTAMP)
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ===========================================
|
|
-- SAMPLE STOCK QUANTITIES
|
|
-- ===========================================
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'inventory' AND table_name = 'stock_quants') THEN
|
|
-- Steel Sheet 4x8 - 100 units in Stock location
|
|
PERFORM inventory.update_stock_quant(
|
|
'ccbc64d7-06f9-47a1-9ad7-6dbfbbf82955'::uuid,
|
|
'7a57d418-4ea6-47d7-a3e0-2ade4c95e240'::uuid,
|
|
NULL,
|
|
100.00
|
|
);
|
|
-- Metal Cabinet Large - 25 units in Stock location
|
|
PERFORM inventory.update_stock_quant(
|
|
'1d4bbccb-1d83-4b15-a85d-687e378fff96'::uuid,
|
|
'7a57d418-4ea6-47d7-a3e0-2ade4c95e240'::uuid,
|
|
NULL,
|
|
25.00
|
|
);
|
|
RAISE NOTICE 'Stock quantities added via update_stock_quant function';
|
|
ELSE
|
|
RAISE NOTICE 'inventory.stock_quants table does not exist, skipping stock initialization';
|
|
END IF;
|
|
END $$;
|
|
|
|
-- ===========================================
|
|
-- SAMPLE ANALYTIC ACCOUNTS
|
|
-- ===========================================
|
|
|
|
INSERT INTO analytics.analytic_plans (id, tenant_id, company_id, name, description, active, created_at)
|
|
VALUES (
|
|
'f6085dcd-dcd7-4ef5-affc-0fa3b037b1d2',
|
|
'1c7dfbb0-19b8-4e87-a225-a74da6f26dbf',
|
|
'50fa9b29-504f-4c45-8f8a-3d129cfc6095',
|
|
'Projects',
|
|
'Plan for project-based analytics',
|
|
true,
|
|
CURRENT_TIMESTAMP
|
|
) ON CONFLICT (id) DO NOTHING;
|
|
|
|
INSERT INTO analytics.analytic_accounts (id, tenant_id, company_id, plan_id, name, code, account_type, status, created_at)
|
|
VALUES
|
|
('858e16c0-773d-4cec-ac94-0241ab0c90e3', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', '50fa9b29-504f-4c45-8f8a-3d129cfc6095', 'f6085dcd-dcd7-4ef5-affc-0fa3b037b1d2', 'Project Alpha', 'PROJ-ALPHA', 'project', 'active', CURRENT_TIMESTAMP),
|
|
('41b6a320-021d-473d-b643-038b1bb86055', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', '50fa9b29-504f-4c45-8f8a-3d129cfc6095', 'f6085dcd-dcd7-4ef5-affc-0fa3b037b1d2', 'Project Beta', 'PROJ-BETA', 'project', 'active', CURRENT_TIMESTAMP),
|
|
('b950ada5-2f11-4dd7-a91b-5696dbb8fabc', '1c7dfbb0-19b8-4e87-a225-a74da6f26dbf', '50fa9b29-504f-4c45-8f8a-3d129cfc6095', 'f6085dcd-dcd7-4ef5-affc-0fa3b037b1d2', 'Operations', 'OPS', 'department', 'active', CURRENT_TIMESTAMP)
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- Output confirmation
|
|
DO $$
|
|
BEGIN
|
|
RAISE NOTICE 'Sample data loaded:';
|
|
RAISE NOTICE ' - 4 partners (2 customers, 2 vendors)';
|
|
RAISE NOTICE ' - 4 product categories';
|
|
RAISE NOTICE ' - 3 products';
|
|
RAISE NOTICE ' - 1 warehouse with 3 locations';
|
|
RAISE NOTICE ' - 3 analytic accounts';
|
|
END $$;
|