Files
Aislo/B08_wf5_Quantity/B08_wf5_Quantity_Database_UnitCost.py
T

30 lines
2.2 KiB
Python

UNIT_COST_DDL = (
"""CREATE TABLE IF NOT EXISTS b08_unit_costs (
id CHAR(36) PRIMARY KEY, project_id CHAR(36) NOT NULL, unit_cost_code VARCHAR(50) NOT NULL,
name VARCHAR(255) NOT NULL, specification VARCHAR(255) NOT NULL DEFAULT '', unit VARCHAR(30) NOT NULL,
rounding_mode VARCHAR(30) NOT NULL DEFAULT 'ROUND_HALF_UP', rounding_unit BIGINT NOT NULL DEFAULT 1,
labor_price DECIMAL(20,4) NOT NULL DEFAULT 0, material_price DECIMAL(20,4) NOT NULL DEFAULT 0,
expense_price DECIMAL(20,4) NOT NULL DEFAULT 0, total_price DECIMAL(20,4) NOT NULL DEFAULT 0,
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT', version_no INT NOT NULL DEFAULT 1,
UNIQUE KEY uq_b08_unit_cost(project_id,unit_cost_code,version_no))""",
"""CREATE TABLE IF NOT EXISTS b08_unit_cost_components (
id BIGINT AUTO_INCREMENT PRIMARY KEY, unit_cost_id CHAR(36) NOT NULL,
component_type VARCHAR(20) NOT NULL, reference_id CHAR(36) NOT NULL,
quantity DECIMAL(20,8) NOT NULL, cost_type VARCHAR(20) NOT NULL,
sort_order INT NOT NULL DEFAULT 0, note VARCHAR(500) NULL,
KEY ix_b08_uc_component(unit_cost_id))""",
"""CREATE TABLE IF NOT EXISTS b08_equipment_rates (
id CHAR(36) PRIMARY KEY, project_id CHAR(36) NOT NULL, equipment_code VARCHAR(50) NOT NULL,
name VARCHAR(255) NOT NULL, specification VARCHAR(255) NOT NULL DEFAULT '', unit VARCHAR(30) NOT NULL DEFAULT 'hr',
equipment_price DECIMAL(20,4) NOT NULL DEFAULT 0, annual_hours DECIMAL(20,4) NOT NULL DEFAULT 0,
labor_price DECIMAL(20,4) NOT NULL DEFAULT 0, material_price DECIMAL(20,4) NOT NULL DEFAULT 0,
expense_price DECIMAL(20,4) NOT NULL DEFAULT 0, total_price DECIMAL(20,4) NOT NULL DEFAULT 0,
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT', version_no INT NOT NULL DEFAULT 1,
UNIQUE KEY uq_b08_equipment(project_id,equipment_code,version_no))""",
"""CREATE TABLE IF NOT EXISTS b08_equipment_rate_components (
id BIGINT AUTO_INCREMENT PRIMARY KEY, equipment_rate_id CHAR(36) NOT NULL,
component_code VARCHAR(50) NOT NULL, item_id CHAR(36) NULL,
expression VARCHAR(500) NULL, quantity DECIMAL(20,8) NULL,
cost_type VARCHAR(20) NOT NULL, sort_order INT NOT NULL DEFAULT 0,
KEY ix_b08_eq_component(equipment_rate_id))""",
)