Skip to content

Commit 8be457d

Browse files
committed
feat: pulsante eliminazione conti di livello 2
1 parent eed5034 commit 8be457d

File tree

2 files changed

+82
-12
lines changed

2 files changed

+82
-12
lines changed

modules/partitario/actions.php

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,19 +110,55 @@
110110
// Eliminazione conto dal partitario
111111
case 'del':
112112
$idconto = post('idconto');
113+
$lvl = post('lvl') ?: 3;
114+
if ($lvl == 2) {
115+
// Eliminazione conto di livello 2 (co_pianodeiconti2)
116+
// Controllo che non esistano movimenti associati ai conti di livello 3 collegati
117+
$movimenti = $dbo->fetchNum('SELECT co_movimenti.id FROM co_movimenti INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto = co_pianodeiconti3.id WHERE co_pianodeiconti3.idpianodeiconti2 = '.prepare($idconto));
118+
119+
if ($idconto != '' and empty($movimenti)) {
120+
// Prima elimino tutti i conti di livello 3 collegati
121+
$conti_livello3 = $dbo->fetchArray('SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 = '.prepare($idconto));
122+
123+
foreach ($conti_livello3 as $conto3) {
124+
// Scollego il conto dalle anagrafiche
125+
$dbo->query('UPDATE an_anagrafiche SET idconto_cliente = NULL WHERE idconto_cliente = '.prepare($conto3['id']));
126+
$dbo->query('UPDATE an_anagrafiche SET idconto_fornitore = NULL WHERE idconto_fornitore = '.prepare($conto3['id']));
127+
}
128+
129+
// Elimino tutti i conti di livello 3 collegati
130+
$dbo->query('DELETE FROM co_pianodeiconti3 WHERE idpianodeiconti2 = '.prepare($idconto));
131+
132+
// Infine elimino il conto di livello 2
133+
$query = 'DELETE FROM co_pianodeiconti2 WHERE id='.prepare($idconto);
134+
135+
if ($dbo->query($query)) {
136+
flash()->info(tr('Conto e tutti i suoi sottoconti eliminati!'));
137+
} else {
138+
flash()->error(tr('Errore durante l\'eliminazione del conto!'));
139+
}
140+
} else {
141+
flash()->error(tr('Impossibile eliminare il conto: esistono movimenti collegati ai suoi sottoconti!'));
142+
}
143+
} else {
144+
// Eliminazione conto di livello 3 (co_pianodeiconti3) - logica esistente
145+
// Controllo che non esistano movimenti associati al conto
146+
$movimenti = $dbo->fetchNum('SELECT id FROM co_movimenti WHERE idconto = '.prepare($idconto));
113147

114-
// Controllo che non esistano movimenti associati al conto
115-
$movimenti = $dbo->fetchNum('SELECT id FROM co_movimenti WHERE idconto = '.prepare($idconto));
116-
117-
if ($idconto != '' and empty($movimenti)) {
118-
// Se elimino il conto lo scollego anche da eventuali anagrafiche (cliente e fornitore)
119-
$dbo->query('UPDATE an_anagrafiche SET idconto_cliente = NULL WHERE idconto_cliente = '.prepare($idconto));
120-
$dbo->query('UPDATE an_anagrafiche SET idconto_fornitore = NULL WHERE idconto_fornitore = '.prepare($idconto));
148+
if ($idconto != '' and empty($movimenti)) {
149+
// Se elimino il conto lo scollego anche da eventuali anagrafiche (cliente e fornitore)
150+
$dbo->query('UPDATE an_anagrafiche SET idconto_cliente = NULL WHERE idconto_cliente = '.prepare($idconto));
151+
$dbo->query('UPDATE an_anagrafiche SET idconto_fornitore = NULL WHERE idconto_fornitore = '.prepare($idconto));
121152

122-
$query = 'DELETE FROM co_pianodeiconti3 WHERE id='.prepare($idconto);
153+
$query = 'DELETE FROM co_pianodeiconti3 WHERE id='.prepare($idconto);
123154

124-
if ($dbo->query($query)) {
125-
flash()->info(tr('Conto eliminato!'));
155+
if ($dbo->query($query)) {
156+
flash()->info(tr('Conto eliminato!'));
157+
} else {
158+
flash()->error(tr('Errore durante l\'eliminazione del conto!'));
159+
}
160+
} else {
161+
flash()->error(tr('Impossibile eliminare il conto: esistono movimenti collegati!'));
126162
}
127163
}
128164
break;

modules/partitario/edit.php

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<th width="10%"></th>';
9191
}
9292
echo '
93-
<th width="5%" class="text-center"></th>
93+
<th width="8%" class="text-center"></th>
9494
</tr>
9595
</thead>
9696
<tbody>';
@@ -187,7 +187,11 @@
187187
</button>
188188
189189
<button type="button" class="btn btn-xs btn-primary" data-card-widget="tooltip" title="'.tr('Aggiungi un nuovo conto...').'" onclick="aggiungiConto('.$conto_secondo['id'].')">
190-
<i class="fa fa-plus-circle"></i>
190+
<i class="fa fa-plus-circle"></i>
191+
</button>
192+
193+
<button type="button" class="btn btn-danger btn-xs" onclick="eliminaConto('.$conto_secondo['id'].', 2)">
194+
<i class="fa fa-trash"></i>
191195
</button>
192196
</td>
193197
</tr>';
@@ -449,6 +453,36 @@ function aggiornaReddito(id_conto){
449453
openModal("'.tr('Ricalcola importo deducibile').'", "'.$structure->fileurl('aggiorna_reddito.php').'?id=" + id_conto)
450454
}
451455
456+
function eliminaConto(id_conto, level) {
457+
swal({
458+
title: "'.tr('Sei sicuro?').'",
459+
html: "'.tr('Eliminare questo elemento?').'",
460+
type: "warning",
461+
showCancelButton: true,
462+
confirmButtonText: "'.tr('Elimina').'",
463+
confirmButtonClass: "btn btn-lg btn-danger",
464+
cancelButtonText: "'.tr('Annulla').'",
465+
cancelButtonClass: "btn btn-lg"
466+
}).then(function () {
467+
$.ajax({
468+
url: globals.rootdir + "/actions.php",
469+
type: "POST",
470+
data: {
471+
id_module: globals.id_module,
472+
idconto: id_conto,
473+
lvl: level,
474+
op: "del",
475+
},
476+
success: function (response) {
477+
location.reload();
478+
},
479+
error: function() {
480+
swal("'.tr('Errore').'.", "'.tr('Errore durante l\'eliminazione del conto.').'.", "error");
481+
}
482+
});
483+
});
484+
}
485+
452486
$("#button-search").on("click", function(){
453487
var text = $("#input-cerca").val();
454488

0 commit comments

Comments
 (0)