From 27c97da6917ef4b3db8bf96d2e0eaccdf498aade Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Mon, 26 Aug 2019 11:10:59 +0200 Subject: [PATCH] Aggiunto deleted_at in Articoli --- modules/articoli/actions.php | 9 +------- modules/articoli/ajax/select.php | 38 ++----------------------------- modules/articoli/src/Articolo.php | 3 +++ modules/fatture/edit.php | 14 ++++++------ update/2_4_11.sql | 4 ++++ 5 files changed, 17 insertions(+), 51 deletions(-) diff --git a/modules/articoli/actions.php b/modules/articoli/actions.php index b2d4be640..7035ec669 100644 --- a/modules/articoli/actions.php +++ b/modules/articoli/actions.php @@ -5,7 +5,6 @@ include_once __DIR__.'/../../core.php'; switch (post('op')) { // Aggiunta articolo case 'add': - //Se non specifico il codice articolo lo imposto uguale all'id della riga if (empty(post('codice'))) { $codice = $dbo->fetchOne('SELECT (MAX(id)+1) as codice FROM mg_articoli')['codice']; @@ -280,13 +279,7 @@ switch (post('op')) { break; case 'delete': - // Fix per i seriali utilizzati - $dbo->query('UPDATE mg_prodotti SET id_articolo = NULL WHERE id_articolo='.prepare($id_record)); - - $dbo->query('DELETE FROM mg_articoli WHERE id='.prepare($id_record)); - $dbo->query('DELETE FROM mg_movimenti WHERE idarticolo='.prepare($id_record)); - //$dbo->query('DELETE FROM mg_prodotti WHERE id_articolo='.prepare($id_record)); - //$dbo->query('DELETE FROM mg_articoli_automezzi WHERE idarticolo='.prepare($id_record)); + $articolo->delete(); flash()->info(tr('Articolo eliminato!')); break; diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index 6b1057c44..d163497ab 100644 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -79,7 +79,8 @@ switch ($resource) { $filter[] = 'mg_articoli.id='.prepare($element); } - $where[] = 'attivo = 1'; + $where[] = 'mg_articoli.attivo = 1'; + $where[] = 'mg_articoli.deleted_at IS NULL'; // Filtro articolo solo per documenti di vendita if ($superselect['dir'] == 'entrata' && isset($superselect['idsede_partenza'])) { @@ -196,23 +197,6 @@ switch ($resource) { break; - case 'prodotti_lotti': - $query = 'SELECT DISTINCT lotto AS descrizione FROM mg_prodotti |where|'; - - $where[] = 'idarticolo='.prepare($superselect['idarticolo']); - - foreach ($elements as $element) { - $filter[] = 'lotto='.prepare($element); - } - - if (!empty($search)) { - $search_fields[] = 'lotto LIKE '.prepare('%'.$search.'%'); - } - - $custom['id'] = 'descrizione'; - - break; - case 'prodotti_serial': $query = 'SELECT DISTINCT serial AS descrizione FROM mg_prodotti |where|'; @@ -230,24 +214,6 @@ switch ($resource) { break; - case 'prodotti_altro': - $query = 'SELECT DISTINCT altro AS descrizione FROM mg_prodotti |where|'; - - $where[] = 'id_articolo='.prepare($superselect['idarticolo']); - $where[] = 'lotto='.prepare($superselect['lotto']); - $where[] = 'serial='.prepare($superselect['serial']); - - foreach ($elements as $element) { - $filter[] = 'altro='.prepare($element); - } - if (!empty($search)) { - $search_fields[] = 'altro LIKE '.prepare('%'.$search.'%'); - } - - $custom['id'] = 'descrizione'; - - break; - case 'categorie': $query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY id'; diff --git a/modules/articoli/src/Articolo.php b/modules/articoli/src/Articolo.php index a27be7641..9c24f2df8 100644 --- a/modules/articoli/src/Articolo.php +++ b/modules/articoli/src/Articolo.php @@ -6,9 +6,12 @@ use Common\Model; use Modules; use Modules\Interventi\Components\Articolo as ArticoloIntervento; use Uploads; +use Illuminate\Database\Eloquent\SoftDeletes; class Articolo extends Model { + use SoftDeletes; + protected $table = 'mg_articoli'; /** diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 35b318622..5c9892a95 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -111,7 +111,7 @@ if (empty($record['is_fiscale'])) { ?> - +
{[ "type": "date", "label": "", "name": "data_registrazione", "required": 0, "value": "$data_registrazione$" ]}
@@ -132,7 +132,7 @@ if (empty($record['is_fiscale'])) { }) }); - + @@ -164,7 +164,7 @@ if (empty($record['is_fiscale'])) { } ?> - + fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN co_righe_documenti ON mg_articoli.id=co_righe_documenti.idarticolo) INNER JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento) WHERE co_documenti.id='.prepare($id_record)); @@ -173,7 +173,7 @@ if (empty($record['is_fiscale'])) {
{[ "type": "select", "label": "", "name": "idsede_partenza", "ajax-source": "sedi", "placeholder": "Sede legale", "value": "$idsede_partenza$", "icon-after": "add||id_plugin=&id_parent=||" ]}
- +
{[ "type": "select", "label": "", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "readonly": "" ]}
@@ -183,7 +183,7 @@ if (empty($record['is_fiscale'])) {
{[ "type": "select", "label": "", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "placeholder": "Sede legale", "value": "$idsede_partenza$", "readonly": "" ]}
- +
{[ "type": "select", "label": "", "name": "idsede_destinazione", "ajax-source": "sedi", "value": "$idsede_destinazione$", "readonly": "", "icon-after": "add||id_plugin=&id_parent=||" ]}
@@ -536,12 +536,12 @@ if (!$block_edit) { } // Lettura articoli - $art_query = 'SELECT COUNT(*) AS tot FROM mg_articoli WHERE attivo = 1'; + $art_query = 'SELECT id FROM mg_articoli WHERE attivo = 1 AND deleted_at IS NULL'; if ($dir == 'entrata') { $art_query .= ' AND (qta > 0 OR servizio = 1)'; } - $articoli = $dbo->fetchArray($art_query)[0]['tot']; + $articoli = $dbo->fetchNum($art_query); echo ' '.tr('Articolo').' diff --git a/update/2_4_11.sql b/update/2_4_11.sql index a4cce0f6a..739877971 100644 --- a/update/2_4_11.sql +++ b/update/2_4_11.sql @@ -312,3 +312,7 @@ ORDER BY `co_documenti`.`data` DESC, CAST(`co_documenti`.`numero_esterno` AS UNS -- Rimozione Pianificazione fatturazione DELETE FROM `zz_plugins` WHERE `name` = 'Pianificazione fatturazione'; + +-- Aggiunta deleted_at su mg_articoli +ALTER TABLE `mg_articoli` ADD `deleted_at` timestamp NULL DEFAULT NULL; +UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_articoli` WHERE 1=1 AND `deleted_at` IS NULL HAVING 2=2 ORDER BY `descrizione`' WHERE `name` = 'Articoli';