477 lines
18 KiB
PHP
477 lines
18 KiB
PHP
<?php
|
|
include_once(__DIR__."/../../core.php");
|
|
|
|
//Impostazione filtri di default a tutte le selezioni la prima volta
|
|
if( !isset($_SESSION['agenda']['idtecnici']) ){
|
|
$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id 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 WHERE deleted=0 AND descrizione='Tecnico'");
|
|
|
|
$_SESSION['agenda']['idtecnici'] = array("'-1'");
|
|
|
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
|
array_push( $_SESSION['agenda']['idtecnici'], "'".$rs[$i]['id']."'" );
|
|
}
|
|
}
|
|
|
|
|
|
if( !isset($_SESSION['agenda']['idstatoagenda']) ){
|
|
$rs = $dbo->fetchArray("SELECT idstatoagenda AS id, descrizione FROM agenda_stati");
|
|
|
|
$_SESSION['agenda']['idstatoagenda'] = array("'-1'");
|
|
|
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
|
array_push( $_SESSION['agenda']['idstatoagenda'], "'".$rs[$i]['id']."'" );
|
|
}
|
|
}
|
|
|
|
|
|
if( !isset($_SESSION['agenda']['idtipoagenda']) ){
|
|
$rs = $dbo->fetchArray("SELECT idtipoagenda AS id, descrizione FROM agenda_tipi");
|
|
|
|
$_SESSION['agenda']['idtipoagenda'] = array("'-1'");
|
|
|
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
|
array_push( $_SESSION['agenda']['idtipoagenda'], "'".$rs[$i]['id']."'" );
|
|
}
|
|
}
|
|
|
|
?>
|
|
<link rel="stylesheet" href="<?php echo $css ?>/fullcalendar.min.css">
|
|
<script src="<?php echo $js ?>/fullcalendar.min.js"></script>
|
|
<script type="text/javascript">
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
// comandi seleziona tutti
|
|
$('#selectallstati').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
this.checked = true;
|
|
});
|
|
|
|
update_counter( 'idstati_count', $('#idstati_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
|
|
$('#selectalltipi').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
this.checked = true;
|
|
});
|
|
|
|
update_counter( 'idtipi_count', $('#idtipi_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
|
|
$('#selectalltecnici').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
this.checked = true;
|
|
});
|
|
|
|
update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
|
|
$('#selectallzone').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
this.checked = true;
|
|
});
|
|
|
|
update_counter( 'idzone_count', $('#idzone_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
|
|
// comandi deseleziona tutti
|
|
$('#deselectallstati').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
if( this.checked == true ) session_set_array( 'agenda,idstatoagenda', this.value, 1 );
|
|
this.checked = false;
|
|
});
|
|
|
|
update_counter( 'idstati_count', $('#idstati_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
|
|
$('#deselectalltipi').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
if( this.checked == true ) session_set_array( 'agenda,idtipoagenda', this.value, 1 );
|
|
this.checked = false;
|
|
});
|
|
|
|
update_counter( 'idtipi_count', $('#idtipi_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
|
|
$('#deselectalltecnici').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
if( this.checked == true ) session_set_array( 'agenda,idtecnici', this.value, 1 );
|
|
this.checked = false;
|
|
});
|
|
|
|
update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
|
|
$('#deselectallzone').click(function(event) {
|
|
$(this).parent().parent().find('li input[type=checkbox]').each(function() { //loop through each checkbox
|
|
if( this.checked == true ) session_set_array( 'agenda,idzone', this.value, 1 );
|
|
this.checked = false;
|
|
});
|
|
|
|
update_counter( 'idzone_count', $('#idzone_ul').find('input:checked').length );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
});
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
<!-- Filtri -->
|
|
<div class="row">
|
|
<?php
|
|
$checks = '';
|
|
$count = 0;
|
|
$total = 0;
|
|
|
|
$rs = $dbo->fetchArray("SELECT idstatoagenda AS id, descrizione, colore FROM agenda_stati ORDER BY descrizione ASC");
|
|
$total = sizeof($rs);
|
|
|
|
$allchecksstati = "";
|
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
|
$attr = '';
|
|
|
|
foreach( $_SESSION['agenda']['idstatoagenda'] as $idx => $val ){
|
|
if( $val == "'".$rs[$i]['id']."'" ){
|
|
$attr = 'checked="checked"';
|
|
$count++;
|
|
}
|
|
}
|
|
|
|
$checks .= "<li><input type='checkbox' id='idstato_".$rs[$i]['id']."' value=\"".$rs[$i]['id']."\" ".$attr." onclick=\"session_set_array( 'agenda,idstatoagenda', '".$rs[$i]['id']."' ); $('#calendar').fullCalendar('refetchEvents'); update_counter( 'idstati_count', $('#idstati_ul').find('input:checked').length );\"> <label for='idstato_".$rs[$i]['id']."'> <span class='badge' style=\"color:#333; background:".$rs[$i]['colore'].";\">".$rs[$i]['descrizione']."</span></label></li>\n";
|
|
|
|
$allchecksstati .= "session_set_array( 'agenda,idstatoagenda', '".$rs[$i]['id']."', 0 ); ";
|
|
}
|
|
|
|
if( $count == $total ){
|
|
$class = "btn-success";
|
|
}
|
|
|
|
else if( $count == 0 ){
|
|
$class = "btn-danger";
|
|
}
|
|
|
|
else{
|
|
$class = "btn-warning";
|
|
}
|
|
|
|
if ($total==0)
|
|
$class = "btn-primary disabled";
|
|
?>
|
|
|
|
<!-- STATI Agenda -->
|
|
<div class="dropdown col-md-3">
|
|
<a class="btn <?php echo $class ?> btn-block" data-toggle="dropdown" href="javascript:;" id="idstati_count"><i class="fa fa-filter"></i> Stato (<?php echo $count."/".$total ?>) <i class="caret"></i></a>
|
|
|
|
<ul class="dropdown-menu" role="menu" id="idstati_ul">
|
|
<?php echo $checks ?>
|
|
<div class="btn-group pull-right">
|
|
<button id="selectallstati" onclick="<?php echo $allchecksstati; ?>" class="btn btn-primary btn-xs" type="button"><?php echo _("Tutti"); ?></button>
|
|
<button id="deselectallstati" class="btn btn-danger btn-xs" type="button"><?php echo _("×"); ?></button>
|
|
</div>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<!-- TIPI Agenda -->
|
|
<?php
|
|
$checks = '';
|
|
$count = 0;
|
|
$total = 0;
|
|
|
|
$rs = $dbo->fetchArray("SELECT idtipoagenda AS id, descrizione FROM agenda_tipi ORDER BY descrizione ASC");
|
|
$total = sizeof($rs);
|
|
|
|
$allcheckstipi = "";
|
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
|
$attr = '';
|
|
|
|
foreach( $_SESSION['agenda']['idtipoagenda'] as $idx => $val ){
|
|
if( $val == "'".$rs[$i]['id']."'" ){
|
|
$attr = 'checked="checked"';
|
|
$count++;
|
|
}
|
|
}
|
|
|
|
$checks .= "<li><input type='checkbox' id='idtipo_".$rs[$i]['id']."' value=\"".$rs[$i]['id']."\" ".$attr." onclick=\"session_set_array( 'agenda,idtipoagenda', '".$rs[$i]['id']."' ); $('#calendar').fullCalendar('refetchEvents'); update_counter( 'idtipi_count', $('#idtipi_ul').find('input:checked').length );\"> <label for='idtipo_".$rs[$i]['id']."'> ".$rs[$i]['descrizione']."</label></li>\n";
|
|
|
|
$allcheckstipi .= "session_set_array( 'agenda,idtipoagenda', '".$rs[$i]['id']."', 0 ); ";
|
|
|
|
}
|
|
|
|
if( $count == $total ){
|
|
$class = "btn-success";
|
|
}
|
|
|
|
else if( $count == 0 ){
|
|
$class = "btn-danger";
|
|
}
|
|
|
|
else{
|
|
$class = "btn-warning";
|
|
}
|
|
|
|
if ($total==0)
|
|
$class = "btn-primary disabled";
|
|
?>
|
|
|
|
<div class="dropdown col-md-3">
|
|
<a class="btn <?php echo $class ?> btn-block" data-toggle="dropdown" href="javascript:;" id="idtipi_count"><i class="fa fa-filter"></i> Tipologia (<?php echo $count."/".$total ?>) <i class="caret"></i></a>
|
|
|
|
<ul class="dropdown-menu" role="menu" id="idtipi_ul">
|
|
<?php echo $checks ?>
|
|
<div class="btn-group pull-right">
|
|
<button id="selectalltipi" onclick="<?php echo $allcheckstipi; ?>" class="btn btn-primary btn-xs" type="button"><?php echo _("Tutti"); ?></button>
|
|
<button id="deselectalltipi" class="btn btn-danger btn-xs" type="button"><?php echo _("×"); ?></button>
|
|
</div>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- TECNICI -->
|
|
<?php
|
|
$checks = '';
|
|
$count = 0;
|
|
$total = 0;
|
|
$totale_tecnici = 0; // conteggia tecnici eliminati e non
|
|
|
|
$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale 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 WHERE deleted=0 AND descrizione='Tecnico' ORDER BY ragione_sociale ASC");
|
|
$total = sizeof($rs);
|
|
|
|
$totale_tecnici += $total;
|
|
|
|
$allchecktecnici = "";
|
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
|
$attr = '';
|
|
|
|
foreach( $_SESSION['agenda']['idtecnici'] as $idx => $val ){
|
|
if( $val == "'".$rs[$i]['id']."'" ){
|
|
$attr = 'checked="checked"';
|
|
$count++;
|
|
}
|
|
}
|
|
|
|
$checks .= "<li><input type='checkbox' id='tech_".$rs[$i]['id']."' value=\"".$rs[$i]['id']."\" ".$attr." onclick=\"session_set_array( 'agenda,idtecnici', '".$rs[$i]['id']."' ); $('#calendar').fullCalendar('refetchEvents'); update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length );\"> <label for='tech_".$rs[$i]['id']."'> ".$rs[$i]['ragione_sociale']."</label></li>\n";
|
|
|
|
$allchecktecnici .= "session_set_array( 'agenda,idtecnici', '".$rs[$i]['id']."', 0 ); ";
|
|
|
|
}
|
|
|
|
// TECNICI ELIMINATI
|
|
$rs = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale 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 WHERE deleted=1 AND descrizione='Tecnico' ORDER BY ragione_sociale ASC");
|
|
$total = sizeof($rs);
|
|
|
|
$totale_tecnici += $total;
|
|
|
|
if( $total>0 ){
|
|
$checks .= "<li><hr>Tecnici eliminati:</li>\n";
|
|
for( $i=0; $i<sizeof($rs); $i++ ){
|
|
$attr = '';
|
|
|
|
foreach( $_SESSION['agenda']['idtecnici'] as $idx => $val ){
|
|
if( $val == "'".$rs[$i]['id']."'" ){
|
|
$attr = 'checked="checked"';
|
|
$count++;
|
|
}
|
|
}
|
|
|
|
$checks .= "<li><input type='checkbox' id='tech_".$rs[$i]['id']."' value=\"".$rs[$i]['id']."\" ".$attr." onclick=\"session_set_array( 'agenda,idtecnici', '".$rs[$i]['id']."' ); $('#calendar').fullCalendar('refetchEvents'); update_counter( 'idtecnici_count', $('#idtecnici_ul').find('input:checked').length );\"> <label for='tech_".$rs[$i]['id']."'> ".$rs[$i]['ragione_sociale']."</label></li>\n";
|
|
|
|
$allchecktecnici .= "session_set_array( 'agenda,idtecnici', '".$rs[$i]['id']."', 0 ); ";
|
|
|
|
} // end for
|
|
} // end if
|
|
|
|
|
|
if( $count == $totale_tecnici ){
|
|
$class = "btn-success";
|
|
}
|
|
|
|
else if( $count == 0 ){
|
|
$class = "btn-danger";
|
|
}
|
|
else{
|
|
$class = "btn-warning";
|
|
}
|
|
|
|
if ($totale_tecnici==0)
|
|
$class = "btn-primary disabled";
|
|
|
|
?>
|
|
<div class="dropdown col-md-3">
|
|
<a class="btn <?php echo $class ?> btn-block" data-toggle="dropdown" href="javascript:;" id="idtecnici_count"><i class="fa fa-filter"></i> Operatore (<?php echo $count."/".$totale_tecnici ?>) <i class="caret"></i></a>
|
|
|
|
<ul class="dropdown-menu" role="menu" id="idtecnici_ul">
|
|
<?php echo $checks ?>
|
|
<div class="btn-group pull-right">
|
|
<button id="selectalltecnici" onclick="<?php echo $allchecktecnici; ?>" class="btn btn-primary btn-xs" type="button"><?php echo _("Tutti"); ?></button>
|
|
<button id="deselectalltecnici" class="btn btn-danger btn-xs" type="button"><?php echo _("×"); ?></button>
|
|
</div>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<br>
|
|
|
|
|
|
<div id="calendar"></div>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
create_calendar();
|
|
});
|
|
|
|
function create_calendar(){
|
|
var calendar = $('#calendar').fullCalendar({
|
|
monthNames: ['<?php echo _("Gennaio") ?>','<?php echo _("Febbraio") ?>','<?php echo _("Marzo") ?>','<?php echo _("Aprile") ?>','<?php echo _("Maggio") ?>','<?php echo _("Giugno") ?>','<?php echo _("Luglio") ?>','<?php echo _("Agosto") ?>','<?php echo _("Settembre") ?>','<?php echo _("Ottobre") ?>','<?php echo _("Novembre") ?>','<?php echo _("Dicembre") ?>'],
|
|
monthNamesShort: ['<?php echo _("gen") ?>','<?php echo _("feb") ?>','<?php echo _("mar") ?>','<?php echo _("apr") ?>','<?php echo _("mag") ?>','<?php echo _("giu") ?>','<?php echo _("lug") ?>','<?php echo _("ago") ?>','<?php echo _("set") ?>','<?php echo _("ott") ?>','<?php echo _("nov") ?>','<?php echo _("dic") ?>'],
|
|
dayNames: ['<?php echo _("Domenica") ?>','<?php echo _("Lunedì") ?>','<?php echo _("Martedì") ?>','<?php echo _("Mercoledì") ?>','<?php echo _("Giovedì") ?>','<?php echo _("Venerdì") ?>','<?php echo _("Sabato") ?>'],
|
|
dayNamesShort: ['<?php echo _("Dom") ?>','<?php echo _("Lun") ?>','<?php echo _("Mar") ?>','<?php echo _("Mer") ?>','<?php echo _("Gio") ?>','<?php echo _("Ven") ?>','<?php echo _("Sab") ?>'],
|
|
firstDay: 1,
|
|
<?php if( get_var("Visualizzare la domenica sul calendario") == "0" ){ ?>
|
|
hiddenDays: [ 0 ],
|
|
<?php } ?>
|
|
buttonText: {
|
|
today: '<?php echo _("Oggi") ?>',
|
|
day: '<?php echo _("Giorno") ?>',
|
|
week:'<?php echo _("Settimana") ?>',
|
|
month:'<?php echo _("Mese") ?>'
|
|
},
|
|
titleFormat: {
|
|
month: "MMMM YYYY",
|
|
week: "D MMMM YYYY",
|
|
day: "D MMMM YYYY"
|
|
},
|
|
columnFormat: {
|
|
month: "ddd",
|
|
week: "ddd D/M",
|
|
day: "dddd D MMMM"
|
|
},
|
|
header: {
|
|
left: 'prev,next today',
|
|
center: 'title',
|
|
right: 'month,agendaWeek,agendaDay'
|
|
},
|
|
timeFormat: 'H:mm\n',
|
|
slotDuration: '00:15:00',
|
|
<?php if( get_var("Vista agenda") == "mese" ){ ?>
|
|
defaultView: 'month',
|
|
<?php }elseif( get_var("Vista agenda") == "giorno" ){ ?>
|
|
defaultView: 'agendaDay',
|
|
<?php }else{ ?>
|
|
defaultView: 'agendaWeek',
|
|
<?php } ?>
|
|
<?php if( get_var("Abilitare orario lavorativo") == "1" ){ ?>
|
|
minTime: '08:00:00',
|
|
maxTime: '20:00:00',
|
|
<?php } ?>
|
|
axisFormat: "H:mm",
|
|
selectable: true,
|
|
selectHelper: true,
|
|
editable: true,
|
|
eventLimit: false, // allow "more" link when too many events
|
|
allDaySlot: false,
|
|
select: function(start, end, allDay) {
|
|
data = moment(start).format("YYYY-MM-DD");
|
|
ora_dal = moment(start).format("HH:mm");
|
|
ora_al = moment(end).format("HH:mm");
|
|
|
|
<?php
|
|
if( $modules_info[$module_name]["permessi"] == 'rw' ){
|
|
?>
|
|
launch_modal( 'Aggiungi', '<?php echo $rootdir ?>/add.php?id_module=<?php echo $modules_info['Agenda']['id'] ?>&ref=agenda&data='+data+'&orario_inizio='+ora_dal+'&orario_fine='+ora_al, 1 );
|
|
<?php
|
|
}
|
|
?>
|
|
|
|
$('#calendar').fullCalendar('unselect');
|
|
},
|
|
events: {
|
|
url: "<?php echo $rootdir ?>/modules/agenda_calendar/ajaxreq.php?op=get_current_month",
|
|
type: 'GET',
|
|
error: function() {
|
|
alert('Errore durante la creazione degli eventi.');
|
|
}
|
|
},
|
|
eventResize: function(event,dayDelta,minuteDelta,revertFunc) {
|
|
$.get("<?php echo $rootdir ?>/modules/agenda_calendar/ajaxreq.php?op=update_intervento&id="+event.id+"&timeStart="+moment(event.start).format("YYYY-MM-DD HH:mm")+"&timeEnd="+moment(event.end).format("YYYY-MM-DD HH:mm"), function(data,response){
|
|
if( response=="success" ){
|
|
data = $.trim(data);
|
|
if( data!="ok" ){
|
|
alert( data );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
revertFunc();
|
|
}
|
|
else{
|
|
//$('#calendar').fullCalendar('refetchEvents');
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
},
|
|
eventDrop: function(event,dayDelta,minuteDelta,revertFunc) {
|
|
$.get("<?php echo $rootdir ?>/modules/agenda_calendar/ajaxreq.php?op=update_intervento&id="+event.id+"&timeStart="+moment(event.start).format("YYYY-MM-DD HH:mm")+"&timeEnd="+moment(event.end).format("YYYY-MM-DD HH:mm"), function(data,response){
|
|
if( response=="success" ){
|
|
data = $.trim(data);
|
|
if( data!="ok" ){
|
|
alert( data );
|
|
$('#calendar').fullCalendar('refetchEvents');
|
|
revertFunc();
|
|
}
|
|
else{
|
|
//$('#calendar').fullCalendar('refetchEvents');
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
},
|
|
eventAfterRender : function(event, element) {
|
|
//alert(element.find('.fc-event-title').html();
|
|
element.find('.fc-title').html(event.title);
|
|
<?php if( get_var("Utilizzare i tooltip sul calendario") == "1" ){ ?>
|
|
$.get("<?php echo $rootdir ?>/modules/agenda_calendar/ajaxreq.php?op=get_more_info&id="+event.id+"&timeStart="+moment(event.start).format("YYYY-MM-DD HH:mm")+"&timeEnd="+moment(event.end).format("YYYY-MM-DD HH:mm"), function(data,response){
|
|
if( response=="success" ){
|
|
data = $.trim(data);
|
|
if( data!="ok" ){
|
|
element.tooltipster({
|
|
content: $(''+data+''),
|
|
animation: 'grow',
|
|
contentAsHTML: true,
|
|
hideOnClick: true,
|
|
onlyOne: true,
|
|
speed: 200,
|
|
delay: 100,
|
|
maxWidth: 400,
|
|
theme: 'tooltipster-shadow',
|
|
touchDevices: true,
|
|
trigger: 'hover',
|
|
position: 'left'
|
|
});
|
|
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
<?php } ?>
|
|
}
|
|
});
|
|
}
|
|
</script>
|