Miglioramento header attività

This commit is contained in:
loviuz 2024-06-29 01:36:59 +02:00
parent 9266830a72
commit 75eeee03ec
4 changed files with 59 additions and 16 deletions

View File

@ -1601,6 +1601,29 @@ body:not(.sidebar-collapse) .sidebar .nav-treeview .nav-treeview .nav-link {
z-index: 99999; 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) { @media screen and (max-width: 767px) {
.navbar-left { .navbar-left {
display: inline-block; display: inline-block;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -54,11 +54,6 @@ echo '
<input type="hidden" name="backto" value="record-edit"> <input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="id_record" value="'.$id_record.'"> <input type="hidden" name="id_record" value="'.$id_record.'">
<div class="row">
<div class="col-md-2 offset-md-10">
{[ "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" ]}
</div>
</div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<!-- DATI CLIENTE --> <!-- DATI CLIENTE -->
@ -189,7 +184,7 @@ $sede_azienda = $anagrafica_azienda->sedeLegale;
{[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento", "value": "$idtipointervento$", "readonly": "<?php echo $record['flag_completato']; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento", "value": "$idtipointervento$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Tags'); ?>", "multiple": "1", "name": "tags[]", "values": "query=SELECT `id`, `name` as descrizione FROM `in_tags` ORDER BY `name`", "value": "<?php echo implode(',', $tags); ?>", "icon-after": "add|<?php echo Module::where('name', 'Tags')->first()->id; ?>|" ]} {[ "type": "select", "label": "<?php echo 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` =<?php echo prepare(Models\Locale::getDefault()->id); ?>) WHERE `deleted_at` IS NULL ORDER BY `title`", "value": "$idstatointervento$", "class": "unblockable" ]}
</div> </div>
</div> </div>
@ -200,19 +195,22 @@ $tecnici_assegnati = array_column($tecnici_assegnati, 'id_tecnico');
echo ' echo '
<!-- RIGA 4 --> <!-- RIGA 4 -->
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-3">
{[ "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" ]} {[ "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" ]}
</div> </div>
'; ';
// Conteggio numero articoli intervento per eventuale blocco della sede di partenza // Conteggio numero articoli intervento per eventuale blocco della sede di partenza
$articoli = $intervento->articoli; $articoli = $intervento->articoli;
echo ' echo '
<div class="col-md-4"> <div class="col-md-3">
{[ "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('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "readonly": "'.(($record['flag_completato'] || !$articoli->isEmpty()) ? 1 : 0).'" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-3">
{[ "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('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'].'" ]}
</div> </div>
<div class="col-md-3">
{[ "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).'|" ]}
</div>
</div> </div>
<!-- RIGA 5 --> <!-- RIGA 5 -->
<div class="row"> <div class="row">

View File

@ -106,7 +106,7 @@ echo '
// Cliente // Cliente
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
<h4 style="margin:4px 0;"><b>'.$anagrafica->ragione_sociale.'</b></h4> <h4><b>'.Modules::link('Anagrafiche', $intervento->idanagrafica, $intervento->anagrafica->ragione_sociale, $intervento->anagrafica->ragione_sociale).'</b></h4>
<p style="margin:3px 0;"> <p style="margin:3px 0;">
'.($sede['nomesede'] ? $sede['nomesede'].'<br>' : '').' '.($sede['nomesede'] ? $sede['nomesede'].'<br>' : '').'
@ -124,15 +124,37 @@ echo '
</div>'; </div>';
// Panoramica // 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 ' echo '
<div class="col-md-4"> <div class="col-md-4">
<div class="card card-info"> <div class="card card-primary shadow-lg">
<div class="card-header"> <div class="card-header">
<h3 class="card-title"><i class="fa fa-map"></i> '.tr('Panoramica attività num. ').$intervento->codice.'</h3> <h3 class="card-title"><i class="fa fa-map"></i> '.tr('Attività _NUM_ del _DATA_', [
'_NUM_' => $intervento->codice,
'_DATA_' => Translator::dateToLocale($intervento->data_richiesta)
]).'</h3>
</div> </div>
<div class="card-body"> <div class="card-body">
<p>
<span class="tip" title="'.tr('Numero sessioni di lavoro').'"><i class="fa fa-user text-gray"></i> '.$intervento->sessioni->count().'</span>
<span class="separator">|</span>
<p style="margin:3px 0;"><i class="fa fa-'.($insoluti ? 'warning text-danger' : 'check text-success').'"></i> <span class="tip" title="'.tr('Numero di ore totali').'"><i class="fa fa-hourglass text-gray"></i> '.Translator::numberToLocale($intervento->sessioni->sum('ore')).'</span>
<span class="separator">|</span>
<span class="tip" title="'.tr('Numero di km percorsi').'"><i class="fa fa-truck text-gray"></i> '.Translator::numberToLocale($intervento->sessioni->sum('km')).' '.tr('km').'</span>
<span class="separator">|</span>
<span class="tip" title="'.tr('Importo totale del lavoro').'"><i class="fa fa-money text-gray"></i> '.($show_prezzi ? moneyFormat(($prezzi_ivati ? $intervento->totale : $intervento->totale_imponibile), 2) : '-').'</span>
<span class="separator">|</span>
<span class="round-16" style="background-color:'.$stato->colore.';"></span> '.$stato->getTranslation('title').'
</p>
<hr>
<p><i class="fa fa-'.($insoluti ? 'warning text-danger' : 'check text-success').'"></i>
'.($insoluti ? tr('Sono presenti insoluti') : tr('Non sono presenti insoluti')).' '.($insoluti ? tr('Sono presenti insoluti') : tr('Non sono presenti insoluti')).'
</p> </p>
@ -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)])); '.Modules::link('Contratti', $contratto->id, tr('Contratto num. _NUM_ del _DATA_', ['_NUM_' => $contratto->numero, '_DATA_' => Translator::dateToLocale($contratto->data_bozza)]));
if ($ore_previste > 0) { if ($ore_previste > 0) {
echo ' echo '
- '.$ore_erogate.'/'.$ore_previste.' '.tr('ore').'<br> - '.Translator::numberToLocale($ore_erogate, 2).'/'.$ore_previste.' '.tr('ore').'<br>
<div class="progress" style="margin:0; height:8px;"> <div class="progress" style="margin:0; height:8px;">
<div class="progress-bar progress-bar-'.$color.'" style="width:'.$perc_ore.'%"></div> <div class="progress-bar progress-bar-'.$color.'" style="width:'.$perc_ore.'%"></div>
@ -193,7 +215,7 @@ $sede_azienda = $anagrafica_azienda->sedeLegale;
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
<div class="card card-info"> <div class="card card-primary shadow-lg">
<div class="card-header"> <div class="card-header">
<h3 class="card-title"><i class="fa fa-map"></i> '.tr('Geolocalizzazione').'</h3> <h3 class="card-title"><i class="fa fa-map"></i> '.tr('Geolocalizzazione').'</h3>
</div> </div>