From 2512cfa2382034279cba915083f036393fced513 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Tue, 20 Jun 2023 15:36:28 +0200 Subject: [PATCH] Fix #1126 #1081 --- modules/fatture/bulk.php | 43 ++++++++++++++++++++++++++++++++ modules/segmenti/ajax/select.php | 7 +++++- 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php index 1866ac780..f8e05dc40 100755 --- a/modules/fatture/bulk.php +++ b/modules/fatture/bulk.php @@ -33,6 +33,7 @@ use Carbon\Carbon; $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); $stato_emessa = $dbo->selectOne('co_statidocumento', 'id', ['descrizione' => 'Emessa'])['id']; +$is_fiscale = $dbo->selectOne('zz_segments', 'is_fiscale', ['id' => $_SESSION['module_'.$id_module]])['is_fiscale']; switch (post('op')) { case 'export-bulk': @@ -569,6 +570,35 @@ switch (post('op')) { } } break; + + case 'cambia-sezionale': + $count = 0; + $n_doc = 0; + + foreach ($id_records as $id) { + $documento = Fattura::find($id); + ++ $count; + + if($documento->stato->descrizione == 'Bozza') { + $documento->id_segment = post('id_segment'); + $documento->save(); + ++ $n_doc; + } + } + + if ($n_doc > 0) { + flash()->info(tr('_NUM_ fatture spostate', [ + '_NUM_' => $n_doc, + ])); + } + + if (($count - $n_doc) > 0) { + flash()->warning(tr('_NUM_ fatture non sono state spostate perchè non sono in stato "Bozza".', [ + '_NUM_' => $count - $n_doc, + ])); + } + + break; } if (App::debug()) { @@ -697,6 +727,19 @@ if ($dir == 'entrata') { ]; } +$operations['cambia-sezionale'] = [ + 'text' => ' '.tr('Cambia sezionale'), + 'data' => [ + 'title' => tr('Cambia sezionale'), + 'msg' => tr('Scegli il sezionale _TIPOLOGIA_ in cui spostare le fatture selezionate', [ + '_TIPOLOGIA_' => $is_fiscale ? tr('fiscale') : tr('non fiscale'), + ]).':

{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(["id_module" => $id_module, 'is_sezionale' => 1, 'is_fiscale' => $is_fiscale, 'escludi_id' => $_SESSION['module_'.$id_module]['id_segment']]).', "select-options-escape": true ]}', + 'button' => tr('Procedi'), + 'class' => 'btn btn-lg btn-warning', + 'blank' => false, + ], +]; + if (Interaction::isEnabled()) { $operations['hook-send'] = [ 'text' => ' '.tr('Coda di invio FE').'', diff --git a/modules/segmenti/ajax/select.php b/modules/segmenti/ajax/select.php index 7aa8f0ab0..860b1fb24 100644 --- a/modules/segmenti/ajax/select.php +++ b/modules/segmenti/ajax/select.php @@ -25,7 +25,8 @@ switch ($resource) { $id_module = $superselect['id_module']; $is_fiscale = $superselect['is_fiscale']; $is_sezionale = $superselect['is_sezionale']; - + $escludi_id = $superselect['escludi_id']; + if (isset($id_module)) { $query = 'SELECT `id`, `name` AS descrizione FROM zz_segments INNER JOIN `zz_group_segment` ON `zz_segments`.`id` = `zz_group_segment`.`id_segment` |where| ORDER BY `name` ASC'; @@ -40,6 +41,10 @@ switch ($resource) { $where[] = 'zz_segments.is_sezionale = '.prepare($is_sezionale); } + if ($escludi_id != null) { + $where[] = 'zz_segments.id != '.prepare($escludi_id); + } + foreach ($elements as $element) { $filter[] = 'id='.prepare($element); }