Aggiunta azione di gruppo Emetti fatture

This commit is contained in:
MatteoPistorello 2022-02-16 15:57:11 +01:00
parent 5112ca5b5e
commit 06736fa355
1 changed files with 79 additions and 1 deletions

View File

@ -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 .= '
<p><b>'.$title.' '.$link.'</b></p>
<ul>';
foreach ($errors as $error) {
if (!empty($error)) {
$message .= '
<li>'.$error.'</li>';
}
}
$message .= '
</ul>';
}
}
}
}
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' => '<span><i class="fa fa-refresh"></i> '.tr('Aggiorna banca').'</span>',
'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').'
<br><br>{[ "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' => '<span><i class="fa fa-refresh"></i> '.tr('Emetti fatture').'</span>',
'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' => '<span><i class="fa fa-paper-plane"></i> '.tr('Coda di invio FE').'</span>',