|
110 | 110 | // Eliminazione conto dal partitario
|
111 | 111 | case 'del':
|
112 | 112 | $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)); |
113 | 147 |
|
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)); |
121 | 152 |
|
122 |
| - $query = 'DELETE FROM co_pianodeiconti3 WHERE id='.prepare($idconto); |
| 153 | + $query = 'DELETE FROM co_pianodeiconti3 WHERE id='.prepare($idconto); |
123 | 154 |
|
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!')); |
126 | 162 | }
|
127 | 163 | }
|
128 | 164 | break;
|
|
0 commit comments