Files
zibo-dashboard/public/userarea/manutenzioni/sql/3_seed_and_link.sql
T
2026-08-12 21:29:55 +03:00

69 lines
2.8 KiB
SQL

INSERT IGNORE INTO inv_categories (name, code, color, requires_line, sort_order) VALUES
('Linea di produzione', 'line', '#dc2626', 1, 10),
('Attrezzature', 'equipment', '#0d6efd', 0, 20),
('Accessori', 'accessories', '#20c997', 0, 30),
('Qualità', 'quality', '#6f42c1', 0, 40);
UPDATE inv_equipment
SET category_id = (SELECT id FROM inv_categories WHERE code = 'equipment')
WHERE category_id IS NULL AND line_id IS NULL;
INSERT INTO inv_equipment (name, category_id, line_id, status, description, created_at, updated_at)
SELECT
pl.name,
(SELECT id FROM inv_categories WHERE code = 'line'),
pl.id,
IF(pl.status = 'active', 'active', 'out_of_service'),
CONCAT_WS(' ', NULLIF(pl.brand, ''), NULLIF(pl.model, '')),
NOW(), NOW()
FROM production_lines pl
WHERE NOT EXISTS (
SELECT 1 FROM inv_equipment e WHERE e.line_id = pl.id
);
DELIMITER $$
DROP PROCEDURE IF EXISTS manutenzioni_migrate_step3 $$
CREATE PROCEDURE manutenzioni_migrate_step3()
BEGIN
DECLARE v_db VARCHAR(64);
SET v_db = DATABASE();
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
WHERE table_schema = v_db AND table_name = 'inv_equipment'
AND constraint_name = 'fk_inv_equipment_category') THEN
ALTER TABLE inv_equipment
ADD CONSTRAINT fk_inv_equipment_category FOREIGN KEY (category_id)
REFERENCES inv_categories (id) ON DELETE SET NULL;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
WHERE table_schema = v_db AND table_name = 'inv_equipment'
AND constraint_name = 'fk_inv_equipment_line') THEN
ALTER TABLE inv_equipment
ADD CONSTRAINT fk_inv_equipment_line FOREIGN KEY (line_id)
REFERENCES production_lines (id) ON DELETE SET NULL;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
WHERE table_schema = v_db AND table_name = 'inv_equipment'
AND constraint_name = 'fk_inv_equipment_department') THEN
ALTER TABLE inv_equipment
ADD CONSTRAINT fk_inv_equipment_department FOREIGN KEY (department_id)
REFERENCES departments (id) ON DELETE SET NULL;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
WHERE table_schema = v_db AND table_name = 'inv_equipment'
AND constraint_name = 'fk_inv_equipment_cover') THEN
ALTER TABLE inv_equipment
ADD CONSTRAINT fk_inv_equipment_cover FOREIGN KEY (cover_file_id)
REFERENCES inv_equipment_files (id) ON DELETE SET NULL;
END IF;
END $$
DELIMITER ;
CALL manutenzioni_migrate_step3();
DROP PROCEDURE manutenzioni_migrate_step3;