Aggiunto ripristino elementi eliminati

This commit is contained in:
Thomas Zilio 2019-07-05 18:29:14 +02:00
parent 3a6282d6f1
commit a3a6b6167c
5 changed files with 37 additions and 35 deletions

View File

@ -18,11 +18,13 @@ $query = Util\Query::getQuery($module, [
]); ]);
Util\Query::setSegments(true); 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; $has_access = !empty($query) ? $dbo->fetchNum($query) !== 0 : true;
if ($has_access) { if ($has_access) {
// Inclusione gli elementi fondamentali // Inclusione gli elementi fondamentali
include_once $docroot.'/actions.php'; include_once DOCROOT.'/actions.php';
} }
if (empty($record) || !$has_access) { if (empty($record) || !$has_access) {
@ -104,6 +106,26 @@ if (empty($record) || !$has_access) {
<div class="tab-content"> <div class="tab-content">
<div id="tab_0" class="tab-pane active">'; <div id="tab_0" class="tab-pane active">';
if(!empty($record['deleted_at'])){
echo '
<div class="alert alert-danger text-center">
<h3>'.tr('Ripristinare il record?').'</h3>
<a class="btn btn-warning" id="restore">
<i class="fa fa-undo"></i> '.tr('Ripristina').'
</a>
</div>
<script>
$(document).ready(function(){
$("#restore").click(function(){
$("input[name=op]").attr("value", "restore");
$("#submit").trigger("click");
})
});
</script>';
}
// Pulsanti di default // Pulsanti di default
echo ' echo '
<div id="pulsanti"> <div id="pulsanti">
@ -326,7 +348,7 @@ if (empty($record) || !$has_access) {
$id_plugin = $plugin['id']; $id_plugin = $plugin['id'];
include $docroot.'/include/manager.php'; include DOCROOT.'/include/manager.php';
echo ' echo '
</div>'; </div>';

View File

@ -5,6 +5,9 @@ include_once __DIR__.'/../../core.php';
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
switch (post('op')) { switch (post('op')) {
case 'restore':
$anagrafica->restore();
case 'update': case 'update':
// Informazioni sulla sede // Informazioni sulla sede
$sede = $anagrafica->sedeLegale; $sede = $anagrafica->sedeLegale;
@ -241,26 +244,12 @@ switch (post('op')) {
case 'delete': case 'delete':
// Se l'anagrafica non è l'azienda principale, la disattivo // Se l'anagrafica non è l'azienda principale, la disattivo
if (!in_array($id_azienda, $tipi_anagrafica)) { if (!$anagrafica->isAzienda()) {
$interventi = $dbo->fetchOne('SELECT id FROM in_interventi WHERE idanagrafica='.prepare($id_record)); //$anagrafica->delete();
$preventivi = $dbo->fetchOne('SELECT id FROM co_preventivi WHERE idanagrafica='.prepare($id_record)); $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() 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));
// Se non ci sono documenti collegati, elimino l'anagrafica // Se l'anagrafica è collegata ad un utente lo disabilito
if (count($interventi) == 0 && count($preventivi) == 0 && count($contratti) == 0 && count($ordini) == 0 && count($ddt) == 0 && count($fatture) == 0) { $dbo->query('UPDATE zz_users SET enabled = 0 WHERE idanagrafica = '.prepare($id_record));
$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));
}
flash()->info(tr('Anagrafica eliminata!')); flash()->info(tr('Anagrafica eliminata!'));
} }

View File

@ -26,7 +26,7 @@ if (!$cliente) {
?> ?>
<form action="" method="post" id="edit-form" > <form action="" method="post" id="edit-form" >
<fieldset <?php echo (empty($record['deleted_at'])) ? '' : 'disabled'; ?> > <fieldset>
<input type="hidden" name="backto" value="record-edit"> <input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="update"> <input type="hidden" name="op" value="update">

View File

@ -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']; $id_tecnico = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Tecnico'")[0]['idtipoanagrafica'];
if (isset($id_record)) { if (isset($id_record)) {
$anagrafica = Anagrafica::find($id_record); $anagrafica = Anagrafica::withTrashed()->find($id_record);
$record = $dbo->fetchOne('SELECT *, $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, (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,

View File

@ -7,10 +7,11 @@ use Modules\Fatture\Fattura;
use Settings; use Settings;
use Traits\RecordTrait; use Traits\RecordTrait;
use Util\Generator; use Util\Generator;
use Illuminate\Database\Eloquent\SoftDeletes;
class Anagrafica extends Model class Anagrafica extends Model
{ {
use RecordTrait; use RecordTrait, SoftDeletes;
protected $table = 'an_anagrafiche'; protected $table = 'an_anagrafiche';
protected $primaryKey = 'idanagrafica'; protected $primaryKey = 'idanagrafica';
@ -159,16 +160,6 @@ class Anagrafica extends Model
return $this->idanagrafica; 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() public function getPartitaIvaAttribute()
{ {
return $this->piva; return $this->piva;
@ -248,7 +239,7 @@ class Anagrafica extends Model
$ultimo = Generator::getPreviousFrom($maschera, 'an_anagrafiche', 'codice', [ $ultimo = Generator::getPreviousFrom($maschera, 'an_anagrafiche', 'codice', [
"codice != ''", "codice != ''",
//'deleted_at IS NULL', // Rimozione per unicità del codice 'deleted_at IS NULL',
]); ]);
$codice = Generator::generate($maschera, $ultimo); $codice = Generator::generate($maschera, $ultimo);