From 9073633705fdbc3b98135bbdfdd7c733ccd0baac Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 1 Mar 2024 09:08:08 +0100 Subject: [PATCH] Aggiunta tabella mg_categorie_lang --- modules/articoli/ajax/search.php | 4 +- modules/articoli/ajax/select.php | 14 ++-- modules/articoli/src/API/v1/Articoli.php | 13 ++++ modules/articoli/src/Categoria.php | 30 +++++++++ modules/categorie_articoli/actions.php | 18 +++++- modules/categorie_articoli/edit.php | 4 +- modules/categorie_articoli/init.php | 2 +- modules/categorie_articoli/row-list.php | 4 +- src/API/App/v1/Articoli.php | 8 ++- templates/automezzi_carico/init.php | 3 +- templates/automezzi_inventario/init.php | 5 +- update/2_4_55.sql | 81 ++++++++++++++++++------ update/tables.php | 1 + 13 files changed, 145 insertions(+), 42 deletions(-) diff --git a/modules/articoli/ajax/search.php b/modules/articoli/ajax/search.php index a820c5f66..33922d94f 100755 --- a/modules/articoli/ajax/search.php +++ b/modules/articoli/ajax/search.php @@ -29,8 +29,8 @@ $fields = [ 'Codice' => 'codice', 'Barcode' => 'barcode', 'Descrizione' => 'descrizione', - 'Categoria' => '(SELECT `nome` FROM `mg_categorie` WHERE `mg_categorie`.`id` = `mg_articoli`.`id_categoria`)', - 'Subcategoria' => '(SELECT `nome` FROM `mg_categorie` WHERE `mg_categorie`.`id` = `mg_articoli`.`id_sottocategoria`)', + 'Categoria' => '(SELECT `name` FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `mg_categorie`.`id` = `mg_articoli`.`id_categoria`)', + 'Subcategoria' => '(SELECT `name` FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `mg_categorie`.`id` = `mg_articoli`.`id_sottocategoria`)', 'Note' => 'note', ]; diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index f9ed0e763..df3b8e06f 100755 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -100,7 +100,9 @@ switch ($resource) { `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = ".prepare(setting('Lingua')).") LEFT JOIN `mg_categorie` AS categoria ON `categoria`.`id` = `mg_articoli`.`id_categoria` + LEFT JOIN `mg_categorie_lang` AS categoria_lang ON (`categoria`.`id` = `categoria_lang`.`id_record` AND `categoria_lang`.`id_lang` = ".prepare(setting('Lingua')).") LEFT JOIN `mg_categorie` AS sottocategoria ON `sottocategoria`.`id` = `mg_articoli`.`id_sottocategoria` + LEFT JOIN `mg_categorie_lang` AS sottocategoria_lang ON (`sottocategoria`.`id` = `sottocategoria_lang`.`id_record` AND `sottocategoria_lang`.`id_lang` = ".prepare(setting('Lingua')).") LEFT JOIN `co_pianodeiconti3` AS conto_vendita_sottocategoria ON `conto_vendita_sottocategoria`.`id`=`mg_articoli`.`idconto_vendita` LEFT JOIN `co_pianodeiconti2` AS conto_vendita_categoria ON `conto_vendita_sottocategoria`.`idpianodeiconti2`=`conto_vendita_categoria`.`id` LEFT JOIN `co_pianodeiconti3` AS conto_acquisto_sottocategoria ON `conto_acquisto_sottocategoria`.`id`=`mg_articoli`.`idconto_acquisto` @@ -217,16 +219,16 @@ switch ($resource) { break; case 'categorie': - $query = 'SELECT `id`, `nome` AS descrizione FROM `mg_categorie` |where| ORDER BY `nome`'; + $query = 'SELECT `mg_categorie`.`id`, `name` AS descrizione FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') |where| ORDER BY `name`'; foreach ($elements as $element) { - $filter[] = '`id`='.prepare($element); + $filter[] = '`mg_categorie`.`id`='.prepare($element); } $where[] = '`parent` IS NULL'; if (!empty($search)) { - $search_fields[] = '`nome` LIKE '.prepare('%'.$search.'%'); + $search_fields[] = '`name` LIKE '.prepare('%'.$search.'%'); } break; @@ -237,16 +239,16 @@ switch ($resource) { */ case 'sottocategorie': if (isset($superselect['id_categoria'])) { - $query = 'SELECT `id`, `nome` AS descrizione FROM `mg_categorie` |where| ORDER BY `nome`'; + $query = 'SELECT `mg_categorie`.`id`, `name` AS descrizione FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') |where| ORDER BY `name`'; foreach ($elements as $element) { - $filter[] = '`id`='.prepare($element); + $filter[] = '`mg_categorie`.`id`='.prepare($element); } $where[] = '`parent`='.prepare($superselect['id_categoria']); if (!empty($search)) { - $search_fields[] = '`nome` LIKE '.prepare('%'.$search.'%'); + $search_fields[] = '`name` LIKE '.prepare('%'.$search.'%'); } } break; diff --git a/modules/articoli/src/API/v1/Articoli.php b/modules/articoli/src/API/v1/Articoli.php index effa50971..f1f009b89 100755 --- a/modules/articoli/src/API/v1/Articoli.php +++ b/modules/articoli/src/API/v1/Articoli.php @@ -48,12 +48,25 @@ class Articoli extends Resource implements RetrieveInterface, UpdateInterface, C 'mg_articoli.id_categoria', 'categorie.id', ]; + + $joins[] = [ + 'mg_categorie_lang AS categorie_lang', + 'mg_categorie.id', + 'categorie_lang.id_record', + ]; + $joins[] = [ 'mg_categorie AS sottocategorie', 'mg_articoli.id_sottocategoria', 'sottocategorie.id', ]; + $joins[] = [ + 'mg_categorie_lang AS sottocategorie_lang', + 'mg_categorie.id', + 'sottocategorie_lang.id_record', + ]; + $where[] = ['mg_articoli.deleted_at', '=', null]; $whereraw = []; diff --git a/modules/articoli/src/Categoria.php b/modules/articoli/src/Categoria.php index 0d8d9720b..8fe14eb46 100755 --- a/modules/articoli/src/Categoria.php +++ b/modules/articoli/src/Categoria.php @@ -45,4 +45,34 @@ class Categoria extends Model { return $this->hasMany(Articolo::class, 'id_categoria'); } + + /** + * Ritorna l'attributo name della categoria articolo. + * + * @return string + */ + public function getNameAttribute() + { + return database()->table($this->table.'_lang') + ->select('name') + ->where('id_record', '=', $this->id) + ->where('id_lang', '=', setting('Lingua')) + ->first()->name; + } + + /** + * Ritorna l'id della categoria articolo a partire dal nome. + * + * @param string $name il nome da ricercare + * + * @return \Illuminate\Support\Collection + */ + public function getByName($name) + { + return database()->table($this->table.'_lang') + ->select('id_record') + ->where('name', '=', $name) + ->where('id_lang', '=', setting('Lingua')) + ->first(); + } } diff --git a/modules/categorie_articoli/actions.php b/modules/categorie_articoli/actions.php index 2700c8a32..accf9afa4 100755 --- a/modules/categorie_articoli/actions.php +++ b/modules/categorie_articoli/actions.php @@ -30,11 +30,16 @@ switch (filter('op')) { $database->table('mg_categorie') ->where('id', '=', $id_record) ->update([ - 'nome' => $nome, 'nota' => $nota, 'colore' => $colore, ]); + $database->table('mg_categorie_lang') + ->where('id_record', '=', $id_record) + ->update([ + 'name' => $nome, + ]); + flash()->info(tr('Salvataggio completato!')); } else { flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!')); @@ -58,7 +63,8 @@ switch (filter('op')) { // Ricerca corrispondenze con stesso nome $corrispondenze = $database->table('mg_categorie') - ->where('nome', '=', $nome); + ->join('mg_categorie_lang', 'mg_categorie.id', '=', 'mg_categorie_lang.id_record') + ->where('name', '=', $nome); if (!empty($id_original)) { $corrispondenze = $corrispondenze->where('parent', '=', $id_original); } else { @@ -70,12 +76,18 @@ switch (filter('op')) { if ($corrispondenze->count() == 0) { $id_record = $database->table('mg_categorie') ->insertGetId([ - 'nome' => $nome, 'nota' => $nota, 'colore' => $colore, 'parent' => $id_original, ]); + $database->table('mg_categorie_lang') + ->insertGetId([ + 'id_record' => $id_record, + 'name' => $nome, + 'id_lang' => setting('Lingua'), + ]); + flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ '_TYPE_' => 'categoria', ])); diff --git a/modules/categorie_articoli/edit.php b/modules/categorie_articoli/edit.php index e4951f0ec..6a6c1c52d 100755 --- a/modules/categorie_articoli/edit.php +++ b/modules/categorie_articoli/edit.php @@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "nome", "required": 1, "value": "$nome$" ]} + {[ "type": "text", "label": "", "name": "nome", "required": 1, "value": "$name$" ]}
@@ -91,7 +91,7 @@ include_once __DIR__.'/../../core.php'; fetchArray('SELECT `mg_articoli`.`id`, `mg_articoli`.`codice`, `mg_articoli`.`barcode` FROM `mg_articoli` WHERE (`id_categoria`='.prepare($id_record).' OR `id_sottocategoria`='.prepare($id_record).' OR `id_sottocategoria` IN (SELECT id FROM `mg_categorie` WHERE `parent`='.prepare($id_record).')) AND `deleted_at` IS NULL'); +$elementi = $dbo->fetchArray('SELECT `mg_articoli`.`id`, `mg_articoli`.`codice`, `mg_articoli`.`barcode` FROM `mg_articoli` WHERE (`id_categoria`='.prepare($id_record).' OR `id_sottocategoria`='.prepare($id_record).' OR `id_sottocategoria` IN (SELECT `id` FROM `mg_categorie` WHERE `parent`='.prepare($id_record).')) AND `deleted_at` IS NULL'); if (!empty($elementi)) { echo ' diff --git a/modules/categorie_articoli/init.php b/modules/categorie_articoli/init.php index 520458d4d..413b6de26 100755 --- a/modules/categorie_articoli/init.php +++ b/modules/categorie_articoli/init.php @@ -20,5 +20,5 @@ include_once __DIR__.'/../../core.php'; if (isset($id_record)) { - $record = $dbo->fetchOne('SELECT * FROM `mg_categorie` WHERE id='.prepare($id_record)); + $record = $dbo->fetchOne('SELECT * FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id`=`mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `mg_categorie`.`id`='.prepare($id_record)); } diff --git a/modules/categorie_articoli/row-list.php b/modules/categorie_articoli/row-list.php index 779bcb728..86dd910a3 100755 --- a/modules/categorie_articoli/row-list.php +++ b/modules/categorie_articoli/row-list.php @@ -19,13 +19,13 @@ include_once __DIR__.'/../../core.php'; -$subcategorie = $dbo->fetchArray('SELECT * FROM `mg_categorie` WHERE `parent`='.prepare($id_record).' ORDER BY nome ASC '); +$subcategorie = $dbo->fetchArray('SELECT * FROM `mg_categorie` LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id`=`mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `parent`='.prepare($id_record).' ORDER BY `name` ASC '); foreach ($subcategorie as $sub) { $n_articoli = $dbo->fetchNum('SELECT * FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `id_sottocategoria`='.prepare($sub['id']).' AND deleted_at IS NULL'); echo ' - '.$sub['nome'].' + '.$sub['name'].' '.$sub['colore'].' '.$sub['nota'].' diff --git a/src/API/App/v1/Articoli.php b/src/API/App/v1/Articoli.php index d1c5111d0..b9e4061a5 100644 --- a/src/API/App/v1/Articoli.php +++ b/src/API/App/v1/Articoli.php @@ -55,11 +55,15 @@ class Articoli extends AppResource `mg_articoli`.`qta`, `mg_articoli`.`um`, `mg_articoli`.`idiva_vendita` AS id_iva, - (SELECT `nome` FROM `mg_categorie` WHERE `id` = `mg_articoli`.`id_categoria`) AS categoria, - (SELECT `nome` FROM `mg_categorie` WHERE `id` = `mg_articoli`.`id_sottocategoria`) AS sottocategoria + `categoria_lang`.`name` AS categoria, + `sottocategoria_lang`.`name` AS sottocategoria FROM `mg_articoli` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(setting('Lingua')).') + LEFT JOIN `mg_categorie` as categoria ON (`mg_articoli`.`id_categoria` = `mg_categorie`.`id`) + LEFT JOIN `mg_categorie_lang` as categoria_lang ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') + LEFT JOIN `mg_categorie` as sottocategoria ON (`mg_articoli`.`id_sottocategoria` = `mg_categorie`.`id`) + LEFT JOIN `mg_categorie_lang` as sottocategoria_lang ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `mg_articoli`.`id` = '.prepare($id); diff --git a/templates/automezzi_carico/init.php b/templates/automezzi_carico/init.php index 211356dec..484544557 100644 --- a/templates/automezzi_carico/init.php +++ b/templates/automezzi_carico/init.php @@ -34,7 +34,7 @@ $query = " `mg_articoli`.`codice`, `mg_articoli`.`prezzo_vendita`, `co_iva`.`percentuale` AS iva, - `mg_categorie`.`nome` AS subcategoria, + `mg_categorie_lang`.`name` AS subcategoria, `mg_articoli_lang`.`name` AS descrizione, `mg_movimenti`.`qta`, `mg_movimenti`.`idutente`, @@ -50,6 +50,7 @@ $query = " INNER JOIN `an_sedi` ON `mg_movimenti`.`idsede`=`an_sedi`.`id` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = ".prepare(setting('Lingua')).") LEFT JOIN `mg_categorie` ON `mg_categorie`.`id`=`mg_articoli`.`id_sottocategoria` + LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id`=`mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = ".prepare(setting('Lingua')).") LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id`=`mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = ".prepare(setting('Lingua')).") WHERE `mg_movimenti`.`qta`>0 AND (`mg_movimenti`.`idsede` > 0) AND (`mg_movimenti`.`idintervento` IS NULL) AND diff --git a/templates/automezzi_inventario/init.php b/templates/automezzi_inventario/init.php index c57f25579..6970fd8f9 100644 --- a/templates/automezzi_inventario/init.php +++ b/templates/automezzi_inventario/init.php @@ -40,7 +40,7 @@ $query = 'SELECT `an_sedi`.`nome`, `mg_articoli`.`codice`, `mg_articoli_lang`.`name` as descrizione, - `mg_categorie`.`nome` AS subcategoria, + `mg_categorie_lang`.`name` AS subcategoria, SUM(`mg_movimenti`.`qta`) AS qta, `mg_articoli`.`um` FROM @@ -49,10 +49,11 @@ $query = 'SELECT INNER JOIN `mg_articoli` ON `mg_movimenti`.`idarticolo` = `mg_articoli`.`id` LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id`=`mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(setting('Lingua')).') LEFT JOIN `mg_categorie` ON `mg_categorie`.`id` = `mg_articoli`.`id_sottocategoria` + LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id`=`mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE '.implode(' AND ', $where).' GROUP BY - `an_sedi`.`targa`, `an_sedi`.`nome`, `an_sedi`.`descrizione`, `mg_articoli`.`codice`, `mg_articoli_lang`.`name`, `mg_categorie`.`nome`, `mg_articoli`.`um` + `an_sedi`.`targa`, `an_sedi`.`nome`, `an_sedi`.`descrizione`, `mg_articoli`.`codice`, `mg_articoli_lang`.`name`, `mg_categorie_lang`.`name`, `mg_articoli`.`um` ORDER BY `an_sedi`.`targa`, `an_sedi`.`descrizione`'; diff --git a/update/2_4_55.sql b/update/2_4_55.sql index eb8d263c3..cd14d4ada 100644 --- a/update/2_4_55.sql +++ b/update/2_4_55.sql @@ -1427,27 +1427,6 @@ ALTER TABLE `mg_articoli` ALTER TABLE `mg_articoli_lang` ADD CONSTRAINT `mg_articoli_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `mg_articoli`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; --- Allineamento vista Articoli -UPDATE `zz_modules` SET `options` = " -SELECT - |select| -FROM - `mg_articoli` - LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.|lang|) - LEFT JOIN `an_anagrafiche` ON `mg_articoli`.`id_fornitore` = `an_anagrafiche`.`idanagrafica` - LEFT JOIN `co_iva` ON `mg_articoli`.`idiva_vendita` = `co_iva`.`id` - LEFT JOIN (SELECT SUM(`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) AS qta_impegnata, `or_righe_ordini`.`idarticolo` FROM `or_righe_ordini` INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine` = `or_ordini`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine` = `or_statiordine`.`id` WHERE `or_tipiordine`.`dir` = 'entrata' AND `or_righe_ordini`.`confermato` = 1 AND `or_statiordine`.`impegnato` = 1 GROUP BY `idarticolo`) a ON `a`.`idarticolo` = `mg_articoli`.`id` - LEFT JOIN (SELECT SUM(`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) AS qta_ordinata, `or_righe_ordini`.`idarticolo` FROM `or_righe_ordini` INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine` = `or_ordini`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine` = `or_statiordine`.`id` WHERE `or_tipiordine`.`dir` = 'uscita' AND `or_righe_ordini`.`confermato` = 1 AND `or_statiordine`.`impegnato` = 1 - GROUP BY `idarticolo`) ordini_fornitore ON `ordini_fornitore`.`idarticolo` = `mg_articoli`.`id` - LEFT JOIN `mg_categorie` ON `mg_articoli`.`id_categoria` = `mg_categorie`.`id` - LEFT JOIN `mg_categorie` AS sottocategorie ON `mg_articoli`.`id_sottocategoria` = `sottocategorie`.`id` - LEFT JOIN (SELECT `co_iva`.`percentuale` AS perc, `co_iva`.`id`, `zz_settings`.`nome` FROM `co_iva` INNER JOIN `zz_settings` ON `co_iva`.`id`=`zz_settings`.`valore`)AS iva ON `iva`.`nome`= 'Iva predefinita' -WHERE - 1=1 AND(`mg_articoli`.`deleted_at`) IS NULL -HAVING - 2=2 -ORDER BY - `mg_articoli_lang`.`name`" WHERE `name` = 'Articoli'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_articoli_lang`.`name`' WHERE `zz_modules`.`name` = 'Articoli' AND `zz_views`.`name` = 'Descrizione'; -- Aggiunta tabella mg_attributi_lang @@ -1497,3 +1476,63 @@ WHERE `mg_combinazioni`.`deleted_at` IS NULL HAVING 2=2" WHERE `name` = 'Combinazioni'; + +-- Aggiunta tabella mg_categorie_lang +CREATE TABLE IF NOT EXISTS `mg_categorie_lang` ( + `id` int NOT NULL, + `id_lang` int NOT NULL, + `id_record` int NOT NULL, + `name` VARCHAR(255) NOT NULL +); +ALTER TABLE `mg_categorie_lang` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `mg_categorie_lang` + MODIFY `id` int NOT NULL AUTO_INCREMENT; + +INSERT INTO `mg_categorie_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `nome` FROM `mg_categorie`; + +ALTER TABLE `mg_categorie` + DROP `nome`; + +ALTER TABLE `mg_categorie_lang` ADD CONSTRAINT `mg_categorie_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `mg_categorie`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; + +-- Allineamento vista Categorie articoli +UPDATE `zz_modules` SET `options` = " +SELECT + |select| +FROM + `mg_categorie` + LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.|lang|) +WHERE + 1=1 AND `parent` IS NULL +HAVING + 2=2" WHERE `name` = 'Categorie articoli'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Categorie articoli' AND `zz_views`.`name` = 'Nome'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_categorie`.`id`' WHERE `zz_modules`.`name` = 'Categorie articoli' AND `zz_views`.`name` = 'id'; + +-- Allineamento vista Articoli +UPDATE `zz_modules` SET `options` = " +SELECT + |select| +FROM + `mg_articoli` + LEFT JOIN `mg_articoli_lang` ON (`mg_articoli_lang`.`id_record` = `mg_articoli`.`id` AND `mg_articoli_lang`.|lang|) + LEFT JOIN `an_anagrafiche` ON `mg_articoli`.`id_fornitore` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_iva` ON `mg_articoli`.`idiva_vendita` = `co_iva`.`id` + LEFT JOIN (SELECT SUM(`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) AS qta_impegnata, `or_righe_ordini`.`idarticolo` FROM `or_righe_ordini` INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine` = `or_ordini`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine` = `or_statiordine`.`id` WHERE `or_tipiordine`.`dir` = 'entrata' AND `or_righe_ordini`.`confermato` = 1 AND `or_statiordine`.`impegnato` = 1 GROUP BY `idarticolo`) a ON `a`.`idarticolo` = `mg_articoli`.`id` + LEFT JOIN (SELECT SUM(`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) AS qta_ordinata, `or_righe_ordini`.`idarticolo` FROM `or_righe_ordini` INNER JOIN `or_ordini` ON `or_righe_ordini`.`idordine` = `or_ordini`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine` = `or_statiordine`.`id` WHERE `or_tipiordine`.`dir` = 'uscita' AND `or_righe_ordini`.`confermato` = 1 AND `or_statiordine`.`impegnato` = 1 + GROUP BY `idarticolo`) ordini_fornitore ON `ordini_fornitore`.`idarticolo` = `mg_articoli`.`id` + LEFT JOIN `mg_categorie` ON `mg_articoli`.`id_categoria` = `mg_categorie`.`id` + LEFT JOIN `mg_categorie_lang` ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.|lang|) + LEFT JOIN `mg_categorie` AS sottocategorie ON `mg_articoli`.`id_sottocategoria` = `sottocategorie`.`id` + LEFT JOIN `mg_categorie_lang` AS sottocategorie_lang ON (`sottocategorie`.`id` = `sottocategorie_lang`.`id_record` AND `sottocategorie_lang`.|lang|) + LEFT JOIN (SELECT `co_iva`.`percentuale` AS perc, `co_iva`.`id`, `zz_settings`.`nome` FROM `co_iva` INNER JOIN `zz_settings` ON `co_iva`.`id`=`zz_settings`.`valore`)AS iva ON `iva`.`nome`= 'Iva predefinita' +WHERE + 1=1 AND(`mg_articoli`.`deleted_at`) IS NULL +HAVING + 2=2 +ORDER BY + `mg_articoli_lang`.`name`" WHERE `name` = 'Articoli'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Articoli' AND `zz_views`.`name` = 'Categoria'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`mg_categorie_lang`.`name`' WHERE `zz_modules`.`name` = 'Articoli' AND `zz_views`.`name` = 'Sottocategoria'; \ No newline at end of file diff --git a/update/tables.php b/update/tables.php index f2f0f8eb8..d05a77074 100755 --- a/update/tables.php +++ b/update/tables.php @@ -121,6 +121,7 @@ return [ 'mg_articoli_lang', 'mg_fornitore_articolo', 'mg_categorie', + 'mg_categorie_lang', 'mg_causali_movimenti', 'mg_listini', 'mg_listini_articoli',