Skip to content

Commit a66d7dc

Browse files
committed
fix: query migrazione categorie impianto
1 parent 5ab204b commit a66d7dc

1 file changed

Lines changed: 25 additions & 10 deletions

File tree

update/2_8.sql

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,19 @@ ORDER BY
198198
`co_documenti`.`data` DESC,
199199
CAST(IF(`co_documenti`.`numero` = '', `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED) DESC" WHERE `name` = 'Fatture di acquisto';
200200

201+
-- Aggiungi colonna name alle tabelle delle categorie prima della migrazione
202+
ALTER TABLE `mg_categorie` ADD `name` VARCHAR(255) NULL;
203+
ALTER TABLE `my_impianti_categorie` ADD `name` VARCHAR(255) NULL;
204+
205+
-- Popola la colonna name con i valori title dalla tabella _lang per id_lang=1
206+
UPDATE `mg_categorie` `cat`
207+
JOIN `mg_categorie_lang` `cat_lang` ON `cat`.`id` = `cat_lang`.`id_record` AND `cat_lang`.`id_lang` = 1
208+
SET `cat`.`name` = `cat_lang`.`title`;
209+
210+
UPDATE `my_impianti_categorie` `cat`
211+
JOIN `my_impianti_categorie_lang` `cat_lang` ON `cat`.`id` = `cat_lang`.`id_record` AND `cat_lang`.`id_lang` = 1
212+
SET `cat`.`name` = `cat_lang`.`title`;
213+
201214
RENAME TABLE `mg_categorie` TO `zz_categorie`;
202215
RENAME TABLE `mg_categorie_lang` TO `zz_categorie_lang`;
203216

@@ -208,33 +221,35 @@ UPDATE `zz_categorie` SET `is_articolo` = 1 WHERE `id` IN (SELECT DISTINCT `id_c
208221
OR `id` IN (SELECT DISTINCT `id_sottocategoria` FROM `mg_articoli` WHERE `id_sottocategoria` IS NOT NULL AND `id_sottocategoria` > 0);
209222

210223
-- Inserisci prima le categorie senza parent (categorie principali)
211-
INSERT INTO `zz_categorie` (`colore`, `parent`, `is_articolo`, `is_impianto`)
212-
SELECT `colore`, NULL, 0, 1 FROM `my_impianti_categorie` WHERE `parent` IS NULL OR `parent` = 0;
224+
INSERT INTO `zz_categorie` (`name`, `colore`, `parent`, `is_articolo`, `is_impianto`)
225+
SELECT `name`, `colore`, NULL, 0, 1 FROM `my_impianti_categorie` WHERE `parent` IS NULL OR `parent` = 0;
226+
227+
ALTER TABLE `zz_categorie_lang` CHANGE `note` `note` VARCHAR(255) NULL;
213228

214229
-- Inserisci le sottocategorie con parent, mappando i parent ID dalla vecchia alla nuova tabella
215-
INSERT INTO `zz_categorie` (`colore`, `parent`, `is_articolo`, `is_impianto`)
216-
SELECT `mic`.`colore`, `zz_cat_parent`.`id`, 0, 1
230+
INSERT INTO `zz_categorie` (`name`, `colore`, `parent`, `is_articolo`, `is_impianto`)
231+
SELECT `mic`.`name`, `mic`.`colore`, `zz_cat_parent`.`id`, 0, 1
217232
FROM `my_impianti_categorie` `mic`
218233
JOIN `my_impianti_categorie` `mic_parent` ON `mic`.`parent` = `mic_parent`.`id`
219-
JOIN `zz_categorie` `zz_cat_parent` ON `zz_cat_parent`.`is_impianto` = 1 AND `zz_cat_parent`.`colore` = `mic_parent`.`colore`
234+
JOIN `zz_categorie` `zz_cat_parent` ON `zz_cat_parent`.`is_impianto` = 1 AND `zz_cat_parent`.`name` = `mic_parent`.`name`
220235
WHERE `mic`.`parent` IS NOT NULL AND `mic`.`parent` > 0;
221236

222237
INSERT INTO `zz_categorie_lang` (`id_lang`, `id_record`, `title`)
223-
SELECT `mic_lang`.`id_lang`, `zz_cat`.`id`, `mic_lang`.`title`
238+
SELECT DISTINCT `mic_lang`.`id_lang`, `zz_cat`.`id`, `mic_lang`.`title`
224239
FROM `my_impianti_categorie_lang` `mic_lang`
225-
JOIN `my_impianti_categorie` `mic` ON `mic_lang`.`id_record` = `mic`.`id`
226-
JOIN `zz_categorie` `zz_cat` ON `zz_cat`.`is_impianto` = 1 AND `zz_cat`.`colore` = `mic`.`colore`;
240+
JOIN `my_impianti_categorie` `mic` ON (`mic_lang`.`id_record` = `mic`.`id` AND `mic_lang`.`id_lang` = 1)
241+
JOIN `zz_categorie` `zz_cat` ON `zz_cat`.`is_impianto` = 1 AND `zz_cat`.`name` = `mic`.`name`;
227242

228243
ALTER TABLE `my_impianti` DROP FOREIGN KEY `my_impianti_ibfk_1`;
229244

230245
UPDATE `my_impianti` `imp`
231246
JOIN `my_impianti_categorie` `mic` ON `imp`.`id_categoria` = `mic`.`id`
232-
JOIN `zz_categorie` `zz_cat` ON `zz_cat`.`is_impianto` = 1 AND `zz_cat`.`colore` = `mic`.`colore`
247+
JOIN `zz_categorie` `zz_cat` ON `zz_cat`.`is_impianto` = 1 AND `zz_cat`.`name` = `mic`.`name`
233248
SET `imp`.`id_categoria` = `zz_cat`.`id`;
234249

235250
UPDATE `my_impianti` `imp`
236251
JOIN `my_impianti_categorie` `mic` ON `imp`.`id_sottocategoria` = `mic`.`id`
237-
JOIN `zz_categorie` `zz_cat` ON `zz_cat`.`is_impianto` = 1 AND `zz_cat`.`colore` = `mic`.`colore`
252+
JOIN `zz_categorie` `zz_cat` ON `zz_cat`.`is_impianto` = 1 AND `zz_cat`.`name` = `mic`.`name`
238253
SET `imp`.`id_sottocategoria` = `zz_cat`.`id`;
239254

240255
DROP TABLE IF EXISTS `my_impianti_categorie_lang`;

0 commit comments

Comments
 (0)