101101<hr>
102102<div class="row">
103103 <div class="col-md-4">
104- <div class="card card-info card-outline shadow">
104+ <div class="card card-primary card-outline shadow">
105105 <div class="card-header">
106- <h3 class="card-title"><i class="fa fa-vcard"></i> ' .tr ('Cliente ' ).'</h3>
106+ <h3 class="card-title text-primary "><i class="fa fa-vcard"></i> ' .tr ('Cliente ' ).'</h3>
107107 </div>
108108 <div class="card-body">
109109 <div class="row">
110- <div class="col-md-2 ">
111- <img src=" ' .$ logo .'" class="img-fluid">
110+ <div class="col-md-3 ">
111+ <img src=" ' .$ logo .'" class="img-fluid img-thumbnail ">
112112 </div>
113-
114- <div class="col-md-10 "> ' ;
113+
114+ <div class="col-md-9 "> ' ;
115115
116116// Cliente
117117echo '
118- <h4><b> ' .Modules::link ('Anagrafiche ' , $ anagrafica ->idanagrafica , $ anagrafica ->ragione_sociale , $ anagrafica ->ragione_sociale ).'</b></h4>
118+ <h4 class="mb-2" ><b> ' .Modules::link ('Anagrafiche ' , $ anagrafica ->idanagrafica , $ anagrafica ->ragione_sociale , $ anagrafica ->ragione_sociale ).'</b></h4>
119119
120- <p>
121- ' .($ sede ['nomesede ' ] ? $ sede ['nomesede ' ].'<br> ' : '' ).'
122- ' .$ sede ['indirizzo ' ].'<br>
123- ' .$ sede ['cap ' ].' - ' .$ sede ['citta ' ].' ( ' .$ sede ['provincia ' ].')
120+ <p class="mb-2" >
121+ ' .($ sede ['nomesede ' ] ? ' <i class="fa fa-building-o text-muted mr-1"></i> ' . $ sede ['nomesede ' ].'<br> ' : '' ).'
122+ <i class="fa fa-map-marker text-muted mr-1"></i> ' .$ sede ['indirizzo ' ].'<br>
123+ <i class="fa fa-map text-muted mr-1"></i> ' .$ sede ['cap ' ].' - ' .$ sede ['citta ' ].' ( ' .$ sede ['provincia ' ].')
124124 </p>
125125
126- <p >
127- ' .($ sede ['telefono ' ] ? '<a class="btn btn-default btn-xs" href="tel: ' .$ sede ['telefono ' ].'" target="_blank"><i class="fa fa-phone text-maroon "></i> ' .$ sede ['telefono ' ].'</a> ' : '' ).'
128- ' .($ sede ['email ' ] ? '<a class="btn btn-default btn-xs" href="mailto: ' .$ sede ['email ' ].'"><i class="fa fa-envelope text-maroon "></i> ' .$ sede ['email ' ].'</a> ' : '' ).'
129- ' .($ referente ['nome ' ] ? '<p></p>< i class="fa fa-user-o text-muted"></i> ' .$ referente ['nome ' ].'<br > ' : '' ).'
130- ' .($ referente ['telefono ' ] ? '<a class="btn btn-default btn-xs" href="tel: ' .$ referente ['telefono ' ].'" target="_blank"><i class="fa fa-phone text-maroon "></i> ' .$ referente ['telefono ' ].'</a> ' : '' ).'
131- ' .($ referente ['email ' ] ? '<a class="btn btn-default btn-xs" href="mailto: ' .$ referente ['email ' ].'"><i class="fa fa-envelope text-maroon "></i> ' .$ referente ['email ' ].'</a> ' : '' ).'
132- </p >
126+ <div class="mt-3" >
127+ ' .($ sede ['telefono ' ] ? '<a class="btn btn-light btn-xs mr-1 mb-1 " href="tel: ' .$ sede ['telefono ' ].'" target="_blank"><i class="fa fa-phone text-primary "></i> ' .$ sede ['telefono ' ].'</a> ' : '' ).'
128+ ' .($ sede ['email ' ] ? '<a class="btn btn-light btn-xs mr-1 mb-1 " href="mailto: ' .$ sede ['email ' ].'"><i class="fa fa-envelope text-primary "></i> ' .$ sede ['email ' ].'</a> ' : '' ).'
129+ ' .($ referente ['nome ' ] ? '<div class="mt-2">< i class="fa fa-user-o text-muted"></i> ' .$ referente ['nome ' ].'</div > ' : '' ).'
130+ ' .($ referente ['telefono ' ] ? '<a class="btn btn-light btn-xs mr-1 mb-1 " href="tel: ' .$ referente ['telefono ' ].'" target="_blank"><i class="fa fa-phone text-primary "></i> ' .$ referente ['telefono ' ].'</a> ' : '' ).'
131+ ' .($ referente ['email ' ] ? '<a class="btn btn-light btn-xs mr-1 mb-1 " href="mailto: ' .$ referente ['email ' ].'"><i class="fa fa-envelope text-primary "></i> ' .$ referente ['email ' ].'</a> ' : '' ).'
132+ </div >
133133 </div>
134134 </div>
135135 </div>
144144echo '
145145 <div class="col-md-4">
146146 <div class="card card-info card-outline shadow">
147+
147148 <div class="card-header">
148- <h3 class="card-title"><i class="fa fa-wrench"></i> ' .tr ('Attività _NUM_ del _DATA_ ' , [
149- '_NUM_ ' => $ intervento ->codice ,
149+ <h3 class="card-title text-info "><i class="fa fa-wrench"></i> ' .tr ('Attività _NUM_ del _DATA_ ' , [
150+ '_NUM_ ' => ' <strong> ' . $ intervento ->codice . ' </strong> ' ,
150151 '_DATA_ ' => Translator::dateToLocale ($ intervento ->data_richiesta ),
151152]).'</h3>
153+ <div class="card-tools">
154+ <span class="badge badge- ' .($ stato ->colore == '#000000 ' ? 'dark ' : 'info ' ).' p-2">
155+ <span class="round-16 mr-1" style="background-color: ' .$ stato ->colore .';"></span>
156+ <strong> ' .$ stato ->getTranslation ('title ' ).'</strong>
157+ </span>
158+ </div>
152159 </div>
153- <div class="card-body">
154- <p>
155- <span class="tip" title=" ' .tr ('Numero sessioni di lavoro ' ).'"><i class="fa fa-user text-gray"></i> ' .$ intervento ->sessioni ->count ().'</span>
156- <span class="separator">|</span>
157-
158- <span class="tip" title=" ' .tr ('Numero di ore totali ' ).'"><i class="fa fa-hourglass text-gray"></i> ' .Translator::numberToLocale ($ intervento ->sessioni ->sum ('ore ' )).'</span>
159- <span class="separator">|</span>
160-
161- <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>
162- <span class="separator">|</span>
163-
164- <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>
165- <span class="separator">|</span>
166-
167- <span class="round-16" style="background-color: ' .$ stato ->colore .';"></span> ' .$ stato ->getTranslation ('title ' ).'
168- </p>
169- <hr>
170- <p><i class="fa fa- ' .($ insoluti ? 'warning text-danger ' : 'check text-success ' ).'"></i>
160+ <div class="card-body pt-3">
161+ <div class="row mb-4 mt-2">
162+ <div class="col-md-3 text-center">
163+ <span class="tip badge badge-light p-2" title=" ' .tr ('Numero sessioni di lavoro ' ).'"><i class="fa fa-user text-info mr-1"></i> ' .$ intervento ->sessioni ->count ().'</span>
164+ </div>
165+
166+ <div class="col-md-3 text-center">
167+ <span class="tip badge badge-light p-2" title=" ' .tr ('Numero di ore totali ' ).'"><i class="fa fa-hourglass text-info mr-1"></i> ' .Translator::numberToLocale ($ intervento ->sessioni ->sum ('ore ' )).'</span>
168+ </div>
169+
170+ <div class="col-md-3 text-center">
171+ <span class="tip badge badge-light p-2" title=" ' .tr ('Numero di km percorsi ' ).'"><i class="fa fa-truck text-info mr-1"></i> ' .Translator::numberToLocale ($ intervento ->sessioni ->sum ('km ' )).' ' .tr ('km ' ).'</span>
172+ </div>
173+
174+ <div class="col-md-3 text-center">
175+ <span class="tip badge badge-light p-2" title=" ' .tr ('Importo totale del lavoro ' ).'"><i class="fa fa-money text-info mr-1"></i> ' .($ show_prezzi ? moneyFormat ($ prezzi_ivati ? $ intervento ->totale : $ intervento ->totale_imponibile , 2 ) : '- ' ).'</span>
176+ </div>
177+ </div>
178+
179+ <div class="mb-3">
180+ <i class="fa fa- ' .($ insoluti ? 'warning text-danger ' : 'check text-success ' ).'"></i>
171181 ' .($ insoluti ? tr ('Sono presenti insoluti ' ) : tr ('Non sono presenti insoluti ' )).'
172- </p >
182+ </div >
173183
174- <p><i class="fa ' .(count ($ interventi_programmati ) == 0 ? 'fa-clock-o text-success ' : 'fa-clock-o text-warning ' ).'"></i> ' .(count ($ interventi_programmati ) == 0 ? tr ('Non sono presenti altre attività programmate ' ) : tr ('Attività aperte ' ).': ' );
184+ <div class="mb-3">
185+ <i class="fa ' .(count ($ interventi_programmati ) == 0 ? 'fa-clock-o text-success ' : 'fa-clock-o text-warning ' ).'"></i>
186+ ' .(count ($ interventi_programmati ) == 0 ? tr ('Non sono presenti altre attività programmate ' ) : tr ('Attività aperte ' ).': ' );
175187if (count ($ interventi_programmati ) != 0 ) {
176- echo ' <div class="readmore" data-height="50 "> ' ;
188+ echo ' <div class="readmore mt-1 " data-height="60 "> ' ;
177189 foreach ($ interventi_programmati as $ intervento_programmato ) {
178- echo ' <a class="btn btn-default btn-xs" href=" ' .base_path ().'/editor.php?id_module= ' .$ id_module .'&id_record= ' .$ intervento_programmato ->id .'" target="_blank"> ' .$ intervento_programmato ->codice .' ( ' .(new Carbon ($ intervento_programmato ->data_richiesta ))->diffForHumans ().')</a> ' ;
190+ echo ' <a class="btn btn-light mr-1 mb-1 p-2" style="font-size: 10px;" href=" ' .base_path ().'/editor.php?id_module= ' .$ id_module .'&id_record= ' .$ intervento_programmato ->id .'" target="_blank"><i class="fa fa-calendar-check-o text-info mr-1"></i> ' .$ intervento_programmato ->codice .' <span class="badge badge-secondary" style="font-size: 9px;"> ( ' .(new Carbon ($ intervento_programmato ->data_richiesta ))->diffForHumans ().')</span> </a> ' ;
179191 }
180192 echo ' </div> ' ;
181193}
182194echo '
183- </p > ' ;
195+ </div > ' ;
184196// Contratto
185197if ($ contratto ) {
186198 echo '
187- <p><i class="fa fa-book text-info"></i>
188- ' .Modules::link ('Contratti ' , $ contratto ->id , tr ('Contratto num. _NUM_ del _DATA_ ' , ['_NUM_ ' => $ contratto ->numero , '_DATA_ ' => Translator::dateToLocale ($ contratto ->data_bozza )]));
199+ <div class="mb-3">
200+ <i class="fa fa-book text-info"></i>
201+ ' .Modules::link ('Contratti ' , $ contratto ->id , tr ('Contratto num. _NUM_ del _DATA_ ' , ['_NUM_ ' => '<strong> ' .$ contratto ->numero .'</strong> ' , '_DATA_ ' => Translator::dateToLocale ($ contratto ->data_bozza )]));
189202 if ($ ore_previste > 0 ) {
190203 echo '
191- - ' .Translator::numberToLocale ($ ore_erogate , 2 ).'/ ' .$ ore_previste .' ' .tr ('ore ' ).'<br>
192-
193- <div class="progress" style="margin:0; height:8px;">
194- <div class="progress-bar progress-bar- ' .$ color .'" style="width: ' .$ perc_ore .'%"></div>
204+ <div class="mt-1">
205+ <span class="badge badge-light"> ' .Translator::numberToLocale ($ ore_erogate , 2 ).'/ ' .$ ore_previste .' ' .tr ('ore ' ).'</span>
206+ <div class="progress mt-1" style="height:6px; border-radius:3px;">
207+ <div class="progress-bar bg- ' .$ color .'" style="width: ' .$ perc_ore .'%"></div>
208+ </div>
195209 </div> ' ;
196210 }
197211 echo '
198- </p > ' ;
212+ </div > ' ;
199213}
200214
201215// Preventivo
202216if ($ preventivo ) {
203217 echo '
204- <p><i class="fa fa-book text-info"></i>
205- ' .Modules::link ('Preventivi ' , $ preventivo ->id , tr ('Preventivo num. _NUM_ del _DATA_ ' , ['_NUM_ ' => $ preventivo ->numero , '_DATA_ ' => Translator::dateToLocale ($ preventivo ->data_bozza )])).'
206- </p> ' ;
218+ <div class="mb-3">
219+ <i class="fa fa-file-text-o text-info"></i>
220+ ' .Modules::link ('Preventivi ' , $ preventivo ->id , tr ('Preventivo num. _NUM_ del _DATA_ ' , ['_NUM_ ' => '<strong> ' .$ preventivo ->numero .'</strong> ' , '_DATA_ ' => Translator::dateToLocale ($ preventivo ->data_bozza )])).'
221+ </div> ' ;
207222}
208223
209224// Ordine
210225if ($ ordine ) {
211226 echo '
212- <p><i class="fa fa-book text-info"></i>
213- ' .Modules::link ('Ordini cliente ' , $ ordine ->id , tr ('Ordine num. _NUM_ del _DATA_ ' , ['_NUM_ ' => $ ordine ->numero_esterno , '_DATA_ ' => Translator::dateToLocale ($ ordine ->data )])).'
214- </p> ' ;
227+ <div class="mb-3">
228+ <i class="fa fa-shopping-cart text-info"></i>
229+ ' .Modules::link ('Ordini cliente ' , $ ordine ->id , tr ('Ordine num. _NUM_ del _DATA_ ' , ['_NUM_ ' => '<strong> ' .$ ordine ->numero_esterno .'</strong> ' , '_DATA_ ' => Translator::dateToLocale ($ ordine ->data )])).'
230+ </div> ' ;
215231}
216- echo '
232+ echo '
217233 </div>
218234 </div>
219235 </div> ' ;
230246
231247echo '
232248 <div class="col-md-4">
233- <div class="card card-info card-outline shadow">
249+ <div class="card card-success card-outline shadow">
234250 <div class="card-header">
235- <h3 class="card-title"><i class="fa fa-map"></i> ' .tr ('Geolocalizzazione ' ).'</h3>
251+ <h3 class="card-title text-success "><i class="fa fa-map"></i> ' .tr ('Geolocalizzazione ' ).'</h3>
236252 </div>
237253 <div class="card-body"> ' ;
238254
239255if (!empty ($ sede_cliente ->gaddress ) || (!empty ($ sede_cliente ->lat ) && !empty ($ sede_cliente ->lng ))) {
240256 echo '
241- <div id="map-edit" style="width: 100%;"></div>
257+ <div id="map-edit" style="width: 100%; min-height: 150px; border-radius: 4px; border: 1px solid #eee; "></div>
242258
243259 <div class="clearfix"></div>
244- <br>
245-
246- <div class="row">
247- <div class="col-md-6"> ' ;
260+ <div class="mt-3">
261+ <div class="row">
262+ <div class="col-md-6 mb-2"> ' ;
248263 // Navigazione diretta verso l'indirizzo
249264 echo '
250- <button class="btn btn-xs btn-default btn-block" onclick="caricaMappa();">
251- <div class="load"><i class="fa fa-compass"></i> ' .tr ('Carica mappa ' ).'</div>
252- <a class="go-to hidden" href="geo:// ' .$ sede ['lat ' ].', ' .$ sede ['lng ' ].'"><i class="fa fa-map"></i> ' .tr ('Apri mappa ' ).'</a>
253- </button>
254- </div>
255-
256- <div class="col-md-6"> ' ;
265+ <button class="btn btn-light btn-sm btn-block" onclick="caricaMappa();">
266+ <div class="load"><i class="fa fa-compass text-success "></i> ' .tr ('Carica mappa ' ).'</div>
267+ <a class="go-to hidden" href="geo:// ' .$ sede ['lat ' ].', ' .$ sede ['lng ' ].'"><i class="fa fa-map text-success "></i> ' .tr ('Apri mappa ' ).'</a>
268+ </button>
269+ </div>
270+
271+ <div class="col-md-6 mb-2 "> ' ;
257272 // Navigazione diretta verso l'indirizzo
258273 echo '
259- <a class="btn btn-xs btn-default btn-block" onclick="calcolaPercorso()">
260- <i class="fa fa-map-signs"></i> ' .tr ('Calcola percorso ' ).'
261- </a>
274+ <a class="btn btn-light btn-sm btn-block" onclick="calcolaPercorso()">
275+ <i class="fa fa-map-signs text-success"></i> ' .tr ('Calcola percorso ' ).'
276+ </a>
277+ </div>
262278 </div>
263279 </div> ' ;
264280} else {
265281 echo '
282+ <div class="alert alert-light text-center mb-3">
283+ <i class="fa fa-map-o fa-3x text-muted mb-2"></i>
284+ <p class="text-muted"> ' .tr ('Nessuna mappa disponibile ' ).'</p>
285+ </div>
286+
266287 <div class="row">
267- <div class="col-md-6"> ' ;
288+ <div class="col-md-6 mb-2 "> ' ;
268289 // Navigazione diretta verso l'indirizzo
269290 echo '
270- <a class="btn btn-xs btn-default btn-block" onclick="calcolaPercorso()">
271- <i class="fa fa-map-signs"></i> ' .tr ('Calcola percorso ' ).'
291+ <a class="btn btn-light btn-sm btn-block" onclick="calcolaPercorso()">
292+ <i class="fa fa-map-signs text-success "></i> ' .tr ('Calcola percorso ' ).'
272293 </a>
273294 </div>
274295
275- <div class="col-md-6"> ' ;
296+ <div class="col-md-6 mb-2 "> ' ;
276297 // Ricerca diretta su Mappa
277298 echo '
278- <a class="btn btn-xs btn-default btn-block" onclick="cercaOpenStreetMap()">
279- <i class="fa fa-map-marker"></i> ' .tr ('Cerca su Mappa ' ).'
299+ <a class="btn btn-light btn-sm btn-block" onclick="cercaOpenStreetMap()">
300+ <i class="fa fa-map-marker text-success "></i> ' .tr ('Cerca su Mappa ' ).'
280301 </a>
281302 </div>
282303 </div> ' ;
283304}
284305
285- echo '
306+ echo '
286307 </div>
287308 </div>
288- </div>
309+ </div>
289310</div>
290311
291312<script>
@@ -352,18 +373,19 @@ function caricaMappa() {
352373 const $map_container = $(".module-header:visible .card").eq(2);
353374
354375 // Ingrandimento area mappa
355- $map_container.css("height", "300px ");
376+ $map_container.css("height", "320px ");
356377 alignMaxHeight(".module-header .card");
357- $("#map-edit").css("height", "80%");
378+ $("#map-edit").css("height", "85%");
379+ $("#map-edit").css("border", "none");
358380
359381 $map_container.find(".load").addClass("hidden");
360382 $map_container.find(".go-to").removeClass("hidden");
361383
362384 const lat = parseFloat(" ' .$ sede_cliente ->lat .'");
363385 const lng = parseFloat(" ' .$ sede_cliente ->lng .'");
364-
365- var container = L.DomUtil.get("map-edit");
366- if(container._leaflet_id != null){
386+
387+ var container = L.DomUtil.get("map-edit");
388+ if(container._leaflet_id != null){
367389 map.eachLayer(function (layer) {
368390 if(layer instanceof L.Marker) {
369391 map.removeLayer(layer);
@@ -388,9 +410,9 @@ function caricaMappa() {
388410 L.tileLayer(" ' .setting ('Tile server OpenStreetMap ' ).'", {
389411 maxZoom: 17,
390412 attribution: "© OpenStreetMap"
391- }).addTo(map);
413+ }).addTo(map);
392414 }
393-
415+
394416 var icon = new L.Icon({
395417 iconUrl: globals.rootdir + "/assets/dist/img/marker-icon.png",
396418 shadowUrl:globals.rootdir + "/assets/dist/img/leaflet/marker-shadow.png",
@@ -403,7 +425,7 @@ function caricaMappa() {
403425 var marker = L.marker([lat, lng], {
404426 icon: icon
405427 }).addTo(map);
406-
428+
407429 map.setView([lat, lng], 10);
408430 }
409431</script> ' ;
0 commit comments