productionScheduler - action time

This commit is contained in:
Michał Zieliński
2025-09-19 12:53:21 +02:00
parent 21bd1807f3
commit c447558d2a
3 changed files with 62 additions and 4 deletions

View File

@@ -67,12 +67,14 @@ $(document).ready(function () {
$("#selectAll").attr('checked', false);
$(".allCheck").prop('checked', false);
localStorage.setItem("productionSchedule_filter", $.tablesorter.getFilters($("#allTable")));
updateTimeSummary();
});
$("#allTable").bind("sortEnd", function () {
try {
localStorage.setItem('productionSchedule_sort',
$("#allTable")[0].config.sortList[0][0] + "|" + $("#allTable")[0].config.sortList[0][1]);
} catch (e) {}
updateTimeSummary();
});
setTimeout(() => {
const filters = localStorage.getItem("productionSchedule_filter");
@@ -98,6 +100,7 @@ $(document).ready(function () {
} else {
$(".allCheck").prop("checked", false);
}
updateTimeSummary();
});
$("#duplicateBtn").click(() => duplicatePositions());
$("#deleteBtn").click(() => { removePositions(); });
@@ -105,6 +108,9 @@ $(document).ready(function () {
$("#pdfBtn").click(() => { exportPDF(); });
$("#productionBtn").click(() => { window.alert("In progress."); });
$("#createInsideOrder").click(createInsideOrder);
$(document).on('change', '.allCheck', function() {
updateTimeSummary();
});
});
function SetTab(tab_name) {
@@ -401,7 +407,6 @@ function createInsideOrder() {
$("#insideOrderProducts").val(products.join('*'));
$("#createInsideOrderForm").submit();
}
function downloadFile(base64Data, fileName, mimeType) {
// Stwórz blob z danych base64
const byteCharacters = atob(base64Data);
@@ -436,3 +441,38 @@ function downloadFile(base64Data, fileName, mimeType) {
window.URL.revokeObjectURL(link.href);
}, 100);
}
function updateTimeSummary() {
var totalMinutes = 0;
var rows;
var checkedBoxes = $('.allCheck:checked');
if (checkedBoxes.length > 0) {
rows = checkedBoxes.closest('tr');
} else {
rows = $('#allTable tbody tr:visible');
}
rows.each(function() {
var actionTimeCell = $(this).find('td').eq(17);
var timeText = actionTimeCell.text().trim();
if (timeText && timeText.includes(':')) {
var timeParts = timeText.split(':');
if (timeParts.length === 2) {
var hours = parseInt(timeParts[0], 10) || 0;
var minutes = parseInt(timeParts[1], 10) || 0;
totalMinutes += (hours * 60) + minutes;
}
}
});
var totalHours = Math.floor(totalMinutes / 60);
var remainingMinutes = totalMinutes % 60;
var formattedTime = String(totalHours).padStart(2, '0') + ':' +
String(remainingMinutes).padStart(2, '0');
$('#timeSummary').html(formattedTime);
return formattedTime;
}