Introduced Flyway

This commit is contained in:
Jan 2025-10-24 06:21:11 +02:00
parent a83ee4dacd
commit e79db9e1b7
12 changed files with 1246876 additions and 1 deletions

View file

@ -153,6 +153,15 @@
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-mysql</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>

View file

@ -4,7 +4,6 @@ spring.datasource.url=jdbc:mysql://localhost:3306/${DB_DATABASE}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.sql.init.mode=never
lcc.bulk.sheet_password=secretSheet?!
lcc.allowed_cors=${ALLOWED_CORS_DOMAIN}
lcc.base.url=${LCC_BASE_URL}
@ -20,3 +19,7 @@ spring.cloud.azure.active-directory.authorization-clients.graph.scopes=openid,pr
jwt.secret=${JWT_SECRET}
management.endpoints.web.exposure.include=health,info,metrics
management.endpoint.health.show-details=always
spring.flyway.enabled=true
spring.flyway.locations=classpath:db/migration
spring.flyway.baseline-on-migrate=true
spring.sql.init.mode=never

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,651 @@
-- DROP TABLE IF EXISTS `lcc`.`calculation_job`, `lcc`.`calculation_job_destination`, `lcc`.`calculation_job_route_section`, `lcc`.`container_rate`, `lcc`.`country`, `lcc`.`country_matrix_rate`, `lcc`.`country_property`, `lcc`.`country_property_type`, `lcc`.`distance_matrix`, `lcc`.`material`, `lcc`.`node`, `lcc`.`node_predecessor_chain`, `lcc`.`node_predecessor_entry`, `lcc`.`outbound_country_mapping`, `lcc`.`packaging`, `lcc`.`packaging_dimension`, `lcc`.`packaging_property`, `lcc`.`packaging_property_type`, `lcc`.`premise`, `lcc`.`premise_destination`, `lcc`.`premise_route`, `lcc`.`premise_route_node`, `lcc`.`premise_route_section`, `lcc`.`property_set`, `lcc`.`sys_group`, `lcc`.`sys_user`, `lcc`.`sys_user_group_mapping`, `lcc`.`sys_user_node`, `lcc`.`system_property`, `lcc`.`system_property_type`, `lcc`.`validity_period`;
-- Property management tables
CREATE TABLE IF NOT EXISTS `property_set`
(
-- Represents a collection of properties valid for a specific time period
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`start_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`end_date` TIMESTAMP NULL,
`state` CHAR(8) NOT NULL,
CONSTRAINT `chk_property_state_values` CHECK (`state` IN ('DRAFT', 'VALID', 'INVALID', 'EXPIRED')),
CONSTRAINT `chk_property_date_range` CHECK (`end_date` IS NULL OR `end_date` > `start_date`),
INDEX `idx_dates` (`start_date`, `end_date`),
INDEX `idx_property_set_id` (id)
) COMMENT 'Manages versioned sets of properties with temporal validity';
CREATE TABLE IF NOT EXISTS `system_property_type`
(
-- Stores system-wide configuration property types
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`external_mapping_id` VARCHAR(16),
`description` VARCHAR(512) NOT NULL,
`property_group` VARCHAR(32) NOT NULL,
`sequence_number` INT NOT NULL,
`data_type` VARCHAR(16) NOT NULL,
`validation_rule` VARCHAR(64),
UNIQUE KEY `idx_external_mapping` (`external_mapping_id`),
CONSTRAINT `chk_system_data_type_values` CHECK (`data_type` IN
('INT', 'PERCENTAGE', 'BOOLEAN', 'CURRENCY', 'ENUMERATION',
'TEXT'))
) COMMENT 'Stores system-wide configuration property types';
CREATE TABLE IF NOT EXISTS `system_property`
(
-- Stores system-wide configuration properties
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`property_set_id` INT NOT NULL,
`system_property_type_id` INT NOT NULL,
`property_value` VARCHAR(500),
FOREIGN KEY (`property_set_id`) REFERENCES `property_set` (`id`),
FOREIGN KEY (`system_property_type_id`) REFERENCES `system_property_type` (`id`),
INDEX `idx_system_property_type_id` (system_property_type_id),
INDEX `idx_property_set_id` (id),
UNIQUE KEY `idx_system_property_type_id_property_set` (`system_property_type_id`, `property_set_id`)
) COMMENT 'Stores system-wide configuration properties';
-- country
CREATE TABLE IF NOT EXISTS `country`
(
`id` INT NOT NULL AUTO_INCREMENT,
`iso_code` CHAR(2) NOT NULL COMMENT 'ISO 3166-1 alpha-2 country code',
`region_code` CHAR(5) NOT NULL COMMENT 'Geographic region code (EMEA/LATAM/APAC/NAM)',
`name` VARCHAR(255) NOT NULL,
`is_deprecated` BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_country_iso_code` (`iso_code`),
CONSTRAINT `chk_country_region_code`
CHECK (`region_code` IN ('EMEA', 'LATAM', 'APAC', 'NAM'))
) COMMENT 'Master data table for country information and regional classification';
CREATE TABLE IF NOT EXISTS `country_property_type`
(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`external_mapping_id` VARCHAR(16),
`data_type` VARCHAR(16) NOT NULL,
`validation_rule` VARCHAR(64),
`description` VARCHAR(512) NOT NULL,
`property_group` VARCHAR(32) NOT NULL,
`sequence_number` INT NOT NULL,
`is_required` BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT `chk_country_data_type_values` CHECK (`data_type` IN
('INT', 'PERCENTAGE', 'BOOLEAN', 'CURRENCY', 'ENUMERATION',
'TEXT')),
PRIMARY KEY (`id`),
INDEX `idx_property_type_data_type` (`data_type`)
) COMMENT 'Defines available property types for country-specific configurations';
CREATE TABLE IF NOT EXISTS `country_property`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`country_id` INT NOT NULL,
`country_property_type_id` INT NOT NULL,
`property_set_id` INT NOT NULL,
`property_value` VARCHAR(500),
FOREIGN KEY (`country_id`) REFERENCES `country` (`id`),
FOREIGN KEY (`country_property_type_id`) REFERENCES `country_property_type` (`id`),
FOREIGN KEY (`property_set_id`) REFERENCES `property_set` (`id`),
UNIQUE KEY `idx_country_property` (`country_id`, `country_property_type_id`, `property_set_id`)
) COMMENT 'Stores country-specific property values with versioning support';
-- Main table for user information
CREATE TABLE IF NOT EXISTS `sys_user`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`workday_id` CHAR(32) NOT NULL,
`email` VARCHAR(254) NOT NULL,
`firstname` VARCHAR(100) NOT NULL,
`lastname` VARCHAR(100) NOT NULL,
`is_active` BOOLEAN NOT NULL DEFAULT TRUE,
UNIQUE KEY `idx_user_email` (`email`),
UNIQUE KEY `idx_user_workday` (`workday_id`)
) COMMENT 'Stores basic information about system users';
-- Group definitions
CREATE TABLE IF NOT EXISTS `sys_group`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`group_name` VARCHAR(64) NOT NULL,
`group_description` VARCHAR(128) NOT NULL,
UNIQUE KEY `idx_group_name` (`group_name`)
) COMMENT 'Defines user groups for access management';
-- Junction table for user-group assignments
CREATE TABLE IF NOT EXISTS `sys_user_group_mapping`
(
`user_id` INT NOT NULL,
`group_id` INT NOT NULL,
PRIMARY KEY (`user_id`, `group_id`),
FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`),
FOREIGN KEY (`group_id`) REFERENCES `sys_group` (`id`)
) COMMENT 'Links users with their associated groups';
CREATE TABLE IF NOT EXISTS `sys_user_node`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`user_id` INT NOT NULL,
`country_id` INT NOT NULL,
`name` VARCHAR(254) NOT NULL,
`address` VARCHAR(500) NOT NULL,
`geo_lat` DECIMAL(8, 4) CHECK (geo_lat BETWEEN -90 AND 90),
`geo_lng` DECIMAL(8, 4) CHECK (geo_lng BETWEEN -180 AND 180),
`is_deprecated` BOOLEAN DEFAULT FALSE,
FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`),
FOREIGN KEY (`country_id`) REFERENCES `country` (`id`)
) COMMENT 'Contains user generated logistic nodes';
-- Main table for user information
CREATE TABLE IF NOT EXISTS `sys_app`
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
client_id VARCHAR(255) NOT NULL UNIQUE,
client_secret VARCHAR(255) NOT NULL, -- BCrypt gehashed
name VARCHAR(255) NOT NULL
) COMMENT 'Stores basic information about external applications';
-- Junction table for user-group assignments
CREATE TABLE IF NOT EXISTS `sys_app_group_mapping`
(
`app_id` INT NOT NULL,
`group_id` INT NOT NULL,
PRIMARY KEY (`app_id`, `group_id`),
FOREIGN KEY (`app_id`) REFERENCES `sys_app` (`id`),
FOREIGN KEY (`group_id`) REFERENCES `sys_group` (`id`)
) COMMENT 'Links app with their associated groups';
-- logistic nodes
CREATE TABLE IF NOT EXISTS node
(
id INT AUTO_INCREMENT PRIMARY KEY,
country_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
address VARCHAR(500) NOT NULL,
external_mapping_id VARCHAR(32),
predecessor_required BOOLEAN NOT NULL DEFAULT FALSE,
is_destination BOOLEAN NOT NULL,
is_source BOOLEAN NOT NULL,
is_intermediate BOOLEAN NOT NULL,
geo_lat DECIMAL(8, 4) CHECK (geo_lat BETWEEN -90 AND 90),
geo_lng DECIMAL(8, 4) CHECK (geo_lng BETWEEN -180 AND 180),
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
is_deprecated BOOLEAN NOT NULL DEFAULT FALSE,
FOREIGN KEY (country_id) REFERENCES country (id),
INDEX idx_country_id (country_id)
) COMMENT '';
CREATE TABLE IF NOT EXISTS node_predecessor_chain
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
node_id INT NOT NULL,
FOREIGN KEY (node_id) REFERENCES node (id)
);
CREATE TABLE IF NOT EXISTS node_predecessor_entry
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
node_id INT NOT NULL,
node_predecessor_chain_id INT NOT NULL,
sequence_number INT NOT NULL CHECK (sequence_number > 0),
FOREIGN KEY (node_id) REFERENCES node (id),
FOREIGN KEY (node_predecessor_chain_id) REFERENCES node_predecessor_chain (id),
UNIQUE KEY uk_node_predecessor (node_predecessor_chain_id, sequence_number),
INDEX idx_node_predecessor (node_predecessor_chain_id),
INDEX idx_sequence (sequence_number)
);
CREATE TABLE IF NOT EXISTS outbound_country_mapping
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
node_id INT NOT NULL,
country_id INT NOT NULL,
FOREIGN KEY (node_id) REFERENCES node (id),
FOREIGN KEY (country_id) REFERENCES country (id),
UNIQUE KEY uk_node_id_country_id (node_id, country_id),
INDEX idx_node_id (node_id),
INDEX idx_country_id (country_id)
);
CREATE TABLE IF NOT EXISTS distance_matrix
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
from_node_id INT NOT NULL,
to_node_id INT NOT NULL,
from_geo_lat DECIMAL(8, 4) CHECK (from_geo_lat BETWEEN -90 AND 90),
from_geo_lng DECIMAL(8, 4) CHECK (from_geo_lng BETWEEN -180 AND 180),
to_geo_lat DECIMAL(8, 4) CHECK (to_geo_lat BETWEEN -90 AND 90),
to_geo_lng DECIMAL(8, 4) CHECK (to_geo_lng BETWEEN -180 AND 180),
distance DECIMAL(15, 2) NOT NULL COMMENT 'travel distance between the two nodes in meters',
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
state CHAR(10) NOT NULL,
FOREIGN KEY (from_node_id) REFERENCES node (id),
FOREIGN KEY (to_node_id) REFERENCES node (id),
CONSTRAINT `chk_distance_matrix_state` CHECK (`state` IN
('VALID', 'STALE')),
INDEX idx_from_to_nodes (from_node_id, to_node_id)
);
-- container rates
CREATE TABLE IF NOT EXISTS validity_period
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
start_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
end_date TIMESTAMP DEFAULT NULL,
renewals INT UNSIGNED DEFAULT 0,
state CHAR(8) NOT NULL CHECK (state IN ('DRAFT', 'VALID', 'INVALID', 'EXPIRED')),
CONSTRAINT `chk_validity_date_range` CHECK (`end_date` IS NULL OR `end_date` > `start_date`)
);
CREATE TABLE IF NOT EXISTS container_rate
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
from_node_id INT NOT NULL,
to_node_id INT NOT NULL,
container_rate_type CHAR(8) CHECK (container_rate_type IN ('RAIL', 'SEA', 'POST_RUN', 'ROAD')),
rate_teu DECIMAL(15, 2) NOT NULL COMMENT 'rate for 20ft container in EUR',
rate_feu DECIMAL(15, 2) NOT NULL COMMENT 'rate for 40ft container in EUR',
rate_hc DECIMAL(15, 2) NOT NULL COMMENT 'rate for 40ft HQ container in EUR',
lead_time INT UNSIGNED NOT NULL COMMENT 'lead time in days',
validity_period_id INT NOT NULL,
FOREIGN KEY (from_node_id) REFERENCES node (id),
FOREIGN KEY (to_node_id) REFERENCES node (id),
FOREIGN KEY (validity_period_id) REFERENCES validity_period (id),
INDEX idx_from_to_nodes (from_node_id, to_node_id),
INDEX idx_validity_period_id (validity_period_id),
CONSTRAINT uk_container_rate_unique UNIQUE (from_node_id, to_node_id, validity_period_id, container_rate_type)
);
CREATE TABLE IF NOT EXISTS country_matrix_rate
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
from_country_id INT NOT NULL,
to_country_id INT NOT NULL,
rate DECIMAL(15, 2) NOT NULL COMMENT 'rate for full truck load per kilometer in EUR',
validity_period_id INT NOT NULL,
FOREIGN KEY (from_country_id) REFERENCES country (id),
FOREIGN KEY (to_country_id) REFERENCES country (id),
FOREIGN KEY (validity_period_id) REFERENCES validity_period (id),
INDEX idx_from_to_country (from_country_id, to_country_id),
INDEX idx_validity_period_id (validity_period_id),
CONSTRAINT uk_country_matrix_rate_unique UNIQUE (from_country_id, to_country_id, validity_period_id)
);
-- packaging and material
CREATE TABLE IF NOT EXISTS material
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
part_number CHAR(12) NOT NULL,
normalized_part_number CHAR(12) NOT NULL,
hs_code CHAR(11),
name VARCHAR(500) NOT NULL,
is_deprecated BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT `uq_normalized_part_number` UNIQUE (`normalized_part_number`)
);
CREATE TABLE IF NOT EXISTS packaging_dimension
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`type` CHAR(3) DEFAULT 'HU',
`length` INT UNSIGNED NOT NULL COMMENT 'length stored in mm',
`width` INT UNSIGNED NOT NULL COMMENT 'width stored in mm',
`height` INT UNSIGNED NOT NULL COMMENT 'height stored in mm',
`displayed_dimension_unit` CHAR(2) DEFAULT 'CM',
`weight` INT UNSIGNED NOT NULL COMMENT 'weight stored in g',
`displayed_weight_unit` CHAR(2) DEFAULT 'KG',
`content_unit_count` INT UNSIGNED NOT NULL COMMENT 'how many units are contained in packaging (if there is a child packaging this references to the child packaging, otherwise this references a single unit)',
`is_deprecated` BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT `chk_packaging_dimension_type_values` CHECK (`type` IN
('SHU', 'HU')),
CONSTRAINT `chk_packaging_dimension_displayed_dimension_unit` CHECK (`displayed_dimension_unit` IN
('MM', 'CM', 'M')),
CONSTRAINT `chk_packaging_dimension_displayed_weight_unit` CHECK (`displayed_weight_unit` IN
('T', 'G', 'KG'))
);
CREATE TABLE IF NOT EXISTS packaging
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`supplier_node_id` INT NOT NULL,
`material_id` INT NOT NULL,
`hu_dimension_id` INT NOT NULL,
`shu_dimension_id` INT NOT NULL,
`is_deprecated` BOOLEAN NOT NULL DEFAULT FALSE,
FOREIGN KEY (supplier_node_id) REFERENCES node (id),
FOREIGN KEY (material_id) REFERENCES material (id),
FOREIGN KEY (hu_dimension_id) REFERENCES packaging_dimension (id),
FOREIGN KEY (shu_dimension_id) REFERENCES packaging_dimension (id),
INDEX idx_material_id (material_id),
INDEX idx_hu_dimension_id (hu_dimension_id),
INDEX idx_shu_dimension_id (shu_dimension_id)
);
CREATE TABLE IF NOT EXISTS packaging_property_type
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
external_mapping_id VARCHAR(16) NOT NULL,
`description` VARCHAR(255) NOT NULL,
`property_group` VARCHAR(32) NOT NULL,
`sequence_number` INT NOT NULL,
`data_type` VARCHAR(16),
`validation_rule` VARCHAR(64),
`is_required` BOOLEAN NOT NULL DEFAULT FALSE,
UNIQUE KEY idx_packaging_property_type (`external_mapping_id`),
CONSTRAINT `chk_packaging_data_type_values` CHECK (`data_type` IN
('INT', 'PERCENTAGE', 'BOOLEAN', 'CURRENCY', 'ENUMERATION',
'TEXT'))
);
CREATE TABLE IF NOT EXISTS packaging_property
(
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`packaging_property_type_id` INT NOT NULL,
`packaging_id` INT NOT NULL,
`property_value` VARCHAR(500),
FOREIGN KEY (packaging_property_type_id) REFERENCES packaging_property_type (id),
FOREIGN KEY (packaging_id) REFERENCES packaging (id),
INDEX idx_packaging_property_type_id (packaging_property_type_id),
INDEX idx_packaging_id (packaging_id),
UNIQUE KEY idx_packaging_property_unique (packaging_property_type_id, packaging_id)
);
CREATE TABLE IF NOT EXISTS premise
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
material_id INT NOT NULL,
supplier_node_id INT,
user_supplier_node_id INT,
geo_lat DECIMAL(8, 4) CHECK (geo_lat BETWEEN -90 AND 90),
geo_lng DECIMAL(8, 4) CHECK (geo_lng BETWEEN -180 AND 180),
country_id INT NOT NULL,
packaging_id INT DEFAULT NULL,
user_id INT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
material_cost DECIMAL(15, 2) DEFAULT NULL COMMENT 'aka MEK_A in EUR',
is_fca_enabled BOOLEAN DEFAULT FALSE,
oversea_share DECIMAL(8, 4) DEFAULT NULL,
hs_code CHAR(11) DEFAULT NULL,
tariff_rate DECIMAL(8, 4) DEFAULT NULL,
state CHAR(10) NOT NULL DEFAULT 'DRAFT',
individual_hu_length INT UNSIGNED COMMENT 'user entered dimensions in mm (if system-wide packaging is used, packaging dimensions are copied here after creation)',
individual_hu_height INT UNSIGNED COMMENT 'user entered dimensions in mm (if system-wide packaging is used, packaging dimensions are copied here after creation)',
individual_hu_width INT UNSIGNED COMMENT 'user entered dimensions in mm (if system-wide packaging is used, packaging dimensions are copied here after creation)',
individual_hu_weight INT UNSIGNED COMMENT 'user entered weight in g (if system-wide packaging is used, packaging weight are copied here after creation)',
hu_displayed_dimension_unit CHAR(2) DEFAULT 'MM',
hu_displayed_weight_unit CHAR(2) DEFAULT 'KG',
hu_unit_count INT UNSIGNED DEFAULT NULL,
hu_stackable BOOLEAN DEFAULT TRUE,
hu_mixable BOOLEAN DEFAULT TRUE,
FOREIGN KEY (material_id) REFERENCES material (id),
FOREIGN KEY (supplier_node_id) REFERENCES node (id),
FOREIGN KEY (user_supplier_node_id) REFERENCES sys_user_node (id),
FOREIGN KEY (packaging_id) REFERENCES packaging (id),
FOREIGN KEY (user_id) REFERENCES sys_user (id),
CONSTRAINT `chk_premise_state_values` CHECK (`state` IN
('DRAFT', 'COMPLETED', 'ARCHIVED')),
CONSTRAINT `chk_premise_displayed_dimension_unit` CHECK (`hu_displayed_dimension_unit` IN
('MM', 'CM', 'M')),
CONSTRAINT `chk_premise_displayed_weight_unit` CHECK (`hu_displayed_weight_unit` IN
('T', 'G', 'KG')),
INDEX idx_material_id (material_id),
INDEX idx_supplier_node_id (supplier_node_id),
INDEX idx_packaging_id (packaging_id),
INDEX idx_user_id (user_id),
INDEX idx_user_supplier_node_id (user_supplier_node_id)
);
CREATE TABLE IF NOT EXISTS premise_destination
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
premise_id INT NOT NULL,
annual_amount INT UNSIGNED COMMENT 'annual amount in single pieces',
destination_node_id INT NOT NULL,
is_d2d BOOLEAN DEFAULT FALSE,
rate_d2d DECIMAL(15, 2) DEFAULT NULL CHECK (rate_d2d >= 0),
lead_time_d2d INT UNSIGNED DEFAULT NULL CHECK (lead_time_d2d >= 0),
repacking_cost DECIMAL(15, 2) DEFAULT NULL CHECK (repacking_cost >= 0),
handling_cost DECIMAL(15, 2) DEFAULT NULL CHECK (handling_cost >= 0),
disposal_cost DECIMAL(15, 2) DEFAULT NULL CHECK (disposal_cost >= 0),
geo_lat DECIMAL(8, 4) CHECK (geo_lat BETWEEN -90 AND 90),
geo_lng DECIMAL(8, 4) CHECK (geo_lng BETWEEN -180 AND 180),
country_id INT NOT NULL,
FOREIGN KEY (premise_id) REFERENCES premise (id),
FOREIGN KEY (country_id) REFERENCES country (id),
FOREIGN KEY (destination_node_id) REFERENCES node (id),
INDEX idx_destination_node_id (destination_node_id),
INDEX idx_premise_id (premise_id)
);
CREATE TABLE IF NOT EXISTS premise_route_node
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
node_id INT DEFAULT NULL,
user_node_id INT DEFAULT NULL,
name VARCHAR(255) NOT NULL,
address VARCHAR(500),
external_mapping_id VARCHAR(32) NOT NULL,
country_id INT NOT NULL,
is_destination BOOLEAN DEFAULT FALSE,
is_intermediate BOOLEAN DEFAULT FALSE,
is_source BOOLEAN DEFAULT FALSE,
geo_lat DECIMAL(8, 4) CHECK (geo_lat BETWEEN -90 AND 90),
geo_lng DECIMAL(8, 4) CHECK (geo_lng BETWEEN -180 AND 180),
is_outdated BOOLEAN DEFAULT FALSE,
FOREIGN KEY (node_id) REFERENCES node (id),
FOREIGN KEY (country_id) REFERENCES country (id),
FOREIGN KEY (user_node_id) REFERENCES sys_user_node (id),
INDEX idx_node_id (node_id),
INDEX idx_user_node_id (user_node_id),
CONSTRAINT `chk_node` CHECK (`user_node_id` IS NULL OR `node_id` IS NULL)
);
CREATE TABLE IF NOT EXISTS premise_route
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
premise_destination_id INT NOT NULL,
is_fastest BOOLEAN DEFAULT FALSE,
is_cheapest BOOLEAN DEFAULT FALSE,
is_selected BOOLEAN DEFAULT FALSE,
FOREIGN KEY (premise_destination_id) REFERENCES premise_destination (id)
);
CREATE TABLE IF NOT EXISTS premise_route_section
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
premise_route_id INT NOT NULL,
from_route_node_id INT NOT NULL,
to_route_node_id INT NOT NULL,
list_position INT NOT NULL,
transport_type CHAR(16) CHECK (transport_type IN
('RAIL', 'SEA', 'ROAD', 'POST_RUN')),
rate_type CHAR(16) CHECK (rate_type IN
('CONTAINER', 'MATRIX', 'NEAR_BY')),
is_pre_run BOOLEAN DEFAULT FALSE,
is_main_run BOOLEAN DEFAULT FALSE,
is_post_run BOOLEAN DEFAULT FALSE,
is_outdated BOOLEAN DEFAULT FALSE,
CONSTRAINT fk_premise_route_section_premise_route_id FOREIGN KEY (premise_route_id) REFERENCES premise_route (id),
FOREIGN KEY (from_route_node_id) REFERENCES premise_route_node (id),
FOREIGN KEY (to_route_node_id) REFERENCES premise_route_node (id),
CONSTRAINT chk_main_run CHECK (transport_type = 'ROAD' OR transport_type = 'POST_RUN' OR is_main_run IS TRUE),
INDEX idx_premise_route_id (premise_route_id),
INDEX idx_from_route_node_id (from_route_node_id),
INDEX idx_to_route_node_id (to_route_node_id)
);
CREATE TABLE IF NOT EXISTS calculation_job
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
premise_id INT NOT NULL,
calculation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
validity_period_id INT NOT NULL,
property_set_id INT NOT NULL,
job_state CHAR(10) NOT NULL CHECK (job_state IN
('CREATED', 'SCHEDULED', 'VALID', 'INVALID', 'EXCEPTION')),
error_id INT DEFAULT NULL,
user_id INT NOT NULL,
FOREIGN KEY (premise_id) REFERENCES premise (id),
FOREIGN KEY (validity_period_id) REFERENCES validity_period (id),
FOREIGN KEY (property_set_id) REFERENCES property_set (id),
FOREIGN KEY (user_id) REFERENCES sys_user (id),
INDEX idx_premise_id (premise_id),
INDEX idx_validity_period_id (validity_period_id),
INDEX idx_property_set_id (property_set_id)
);
CREATE TABLE IF NOT EXISTS calculation_job_destination
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
calculation_job_id INT NOT NULL,
premise_destination_id INT NOT NULL,
shipping_frequency INT UNSIGNED COMMENT 'annual shipping frequency',
total_cost DECIMAL(15, 2) COMMENT 'aka MEK_B in EUR (excl. Airfreight)',
annual_amount DECIMAL(15, 2) COMMENT 'annual quantity for this destinations in pieces',
-- risk
annual_risk_cost DECIMAL(15, 2) NOT NULL COMMENT 'complete calculation with globally stored worst case container rates (excl. Airfreight)',
annual_chance_cost DECIMAL(15, 2) NOT NULL COMMENT 'complete calculation with globally stored best case container rates (excl. Airfreight)',
-- handling
is_small_unit BOOLEAN DEFAULT FALSE COMMENT 'small unit equals KLT, volume of a handling unit is smaller than 0.08 cbm ',
annual_repacking_cost DECIMAL(15, 2) NOT NULL,
annual_handling_cost DECIMAL(15, 2) NOT NULL,
annual_disposal_cost DECIMAL(15, 2) NOT NULL,
-- inventory
operational_stock DECIMAL(15, 2) NOT NULL COMMENT 'operational stock in single pieces',
safety_stock DECIMAL(15, 2) NOT NULL COMMENT 'safety stock in single pieces',
stocked_inventory DECIMAL(15, 2) NOT NULL COMMENT 'sum of operational and safety stock',
in_transport_stock DECIMAL(15, 2) NOT NULL,
stock_before_payment DECIMAL(15, 2) NOT NULL,
annual_capital_cost DECIMAL(15, 2) NOT NULL,
annual_storage_cost DECIMAL(15, 2) NOT NULL, -- Flächenkosten
-- custom
custom_value DECIMAL(15, 2) NOT NULL,-- Zollwert,
custom_duties DECIMAL(15, 2) NOT NULL,-- Zollabgaben,
tariff_rate DECIMAL(8, 4) NOT NULL,-- Zollsatz,
annual_custom_cost DECIMAL(15, 2) NOT NULL,-- Zollabgaben inkl. Einmalkosten,
-- air freight risk
air_freight_share_max DECIMAL(8, 4) NOT NULL,
air_freight_share DECIMAL(8, 4) NOT NULL,
air_freight_volumetric_weight DECIMAL(15, 2) NOT NULL,
air_freight_weight DECIMAL(15, 2) NOT NULL,
annual_air_freight_cost DECIMAL(15, 2) NOT NULL,
-- transportation
is_d2d BOOLEAN DEFAULT FALSE,
rate_d2d DECIMAL(15, 2) DEFAULT NULL,
container_type CHAR(8),
hu_count INT UNSIGNED NOT NULL COMMENT 'number of handling units in total (full container, with layers)',
layer_structure JSON COMMENT 'json representation of a single layer',
layer_count INT UNSIGNED NOT NULL COMMENT 'number of layers per full container or truck',
transport_weight_exceeded BOOLEAN DEFAULT FALSE COMMENT 'limiting factor: TRUE if weight limited or FALSE if volume limited',
annual_transportation_cost DECIMAL(15, 2) NOT NULL COMMENT 'total annual transportation costs in EUR',
container_utilization DECIMAL(8, 4) NOT NULL,
transit_time_in_days INT UNSIGNED NOT NULL,
safety_stock_in_days INT UNSIGNED NOT NULL,
-- material cost
material_cost DECIMAL(15, 2) NOT NULL,
fca_cost DECIMAL(15, 2) NOT NULL,
FOREIGN KEY (calculation_job_id) REFERENCES calculation_job (id),
FOREIGN KEY (premise_destination_id) REFERENCES premise_destination (id),
INDEX idx_calculation_job_id (calculation_job_id),
INDEX idx_premise_destination_id (premise_destination_id),
CONSTRAINT chk_container_type CHECK (container_type IN ('TEU', 'FEU', 'HC', 'TRUCK'))
);
CREATE TABLE IF NOT EXISTS calculation_job_route_section
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
premise_route_section_id INT,
calculation_job_destination_id INT NOT NULL,
transport_type CHAR(16) CHECK (transport_type IN
('RAIL', 'SEA', 'ROAD', 'POST_RUN', 'MATRIX', 'D2D')),
is_unmixed_price BOOLEAN DEFAULT FALSE,
is_cbm_price BOOLEAN DEFAULT FALSE,
is_weight_price BOOLEAN DEFAULT FALSE,
is_stacked BOOLEAN DEFAULT FALSE,
is_pre_run BOOLEAN DEFAULT FALSE,
is_main_run BOOLEAN DEFAULT FALSE,
is_post_run BOOLEAN DEFAULT FALSE,
rate DECIMAL(15, 2) NOT NULL COMMENT 'copy of the container rate resp. price matrix in EUR (depends on used_rule)',
distance DECIMAL(15, 2) DEFAULT NULL COMMENT 'distance of this routeInformationObject section im meters',
cbm_price DECIMAL(15, 2) NOT NULL COMMENT 'calculated price per cubic meter',
weight_price DECIMAL(15, 2) NOT NULL COMMENT 'calculated price per kilogram',
annual_cost DECIMAL(15, 2) NOT NULL COMMENT 'annual costs for this routeInformationObject section, result depends on calculation method (mixed or unmixed, stacked or unstacked, per volume/per weight resp. container rate/price matrix)',
transit_time INT UNSIGNED NOT NULL,
FOREIGN KEY (premise_route_section_id) REFERENCES premise_route_section (id),
FOREIGN KEY (calculation_job_destination_id) REFERENCES calculation_job_destination (id),
INDEX idx_premise_route_section_id (premise_route_section_id),
INDEX idx_calculation_job_destination_id (calculation_job_destination_id),
CONSTRAINT chk_stacked CHECK (is_unmixed_price IS TRUE OR is_stacked IS TRUE) -- only unmixed transports can be unstacked
);
CREATE TABLE IF NOT EXISTS bulk_operation
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
bulk_file_type CHAR(32) NOT NULL,
bulk_processing_type CHAR(32) NOT NULL,
state CHAR(10) NOT NULL,
file LONGBLOB DEFAULT NULL,
validity_period_id INT DEFAULT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES sys_user (id),
FOREIGN KEY (validity_period_id) REFERENCES validity_period (id),
CONSTRAINT chk_bulk_file_type CHECK (bulk_file_type IN
('CONTAINER_RATE', 'COUNTRY_MATRIX', 'MATERIAL', 'PACKAGING', 'NODE')),
CONSTRAINT chk_bulk_operation_state CHECK (state IN ('SCHEDULED', 'PROCESSING', 'COMPLETED', 'EXCEPTION')),
CONSTRAINT chk_bulk_processing_type CHECK (bulk_processing_type IN ('IMPORT', 'EXPORT'))
);
CREATE TABLE IF NOT EXISTS sys_error
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
user_id INT DEFAULT NULL,
title VARCHAR(255) NOT NULL,
code VARCHAR(255) NOT NULL,
message VARCHAR(1024) NOT NULL,
pinia TEXT,
calculation_job_id INT DEFAULT NULL,
bulk_operation_id INT DEFAULT NULL,
type CHAR(16) NOT NULL DEFAULT 'BACKEND',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES sys_user (id),
FOREIGN KEY (calculation_job_id) REFERENCES calculation_job (id),
FOREIGN KEY (bulk_operation_id) REFERENCES bulk_operation (id),
CONSTRAINT chk_error_type CHECK (type IN ('BACKEND', 'FRONTEND', 'BULK', 'CALCULATION')),
INDEX idx_user_id (user_id),
INDEX idx_calculation_job_id (calculation_job_id)
);
CREATE TABLE IF NOT EXISTS sys_error_trace_item
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
error_id INT NOT NULL,
line INT,
file VARCHAR(255) NOT NULL,
method VARCHAR(255) NOT NULL,
fullPath VARCHAR(1024) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (error_id) REFERENCES sys_error (id)
);

View file

@ -0,0 +1,18 @@
INSERT INTO property_set (state)
SELECT 'VALID'
WHERE NOT EXISTS (
SELECT 1 FROM property_set ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
);
INSERT INTO validity_period (state)
SELECT 'VALID'
WHERE NOT EXISTS (
SELECT 1 FROM validity_period vp
WHERE vp.state = 'VALID'
AND vp.start_date <= NOW()
AND (vp.end_date IS NULL OR vp.end_date > NOW())
);

View file

@ -0,0 +1,603 @@
-- ===================================================
-- INSERT Statements für system_property_type
-- Mapping: external mapping id -> external_mapping_id
-- Description -> name
-- ===================================================
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Reference route: Start node', 'START_REF', 'TEXT', '{}','Specifies the starting node of the reference route. A historical maximum and a historical minimum value are stored for the reference route. This reference route is used to calculate fluctuations in transport costs.','2_Reference route','1');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Reference route: End node', 'END_REF', 'TEXT', '{}','Specifies the end node of the reference route. A historical maximum and a historical minimum value are stored for the reference route. This reference route is used to calculate fluctuations in transport costs.','2_Reference route','2');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Reference route: All-time-high container rate (40 ft. GP) [EUR]', 'RISK_REF', 'CURRENCY', '{"GT":0}','Specifies the historically maximum container rate of the reference route for a 40 ft. GP container. A historical maximum and a historical minimum value are stored for the reference route. This reference route is used to calculate fluctuations in transport costs.','2_Reference route','3');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Reference route: All-time-low container rate (40 ft. GP) [EUR]', 'CHANCE_REF', 'CURRENCY', '{"GT":0}','Specifies the historically lowest container rate of the reference route for a 40 ft. GP container. A historical maximum and a historical minimum value are stored for the reference route. This reference route is used to calculate fluctuations in transport costs.','2_Reference route','4');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Payment terms [days]', 'PAYMENT_TERMS', 'INT', '{}','Payment terms agreed with suppliers in days. This value is used to calculate the financing costs for goods in transit and in safety stock.','1_General','3');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Annual working days', 'WORKDAYS', 'INT', '{"GT": 0, "LT": 366}','Annual production working days.','1_General','2');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Interest rate inventory [%]', 'INTEREST_RATE', 'PERCENTAGE', '{"GTE": 0}','Interest rate used for calculating capital costs.','1_General','4');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'FCA fee [%]', 'FCA_FEE', 'PERCENTAGE', '{"GTE": 0}','FCA fee to be added to EXW prices. The logistics cost expert must explicitly select this during the calculation for the fee to be applied.','1_General','5');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Default customs rate [%]', 'TARIFF_RATE', 'PERCENTAGE', '{"GTE":0}','Standard customs duty rate to be applied when the HS Code cannot be resolved automatically.','1_General','6');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Customs clearance fee per import & HS code [EUR]', 'CUSTOM_FEE', 'CURRENCY', '{"GTE":0}','Avg. customs clearance fee per HS code and import.','1_General','7');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Standard reporting format', 'REPORTING', 'ENUMERATION', '{"ENUM":["MEK_B","MEK_C"]}','Specifies the reporting format. The MEK_C reporting format includes occasional air transports that occur with overseas production. The MEK_B reporting format hides these for reasons.','1_General','1');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( '40 ft.', 'FEU', 'BOOLEAN', '{}','Enable if calculation should include this container size; container rates to be maintained.','3_Sea and road transport','1');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( '20 ft.', 'TEU', 'BOOLEAN', '{}','Enable if calculation should include this container size; container rates to be maintained.','3_Sea and road transport','2');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( '40 ft. HC', 'FEU_HQ', 'BOOLEAN', '{}','Enable if calculation should include this container size; container rates to be maintained.','3_Sea and road transport','3');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Container utilization in mixed containers [%]', 'CONTAINER_UTIL', 'PERCENTAGE', '{"GTE":0,"LTE":1}','Utilization degree of mixed containers (loss from stacking/packaging).','3_Sea and road transport','6');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Truck utilization road transport EMEA [%]', 'TRUCK_UTIL', 'PERCENTAGE', '{"GTE":0,"LTE":1}','Utilization degree of trucks (loss from stacking/packaging).','3_Sea and road transport','8');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Max validity period of container freight rates [days]', 'VALID_DAYS', 'INT', '{"GT": 0}','After the validity period expires, no logistics cost calculations are possible with the current freight rates. This mechanism ensures that freight rates are regularly updated or verified by a freight rate key user.','1_General','8');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Metropolitan region size (diameter) [km]', 'RADIUS_REGION', 'INT', '{"GT": 0}','If there are no kilometer rates within a country, it is possible to use container rates from neighboring logistics nodes. However, the node must be within the metropolitan region radius.','1_General','9');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Min delivery frequency / year for container transports', 'FREQ_MIN', 'INT', '{"GT": 0, "LT": 366}','Low runners: Indicates the number of annual deliveries when the annual demand is lower than the content of a handling unit (The HU is then split up)','1_General','10');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Max delivery frequency / year for container transport', 'FREQ_MAX', 'INT', '{"GT": 0, "LT": 366}','High runners: Indicates the maximum number of annual deliveries. (If the annual demand exceeds this number, one delivery contains more than one HU). Please note that this value affects the storage space cost.','1_General','11');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Max weight load 20 ft. container [kg]', 'TEU_LOAD', 'INT', '{"GT": 0}','Weight limit of TEU container.','3_Sea and road transport','4');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Max weight load 40 ft. container [kg]', 'FEU_LOAD', 'INT', '{"GT": 0}','Weight limit of FEU container (may be restricted by law, e.g. CN truck load = 21 tons).','3_Sea and road transport','5');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Max weight load truck [kg]', 'TRUCK_LOAD', 'INT', '{"GT": 0}','Weight limit of standard truck.','3_Sea and road transport','7');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Pre-carriage [EUR/kg]', 'AIR_PRECARRIAGE', 'CURRENCY', '{"GTE": 0}','The pre-carriage costs per kilogram to the departure airport when calculating air freight costs.','4_Air transport','1');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Pre-carriage handling [EUR]', 'AIR_HANDLING', 'CURRENCY', '{"GTE": 0}','One-time costs for processing documents in an air freight transport.','4_Air transport','2');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Main carriage [EUR/kg]', 'AIR_MAINCARRIAGE', 'CURRENCY', '{"GTE": 0}','Air freight costs per kg on the route from China to Germany.','4_Air transport','3');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Hand over fee [EUR]', 'AIR_HANDOVER_FEE', 'CURRENCY', '{"GTE": 0}','One-time handover costs for air freight transports.','4_Air transport','4');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Customs clearance fee [EUR]', 'AIR_CUSTOM_FEE', 'CURRENCY', '{"GTE": 0}','One-time costs for customs clearance in air freight transports.','4_Air transport','5');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'On-carriage [EUR/kg]', 'AIR_ONCARRIAGE', 'CURRENCY', '{"GTE": 0}','On-carriage costs per kilogram from destination airport to final destination when calculating air freight costs.','4_Air transport','6');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Terminal handling fee [EUR/kg]', 'AIR_TERMINAL_FEE', 'CURRENCY', '{"GTE": 0}','Terminal handling charges per kilogram for air freight transports.','4_Air transport','7');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'GR handling KLT [EUR/HU]', 'KLT_HANDLING', 'CURRENCY', '{"GTE": 0}','Handling costs per received small load carrier (KLTs are handling units under 0.08 m³ volume) at German wage level.','5_Warehouse','4');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'GR handling GLT [EUR/HU]', 'GLT_HANDLING', 'CURRENCY', '{"GTE": 0}','Handling costs per received large load carrier (GLT are handling units over 0.08 m³ volume) at German wage level.','5_Warehouse','5');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'GLT booking & document handling [EUR/GR]', 'BOOKING', 'CURRENCY', '{"GTE": 0}','One-time document handling fee per GLT at German wage level.','5_Warehouse','2');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'GLT release from storage [EUR/GLT]', 'GLT_RELEASE', 'CURRENCY', '{"GTE": 0}','Cost to release one GLT from storage at German wage level.','5_Warehouse','12');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'KLT release from storage [EUR/KLT]', 'KLT_RELEASE', 'CURRENCY', '{"GTE": 0}','Cost to release one KLT from storage at German wage level.','5_Warehouse','11');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'GLT dispatch [EUR/GLT]', 'GLT_DISPATCH', 'CURRENCY', '{"GTE": 0}','Cost to dispatch one GLT at German wage level.','5_Warehouse','14');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'KLT dispatch [EUR/KLT]', 'KLT_DISPATCH', 'CURRENCY', '{"GTE": 0}','Cost to dispatch one KLT at German wage level.','5_Warehouse','13');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Repacking KLT, HU <15kg [EUR/HU]', 'KLT_REPACK_S', 'CURRENCY', '{"GTE": 0}','Cost to repack one KLT (with a weight under 15 kg) from one-way to returnable at German wage level.','5_Warehouse','6');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Repacking KLT, HU >=15kg [EUR/HU]', 'KLT_REPACK_M', 'CURRENCY', '{"GTE": 0}','Cost to repack one KLT (with a weight under or equal 15 kg) from one-way to returnable with crane at German wage level.','5_Warehouse','7');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Repacking GLT, HU <15kg [EUR/HU]', 'GLT_REPACK_S', 'CURRENCY', '{"GTE": 0}','Cost to repack one GLT (with a weight under 15 kg) from one-way to returnable at German wage level.','5_Warehouse','8');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Repacking GLT, HU 15 - 2000kg [EUR/HU]', 'GLT_REPACK_M', 'CURRENCY', '{"GTE": 0}','Cost to repack one GLT (with a weight over 15 but under or equal 2000 kg) from one-way to returnable with crane at German wage level.','5_Warehouse','9');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Repacking GLT, HU >2000kg [EUR/HU]', 'GLT_REPACK_L', 'INT', '{"GTE": 0}','Cost to repack one GLT (with a weight over 2000 kg) from one-way to returnable with crane at German wage level.','5_Warehouse','10');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'GLT disposal [EUR/GLT]', 'DISPOSAL', 'INT', '{"GTE": 0}','Cost to dispose one wooden pallet.','5_Warehouse','15');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'Space costs per cbm per night [EUR/cbm]', 'SPACE_COST', 'CURRENCY', '{"GTE": 0}','The storage costs incurred for a storage space of 1 square meter per started height unit (meter) and per day. E.g.: 1 Euro pallet with 1.8 m height is calculated as 1.2 x 0.8 x SPACE_COST x 2, where SPACE_COST is the entered price.','5_Warehouse','1');
INSERT INTO system_property_type ( name, external_mapping_id, data_type, validation_rule, description, property_group, sequence_number) VALUES ( 'KLT booking & document handling [EUR/GR]', 'BOOKING_KLT', 'CURRENCY', '{"GTE": 0}','One-time document handling fee per KLT at German wage level.','5_Warehouse','3');
-- ===================================================
-- INSERT Statements für system_property
-- Verwendung von Subqueries für dynamische ID-Ermittlung
-- ===================================================
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'PAYMENT_TERMS'),
'30'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'START_REF'),
'CNXMN'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'END_REF'),
'DEHAM'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'RISK_REF'),
'20000.00'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'CHANCE_REF'),
'1000.00'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'TRUCK_UTIL'),
'0.7'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'WORKDAYS'),
'210'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'INTEREST_RATE'),
'0.12'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'FCA_FEE'),
'0.002'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'TARIFF_RATE'),
'0.03'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'CUSTOM_FEE'),
'35'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'REPORTING'),
'MEK_B'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'FEU'),
'true'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'TEU'),
'true'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'FEU_HQ'),
'true'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'CONTAINER_UTIL'),
'0.7'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'VALID_DAYS'),
'60'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'RADIUS_REGION'),
'20'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'FREQ_MIN'),
'3'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'FREQ_MAX'),
'50'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'TEU_LOAD'),
'20000'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'FEU_LOAD'),
'21000'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'TRUCK_LOAD'),
'25000'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'AIR_PRECARRIAGE'),
'0.1'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'AIR_HANDLING'),
'80'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'AIR_MAINCARRIAGE'),
'3.5'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'AIR_HANDOVER_FEE'),
'35'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'AIR_CUSTOM_FEE'),
'45'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'AIR_ONCARRIAGE'),
'0.2'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'AIR_TERMINAL_FEE'),
'0.2'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'KLT_HANDLING'),
'0.71'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'GLT_HANDLING'),
'3.5'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'BOOKING'),
'3.5'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'BOOKING_KLT'),
'0.35'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'GLT_RELEASE'),
'2.23'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'KLT_RELEASE'),
'1.12'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'GLT_DISPATCH'),
'1.61'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'KLT_DISPATCH'),
'0.333'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'KLT_REPACK_S'),
'2.08'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'KLT_REPACK_M'),
'3.02'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'GLT_REPACK_S'),
'3.02'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'GLT_REPACK_M'),
'7.76'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'GLT_REPACK_L'),
'14'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'DISPOSAL'),
'6'
);
INSERT INTO system_property (property_set_id, system_property_type_id, property_value)
VALUES (
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
(SELECT spt.id FROM system_property_type spt WHERE spt.external_mapping_id = 'SPACE_COST'),
'0.2630136986'
);

View file

@ -0,0 +1,669 @@
-- Country Data Import SQL Script
-- Generated from Lastenheft_Requirements Appendix A_Länder 1.csv
-- ===================================================
-- INSERT a property set if not exists.
-- ===================================================
INSERT INTO property_set (state)
SELECT 'VALID'
WHERE NOT EXISTS (
SELECT 1 FROM property_set ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
);
-- =============================================================================
-- 1. INSERT COUNTRY PROPERTY TYPES
-- =============================================================================
INSERT INTO `country_property_type`
(`name`, `external_mapping_id`, `data_type`, `validation_rule`, `is_required`, `description`, `property_group`, `sequence_number`)
VALUES
('Customs Union', 'UNION', 'ENUMERATION', '{ "ENUM" : ["EU", "NONE"]}', FALSE, 'Specifies the customs union in which the country is located. When crossing a customs union border, customs costs are added to the calculation result.', 'General', 1),
('Safety Stock [working days]', 'SAFETY_STOCK', 'INT', '{"GTE": 0}', FALSE, 'Specifies the safety stock in working days that is maintained when sourcing from this country.', 'General', 2),
('Air Freight Share [%]', 'AIR_SHARE', 'PERCENTAGE', '{"GTE": 0}', FALSE, 'Specifies the maximum air freight proportion that is included in the calculation when sourcing from this country. The actual air freight proportion that is used additionally depends on the overseas share of the part number and lies between 0% and this value.', 'General', 3),
('Wage Factor [%]', 'WAGE', 'PERCENTAGE', '{"GT": 0}', FALSE, 'Specifies the wage factor level for calculating handling costs in relation to the German wage factor level.', 'General', 4);
-- =============================================================================
-- 2. INSERT COUNTRIES
-- =============================================================================
INSERT INTO `country` (`iso_code`, `name`, `region_code`, `is_deprecated`) VALUES
('AD', 'Andorra', 'EMEA', FALSE),
('AE', 'United Arab Emirates', 'EMEA', FALSE),
('AF', 'Afghanistan', 'EMEA', FALSE),
('AG', 'Antigua and Barbuda', 'LATAM', FALSE),
('AI', 'Anguilla', 'LATAM', FALSE),
('AL', 'Albania', 'EMEA', FALSE),
('AM', 'Armenia', 'EMEA', FALSE),
('AO', 'Angola', 'EMEA', FALSE),
('AQ', 'Antarctica', 'EMEA', FALSE),
('AR', 'Argentina', 'LATAM', FALSE),
('AS', 'American Samoa', 'APAC', FALSE),
('AT', 'Austria', 'EMEA', FALSE),
('AU', 'Australia', 'APAC', FALSE),
('AW', 'Aruba', 'LATAM', FALSE),
('AX', 'Åland Islands', 'EMEA', FALSE),
('AZ', 'Azerbaijan', 'EMEA', FALSE),
('BA', 'Bosnia and Herzegovina', 'EMEA', FALSE),
('BB', 'Barbados', 'LATAM', FALSE),
('BD', 'Bangladesh', 'EMEA', FALSE),
('BE', 'Belgium', 'EMEA', FALSE),
('BF', 'Burkina Faso', 'EMEA', FALSE),
('BG', 'Bulgaria', 'EMEA', FALSE),
('BH', 'Bahrain', 'EMEA', FALSE),
('BI', 'Burundi', 'EMEA', FALSE),
('BJ', 'Benin', 'EMEA', FALSE),
('BL', 'Saint Barthélemy', 'LATAM', FALSE),
('BM', 'Bermuda', 'NAM', FALSE),
('BN', 'Brunei Darussalam', 'APAC', FALSE),
('BO', 'Bolivia', 'LATAM', FALSE),
('BQ', 'Bonaire, Sint Eustatius and Saba', 'LATAM', FALSE),
('BR', 'Brazil', 'LATAM', FALSE),
('BS', 'Bahamas', 'LATAM', FALSE),
('BT', 'Bhutan', 'APAC', FALSE),
('BV', 'Bouvet Island', 'EMEA', FALSE),
('BW', 'Botswana', 'EMEA', FALSE),
('BY', 'Belarus', 'EMEA', FALSE),
('BZ', 'Belize', 'LATAM', FALSE),
('CA', 'Canada', 'NAM', FALSE),
('CC', 'Cocos (Keeling) Islands', 'APAC', FALSE),
('CD', 'Congo, Democratic Republic', 'EMEA', FALSE),
('CF', 'Central African Republic', 'EMEA', FALSE),
('CG', 'Congo', 'EMEA', FALSE),
('CH', 'Switzerland', 'EMEA', FALSE),
('CI', 'Côte d''Ivoire', 'EMEA', FALSE),
('CK', 'Cook Islands', 'APAC', FALSE),
('CL', 'Chile', 'LATAM', FALSE),
('CM', 'Cameroon', 'EMEA', FALSE),
('CN', 'China', 'APAC', FALSE),
('CO', 'Colombia', 'LATAM', FALSE),
('CR', 'Costa Rica', 'LATAM', FALSE),
('CU', 'Cuba', 'LATAM', FALSE),
('CV', 'Cabo Verde', 'EMEA', FALSE),
('CW', 'Curaçao', 'LATAM', FALSE),
('CX', 'Christmas Island', 'APAC', FALSE),
('CY', 'Cyprus', 'EMEA', FALSE),
('CZ', 'Czech Republic', 'EMEA', FALSE),
('DE', 'Germany', 'EMEA', FALSE),
('DJ', 'Djibouti', 'EMEA', FALSE),
('DK', 'Denmark', 'EMEA', FALSE),
('DM', 'Dominica', 'LATAM', FALSE),
('DO', 'Dominican Republic', 'LATAM', FALSE),
('DZ', 'Algeria', 'EMEA', FALSE),
('EC', 'Ecuador', 'LATAM', FALSE),
('EE', 'Estonia', 'EMEA', FALSE),
('EG', 'Egypt', 'EMEA', FALSE),
('EH', 'Western Sahara', 'EMEA', FALSE),
('ER', 'Eritrea', 'EMEA', FALSE),
('ES', 'Spain', 'EMEA', FALSE),
('ET', 'Ethiopia', 'EMEA', FALSE),
('FI', 'Finland', 'EMEA', FALSE),
('FJ', 'Fiji', 'APAC', FALSE),
('FK', 'Falkland Islands', 'LATAM', FALSE),
('FM', 'Micronesia', 'APAC', FALSE),
('FO', 'Faroe Islands', 'EMEA', FALSE),
('FR', 'France', 'EMEA', FALSE),
('GA', 'Gabon', 'EMEA', FALSE),
('GB', 'United Kingdom', 'EMEA', FALSE),
('GD', 'Grenada', 'LATAM', FALSE),
('GE', 'Georgia', 'EMEA', FALSE),
('GF', 'French Guiana', 'LATAM', FALSE),
('GG', 'Guernsey', 'EMEA', FALSE),
('GH', 'Ghana', 'EMEA', FALSE),
('GI', 'Gibraltar', 'EMEA', FALSE),
('GL', 'Greenland', 'NAM', FALSE),
('GM', 'Gambia', 'EMEA', FALSE),
('GN', 'Guinea', 'EMEA', FALSE),
('GP', 'Guadeloupe', 'LATAM', FALSE),
('GQ', 'Equatorial Guinea', 'EMEA', FALSE),
('GR', 'Greece', 'EMEA', FALSE),
('GS', 'South Georgia and South Sandwich Islands', 'LATAM', FALSE),
('GT', 'Guatemala', 'LATAM', FALSE),
('GU', 'Guam', 'APAC', FALSE),
('GW', 'Guinea-Bissau', 'EMEA', FALSE),
('GY', 'Guyana', 'LATAM', FALSE),
('HK', 'Hong Kong', 'APAC', FALSE),
('HM', 'Heard Island and McDonald Islands', 'APAC', FALSE),
('HN', 'Honduras', 'LATAM', FALSE),
('HR', 'Croatia', 'EMEA', FALSE),
('HT', 'Haiti', 'LATAM', FALSE),
('HU', 'Hungary', 'EMEA', FALSE),
('ID', 'Indonesia', 'APAC', FALSE),
('IE', 'Ireland', 'EMEA', FALSE),
('IL', 'Israel', 'EMEA', FALSE),
('IM', 'Isle of Man', 'EMEA', FALSE),
('IN', 'India', 'APAC', FALSE),
('IO', 'British Indian Ocean Territory', 'APAC', FALSE),
('IQ', 'Iraq', 'EMEA', FALSE),
('IR', 'Iran', 'EMEA', FALSE),
('IS', 'Iceland', 'EMEA', FALSE),
('IT', 'Italy', 'EMEA', FALSE),
('JE', 'Jersey', 'EMEA', FALSE),
('JM', 'Jamaica', 'LATAM', FALSE),
('JO', 'Jordan', 'EMEA', FALSE),
('JP', 'Japan', 'APAC', FALSE),
('KE', 'Kenya', 'EMEA', FALSE),
('KG', 'Kyrgyzstan', 'EMEA', FALSE),
('KH', 'Cambodia', 'APAC', FALSE),
('KI', 'Kiribati', 'APAC', FALSE),
('KM', 'Comoros', 'EMEA', FALSE),
('KN', 'Saint Kitts and Nevis', 'LATAM', FALSE),
('KP', 'Korea, North', 'APAC', FALSE),
('KR', 'Korea, South', 'APAC', FALSE),
('KW', 'Kuwait', 'EMEA', FALSE),
('KY', 'Cayman Islands', 'LATAM', FALSE),
('KZ', 'Kazakhstan', 'EMEA', FALSE),
('LA', 'Laos', 'APAC', FALSE),
('LB', 'Lebanon', 'EMEA', FALSE),
('LC', 'Saint Lucia', 'LATAM', FALSE),
('LI', 'Liechtenstein', 'EMEA', FALSE),
('LK', 'Sri Lanka', 'APAC', FALSE),
('LR', 'Liberia', 'EMEA', FALSE),
('LS', 'Lesotho', 'EMEA', FALSE),
('LT', 'Lithuania', 'EMEA', FALSE),
('LU', 'Luxembourg', 'EMEA', FALSE),
('LV', 'Latvia', 'EMEA', FALSE),
('LY', 'Libya', 'EMEA', FALSE),
('MA', 'Morocco', 'EMEA', FALSE),
('MC', 'Monaco', 'EMEA', FALSE),
('MD', 'Moldova', 'EMEA', FALSE),
('ME', 'Montenegro', 'EMEA', FALSE),
('MF', 'Saint Martin', 'LATAM', FALSE),
('MG', 'Madagascar', 'EMEA', FALSE),
('MH', 'Marshall Islands', 'APAC', FALSE),
('MK', 'North Macedonia', 'EMEA', FALSE),
('ML', 'Mali', 'EMEA', FALSE),
('MM', 'Myanmar', 'APAC', FALSE),
('MN', 'Mongolia', 'APAC', FALSE),
('MO', 'Macao', 'APAC', FALSE),
('MP', 'Northern Mariana Islands', 'APAC', FALSE),
('MQ', 'Martinique', 'LATAM', FALSE),
('MR', 'Mauritania', 'EMEA', FALSE),
('MS', 'Montserrat', 'LATAM', FALSE),
('MT', 'Malta', 'EMEA', FALSE),
('MU', 'Mauritius', 'EMEA', FALSE),
('MV', 'Maldives', 'APAC', FALSE),
('MW', 'Malawi', 'EMEA', FALSE),
('MX', 'Mexico', 'LATAM', FALSE),
('MY', 'Malaysia', 'APAC', FALSE),
('MZ', 'Mozambique', 'EMEA', FALSE),
('NA', 'Namibia', 'EMEA', FALSE),
('NC', 'New Caledonia', 'APAC', FALSE),
('NE', 'Niger', 'EMEA', FALSE),
('NF', 'Norfolk Island', 'APAC', FALSE),
('NG', 'Nigeria', 'EMEA', FALSE),
('NI', 'Nicaragua', 'LATAM', FALSE),
('NL', 'Netherlands', 'EMEA', FALSE),
('NO', 'Norway', 'EMEA', FALSE),
('NP', 'Nepal', 'APAC', FALSE),
('NR', 'Nauru', 'APAC', FALSE),
('NU', 'Niue', 'APAC', FALSE),
('NZ', 'New Zealand', 'APAC', FALSE),
('OM', 'Oman', 'EMEA', FALSE),
('PA', 'Panama', 'LATAM', FALSE),
('PE', 'Peru', 'LATAM', FALSE),
('PF', 'French Polynesia', 'APAC', FALSE),
('PG', 'Papua New Guinea', 'APAC', FALSE),
('PH', 'Philippines', 'APAC', FALSE),
('PK', 'Pakistan', 'APAC', FALSE),
('PL', 'Poland', 'EMEA', FALSE),
('PM', 'Saint Pierre and Miquelon', 'NAM', FALSE),
('PN', 'Pitcairn', 'APAC', FALSE),
('PR', 'Puerto Rico', 'LATAM', FALSE),
('PS', 'Palestine', 'EMEA', FALSE),
('PT', 'Portugal', 'EMEA', FALSE),
('PW', 'Palau', 'APAC', FALSE),
('PY', 'Paraguay', 'LATAM', FALSE),
('QA', 'Qatar', 'EMEA', FALSE),
('RE', 'Réunion', 'EMEA', FALSE),
('RO', 'Romania', 'EMEA', FALSE),
('RS', 'Serbia', 'EMEA', FALSE),
('RU', 'Russian Federation', 'EMEA', FALSE),
('RW', 'Rwanda', 'EMEA', FALSE),
('SA', 'Saudi Arabia', 'EMEA', FALSE),
('SB', 'Solomon Islands', 'APAC', FALSE),
('SC', 'Seychelles', 'EMEA', FALSE),
('SD', 'Sudan', 'EMEA', FALSE),
('SE', 'Sweden', 'EMEA', FALSE),
('SG', 'Singapore', 'APAC', FALSE),
('SH', 'Saint Helena', 'EMEA', FALSE),
('SI', 'Slovenia', 'EMEA', FALSE),
('SJ', 'Svalbard and Jan Mayen', 'EMEA', FALSE),
('SK', 'Slovakia', 'EMEA', FALSE),
('SL', 'Sierra Leone', 'EMEA', FALSE),
('SM', 'San Marino', 'EMEA', FALSE),
('SN', 'Senegal', 'EMEA', FALSE),
('SO', 'Somalia', 'EMEA', FALSE),
('SR', 'Suriname', 'LATAM', FALSE),
('SS', 'South Sudan', 'EMEA', FALSE),
('ST', 'Sao Tome and Principe', 'EMEA', FALSE),
('SV', 'El Salvador', 'LATAM', FALSE),
('SX', 'Sint Maarten', 'LATAM', FALSE),
('SY', 'Syrian Arab Republic', 'EMEA', FALSE),
('SZ', 'Eswatini', 'EMEA', FALSE),
('TC', 'Turks and Caicos Islands', 'LATAM', FALSE),
('TD', 'Chad', 'EMEA', FALSE),
('TF', 'French Southern Territories', 'EMEA', FALSE),
('TG', 'Togo', 'EMEA', FALSE),
('TH', 'Thailand', 'APAC', FALSE),
('TJ', 'Tajikistan', 'EMEA', FALSE),
('TK', 'Tokelau', 'APAC', FALSE),
('TL', 'Timor-Leste', 'APAC', FALSE),
('TM', 'Turkmenistan', 'EMEA', FALSE),
('TN', 'Tunisia', 'EMEA', FALSE),
('TO', 'Tonga', 'APAC', FALSE),
('TR', 'Turkey', 'EMEA', FALSE),
('TT', 'Trinidad and Tobago', 'LATAM', FALSE),
('TV', 'Tuvalu', 'APAC', FALSE),
('TW', 'Taiwan', 'APAC', FALSE),
('TZ', 'Tanzania', 'EMEA', FALSE),
('UA', 'Ukraine', 'EMEA', FALSE),
('UG', 'Uganda', 'EMEA', FALSE),
('UM', 'United States Minor Outlying Islands', 'APAC', FALSE),
('US', 'United States', 'NAM', FALSE),
('UY', 'Uruguay', 'LATAM', FALSE),
('UZ', 'Uzbekistan', 'EMEA', FALSE),
('VA', 'Vatican City', 'EMEA', FALSE),
('VC', 'Saint Vincent and the Grenadines', 'LATAM', FALSE),
('VE', 'Venezuela', 'LATAM', FALSE),
('VG', 'Virgin Islands, British', 'LATAM', FALSE),
('VI', 'Virgin Islands, U.S.', 'LATAM', FALSE),
('VN', 'Viet Nam', 'APAC', FALSE),
('VU', 'Vanuatu', 'APAC', FALSE),
('WF', 'Wallis and Futuna', 'APAC', FALSE),
('WS', 'Samoa', 'APAC', FALSE),
('YE', 'Yemen', 'EMEA', FALSE),
('YT', 'Mayotte', 'EMEA', FALSE),
('ZA', 'South Africa', 'EMEA', FALSE),
('ZM', 'Zambia', 'EMEA', FALSE),
('ZW', 'Zimbabwe', 'EMEA', FALSE),
('XK', 'Kosovo', 'EMEA', FALSE);
-- =============================================================================
-- 3. INSERT COUNTRY PROPERTIES
-- =============================================================================
-- Note: Uses the currently valid property set (state = 'VALID' and within date range)
-- If no valid property set exists, these inserts will fail with NULL constraint violation
-- To create a new property set if none exists, uncomment the following:
-- INSERT INTO `property_set` (`start_date`, `state`) VALUES (NOW(), 'VALID');
-- Note: Using current valid property set
-- Customs Union Properties (only for EU countries)
INSERT INTO `country_property`
(`country_id`, `country_property_type_id`, `property_set_id`, `property_value`)
SELECT
c.id,
cpt.id,
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
CASE
WHEN c.iso_code IN ('AT', 'BE', 'BG', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK')
THEN 'EU'
ELSE 'NONE'
END
FROM `country` c, `country_property_type` cpt
WHERE cpt.external_mapping_id = 'UNION';
-- Safety Stock Properties
INSERT INTO `country_property`
(`country_id`, `country_property_type_id`, `property_set_id`, `property_value`)
SELECT
c.id,
cpt.id,
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
CASE c.iso_code
WHEN 'AD' THEN '15'
WHEN 'AE' THEN '20'
WHEN 'AF' THEN '30'
WHEN 'AG' THEN '55'
WHEN 'AI' THEN '55'
WHEN 'AL' THEN '15'
WHEN 'AM' THEN '15'
WHEN 'AO' THEN '15'
WHEN 'AQ' THEN '55'
WHEN 'AR' THEN '55'
WHEN 'AS' THEN '55'
WHEN 'AT' THEN '10'
WHEN 'AU' THEN '55'
WHEN 'AW' THEN '55'
WHEN 'AZ' THEN '15'
WHEN 'BA' THEN '15'
WHEN 'BB' THEN '55'
WHEN 'BD' THEN '30'
WHEN 'BE' THEN '10'
WHEN 'BF' THEN '15'
WHEN 'BG' THEN '10'
WHEN 'BH' THEN '20'
WHEN 'BI' THEN '15'
WHEN 'BJ' THEN '15'
WHEN 'BL' THEN '55'
WHEN 'BM' THEN '55'
WHEN 'BN' THEN '55'
WHEN 'BO' THEN '55'
WHEN 'BQ' THEN '55'
WHEN 'BR' THEN '55'
WHEN 'BS' THEN '55'
WHEN 'BT' THEN '55'
WHEN 'BV' THEN '55'
WHEN 'BW' THEN '15'
WHEN 'BY' THEN '15'
WHEN 'BZ' THEN '55'
WHEN 'CA' THEN '55'
WHEN 'CC' THEN '55'
WHEN 'CD' THEN '15'
WHEN 'CF' THEN '15'
WHEN 'CG' THEN '15'
WHEN 'CH' THEN '10'
WHEN 'CI' THEN '15'
WHEN 'CK' THEN '55'
WHEN 'CL' THEN '55'
WHEN 'CM' THEN '15'
WHEN 'CN' THEN '55'
WHEN 'CO' THEN '55'
WHEN 'CR' THEN '55'
WHEN 'CU' THEN '55'
WHEN 'CV' THEN '15'
WHEN 'CW' THEN '55'
WHEN 'CX' THEN '55'
WHEN 'CY' THEN '10'
WHEN 'CZ' THEN '10'
WHEN 'DE' THEN '10'
WHEN 'DJ' THEN '15'
WHEN 'DK' THEN '10'
WHEN 'DM' THEN '55'
WHEN 'DO' THEN '55'
WHEN 'DZ' THEN '15'
WHEN 'EC' THEN '55'
WHEN 'EE' THEN '10'
WHEN 'EG' THEN '15'
WHEN 'EH' THEN '15'
WHEN 'ER' THEN '15'
WHEN 'ES' THEN '10'
WHEN 'ET' THEN '15'
WHEN 'FI' THEN '10'
WHEN 'FJ' THEN '55'
WHEN 'FK' THEN '55'
WHEN 'FM' THEN '55'
WHEN 'FO' THEN '10'
WHEN 'FR' THEN '10'
WHEN 'GA' THEN '15'
WHEN 'GB' THEN '10'
WHEN 'GD' THEN '55'
WHEN 'GE' THEN '15'
WHEN 'GF' THEN '55'
WHEN 'GG' THEN '10'
WHEN 'GH' THEN '15'
WHEN 'GI' THEN '10'
WHEN 'GL' THEN '55'
WHEN 'GM' THEN '15'
WHEN 'GN' THEN '15'
WHEN 'GP' THEN '55'
WHEN 'GQ' THEN '15'
WHEN 'GR' THEN '10'
WHEN 'GS' THEN '55'
WHEN 'GT' THEN '55'
WHEN 'GU' THEN '55'
WHEN 'GW' THEN '15'
WHEN 'GY' THEN '55'
WHEN 'HK' THEN '55'
WHEN 'HM' THEN '55'
WHEN 'HN' THEN '55'
WHEN 'HR' THEN '10'
WHEN 'HT' THEN '55'
WHEN 'HU' THEN '10'
WHEN 'ID' THEN '55'
WHEN 'IE' THEN '10'
WHEN 'IL' THEN '15'
WHEN 'IM' THEN '10'
WHEN 'IN' THEN '55'
WHEN 'IO' THEN '55'
WHEN 'IQ' THEN '30'
WHEN 'IR' THEN '30'
WHEN 'IS' THEN '10'
WHEN 'IT' THEN '10'
WHEN 'JE' THEN '10'
WHEN 'JM' THEN '55'
WHEN 'JO' THEN '15'
WHEN 'JP' THEN '55'
WHEN 'KE' THEN '15'
WHEN 'KG' THEN '15'
WHEN 'KH' THEN '55'
WHEN 'KI' THEN '55'
WHEN 'KM' THEN '15'
WHEN 'KN' THEN '55'
WHEN 'KP' THEN '55'
WHEN 'KR' THEN '55'
WHEN 'KW' THEN '20'
WHEN 'KY' THEN '55'
WHEN 'KZ' THEN '15'
WHEN 'LA' THEN '55'
WHEN 'LB' THEN '15'
WHEN 'LC' THEN '55'
WHEN 'LI' THEN '10'
WHEN 'LK' THEN '55'
WHEN 'LR' THEN '15'
WHEN 'LS' THEN '15'
WHEN 'LT' THEN '10'
WHEN 'LU' THEN '10'
WHEN 'LV' THEN '10'
WHEN 'LY' THEN '15'
WHEN 'MA' THEN '15'
WHEN 'MC' THEN '10'
WHEN 'MD' THEN '15'
WHEN 'ME' THEN '15'
WHEN 'MF' THEN '55'
WHEN 'MG' THEN '15'
WHEN 'MH' THEN '55'
WHEN 'MK' THEN '15'
WHEN 'ML' THEN '15'
WHEN 'MM' THEN '55'
WHEN 'MN' THEN '55'
WHEN 'MO' THEN '55'
WHEN 'MP' THEN '55'
WHEN 'MQ' THEN '55'
WHEN 'MR' THEN '15'
WHEN 'MS' THEN '55'
WHEN 'MT' THEN '10'
WHEN 'MU' THEN '15'
WHEN 'MV' THEN '55'
WHEN 'MW' THEN '15'
WHEN 'MX' THEN '55'
WHEN 'MY' THEN '55'
WHEN 'MZ' THEN '15'
WHEN 'NA' THEN '15'
WHEN 'NC' THEN '55'
WHEN 'NE' THEN '15'
WHEN 'NF' THEN '55'
WHEN 'NG' THEN '15'
WHEN 'NI' THEN '55'
WHEN 'NL' THEN '10'
WHEN 'NO' THEN '10'
WHEN 'NP' THEN '55'
WHEN 'NR' THEN '55'
WHEN 'NU' THEN '55'
WHEN 'NZ' THEN '55'
WHEN 'OM' THEN '20'
WHEN 'PA' THEN '55'
WHEN 'PE' THEN '55'
WHEN 'PF' THEN '55'
WHEN 'PG' THEN '55'
WHEN 'PH' THEN '55'
WHEN 'PK' THEN '30'
WHEN 'PL' THEN '10'
WHEN 'PM' THEN '55'
WHEN 'PN' THEN '55'
WHEN 'PR' THEN '55'
WHEN 'PS' THEN '15'
WHEN 'PT' THEN '10'
WHEN 'PW' THEN '55'
WHEN 'PY' THEN '55'
WHEN 'QA' THEN '20'
WHEN 'RE' THEN '15'
WHEN 'RO' THEN '10'
WHEN 'RS' THEN '15'
WHEN 'RU' THEN '15'
WHEN 'RW' THEN '15'
WHEN 'SA' THEN '20'
WHEN 'SB' THEN '55'
WHEN 'SC' THEN '15'
WHEN 'SD' THEN '15'
WHEN 'SE' THEN '10'
WHEN 'SG' THEN '55'
WHEN 'SH' THEN '15'
WHEN 'SI' THEN '10'
WHEN 'SJ' THEN '10'
WHEN 'SK' THEN '10'
WHEN 'SL' THEN '15'
WHEN 'SM' THEN '10'
WHEN 'SN' THEN '15'
WHEN 'SO' THEN '15'
WHEN 'SR' THEN '55'
WHEN 'SS' THEN '15'
WHEN 'ST' THEN '15'
WHEN 'SV' THEN '55'
WHEN 'SX' THEN '55'
WHEN 'SY' THEN '15'
WHEN 'SZ' THEN '15'
WHEN 'TC' THEN '55'
WHEN 'TD' THEN '15'
WHEN 'TF' THEN '55'
WHEN 'TG' THEN '15'
WHEN 'TH' THEN '55'
WHEN 'TJ' THEN '15'
WHEN 'TK' THEN '55'
WHEN 'TL' THEN '55'
WHEN 'TM' THEN '15'
WHEN 'TN' THEN '15'
WHEN 'TO' THEN '55'
WHEN 'TR' THEN '15'
WHEN 'TT' THEN '55'
WHEN 'TV' THEN '55'
WHEN 'TW' THEN '55'
WHEN 'TZ' THEN '15'
WHEN 'UA' THEN '15'
WHEN 'UG' THEN '15'
WHEN 'UM' THEN '55'
WHEN 'US' THEN '55'
WHEN 'UY' THEN '55'
WHEN 'UZ' THEN '15'
WHEN 'VA' THEN '10'
WHEN 'VC' THEN '55'
WHEN 'VE' THEN '55'
WHEN 'VG' THEN '55'
WHEN 'VI' THEN '55'
WHEN 'VN' THEN '55'
WHEN 'VU' THEN '55'
WHEN 'WF' THEN '55'
WHEN 'WS' THEN '55'
WHEN 'YE' THEN '30'
WHEN 'YT' THEN '15'
WHEN 'ZA' THEN '15'
WHEN 'ZM' THEN '15'
WHEN 'ZW' THEN '15'
WHEN 'XK' THEN '15'
WHEN 'BQ' THEN '55'
END
FROM `country` c, `country_property_type` cpt
WHERE cpt.external_mapping_id = 'SAFETY_STOCK';
-- Air Freight Share Properties (all countries have 0%)
INSERT INTO `country_property`
(`country_id`, `country_property_type_id`, `property_set_id`, `property_value`)
SELECT
c.id,
cpt.id,
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
'0'
FROM `country` c, `country_property_type` cpt
WHERE cpt.external_mapping_id = 'AIR_SHARE';
-- Wage Factor Properties (only for countries with defined values)
-- Wage Factor Properties (only for countries with defined values)
INSERT INTO `country_property`
(`country_id`, `country_property_type_id`, `property_set_id`, `property_value`)
SELECT
c.id,
cpt.id,
(SELECT ps.id FROM `property_set` ps
WHERE ps.state = 'VALID'
AND ps.start_date <= NOW()
AND (ps.end_date IS NULL OR ps.end_date > NOW())
ORDER BY ps.start_date DESC
LIMIT 1),
CASE c.iso_code
WHEN 'AT' THEN '0.99'
WHEN 'BE' THEN '1.14'
WHEN 'BG' THEN '0.23'
WHEN 'CZ' THEN '0.44'
WHEN 'DE' THEN '1.00'
WHEN 'DK' THEN '1.16'
WHEN 'EE' THEN '0.60'
WHEN 'ES' THEN '0.90'
WHEN 'FI' THEN '1.02'
WHEN 'FR' THEN '1.05'
WHEN 'GR' THEN '0.35'
WHEN 'HR' THEN '0.31'
WHEN 'HU' THEN '0.35'
WHEN 'IE' THEN '0.97'
WHEN 'IT' THEN '0.72'
WHEN 'LT' THEN '0.36'
WHEN 'LU' THEN '1.31'
WHEN 'LV' THEN '0.33'
WHEN 'MT' THEN '0.41'
WHEN 'NL' THEN '1.05'
WHEN 'PL' THEN '0.27'
WHEN 'PT' THEN '0.41'
WHEN 'RO' THEN '0.27'
WHEN 'SE' THEN '0.94'
WHEN 'SI' THEN '0.62'
WHEN 'SK' THEN '0.42'
ELSE '1'
END
FROM `country` c, `country_property_type` cpt
WHERE cpt.external_mapping_id = 'WAGE';
-- =============================================================================
-- VERIFICATION QUERIES (Optional - for testing)
-- =============================================================================
-- Verify country count
-- SELECT COUNT(*) as total_countries FROM country;
-- Verify property types
-- SELECT * FROM country_property_type;
-- Verify EU countries with all properties
-- SELECT
-- c.iso_code,
-- c.region_code,
-- MAX(CASE WHEN cpt.name = 'Customs Union' THEN cp.property_value END) as customs_union,
-- MAX(CASE WHEN cpt.name = 'Safety Stock' THEN cp.property_value END) as safety_stock,
-- MAX(CASE WHEN cpt.name = 'Air Freight Share' THEN cp.property_value END) as air_freight,
-- MAX(CASE WHEN cpt.name = 'Wage Factor' THEN cp.property_value END) as wage_factor
-- FROM country c
-- JOIN country_property cp ON c.id = cp.country_id
-- JOIN country_property_type cpt ON cp.country_property_type_id = cpt.id
-- WHERE c.iso_code IN ('DE', 'FR', 'AT', 'BE', 'NL')
-- GROUP BY c.id, c.iso_code, c.region_code
-- ORDER BY c.iso_code;

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,767 @@
-- Automatisch generierte SQL-Statements für Node Predecessor Chains
-- Generiert aus: node.xlsx
-- Format: Mehrere Chains pro Node möglich (mit ; getrennt)
-- Predecessor Chain 1: AB (Chain 1 von 2)
-- Predecessors: WH_ULHA
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'AB')
);
SET @chain_id_1 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_ULHA'),
@chain_id_1,
1
);
-- Predecessor Chain 2: AB (Chain 2 von 2)
-- Predecessors: WH_STO
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'AB')
);
SET @chain_id_2 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_STO'),
@chain_id_2,
1
);
-- Predecessor Chain 3: HH (Chain 1 von 1)
-- Predecessors: WH_HH
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'HH')
);
SET @chain_id_3 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_HH'),
@chain_id_3,
1
);
-- Predecessor Chain 4: FGG (Chain 1 von 2)
-- Predecessors: WH_STO
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'FGG')
);
SET @chain_id_4 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_STO'),
@chain_id_4,
1
);
-- Predecessor Chain 5: FGG (Chain 2 von 2)
-- Predecessors: BEZEE
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'FGG')
);
SET @chain_id_5 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'BEZEE'),
@chain_id_5,
1
);
-- Predecessor Chain 6: KWS (Chain 1 von 2)
-- Predecessors: WH_STO
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'KWS')
);
SET @chain_id_6 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_STO'),
@chain_id_6,
1
);
-- Predecessor Chain 7: KWS (Chain 2 von 2)
-- Predecessors: BEZEE
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'KWS')
);
SET @chain_id_7 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'BEZEE'),
@chain_id_7,
1
);
-- Predecessor Chain 8: EGD (Chain 1 von 2)
-- Predecessors: WH_HH
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'EGD')
);
SET @chain_id_8 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_HH'),
@chain_id_8,
1
);
-- Predecessor Chain 9: EGD (Chain 2 von 2)
-- Predecessors: DEHAM
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'EGD')
);
SET @chain_id_9 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'DEHAM'),
@chain_id_9,
1
);
-- Predecessor Chain 10: CTT (Chain 1 von 2)
-- Predecessors: WH_BAT3
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CTT')
);
SET @chain_id_10 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_BAT3'),
@chain_id_10,
1
);
-- Predecessor Chain 11: CTT (Chain 2 von 2)
-- Predecessors: WH_JEAN
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CTT')
);
SET @chain_id_11 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_JEAN'),
@chain_id_11,
1
);
-- Predecessor Chain 12: LZZ (Chain 1 von 1)
-- Predecessors: WH_ROLO
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'LZZ')
);
SET @chain_id_12 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_ROLO'),
@chain_id_12,
1
);
-- Predecessor Chain 13: STR (Chain 1 von 1)
-- Predecessors: WH_ZBU
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'STR')
);
SET @chain_id_13 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_ZBU'),
@chain_id_13,
1
);
-- Predecessor Chain 14: VOP (Chain 1 von 1)
-- Predecessors: WH_BUD
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'VOP')
);
SET @chain_id_14 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_BUD'),
@chain_id_14,
1
);
-- Predecessor Chain 15: KOL (Chain 1 von 1)
-- Predecessors: DEHAM
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'KOL')
);
SET @chain_id_15 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'DEHAM'),
@chain_id_15,
1
);
-- Predecessor Chain 16: LIPO (Chain 1 von 1)
-- Predecessors: WH_BUD
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'LIPO')
);
SET @chain_id_16 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_BUD'),
@chain_id_16,
1
);
-- Predecessor Chain 17: WH_ZBU (Chain 1 von 1)
-- Predecessors: DEHAM
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_ZBU')
);
SET @chain_id_17 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'DEHAM'),
@chain_id_17,
1
);
-- Predecessor Chain 18: WH_STO (Chain 1 von 1)
-- Predecessors: BEZEE
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_STO')
);
SET @chain_id_18 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'BEZEE'),
@chain_id_18,
1
);
-- Predecessor Chain 19: WH_HH (Chain 1 von 1)
-- Predecessors: DEHAM
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_HH')
);
SET @chain_id_19 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'DEHAM'),
@chain_id_19,
1
);
-- Predecessor Chain 20: CNSHA (Chain 1 von 6)
-- Predecessors: Shanghai
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNSHA')
);
SET @chain_id_20 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Shanghai'),
@chain_id_20,
1
);
-- Predecessor Chain 21: CNSHA (Chain 2 von 6)
-- Predecessors: Hangzhou
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNSHA')
);
SET @chain_id_21 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Hangzhou'),
@chain_id_21,
1
);
-- Predecessor Chain 22: CNSHA (Chain 3 von 6)
-- Predecessors: Yangzhong
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNSHA')
);
SET @chain_id_22 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Yangzhong'),
@chain_id_22,
1
);
-- Predecessor Chain 23: CNSHA (Chain 4 von 6)
-- Predecessors: Taicang
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNSHA')
);
SET @chain_id_23 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Taicang'),
@chain_id_23,
1
);
-- Predecessor Chain 24: CNSHA (Chain 5 von 6)
-- Predecessors: Jingjiang
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNSHA')
);
SET @chain_id_24 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Jingjiang'),
@chain_id_24,
1
);
-- Predecessor Chain 25: CNSHA (Chain 6 von 6)
-- Predecessors: JJ
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNSHA')
);
SET @chain_id_25 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'JJ'),
@chain_id_25,
1
);
-- Predecessor Chain 26: CNTAO (Chain 1 von 2)
-- Predecessors: Qingdao
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNTAO')
);
SET @chain_id_26 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Qingdao'),
@chain_id_26,
1
);
-- Predecessor Chain 27: CNTAO (Chain 2 von 2)
-- Predecessors: Linfen
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNTAO')
);
SET @chain_id_27 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Linfen'),
@chain_id_27,
1
);
-- Predecessor Chain 28: CNXMN (Chain 1 von 2)
-- Predecessors: Fuqing
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNXMN')
);
SET @chain_id_28 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Fuqing'),
@chain_id_28,
1
);
-- Predecessor Chain 29: CNXMN (Chain 2 von 2)
-- Predecessors: LX
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNXMN')
);
SET @chain_id_29 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'LX'),
@chain_id_29,
1
);
-- Predecessor Chain 30: INNSA (Chain 1 von 2)
-- Predecessors: Pune
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'INNSA')
);
SET @chain_id_30 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Pune'),
@chain_id_30,
1
);
-- Predecessor Chain 31: INNSA (Chain 2 von 2)
-- Predecessors: Aurangabad
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'INNSA')
);
SET @chain_id_31 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Aurangabad'),
@chain_id_31,
1
);
-- Predecessor Chain 32: INMAA (Chain 1 von 1)
-- Predecessors: Bangalore
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'INMAA')
);
SET @chain_id_32 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Bangalore'),
@chain_id_32,
1
);
-- Predecessor Chain 33: CNSZX (Chain 1 von 1)
-- Predecessors: Shenzhen
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'CNSZX')
);
SET @chain_id_33 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'Shenzhen'),
@chain_id_33,
1
);
-- Predecessor Chain 34: WH_BAT3 (Chain 1 von 1)
-- Predecessors: FRLEH
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_BAT3')
);
SET @chain_id_34 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'FRLEH'),
@chain_id_34,
1
);
-- Predecessor Chain 35: WH_JEAN (Chain 1 von 1)
-- Predecessors: FRLEH
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_JEAN')
);
SET @chain_id_35 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'FRLEH'),
@chain_id_35,
1
);
-- Predecessor Chain 36: WH_ROLO (Chain 1 von 1)
-- Predecessors: ITGOA
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_ROLO')
);
SET @chain_id_36 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'ITGOA'),
@chain_id_36,
1
);
-- Predecessor Chain 37: WH_BUD (Chain 1 von 1)
-- Predecessors: DEHAM
INSERT INTO node_predecessor_chain (
node_id
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'WH_BUD')
);
SET @chain_id_37 = LAST_INSERT_ID();
INSERT INTO node_predecessor_entry (
node_id,
node_predecessor_chain_id,
sequence_number
) VALUES (
(SELECT id FROM node WHERE external_mapping_id = 'DEHAM'),
@chain_id_37,
1
);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,543 @@
-- ============================================
-- Packaging Data Import SQL
-- ============================================
-- Zuerst die packaging_property_types für stackable und rust prevention erstellen
-- (falls sie noch nicht existieren)
INSERT INTO packaging_property_type (name, external_mapping_id, data_type, validation_rule, is_required, description, property_group, sequence_number)
VALUES
('Stackable', 'STACKABLE', 'BOOLEAN', NULL, FALSE, 'desc', 'general', 1),
('Rust Prevention', 'RUST_PREVENTION', 'BOOLEAN', NULL, FALSE, 'desc', 'general', 2),
('Mixable', 'MIXABLE', 'BOOLEAN', NULL, FALSE, 'desc', 'general', 3)
ON DUPLICATE KEY UPDATE
name = VALUES(name),
data_type = VALUES(data_type);
-- ============================================
-- SHU Packaging Dimensions
-- ============================================
-- Part Number: 28152640129
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 7000, 7900, 'CM', 677000, 'KG', 1, FALSE);
SET @shu_dim_28152640129 = LAST_INSERT_ID();
-- Part Number: 8222640822
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5200, 'CM', 942000, 'KG', 630, FALSE);
SET @shu_dim_8222640822 = LAST_INSERT_ID();
-- Part Number: 3064540201
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5200, 'CM', 868000, 'KG', 160, FALSE);
SET @shu_dim_3064540201 = LAST_INSERT_ID();
-- Part Number: 8212640113
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 6500, 'CM', 702000, 'KG', 54, FALSE);
SET @shu_dim_8212640113 = LAST_INSERT_ID();
-- Part Number: 28152643516
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 4700, 'CM', 912000, 'KG', 60, FALSE);
SET @shu_dim_28152643516 = LAST_INSERT_ID();
-- Part Number: 4222640104
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5700, 'CM', 1074000, 'KG', 400, FALSE);
SET @shu_dim_4222640104 = LAST_INSERT_ID();
-- Part Number: 28152643502
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 4700, 'CM', 912000, 'KG', 60, FALSE);
SET @shu_dim_28152643502 = LAST_INSERT_ID();
-- Part Number: 28152640804
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 4700, 'CM', 740000, 'KG', 48, FALSE);
SET @shu_dim_28152640804 = LAST_INSERT_ID();
-- Part Number: 4222640805
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5700, 'CM', 912000, 'KG', 300, FALSE);
SET @shu_dim_4222640805 = LAST_INSERT_ID();
-- Part Number: 4222640803
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5700, 'CM', 962000, 'KG', 320, FALSE);
SET @shu_dim_4222640803 = LAST_INSERT_ID();
-- Part Number: 8212640811
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 3400, 'CM', 962000, 'KG', 320, FALSE);
SET @shu_dim_8212640811 = LAST_INSERT_ID();
-- Part Number: 8212640827
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 3400, 'CM', 962000, 'KG', 320, FALSE);
SET @shu_dim_8212640827 = LAST_INSERT_ID();
-- Part Number: 5512640104
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5700, 'CM', 1074000, 'KG', 400, FALSE);
SET @shu_dim_5512640104 = LAST_INSERT_ID();
-- Part Number: 5512640106
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5700, 'CM', 1074000, 'KG', 400, FALSE);
SET @shu_dim_5512640106 = LAST_INSERT_ID();
-- Part Number: 8263500575
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5200, 'CM', 1050000, 'KG', 600, FALSE);
SET @shu_dim_8263500575 = LAST_INSERT_ID();
-- Part Number: 8263500576
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5200, 'CM', 1050000, 'KG', 600, FALSE);
SET @shu_dim_8263500576 = LAST_INSERT_ID();
-- Part Number: 28523500575
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5200, 'CM', 1050000, 'KG', 600, FALSE);
SET @shu_dim_28523500575 = LAST_INSERT_ID();
-- Part Number: 28523500576
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('SHU', 12000, 8000, 5200, 'CM', 1050000, 'KG', 600, FALSE);
SET @shu_dim_28523500576 = LAST_INSERT_ID();
-- ============================================
-- HU Packaging Dimensions
-- ============================================
-- Part Number: 28152640129
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 700, 790, 'MM', 677000, 'KG', 1, FALSE);
SET @hu_dim_28152640129 = LAST_INSERT_ID();
-- Part Number: 8222640822
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 520, 'MM', 942000, 'KG', 1, FALSE);
SET @hu_dim_8222640822 = LAST_INSERT_ID();
-- Part Number: 3064540201
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 520, 'MM', 868000, 'KG', 1, FALSE);
SET @hu_dim_3064540201 = LAST_INSERT_ID();
-- Part Number: 8212640113
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 650, 'MM', 702000, 'KG', 1, FALSE);
SET @hu_dim_8212640113 = LAST_INSERT_ID();
-- Part Number: 28152643516
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 470, 'MM', 912000, 'KG', 1, FALSE);
SET @hu_dim_28152643516 = LAST_INSERT_ID();
-- Part Number: 4222640104
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 570, 'MM', 1074000, 'KG', 1, FALSE);
SET @hu_dim_4222640104 = LAST_INSERT_ID();
-- Part Number: 28152643502
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 470, 'MM', 912000, 'KG', 1, FALSE);
SET @hu_dim_28152643502 = LAST_INSERT_ID();
-- Part Number: 28152640804
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 470, 'MM', 740000, 'KG', 1, FALSE);
SET @hu_dim_28152640804 = LAST_INSERT_ID();
-- Part Number: 4222640805
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 570, 'MM', 912000, 'KG', 1, FALSE);
SET @hu_dim_4222640805 = LAST_INSERT_ID();
-- Part Number: 4222640803
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 570, 'MM', 962000, 'KG', 1, FALSE);
SET @hu_dim_4222640803 = LAST_INSERT_ID();
-- Part Number: 8212640811
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 340, 'MM', 962000, 'KG', 1, FALSE);
SET @hu_dim_8212640811 = LAST_INSERT_ID();
-- Part Number: 8212640827
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 340, 'MM', 962000, 'KG', 1, FALSE);
SET @hu_dim_8212640827 = LAST_INSERT_ID();
-- Part Number: 5512640104
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 570, 'MM', 1074000, 'KG', 1, FALSE);
SET @hu_dim_5512640104 = LAST_INSERT_ID();
-- Part Number: 5512640106
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 570, 'MM', 1074000, 'KG', 1, FALSE);
SET @hu_dim_5512640106 = LAST_INSERT_ID();
-- Part Number: 8263500575
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 520, 'MM', 1050000, 'KG', 1, FALSE);
SET @hu_dim_8263500575 = LAST_INSERT_ID();
-- Part Number: 8263500576
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 520, 'MM', 1050000, 'KG', 1, FALSE);
SET @hu_dim_8263500576 = LAST_INSERT_ID();
-- Part Number: 28523500575
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 520, 'MM', 1050000, 'KG', 1, FALSE);
SET @hu_dim_28523500575 = LAST_INSERT_ID();
-- Part Number: 28523500576
INSERT INTO packaging_dimension (type, length, width, height, displayed_dimension_unit, weight, displayed_weight_unit, content_unit_count, is_deprecated)
VALUES ('HU', 1200, 800, 520, 'MM', 1050000, 'KG', 1, FALSE);
SET @hu_dim_28523500576 = LAST_INSERT_ID();
-- ============================================
-- Packaging Einträge
-- ============================================
-- Part Number: 28152640129
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '28152640129' LIMIT 1),
@hu_dim_28152640129,
@shu_dim_28152640129,
FALSE
);
SET @packaging_28152640129 = LAST_INSERT_ID();
-- Part Number: 8222640822
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '8222640822' LIMIT 1),
@hu_dim_8222640822,
@shu_dim_8222640822,
FALSE
);
SET @packaging_8222640822 = LAST_INSERT_ID();
-- Part Number: 3064540201
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '3064540201' LIMIT 1),
@hu_dim_3064540201,
@shu_dim_3064540201,
FALSE
);
SET @packaging_3064540201 = LAST_INSERT_ID();
-- Part Number: 8212640113
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '8212640113' LIMIT 1),
@hu_dim_8212640113,
@shu_dim_8212640113,
FALSE
);
SET @packaging_8212640113 = LAST_INSERT_ID();
-- Part Number: 28152643516
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '28152643516' LIMIT 1),
@hu_dim_28152643516,
@shu_dim_28152643516,
FALSE
);
SET @packaging_28152643516 = LAST_INSERT_ID();
-- Part Number: 4222640104
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '4222640104' LIMIT 1),
@hu_dim_4222640104,
@shu_dim_4222640104,
FALSE
);
SET @packaging_4222640104 = LAST_INSERT_ID();
-- Part Number: 28152643502
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '28152643502' LIMIT 1),
@hu_dim_28152643502,
@shu_dim_28152643502,
FALSE
);
SET @packaging_28152643502 = LAST_INSERT_ID();
-- Part Number: 28152640804
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '28152640804' LIMIT 1),
@hu_dim_28152640804,
@shu_dim_28152640804,
FALSE
);
SET @packaging_28152640804 = LAST_INSERT_ID();
-- Part Number: 4222640805
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '4222640805' LIMIT 1),
@hu_dim_4222640805,
@shu_dim_4222640805,
FALSE
);
SET @packaging_4222640805 = LAST_INSERT_ID();
-- Part Number: 4222640803
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '4222640803' LIMIT 1),
@hu_dim_4222640803,
@shu_dim_4222640803,
FALSE
);
SET @packaging_4222640803 = LAST_INSERT_ID();
-- Part Number: 8212640811
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '8212640811' LIMIT 1),
@hu_dim_8212640811,
@shu_dim_8212640811,
FALSE
);
SET @packaging_8212640811 = LAST_INSERT_ID();
-- Part Number: 8212640827
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '8212640827' LIMIT 1),
@hu_dim_8212640827,
@shu_dim_8212640827,
FALSE
);
SET @packaging_8212640827 = LAST_INSERT_ID();
-- Part Number: 5512640104
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '5512640104' LIMIT 1),
@hu_dim_5512640104,
@shu_dim_5512640104,
FALSE
);
SET @packaging_5512640104 = LAST_INSERT_ID();
-- Part Number: 5512640106
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '5512640106' LIMIT 1),
@hu_dim_5512640106,
@shu_dim_5512640106,
FALSE
);
SET @packaging_5512640106 = LAST_INSERT_ID();
-- Part Number: 8263500575
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '8263500575' LIMIT 1),
@hu_dim_8263500575,
@shu_dim_8263500575,
FALSE
);
SET @packaging_8263500575 = LAST_INSERT_ID();
-- Part Number: 8263500576
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '8263500576' LIMIT 1),
@hu_dim_8263500576,
@shu_dim_8263500576,
FALSE
);
SET @packaging_8263500576 = LAST_INSERT_ID();
-- Part Number: 28523500575
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '28523500575' LIMIT 1),
@hu_dim_28523500575,
@shu_dim_28523500575,
FALSE
);
SET @packaging_28523500575 = LAST_INSERT_ID();
-- Part Number: 28523500576
INSERT INTO packaging (supplier_node_id, material_id, hu_dimension_id, shu_dimension_id, is_deprecated)
VALUES (
(SELECT id FROM node WHERE name = 'Linde (China) Forklift Truck (Supplier)' LIMIT 1),
(SELECT id FROM material WHERE part_number = '28523500576' LIMIT 1),
@hu_dim_28523500576,
@shu_dim_28523500576,
FALSE
);
SET @packaging_28523500576 = LAST_INSERT_ID();
-- ============================================
-- Packaging Properties
-- ============================================
-- Stackable und Rust Prevention Property Type IDs ermitteln
SET @stackable_type_id = (SELECT id FROM packaging_property_type WHERE external_mapping_id = 'STACKABLE' LIMIT 1);
SET @rust_prevention_type_id = (SELECT id FROM packaging_property_type WHERE external_mapping_id = 'RUST_PREVENTION' LIMIT 1);
SET @mixable_type_id = (SELECT id FROM packaging_property_type WHERE external_mapping_id = 'MIXABLE' LIMIT 1);
-- Part Number: 28152640129 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_28152640129, 'true'),
(@mixable_type_id, @packaging_28152640129, 'true'),
(@rust_prevention_type_id, @packaging_28152640129, 'false');
-- Part Number: 8222640822 - Stackable: No, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_8222640822, 'false'),
(@mixable_type_id, @packaging_8222640822, 'true'),
(@rust_prevention_type_id, @packaging_8222640822, 'false');
-- Part Number: 3064540201 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_3064540201, 'true'),
(@mixable_type_id, @packaging_3064540201, 'true'),
(@rust_prevention_type_id, @packaging_3064540201, 'false');
-- Part Number: 8212640113 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_8212640113, 'true'),
(@mixable_type_id, @packaging_8212640113, 'true'),
(@rust_prevention_type_id, @packaging_8212640113, 'false');
-- Part Number: 28152643516 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_28152643516, 'true'),
(@mixable_type_id, @packaging_28152643516, 'true'),
(@rust_prevention_type_id, @packaging_28152643516, 'false');
-- Part Number: 4222640104 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_4222640104, 'true'),
(@mixable_type_id, @packaging_4222640104, 'true'),
(@rust_prevention_type_id, @packaging_4222640104, 'false');
-- Part Number: 28152643502 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_28152643502, 'true'),
(@mixable_type_id, @packaging_28152643502, 'true'),
(@rust_prevention_type_id, @packaging_28152643502, 'false');
-- Part Number: 28152640804 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_28152640804, 'true'),
(@mixable_type_id, @packaging_28152640804, 'true'),
(@rust_prevention_type_id, @packaging_28152640804, 'false');
-- Part Number: 4222640805 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_4222640805, 'true'),
(@mixable_type_id, @packaging_4222640805, 'true'),
(@rust_prevention_type_id, @packaging_4222640805, 'false');
-- Part Number: 4222640803 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_4222640803, 'true'),
(@mixable_type_id, @packaging_4222640803, 'true'),
(@rust_prevention_type_id, @packaging_4222640803, 'false');
-- Part Number: 8212640811 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_8212640811, 'true'),
(@mixable_type_id, @packaging_8212640811, 'true'),
(@rust_prevention_type_id, @packaging_8212640811, 'false');
-- Part Number: 8212640827 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_8212640827, 'true'),
(@mixable_type_id, @packaging_8212640827, 'true'),
(@rust_prevention_type_id, @packaging_8212640827, 'false');
-- Part Number: 5512640104 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_5512640104, 'true'),
(@mixable_type_id, @packaging_5512640104, 'true'),
(@rust_prevention_type_id, @packaging_5512640104, 'false');
-- Part Number: 5512640106 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_5512640106, 'true'),
(@mixable_type_id, @packaging_5512640106, 'true'),
(@rust_prevention_type_id, @packaging_5512640106, 'false');
-- Part Number: 8263500575 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_8263500575, 'true'),
(@mixable_type_id, @packaging_8263500575, 'true'),
(@rust_prevention_type_id, @packaging_8263500575, 'false');
-- Part Number: 8263500576 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_8263500576, 'true'),
(@mixable_type_id, @packaging_8263500576, 'true'),
(@rust_prevention_type_id, @packaging_8263500576, 'false');
-- Part Number: 28523500575 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_28523500575, 'true'),
(@mixable_type_id, @packaging_28523500575, 'true'),
(@rust_prevention_type_id, @packaging_28523500575, 'false');
-- Part Number: 28523500576 - Stackable: Yes, Rust Prevention: No
INSERT INTO packaging_property (packaging_property_type_id, packaging_id, property_value)
VALUES
(@stackable_type_id, @packaging_28523500576, 'true'),
(@mixable_type_id, @packaging_28523500576, 'true'),
(@rust_prevention_type_id, @packaging_28523500576, 'false');
-- ============================================
-- Ende des Imports
-- ============================================