diff --git a/modules/anagrafiche/plugins/allegati.php b/modules/anagrafiche/plugins/allegati.php
index badb24455..3773210bc 100755
--- a/modules/anagrafiche/plugins/allegati.php
+++ b/modules/anagrafiche/plugins/allegati.php
@@ -45,6 +45,8 @@ if (empty($_GET['visualizza_allegati'])) {
//Controllo i permessi dei modulo per la visualizzazione degli allegati
$rs = $dbo->table('zz_permissions')->where('idgruppo', $user->idgruppo)->get();
$permessi = [];
+ $documenti[] = 0;
+
foreach ($rs as $r) {
$permessi[] = $r->idmodule;
}
diff --git a/modules/contratti/plugins/contratti.consuntivo.php b/modules/contratti/plugins/contratti.consuntivo.php
index 36ebdceb1..6cb0c95a7 100755
--- a/modules/contratti/plugins/contratti.consuntivo.php
+++ b/modules/contratti/plugins/contratti.consuntivo.php
@@ -263,7 +263,7 @@ $budget = $rs[0]['budget'];
$rs = $dbo->fetchArray("SELECT SUM(qta) AS totale_ore FROM `co_righe_contratti` WHERE um='ore' AND idcontratto=".prepare($id_record));
$totale_ore_contratto = $rs[0]['totale_ore'];
-$diff = sum($budget, -$totale);
+$diff = sum($budget, -$totale) - $contratto->provvigione;
if ($diff > 0) {
$bilancio = ''.moneyFormat($diff).'';
diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php
index 1866ac780..e7b4e05ca 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 in stato "Bozza" 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/primanota/movimenti.php b/modules/primanota/movimenti.php
index 90b86ed81..0f8e16da2 100755
--- a/modules/primanota/movimenti.php
+++ b/modules/primanota/movimenti.php
@@ -123,7 +123,7 @@ $totale_avere = 0;
// Elenco per documenti
$scadenze = $movimenti
- ->where('iddocumento', '<>', '')
+ ->where('iddocumento', '<>', 0)
->groupBy('iddocumento');
foreach ($scadenze as $id_documento => $righe) {
$documento = Fattura::find($id_documento);
@@ -137,8 +137,8 @@ foreach ($scadenze as $id_documento => $righe) {
// Elenco per scadenze
$scadenze = $movimenti
- ->where('iddocumento', '=', '')
- ->where('id_scadenza', '<>', '')
+ ->where('iddocumento', '=', 0)
+ ->where('id_scadenza', '<>', 0)
->groupBy('id_scadenza');
foreach ($scadenze as $id_scadenza => $righe) {
$nome = tr('Scadenza num. _ID_', [
@@ -150,8 +150,8 @@ foreach ($scadenze as $id_scadenza => $righe) {
// Elenco generale
$movimenti_generali = $movimenti
- ->where('iddocumento', '=', '0')
- ->where('id_scadenza', '=', '');
+ ->where('iddocumento', '=', 0)
+ ->where('id_scadenza', '=', 0);
if ($movimenti_generali->isEmpty()) {
$movimenti_generali->push([]);
$movimenti_generali->push([]);
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);
}
diff --git a/update/2_4_47.sql b/update/2_4_47.sql
index 9137a62e9..baf23b85f 100644
--- a/update/2_4_47.sql
+++ b/update/2_4_47.sql
@@ -15,4 +15,8 @@ UPDATE `zz_settings` SET `help` = "Valore espresso in Giga superato il quale vie
-- Rimozione google maps
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Google Maps API key';
-INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Tile server OpenStreetMap', 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', 'string', '1', 'Generali', NULL, NULL);
\ No newline at end of file
+INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Tile server OpenStreetMap', 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', 'string', '1', 'Generali', NULL, NULL);
+
+-- Nuova colonna Giorni scadenza in Scadenzario
+INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
+((SELECT `id` FROM `zz_modules` WHERE name='Scadenzario'), 'Scadenza giorni', 'DATEDIFF(co_scadenziario.scadenza,NOW())', 19, 1, 0, 0, 0, '', '', 1, 0, 0);
\ No newline at end of file