From a3a6b6167c680a009aa6b93868750d2f975cd939 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Fri, 5 Jul 2019 18:29:14 +0200 Subject: [PATCH] Aggiunto ripristino elementi eliminati --- editor.php | 26 +++++++++++++++++++++++-- modules/anagrafiche/actions.php | 27 ++++++++------------------ modules/anagrafiche/edit.php | 2 +- modules/anagrafiche/init.php | 2 +- modules/anagrafiche/src/Anagrafica.php | 15 +++----------- 5 files changed, 37 insertions(+), 35 deletions(-) diff --git a/editor.php b/editor.php index e6ccde6f7..2630c0f69 100755 --- a/editor.php +++ b/editor.php @@ -18,11 +18,13 @@ $query = Util\Query::getQuery($module, [ ]); Util\Query::setSegments(true); +$query = str_replace(['AND `deleted_at` IS NULL', '`deleted_at` IS NULL', 'AND deleted_at IS NULL', 'deleted_at IS NULL'], '', $query); + $has_access = !empty($query) ? $dbo->fetchNum($query) !== 0 : true; if ($has_access) { // Inclusione gli elementi fondamentali - include_once $docroot.'/actions.php'; + include_once DOCROOT.'/actions.php'; } if (empty($record) || !$has_access) { @@ -104,6 +106,26 @@ if (empty($record) || !$has_access) {
'; + if(!empty($record['deleted_at'])){ + echo ' +
+

'.tr('Ripristinare il record?').'

+ + + '.tr('Ripristina').' + +
+ + '; + } + // Pulsanti di default echo '
@@ -326,7 +348,7 @@ if (empty($record) || !$has_access) { $id_plugin = $plugin['id']; - include $docroot.'/include/manager.php'; + include DOCROOT.'/include/manager.php'; echo '
'; diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index 9602258de..a2733483f 100644 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -5,6 +5,9 @@ include_once __DIR__.'/../../core.php'; use Modules\Anagrafiche\Anagrafica; switch (post('op')) { + case 'restore': + $anagrafica->restore(); + case 'update': // Informazioni sulla sede $sede = $anagrafica->sedeLegale; @@ -241,26 +244,12 @@ switch (post('op')) { case 'delete': // Se l'anagrafica non è l'azienda principale, la disattivo - if (!in_array($id_azienda, $tipi_anagrafica)) { - $interventi = $dbo->fetchOne('SELECT id FROM in_interventi WHERE idanagrafica='.prepare($id_record)); - $preventivi = $dbo->fetchOne('SELECT id FROM co_preventivi WHERE idanagrafica='.prepare($id_record)); - $contratti = $dbo->fetchOne('SELECT id FROM co_contratti WHERE idanagrafica='.prepare($id_record)); - $ordini = $dbo->fetchOne('SELECT id FROM or_ordini WHERE idanagrafica='.prepare($id_record)); - $ddt = $dbo->fetchOne('SELECT id FROM dt_ddt WHERE idanagrafica='.prepare($id_record)); - $fatture = $dbo->fetchOne('SELECT id FROM co_documenti WHERE idanagrafica='.prepare($id_record)); + if (!$anagrafica->isAzienda()) { + //$anagrafica->delete(); + $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id_record)); - // Se non ci sono documenti collegati, elimino l'anagrafica - if (count($interventi) == 0 && count($preventivi) == 0 && count($contratti) == 0 && count($ordini) == 0 && count($ddt) == 0 && count($fatture) == 0) { - $dbo->query('DELETE FROM an_anagrafiche WHERE idanagrafica = '.prepare($id_record)); - } - - // altrimenti la disabilito solo - else { - $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id_record)); - - // Se l'anagrafica è collegata ad un utente lo disabilito - $dbo->query('UPDATE zz_users SET enabled = 0 WHERE idanagrafica = '.prepare($id_record)); - } + // Se l'anagrafica è collegata ad un utente lo disabilito + $dbo->query('UPDATE zz_users SET enabled = 0 WHERE idanagrafica = '.prepare($id_record)); flash()->info(tr('Anagrafica eliminata!')); } diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index 0f814eb5a..fc31b9812 100644 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -26,7 +26,7 @@ if (!$cliente) { ?>
-
> +
diff --git a/modules/anagrafiche/init.php b/modules/anagrafiche/init.php index 0016cbc4c..948b3d468 100644 --- a/modules/anagrafiche/init.php +++ b/modules/anagrafiche/init.php @@ -10,7 +10,7 @@ $id_fornitore = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafich $id_tecnico = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Tecnico'")[0]['idtipoanagrafica']; if (isset($id_record)) { - $anagrafica = Anagrafica::find($id_record); + $anagrafica = Anagrafica::withTrashed()->find($id_record); $record = $dbo->fetchOne('SELECT *, (SELECT GROUP_CONCAT(an_tipianagrafiche.idtipoanagrafica) FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica=an_anagrafiche.idanagrafica) AS idtipianagrafica, diff --git a/modules/anagrafiche/src/Anagrafica.php b/modules/anagrafiche/src/Anagrafica.php index 038ac3af2..b8fe4cd3a 100644 --- a/modules/anagrafiche/src/Anagrafica.php +++ b/modules/anagrafiche/src/Anagrafica.php @@ -7,10 +7,11 @@ use Modules\Fatture\Fattura; use Settings; use Traits\RecordTrait; use Util\Generator; +use Illuminate\Database\Eloquent\SoftDeletes; class Anagrafica extends Model { - use RecordTrait; + use RecordTrait, SoftDeletes; protected $table = 'an_anagrafiche'; protected $primaryKey = 'idanagrafica'; @@ -159,16 +160,6 @@ class Anagrafica extends Model return $this->idanagrafica; } - public function setCodiceAttribute($value) - { - if (self::where([ - ['codice', $value], - [$this->primaryKey, '<>', $this->id], - ])->count() == 0) { - $this->attributes['codice'] = $value; - } - } - public function getPartitaIvaAttribute() { return $this->piva; @@ -248,7 +239,7 @@ class Anagrafica extends Model $ultimo = Generator::getPreviousFrom($maschera, 'an_anagrafiche', 'codice', [ "codice != ''", - //'deleted_at IS NULL', // Rimozione per unicità del codice + 'deleted_at IS NULL', ]); $codice = Generator::generate($maschera, $ultimo);