diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 58f94db31..f368b6ede 100755 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -1601,6 +1601,29 @@ body:not(.sidebar-collapse) .sidebar .nav-treeview .nav-treeview .nav-link { z-index: 99999; } +.module-header p{ + margin: 3px 0; +} + +.module-header h3, +.module-header h4, +.module-header h5{ + margin: 4px 0; +} + +.round-16{ + border-radius: 16px; + width: 16px; + height: 16px; + display: inline-block; + vertical-align: middle; +} + +.module-header .separator{ + color: #ccc; + padding: 0 5px; +} + @media screen and (max-width: 767px) { .navbar-left { display: inline-block; diff --git a/assets/src/img/logo_header.png b/assets/src/img/logo_header.png index 3f2f9c32f..7117cc4d4 100644 Binary files a/assets/src/img/logo_header.png and b/assets/src/img/logo_header.png differ diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index a0694a2a6..cf1825330 100755 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -54,11 +54,6 @@ echo ' -
-
- {[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL ORDER BY `title`", "value": "$idstatointervento$", "class": "unblockable" ]} -
-
@@ -189,7 +184,7 @@ $sede_azienda = $anagrafica_azienda->sedeLegale; {[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento", "value": "$idtipointervento$", "readonly": "" ]}
- {[ "type": "select", "label": "", "multiple": "1", "name": "tags[]", "values": "query=SELECT `id`, `name` as descrizione FROM `in_tags` ORDER BY `name`", "value": "", "icon-after": "add|first()->id; ?>|" ]} + {[ "type": "select", "label": "", "name": "idstatointervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` =id); ?>) WHERE `deleted_at` IS NULL ORDER BY `title`", "value": "$idstatointervento$", "class": "unblockable" ]}
@@ -200,19 +195,22 @@ $tecnici_assegnati = array_column($tecnici_assegnati, 'id_tecnico'); echo '
-
+
{[ "type": "select", "label": "'.tr('Tecnici assegnati').'", "multiple": "1", "name": "tecnici_assegnati[]", "ajax-source": "tecnici", "value": "'.implode(',', $tecnici_assegnati).'", "icon-after": "add|'.$id_modulo_anagrafiche.'|tipoanagrafica=Tecnico&readonly_tipo=1" ]}
'; // Conteggio numero articoli intervento per eventuale blocco della sede di partenza $articoli = $intervento->articoli; echo ' -
+
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "readonly": "'.(($record['flag_completato'] || !$articoli->isEmpty()) ? 1 : 0).'" ]}
-
+
{[ "type": "select", "label": "'.tr('Sede destinazione').'", "name": "idsede_destinazione","value": "$idsede_destinazione$", "ajax-source": "sedi", "select-options": '.json_encode(['idanagrafica' => $record['idanagrafica']]).', "placeholder": "'.tr('Sede legale').'", "readonly": "'.$record['flag_completato'].'" ]}
+
+ {[ "type": "select", "label": "'.tr('Tags').'", "multiple": "1", "name": "tags[]", "values": "query=SELECT `id`, `name` as descrizione FROM `in_tags` ORDER BY `name`", "value": "'.implode(',', $tags).'", "icon-after": "add|'.(Module::where('name', 'Tags')->first()->id).'|" ]} +
diff --git a/modules/interventi/header.php b/modules/interventi/header.php index 9ab1be4e7..7f54e8c8d 100644 --- a/modules/interventi/header.php +++ b/modules/interventi/header.php @@ -106,7 +106,7 @@ echo ' // Cliente echo '
-

'.$anagrafica->ragione_sociale.'

+

'.Modules::link('Anagrafiche', $intervento->idanagrafica, $intervento->anagrafica->ragione_sociale, $intervento->anagrafica->ragione_sociale).'

'.($sede['nomesede'] ? $sede['nomesede'].'
' : '').' @@ -124,15 +124,37 @@ echo '

'; // Panoramica +$show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico')); +$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); + +$stato = \Modules\Interventi\Stato::find($intervento->stato->id); echo '
-
+
-

'.tr('Panoramica attività num. ').$intervento->codice.'

+

'.tr('Attività _NUM_ del _DATA_', [ + '_NUM_' => $intervento->codice, + '_DATA_' => Translator::dateToLocale($intervento->data_richiesta) + ]).'

- -

+

+ '.$intervento->sessioni->count().' + | + + '.Translator::numberToLocale($intervento->sessioni->sum('ore')).' + | + + '.Translator::numberToLocale($intervento->sessioni->sum('km')).' '.tr('km').' + | + + '.($show_prezzi ? moneyFormat(($prezzi_ivati ? $intervento->totale : $intervento->totale_imponibile), 2) : '-').' + | + + '.$stato->getTranslation('title').' +

+
+

'.($insoluti ? tr('Sono presenti insoluti') : tr('Non sono presenti insoluti')).'

@@ -151,7 +173,7 @@ if ($contratto) { '.Modules::link('Contratti', $contratto->id, tr('Contratto num. _NUM_ del _DATA_', ['_NUM_' => $contratto->numero, '_DATA_' => Translator::dateToLocale($contratto->data_bozza)])); if ($ore_previste > 0) { echo ' - - '.$ore_erogate.'/'.$ore_previste.' '.tr('ore').'
+ - '.Translator::numberToLocale($ore_erogate, 2).'/'.$ore_previste.' '.tr('ore').'
@@ -193,7 +215,7 @@ $sede_azienda = $anagrafica_azienda->sedeLegale; echo '
-
+

'.tr('Geolocalizzazione').'