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);
$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) {
<div class="tab-content">
<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
echo '
<div id="pulsanti">
@ -326,7 +348,7 @@ if (empty($record) || !$has_access) {
$id_plugin = $plugin['id'];
include $docroot.'/include/manager.php';
include DOCROOT.'/include/manager.php';
echo '
</div>';

View File

@ -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!'));
}

View File

@ -26,7 +26,7 @@ if (!$cliente) {
?>
<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="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'];
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,

View File

@ -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);