diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php index 10dff4584..fde0ad2d8 100755 --- a/modules/fatture/bulk.php +++ b/modules/fatture/bulk.php @@ -27,8 +27,10 @@ use Plugins\ExportFE\FatturaElettronica; use Plugins\ExportFE\Interaction; use Util\XML; use Util\Zip; +use Modules\Fatture\Stato; $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); +$stato_emessa = $dbo->selectOne('co_statidocumento', 'id', ['descrizione' => 'Emessa'])['id']; switch (post('op')) { case 'export-bulk': @@ -394,6 +396,70 @@ switch (post('op')) { '_LIST_' => implode(',', $list), ])); + break; + + case 'change-stato': + $list = []; + $new_stato = Stato::where('descrizione', 'Emessa')->first(); + + foreach ($id_records as $id) { + $fattura = Fattura::find($id); + $stato_precedente = Stato::find($fattura->idstatodocumento); + + if ($stato_precedente->descrizione == 'Bozza') { + $fattura->stato()->associate($new_stato); + $results = $fattura->save(); + $message = ''; + + foreach ($results as $numero => $result) { + foreach ($result as $title => $links) { + foreach ($links as $link => $errors) { + if (empty($title)) { + flash()->warning(tr('La fattura elettronica num. _NUM_ potrebbe avere delle irregolarità!', [ + '_NUM_' => $numero, + ]).' '.tr('Controllare i seguenti campi: _LIST_', [ + '_LIST_' => implode(', ', $errors), + ]).'.'); + } else { + $message .= ' +

'.$title.' '.$link.'

+ '; + } + } + } + } + + if ($message) { + // Messaggi informativi sulle problematiche + $message = tr('La fattura elettronica numero _NUM_ non è stata generata a causa di alcune informazioni mancanti', [ + '_NUM_' => $numero, + ]).':'.$message; + + flash()->warning($message); + } + + array_push($list, $fattura->numero_esterno); + } + } + + if (!empty($list)) { + flash()->info(tr('Le fatture _LIST_ sono state emesse!', [ + '_LIST_' => implode(',', $list), + ])); + } else { + flash()->warning(tr('Nessuna fattura emessa!')); + } + break; } @@ -493,13 +559,25 @@ $operations['change-bank'] = [ 'text' => ' '.tr('Aggiorna banca').'', 'data' => [ 'title' => tr('Aggiornare la banca?'), - 'msg' => tr('Per ciascuna fattura selezionato, verrà aggiornata la banca').' + 'msg' => tr('Per ciascuna fattura selezionata, verrà aggiornata la banca').'

{[ "type": "select", "label": "'.tr('Banca').'", "name": "id_banca", "required": 1, "values": "query=SELECT id, CONCAT (nome, \' - \' , iban) AS descrizione FROM co_banche WHERE id_anagrafica='.prepare($anagrafica_azienda->idanagrafica).'" ]}', 'button' => tr('Procedi'), 'class' => 'btn btn-lg btn-warning', ], ]; +if ($dir == 'entrata') { + $operations['change-stato'] = [ + 'text' => ' '.tr('Emetti fatture').'', + 'data' => [ + 'title' => tr('Emissione fatture'), + 'msg' => tr('Vuoi emettere le fatture selezionate? Verranno emesse solo le fatture in Bozza'), + 'button' => tr('Procedi'), + 'class' => 'btn btn-lg btn-warning', + ], + ]; +} + if (Interaction::isEnabled()) { $operations['hook-send'] = [ 'text' => ' '.tr('Coda di invio FE').'',