cml04-mediciones/assets/js/reporting.js

97 lines
2.8 KiB
JavaScript
Raw Permalink Normal View History

2024-08-20 09:11:15 +02:00
$(document).ready(function () {
// carga las fechas por defecto
CargaFechas();
});
function Report() {
// form data
const formData = $("#report_form").serialize();
$.ajax({
url: "/report/get",
type: "POST",
data: formData,
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
},
xhrFields: {
// make sure the response knows we're expecting a binary type in return.
// this is important, without it the excel file is marked corrupted.
responseType: 'arraybuffer'
}
}).done(function (data, status, xmlHeaderRequest) {
var downloadLink = document.createElement('a');
var blob = new Blob([data],
{
type: xmlHeaderRequest.getResponseHeader('Content-Type')
});
var url = window.URL || window.webkitURL;
var downloadUrl = url.createObjectURL(blob);
var fileName = 'mediciones' + '.xls';
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(blob, fileName);
} else {
if (fileName) {
if (typeof downloadLink.download === 'undefined') {
window.location = downloadUrl;
} else {
downloadLink.href = downloadUrl;
downloadLink.download = fileName;
document.body.appendChild(downloadLink);
downloadLink.click();
}
} else {
window.location = downloadUrl;
}
setTimeout(function () {
url.revokeObjectURL(downloadUrl);
},
100);
}
});
}
function CargaFechas() {
// Calcula la fecha del día actual a las 6:00:00 de la mañana
var today = new Date();
today.setHours(6);
today.setMinutes(0);
today.setSeconds(0);
var dateTime1 = today;
// Calcula la fecha del día anterior a las 6:00:00 de la mañana
var yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
yesterday.setHours(6);
yesterday.setMinutes(0);
yesterday.setSeconds(0);
var dateTime2 = yesterday;
// Selecciona los campos input de tipo datetime-local
var dateTimeInput1 = $("#fecha-inicio");
var dateTimeInput2 = $("#fecha-final");
// Rellena el primer campo con la fecha del día actual a las 6:00:00 de la mañana
dateTimeInput2.val(dateTime1.toISOString().split("T")[0] + "T" + dateTime1.toTimeString().split(" ")[0]);
// Rellena el segundo campo con la fecha del día anterior a las 6:00:00 de la mañana
dateTimeInput1.val(dateTime2.toISOString().split("T")[0] + "T" + dateTime2.toTimeString().split(" ")[0]);
}