diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php index 5f8fcbd99..32365affe 100755 --- a/modules/fatture/bulk.php +++ b/modules/fatture/bulk.php @@ -436,15 +436,34 @@ switch (post('op')) { break; case 'delete-bulk': + $count = 0; + $count_tot = sizeof($id_records); + foreach ($id_records as $id) { $documento = Fattura::find($id); - try { - $documento->delete(); - } catch (InvalidArgumentException) { + $emails = database()->fetchOne("SELECT COUNT(id) as `count` FROM `em_emails` INNER JOIN `zz_operations` ON `zz_operations`.`id_email` = `em_emails`.`id` WHERE `id_module` IN(SELECT `id` FROM `zz_modules` WHERE name = 'Fatture di vendita') AND `zz_operations`.`op` = 'send-email' AND `em_emails`.`id_record` = ".$id." GROUP BY `em_emails`.`id_record`")['count']; + + if (($documento->codice_stato_fe == 'GEN' || $documento->codice_stato_fe == '') && empty($emails)) { + try { + $documento->delete(); + } catch (InvalidArgumentException) { + } + } else { + ++$count; } } - flash()->info(tr('Fatture eliminate!')); + $count_eliminati = $count_tot - $count; + flash()->info(tr('_NUM_ Fatture eliminate!', [ + '_NUM_' => $count_eliminati, + ])); + + if ($count > 0) { + flash()->warning(tr('_NUM_ Fatture non eliminate in quanto sono giĆ  state inviate allo SDI, o via email!', [ + '_NUM_' => $count, + ])); + } + break; case 'change-bank': @@ -658,12 +677,9 @@ $operations['copy-bulk'] = [ ], ]; -// TODO: 06/08/2024 Migliorare introducendo controlli e portare in versione stabile -if (App::debug()) { - $operations['delete-bulk'] = [ - 'text' => ' '.tr('Elimina selezionati').' beta', - ]; -} +$operations['delete-bulk'] = [ + 'text' => ' '.tr('Elimina selezionati').' beta', +]; if ($dir == 'entrata') { $operations['change-stato'] = [