2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../../core.php' ;
2020-08-04 18:33:28 +02:00
echo '
<!-- Filtri -->
< div class = " row " >
<!-- STATI INTERVENTO -->
< div class = " dropdown col-md-3 " id = " dashboard_stati " >
< button type = " button " class = " btn btn-block counter_object " data - toggle = " dropdown " >
< i class = " fa fa-filter " ></ i > '.tr(' Stati attività ').'
( < span class = " selected_counter " ></ span >/< span class = " total_counter " ></ span > ) < i class = " caret " ></ i >
</ button >
< ul class = " dropdown-menu " role = " menu " > ' ;
2017-08-04 16:28:16 +02:00
// Stati intervento
2020-08-04 18:33:28 +02:00
$stati_intervento = $dbo -> fetchArray ( 'SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC' );
foreach ( $stati_intervento as $stato ) {
2017-08-04 16:28:16 +02:00
$attr = '' ;
2020-08-04 18:33:28 +02:00
if ( in_array ( " ' " . $stato [ 'id' ] . " ' " , $_SESSION [ 'dashboard' ][ 'idstatiintervento' ])) {
$attr = 'checked="checked"' ;
2017-08-04 16:28:16 +02:00
}
2018-02-18 19:53:23 +01:00
2020-08-04 18:33:28 +02:00
echo '
< li >
< input type = " checkbox " id = " stato_'. $stato['id'] .' " class = " dashboard_stato " value = " '. $stato['id'] .' " '.$attr.' >
< label for = " stato_'. $stato['id'] .' " class = " badge " style = " color:'.color_inverse( $stato['colore'] ).'; background:'. $stato['colore'] .'; " >
'.$stato[' descrizione '].' </ span >
</ label >
</ li > ' ;
2017-08-04 16:28:16 +02:00
}
2020-08-04 18:33:28 +02:00
echo '
< div class = " btn-group float-right " >
< button type = " button " class = " btn btn-primary btn-sm seleziona_tutto " >
'.tr(' Tutti ').'
</ button >
< button type = " button " class = " btn btn-danger btn-sm deseleziona_tutto " >
< i class = " fa fa-times " ></ i >
</ button >
2017-08-04 16:28:16 +02:00
</ div >
</ ul >
</ div >
2020-08-04 18:33:28 +02:00
<!-- TIPI INTERVENTO -->
< div class = " dropdown col-md-3 " id = " dashboard_tipi " >
< button type = " button " class = " btn btn-block counter_object " data - toggle = " dropdown " >
< i class = " fa fa-filter " ></ i > '.tr(' Tipi attività ').'
( < span class = " selected_counter " ></ span >/< span class = " total_counter " ></ span > ) < i class = " caret " ></ i >
</ button >
< ul class = " dropdown-menu " role = " menu " > ' ;
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
// Tipi intervento
$tipi_intervento = $dbo -> fetchArray ( 'SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC' );
foreach ( $tipi_intervento as $tipo ) {
2017-08-04 16:28:16 +02:00
$attr = '' ;
2020-08-04 18:33:28 +02:00
if ( in_array ( " ' " . $tipo [ 'id' ] . " ' " , $_SESSION [ 'dashboard' ][ 'idtipiintervento' ])) {
$attr = 'checked="checked"' ;
2017-08-04 16:28:16 +02:00
}
2018-02-18 19:53:23 +01:00
2020-08-04 18:33:28 +02:00
echo '
< li >
< input type = " checkbox " id = " tipo_'. $tipo['id'] .' " class = " dashboard_tipo " value = " '. $tipo['id'] .' " '.$attr.' >
< label for = " tipo_'. $tipo['id'] .' " >
'.$tipo[' descrizione '].'
</ label >
</ li > ' ;
2017-08-04 16:28:16 +02:00
}
2020-08-04 18:33:28 +02:00
echo '
< div class = " btn-group float-right " >
< button type = " button " class = " btn btn-primary btn-sm seleziona_tutto " >
'.tr(' Tutti ').'
</ button >
< button type = " button " class = " btn btn-danger btn-sm deseleziona_tutto " >
< i class = " fa fa-times " ></ i >
</ button >
2017-08-04 16:28:16 +02:00
</ div >
</ ul >
</ div >
2020-08-04 18:33:28 +02:00
<!-- TECNICI -->
< div class = " dropdown col-md-3 " id = " dashboard_tecnici " >
< button type = " button " class = " btn btn-block counter_object " data - toggle = " dropdown " >
< i class = " fa fa-filter " ></ i > '.tr(' Tecnici ').'
( < span class = " selected_counter " ></ span >/< span class = " total_counter " ></ span > ) < i class = " caret " ></ i >
</ button >
< ul class = " dropdown-menu " role = " menu " > ' ;
$tecnici_disponibili = $dbo -> fetchArray ( " SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
2018-02-20 16:46:23 +01:00
LEFT OUTER JOIN in_interventi_tecnici ON in_interventi_tecnici . idtecnico = an_anagrafiche . idanagrafica INNER JOIN in_interventi ON in_interventi_tecnici . idintervento = in_interventi . id
2018-07-17 08:05:19 +02:00
WHERE an_anagrafiche . deleted_at IS NULL AND an_tipianagrafiche . descrizione = 'Tecnico' " .Modules::getAdditionalsQuery('Interventi').' GROUP BY an_anagrafiche.idanagrafica ORDER BY ragione_sociale ASC');
2020-08-04 18:33:28 +02:00
foreach ( $tecnici_disponibili as $tecnico ) {
2017-08-04 16:28:16 +02:00
$attr = '' ;
2020-08-04 18:33:28 +02:00
if ( in_array ( " ' " . $tecnico [ 'id' ] . " ' " , $_SESSION [ 'dashboard' ][ 'idtecnici' ])) {
$attr = 'checked="checked"' ;
2017-08-04 16:28:16 +02:00
}
2020-08-04 18:33:28 +02:00
echo '
< li >
< input type = " checkbox " id = " tecnico_'. $tecnico['id'] .' " class = " dashboard_tecnico " value = " '. $tecnico['id'] .' " '.$attr.' >
< label for = " tecnico_'. $tecnico['id'] .' " >
'.$tecnico[' ragione_sociale '].'
</ label >
</ li > ' ;
2017-08-04 16:28:16 +02:00
}
2020-08-04 18:33:28 +02:00
echo '
< div class = " btn-group float-right " >
< button type = " button " class = " btn btn-primary btn-sm seleziona_tutto " >
'.tr(' Tutti ').'
</ button >
< button type = " button " class = " btn btn-danger btn-sm deseleziona_tutto " >
< i class = " fa fa-times " ></ i >
</ button >
2017-08-04 16:28:16 +02:00
</ div >
</ ul >
</ div >
2020-08-04 18:33:28 +02:00
<!-- ZONE -->
< div class = " dropdown col-md-3 " id = " dashboard_zone " >
< button type = " button " class = " btn btn-block counter_object " data - toggle = " dropdown " >
< i class = " fa fa-filter " ></ i > '.tr(' Zone ').'
( < span class = " selected_counter " ></ span >/< span class = " total_counter " ></ span > ) < i class = " caret " ></ i >
</ button >
< ul class = " dropdown-menu " role = " menu " > ' ;
2017-08-04 16:28:16 +02:00
// Zone
2020-08-04 18:33:28 +02:00
$zone = $dbo -> fetchArray ( '(SELECT 0 AS ordine, \'0\' AS id, \'Nessuna zona\' AS descrizione) UNION (SELECT 1 AS ordine, id, descrizione FROM an_zone) ORDER BY ordine, descrizione ASC' );
foreach ( $zone as $zona ) {
2017-08-04 16:28:16 +02:00
$attr = '' ;
2020-08-04 18:33:28 +02:00
if ( in_array ( " ' " . $zona [ 'id' ] . " ' " , $_SESSION [ 'dashboard' ][ 'idzone' ])) {
$attr = 'checked="checked"' ;
2017-08-04 16:28:16 +02:00
}
2020-08-04 18:33:28 +02:00
echo '
< li >
< input type = " checkbox " id = " zona_'. $zona['id'] .' " class = " dashboard_zona " value = " '. $zona['id'] .' " '.$attr.' >
< label for = " zona_'. $zona['id'] .' " >
'.$zona[' descrizione '].'
</ label >
</ li > ' ;
2017-08-04 16:28:16 +02:00
}
2020-08-04 18:33:28 +02:00
echo '
< div class = " btn-group float-right " >
< button type = " button " class = " btn btn-primary btn-sm seleziona_tutto " >
'.tr(' Tutti ').'
</ button >
< button type = " button " class = " btn btn-danger btn-sm deseleziona_tutto " >
< i class = " fa fa-times " ></ i >
</ button >
2017-08-04 16:28:16 +02:00
</ div >
</ ul >
</ div >
</ div >
2020-08-04 18:33:28 +02:00
< br > ' ;
2020-03-14 14:59:27 +01:00
$query_da_programmare = ' SELECT data_richiesta AS data FROM co_promemoria
INNER JOIN co_contratti ON co_promemoria . idcontratto = co_contratti . id
INNER JOIN an_anagrafiche ON co_contratti . idanagrafica = an_anagrafiche . idanagrafica
WHERE
idcontratto IN ( SELECT id FROM co_contratti WHERE idstato IN ( SELECT id FROM co_staticontratti WHERE is_pianificabile = 1 ))
AND idintervento IS NULL
UNION SELECT IF ( data_scadenza IS NULL , data_richiesta , data_scadenza ) AS data FROM in_interventi
INNER JOIN an_anagrafiche ON in_interventi . idanagrafica = an_anagrafiche . idanagrafica
WHERE ( SELECT COUNT ( * ) FROM in_interventi_tecnici WHERE in_interventi_tecnici . idintervento = in_interventi . id ) = 0 ' ;
$risultati_da_programmare = $dbo -> fetchArray ( $query_da_programmare );
if ( ! empty ( $risultati_da_programmare )) {
2017-08-04 16:28:16 +02:00
echo '
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-10 " > ' ;
2017-08-04 16:28:16 +02:00
}
echo '
< div id = " calendar " ></ div > ' ;
2020-03-14 14:59:27 +01:00
if ( ! empty ( $risultati_da_programmare )) {
2017-08-04 16:28:16 +02:00
echo '
</ div >
< div id = " external-events " class = " hidden-xs hidden-sm col-md-2 " >
2018-10-23 12:50:02 +02:00
< h4 > '.tr(' Promemoria da pianificare ').' </ h4 > ' ;
2018-05-11 10:22:38 +02:00
2018-06-06 00:00:22 +02:00
// Controllo pianificazioni mesi precedenti
2020-03-14 14:59:27 +01:00
$query_mesi_precenti = ' SELECT co_promemoria . id FROM co_promemoria INNER JOIN co_contratti ON co_promemoria . idcontratto = co_contratti . id WHERE idstato IN ( SELECT id FROM co_staticontratti WHERE is_pianificabile = 1 ) AND idintervento IS NULL AND DATE_ADD ( co_promemoria . data_richiesta , INTERVAL 1 DAY ) <= NOW ()
2018-09-20 09:21:34 +02:00
2019-12-09 16:44:07 +01:00
UNION SELECT in_interventi . id FROM in_interventi INNER JOIN an_anagrafiche ON in_interventi . idanagrafica = an_anagrafiche . idanagrafica WHERE ( SELECT COUNT ( * ) FROM in_interventi_tecnici WHERE in_interventi_tecnici . idintervento = in_interventi . id ) = 0 AND DATE_ADD ( IF ( in_interventi . data_scadenza IS NULL , in_interventi . data_richiesta , in_interventi . data_scadenza ), INTERVAL 1 DAY ) <= NOW () ' ;
2020-03-14 14:59:27 +01:00
$numero_mesi_precenti = $dbo -> fetchNum ( $query_mesi_precenti );
2018-05-11 10:22:38 +02:00
2020-03-14 14:59:27 +01:00
if ( $numero_mesi_precenti > 0 ) {
echo '<div class="alert alert-warning alert-dismissible text-sm" role="alert"><i class="fa fa-exclamation-triangle"></i><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> ' . tr ( 'Ci sono _NUM_ attività scadute' , [
'_NUM_' => $numero_mesi_precenti ,
]) . '.</div>' ;
2018-03-22 18:34:33 +01:00
}
2019-12-13 10:08:17 +01:00
2020-03-14 14:59:27 +01:00
// Aggiunta della data corrente per visualizzare il mese corrente
$risultati_da_programmare [] = [
'data' => date ( 'Y-m-d H:i:s' ),
];
2018-05-11 10:22:38 +02:00
2020-03-14 14:59:27 +01:00
$mesi = collect ( $risultati_da_programmare )
-> unique ( function ( $item ) {
$data = new Carbon\Carbon ( $item [ 'data' ]);
2018-05-11 10:22:38 +02:00
2020-03-14 14:59:27 +01:00
return $data -> format ( 'm-Y' );
})
-> sortBy ( 'data' );
2018-05-11 10:22:38 +02:00
2020-03-14 14:59:27 +01:00
echo '
2020-08-04 18:33:28 +02:00
< select class = " superselect " id = " mese-promemoria " > ' ;
2018-05-11 10:22:38 +02:00
2020-03-14 14:59:27 +01:00
foreach ( $mesi as $mese ) {
$data = new Carbon\Carbon ( $mese [ 'data' ]);
$chiave = $data -> format ( 'mY' );
$testo = $data -> formatLocalized ( '%B %Y' );
2018-03-22 18:34:33 +01:00
2020-03-14 14:59:27 +01:00
echo '
< option value = " '. $chiave .' " > '.ucfirst($testo).' </ option > ' ;
2017-08-31 10:09:06 +02:00
}
2018-05-11 10:22:38 +02:00
2017-08-04 16:28:16 +02:00
echo '
2020-03-14 14:59:27 +01:00
</ select >
2020-08-04 18:33:28 +02:00
< div id = " elenco-promemoria " ></ div >
2017-08-04 16:28:16 +02:00
</ div >
</ div > ' ;
}
2018-07-08 18:11:17 +02:00
$vista = setting ( 'Vista dashboard' );
2017-08-04 16:28:16 +02:00
if ( $vista == 'mese' ) {
$def = 'month' ;
} elseif ( $vista == 'giorno' ) {
$def = 'agendaDay' ;
} else {
$def = 'agendaWeek' ;
}
2020-08-04 18:33:28 +02:00
$modulo_interventi = Modules :: get ( 'Interventi' );
echo '
2017-08-04 16:28:16 +02:00
< script type = " text/javascript " >
2020-08-04 18:33:28 +02:00
globals . dashboard = {
load_url : globals . rootdir + " /actions.php?id_module='. $id_module .' " ,
style : " '. $def .' " ,
show_sunday : " '.setting('Visualizzare la domenica sul calendario').' " ,
start_time : " '.setting('Inizio orario lavorativo').' " ,
end_time : " '.((setting('Fine orario lavorativo') == '00:00') ?: '23:59:59').' " ,
write_permission : " '.intval( $modulo_interventi->permission == 'rw').' " ,
tooltip : " '.setting('Utilizzare i tooltip sul calendario').' " ,
calendar : null ,
/* timeFormat : {
hour : " 2-digit " ,
minute : " 2-digit " ,
hour12 : false
}, */
timeFormat : " H:mm " ,
select : {
title : " '.tr('Aggiungi intervento').' " ,
url : globals . rootdir + " /add.php?id_module='. $modulo_interventi->id .' " ,
},
drop : {
title : " '.tr('Pianifica intervento').' " ,
url : globals . rootdir + " /add.php?id_module='. $modulo_interventi->id .' " ,
},
error : " '.tr('Errore durante la creazione degli eventi').' " ,
};
function aggiorna_contatore ( counter_id ) {
var counter = $ ( counter_id );
var dropdown = counter . find ( " .dropdown-menu " );
var selected = dropdown . find ( " input:checked " ) . length ;
var total = dropdown . find ( " input " ) . length ;
counter . find ( " .selected_counter " ) . html ( selected );
counter . find ( " .total_counter " ) . html ( total );
var object = counter . find ( " .counter_object " );
if ( total === 0 ) {
object . addClass ( " btn-primary disabled " );
return ;
} else {
object . removeClass ( " btn-primary disabled " );
}
2019-07-29 13:16:55 +02:00
2020-08-04 18:33:28 +02:00
if ( selected === total ) {
object . removeClass ( " btn-warning btn-danger " ) . addClass ( " btn-success " );
} else if ( selected === 0 ) {
object . removeClass ( " btn-warning btn-success " ) . addClass ( " btn-danger " );
} else {
object . removeClass ( " btn-success btn-danger " ) . addClass ( " btn-warning " );
}
}
2019-07-29 13:16:55 +02:00
2020-08-04 18:33:28 +02:00
function carica_interventi_da_pianificare ( mese ) {
if ( mese === undefined ) {
// Seleziono il mese corrente per gli interventi da pianificare
let date = new Date ();
date . setDate ( date . getDate ());
2019-05-13 19:21:46 +02:00
2020-08-04 18:33:28 +02:00
//Note: January is 0, February is 1, and so on.
mese = ( " 0 " + ( date . getMonth () + 1 )) . slice ( - 2 ) + date . getFullYear ();
2019-05-13 19:21:46 +02:00
2020-08-04 18:33:28 +02:00
$ ( " #mese-promemoria option[value= " + mese + " ] " ) . attr ( " selected " , " selected " ) . trigger ( " change " );
}
2019-07-29 13:16:55 +02:00
2020-08-04 18:33:28 +02:00
$ ( " #elenco-promemoria " ) . html ( " <center><br><br><i class= \" fa fa-refresh fa-spin fa-2x fa-fw \" ></i></center> " );
$ . get ( globals . dashboard . load_url , {
op : " carica_interventi " ,
mese : mese
}) . done ( function ( data ) {
$ ( " #elenco-promemoria " ) . html ( data );
2019-07-29 13:16:55 +02:00
2020-08-04 18:33:28 +02:00
$ ( " #external-events .fc-event " ) . each ( function () {
$ ( this ) . draggable ({
2018-03-22 18:34:33 +01:00
zIndex : 999 ,
revert : true ,
2020-08-04 18:33:28 +02:00
revertDuration : 0 ,
eventData : {
title : $ . trim ( $ ( this ) . text ()),
stick : false
}
2018-03-22 18:34:33 +01:00
});
});
2017-08-04 16:28:16 +02:00
});
2020-08-04 18:33:28 +02:00
}
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
$ ( document ) . ready ( function () {
// Aggiornamento contatori iniziale
aggiorna_contatore ( " #dashboard_stati " );
aggiorna_contatore ( " #dashboard_tipi " );
aggiorna_contatore ( " #dashboard_tecnici " );
aggiorna_contatore ( " #dashboard_zone " );
2018-02-20 16:46:23 +01:00
2020-08-04 18:33:28 +02:00
// Selezione di uno stato intervento
$ ( " .dashboard_stato " ) . click ( function ( event ) {
let id = $ ( this ) . val ();
2018-02-16 18:15:36 +01:00
2020-08-04 18:33:28 +02:00
session_set_array ( " dashboard,idstatiintervento " , id ) . then ( function () {
aggiorna_contatore ( " #dashboard_stati " );
globals . dashboard . calendar . fullCalendar ( " refetchEvents " ); //.refetchEvents()
2018-02-20 16:46:23 +01:00
});
2017-08-04 16:28:16 +02:00
});
2020-08-04 18:33:28 +02:00
// Selezione di un tipo intervento
$ ( " .dashboard_tipo " ) . click ( function ( event ) {
let id = $ ( this ) . val ();
2018-02-20 16:46:23 +01:00
2020-08-04 18:33:28 +02:00
session_set_array ( " dashboard,idtipiintervento " , id ) . then ( function () {
aggiorna_contatore ( " #dashboard_tipi " );
globals . dashboard . calendar . fullCalendar ( " refetchEvents " ); //.refetchEvents()
2017-08-04 16:28:16 +02:00
});
});
2020-08-04 18:33:28 +02:00
// Selezione di un tecnico
$ ( " .dashboard_tecnico " ) . click ( function ( event ) {
let id = $ ( this ) . val ();
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
session_set_array ( " dashboard,idtecnici " , id ) . then ( function () {
aggiorna_contatore ( " #dashboard_tecnici " );
globals . dashboard . calendar . fullCalendar ( " refetchEvents " ); //.refetchEvents()
2018-02-16 18:15:36 +01:00
});
2017-08-04 16:28:16 +02:00
});
2020-08-04 18:33:28 +02:00
// Selezione di una zona
$ ( " .dashboard_zona " ) . click ( function ( event ) {
let id = $ ( this ) . val ();
2018-02-16 18:15:36 +01:00
2020-08-04 18:33:28 +02:00
session_set_array ( " dashboard,idzone " , id ) . then ( function () {
aggiorna_contatore ( " #dashboard_zone " );
globals . dashboard . calendar . fullCalendar ( " refetchEvents " ); //.refetchEvents()
2018-02-16 18:15:36 +01:00
});
2017-08-04 16:28:16 +02:00
});
2020-08-04 18:33:28 +02:00
// Selezione di tutti gli elementi
$ ( " .seleziona_tutto " ) . click ( function () {
$ ( this ) . closest ( " ul " ) . find ( " input:not(:checked) " ) . each ( function () {
$ ( this ) . click ();
2018-02-16 18:15:36 +01:00
});
2017-08-04 16:28:16 +02:00
});
2020-08-04 18:33:28 +02:00
// Deselezione di tutti gli elementi
$ ( " .deseleziona_tutto " ) . click ( function () {
$ ( this ) . closest ( " ul " ) . find ( " input:checked " ) . each ( function () {
$ ( this ) . click ();
2017-08-04 16:28:16 +02:00
});
});
2020-08-04 18:33:28 +02:00
$ ( " #mese-promemoria " ) . change ( function () {
let mese = $ ( this ) . val ();
carica_interventi_da_pianificare ( mese );
2017-08-04 16:28:16 +02:00
});
2020-08-04 18:33:28 +02:00
// Caricamento interventi da pianificare
carica_interventi_da_pianificare ();
2017-08-04 16:28:16 +02:00
// Creazione del calendario
2020-08-04 18:33:28 +02:00
create_calendar ();
});
function create_calendar () {
var calendarElement = document . getElementById ( " calendar " );
2018-05-11 10:22:38 +02:00
2020-08-04 18:33:28 +02:00
var calendar = $ ( calendarElement ) . fullCalendar ({
/* plugins: [interactionPlugin, dayGridPlugin, timeGridPlugin], */
/* locales: allLocales, */
locale : globals . locale ,
hiddenDays : globals . dashboard . show_sunday ? [] : [ 0 ],
header : {
left : " prev,next today " ,
center : " title " ,
right : " month,agendaWeek,agendaDay "
},
timeFormat : globals . dashboard . timeFormat ,
slotLabelFormat : globals . dashboard . timeFormat ,
slotDuration : " 00:15:00 " ,
defaultView : globals . dashboard . style ,
minTime : globals . dashboard . start_time ,
maxTime : globals . dashboard . end_time ,
lazyFetching : true ,
selectMirror : true ,
eventLimit : false , // allow "more" link when too many events
allDaySlot : false ,
2018-05-11 10:22:38 +02:00
2020-08-04 18:33:28 +02:00
loading : function ( isLoading , view ) {
if ( isLoading ) {
$ ( " #tiny-loader " ) . fadeIn ();
} else {
$ ( " #tiny-loader " ) . hide ();
2018-04-16 17:49:09 +02:00
}
2020-08-04 18:33:28 +02:00
},
2018-05-11 10:22:38 +02:00
2020-08-04 18:33:28 +02:00
droppable : globals . dashboard . write_permission ,
drop : function ( date ) { // info
// let date = info.date;
2018-05-11 10:22:38 +02:00
2020-08-04 18:33:28 +02:00
let data = moment ( date ) . format ( " YYYY-MM-DD " );
let ora_dal = moment ( date ) . format ( " HH:mm " );
let ora_al = moment ( date ) . add ( 1 , " hours " ) . format ( " HH:mm " );
2018-05-11 10:22:38 +02:00
2020-08-04 18:33:28 +02:00
let ref = $ ( this ) . data ( " ref " );
let name ;
if ( ref === " promemoria " ) {
name = " idcontratto_riga " ;
} else {
name = " id_intervento " ;
}
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
openModal ( globals . dashboard . drop . title , globals . dashboard . drop . url + " &data= " + data + " &orario_inizio= " + ora_dal + " &orario_fine= " + ora_al + " &ref=dashboard&idcontratto= " + $ ( this ) . data ( " idcontratto " ) + " & " + name + " = " + $ ( this ) . data ( " id " ));
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
// Ricaricamento dei dati alla chiusura del modal
$ ( this ) . remove ();
$ ( " #modals > div " ) . on ( " hidden.bs.modal " , function () {
globals . dashboard . calendar . fullCalendar ( " refetchEvents " ); //.refetchEvents()
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
let mese = $ ( " #mese-promemoria " ) . val ();
carica_interventi_da_pianificare ( mese );
});
},
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
selectable : globals . dashboard . write_permission ,
select : function ( start , end , allDay ) { // info
// let start = info.start;
// let end = info.end;
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
let data = moment ( start ) . format ( " YYYY-MM-DD " );
let data_fine = moment ( end ) . format ( " YYYY-MM-DD " );
let orario_inizio = moment ( start ) . format ( " HH:mm " );
let orario_fine = moment ( end ) . format ( " HH:mm " );
2018-09-18 17:58:15 +02:00
2020-08-04 18:33:28 +02:00
openModal ( globals . dashboard . select . title , globals . dashboard . select . url + " &ref=dashboard&data= " + data + " &data_fine= " + data_fine + " &orario_inizio= " + orario_inizio + " &orario_fine= " + orario_fine );
2017-08-30 11:50:46 +02:00
},
2017-08-04 16:28:16 +02:00
2020-08-04 18:33:28 +02:00
editable : globals . dashboard . write_permission ,
eventDrop : function ( event ) { // info
// let event = info.event;
$ . post ( globals . dashboard . load_url , {
op : " modifica_intervento " ,
id : event . id ,
idintervento : event . idintervento ,
timeStart : moment ( event . start ) . format ( " YYYY-MM-DD HH:mm " ),
timeEnd : moment ( event . end ) . format ( " YYYY-MM-DD HH:mm " )
}, function ( data , response ) {
data = $ . trim ( data );
if ( response !== " success " || data !== " ok " ) {
alert ( data );
info . revert ();
}
});
},
eventResize : function ( event , dayDelta , minuteDelta , revertFunc ) { // info
// let event = info.event;
$ . post ( globals . dashboard . load_url , {
op : " modifica_intervento " ,
id : event . id ,
idintervento : event . idintervento ,
timeStart : moment ( event . start ) . format ( " YYYY-MM-DD HH:mm " ),
timeEnd : moment ( event . end ) . format ( " YYYY-MM-DD HH:mm " )
}, function ( data , response ) {
data = $ . trim ( data );
if ( response !== " success " || data !== " ok " ) {
alert ( data );
revertFunc (); // info.revert();
}
2017-08-31 10:09:06 +02:00
});
},
2020-08-04 18:33:28 +02:00
// eventPositioned: function (info) {
eventAfterRender : function ( event , element ) {
// let event = info.event;
// let element = $(info.el);
if ( ! globals . dashboard . tooltip ) {
return ;
}
element . find ( " .fc-title " ) . html ( event . title );
let id_intervento = event . idintervento ;
2017-09-01 12:55:48 +02:00
2020-01-09 19:09:49 +01:00
element . tooltipster ({
2020-08-04 18:33:28 +02:00
content : " '.tr('Caricamento...').' " ,
animation : " grow " ,
updateAnimation : " grow " ,
2020-01-09 19:09:49 +01:00
contentAsHTML : true ,
hideOnClick : true ,
speed : 200 ,
delay : 300 ,
maxWidth : 400 ,
2020-08-04 18:33:28 +02:00
theme : " tooltipster-shadow " ,
2020-01-09 19:09:49 +01:00
touchDevices : true ,
2020-08-04 18:33:28 +02:00
trigger : " hover " ,
position : " left " ,
2020-01-09 19:09:49 +01:00
functionBefore : function ( instance , helper ) {
2020-08-04 18:33:28 +02:00
let $origin = $ ( helper . origin );
2020-01-09 19:09:49 +01:00
2020-08-04 18:33:28 +02:00
if ( $origin . data ( " loaded " ) !== true ) {
$ . post ( globals . dashboard . load_url , {
op : " info_intervento " ,
id : id_intervento ,
}, function ( data , response ) {
2020-01-09 19:09:49 +01:00
instance . content ( data );
2020-08-04 18:33:28 +02:00
$origin . data ( " loaded " , true );
2020-01-09 19:09:49 +01:00
});
}
}
});
2020-08-04 18:33:28 +02:00
},
2017-09-01 12:55:48 +02:00
events : {
2020-08-04 18:33:28 +02:00
url : globals . dashboard . load_url + " &op=interventi_periodo " ,
type : " GET " ,
error : function () {
alert ( globals . dashboard . error );
}
}
});
//calendar.render();
globals . dashboard . calendar = calendar ;
}
</ script > ' ;
// Prima selezione globale per tutti i filtri
if ( ! isset ( $_SESSION [ 'dashboard' ][ 'idtecnici' ])) {
$_SESSION [ 'dashboard' ][ 'idtecnici' ] = [ " '-1' " ];
echo '
< script >
$ ( document ) . ready ( function (){
$ ( " #dashboard_tecnici .seleziona_tutto " ) . click ();
})
</ script > ' ;
}
if ( ! isset ( $_SESSION [ 'dashboard' ][ 'idstatiintervento' ])) {
$_SESSION [ 'dashboard' ][ 'idstatiintervento' ] = [ " '-1' " ];
echo '
< script >
$ ( document ) . ready ( function (){
$ ( " #dashboard_stati .seleziona_tutto " ) . click ();
})
</ script > ' ;
}
if ( ! isset ( $_SESSION [ 'dashboard' ][ 'idtipiintervento' ])) {
$_SESSION [ 'dashboard' ][ 'idtipiintervento' ] = [ " '-1' " ];
echo '
< script >
$ ( document ) . ready ( function (){
$ ( " #dashboard_tipi .seleziona_tutto " ) . click ();
})
</ script > ' ;
}
if ( ! isset ( $_SESSION [ 'dashboard' ][ 'idzone' ])) {
$_SESSION [ 'dashboard' ][ 'idzone' ] = [ " '-1' " ];
echo '
< script >
$ ( document ) . ready ( function (){
$ ( " #dashboard_zone .seleziona_tutto " ) . click ();
})
</ script > ' ;
}