43 lines
1.7 KiB
JavaScript
43 lines
1.7 KiB
JavaScript
$(document).ready(function()
|
|
{
|
|
$('#begin, #start, #end, #finish').change(function()
|
|
{
|
|
var begin = $('#begin').val();
|
|
var end = $('#end').val();
|
|
var start = $('#start').val();
|
|
var finish = $('#finish').val();
|
|
if(!begin || !end || !start || !finish) return false;
|
|
|
|
begin = begin.replace(/-/g, '/');
|
|
end = end.replace(/-/g, '/');
|
|
|
|
var hours = 0;
|
|
var beginTime = Date.parse(new Date(begin + ' ' + start));
|
|
var endTime = Date.parse(new Date(end + ' ' + finish));
|
|
if(beginTime > endTime) return false;
|
|
|
|
if(begin == end)
|
|
{
|
|
hours = Math.round((endTime - beginTime)/(3600*1000)*100)/100;
|
|
if(hours > workingHours) hours = parseFloat(workingHours);
|
|
}
|
|
else
|
|
{
|
|
var signOutTime = Date.parse(new Date(begin + ' ' + signOut));
|
|
var signInTime = Date.parse(new Date(end + ' ' + signIn));
|
|
var hoursStart = 0;
|
|
var hoursEnd = 0;
|
|
var hoursContent = 0;
|
|
if(beginTime < signOutTime) hoursStart = Math.round((signOutTime - beginTime)/(3600*1000)*100)/100;
|
|
if(endTime > signInTime) hoursEnd = Math.round((endTime - signInTime)/(3600*1000)*100)/100;
|
|
if(workingHours && hoursStart > workingHours) hoursStart = parseFloat(workingHours);
|
|
if(workingHours && hoursEnd > workingHours) hoursEnd = parseFloat(workingHours);
|
|
var days = Math.floor((Date.parse(new Date(end)) - Date.parse(new Date(begin)))/(24*3600*1000));
|
|
if(days > 1) hoursContent = (days - 1) * workingHours;
|
|
|
|
hours = hoursStart + hoursEnd + hoursContent;
|
|
}
|
|
$('#hours').val(hours);
|
|
});
|
|
})
|