Files
Aislo/B08_wf5_Quantity/B08_wf5_Quantity_Database_CostBasis.py
T

19 lines
1.4 KiB
Python

COST_BASIS_DDL = (
"""CREATE TABLE IF NOT EXISTS b08_cost_basis (
id CHAR(36) PRIMARY KEY, project_id CHAR(36) NOT NULL, basis_code VARCHAR(50) NOT NULL,
name VARCHAR(255) NOT NULL, specification VARCHAR(255) NOT NULL DEFAULT '', unit VARCHAR(30) NOT NULL,
formula_note LONGTEXT NULL, 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_cost_basis(project_id,basis_code,version_no))""",
"""CREATE TABLE IF NOT EXISTS b08_cost_basis_components (
id BIGINT AUTO_INCREMENT PRIMARY KEY, cost_basis_id CHAR(36) NOT NULL,
component_type VARCHAR(20) NOT NULL, reference_id CHAR(36) NOT NULL,
quantity_expression VARCHAR(500) NOT NULL, cost_type VARCHAR(20) NOT NULL,
sort_order INT NOT NULL DEFAULT 0, KEY ix_b08_cb_component(cost_basis_id))""",
"""CREATE TABLE IF NOT EXISTS b08_formula_variables (
id BIGINT AUTO_INCREMENT PRIMARY KEY, cost_basis_id CHAR(36) NOT NULL,
variable_code VARCHAR(50) NOT NULL, label VARCHAR(150) NOT NULL,
value DECIMAL(20,8) NULL, unit VARCHAR(30) NULL, required TINYINT(1) NOT NULL DEFAULT 1,
UNIQUE KEY uq_b08_variable(cost_basis_id,variable_code))""",
)