//const employee = require("../../models/employee");
function convertMinsToHrsMins(minutes) {
var h = Math.floor(minutes / 60);
var m = minutes % 60;
h = h < 10 ? '0' + h : h;
m = m < 10 ? '0' + m : m;
return h + ':' + m;
}
// Táblázat sorainak generálása
function renderWorkingTimesTable(wtList)
{
$('#monthHoursTable > tbody').empty();
var weekendCol;
var color='#64b4da';
$.each(wtList,function(i,wt){
if (wt.weekends>0)
{
weekendCol='
'+wt.weekends;
}
else
{
weekendCol=' | '+wt.weekend.days;
}
var newRow = $(' | "');
if (wt.isStudent==='on')
{
newRow.append('| '+(i+1)+
' | '+wt.name+
' | '+wt.vacationYear+' / '+wt.vacationUsed+
weekendCol+
' | '+wt.redLetterDays+
' | '+wt.state+
' | '+wt.device+
' | '+wt.location+
' | '+convertMinsToHrsMins(wt.month.fullHours)+//workHours)+
' | ');
} else
{
if (wt.isSubcontractor==='on')
{
newRow.append(''+(i+1)+
' | '+wt.name+
' | '+wt.vacationYear+' / '+wt.vacationUsed+
weekendCol+
' | '+wt.redLetterDays+
' | '+wt.state+
' | '+wt.device+
' | '+wt.location+
' | '+convertMinsToHrsMins(wt.month.fullHours)+//workHours)+
' | ');
}
else
if (wt.isSubcontractor===null || wt.isSubcontractor==='off')
{
newRow.append(''+(i+1)+
' | '+wt.name+
' | '+wt.vacationYear+' / '+wt.vacationUsed+
weekendCol+
' | '+wt.redLetterDays+
' | '+wt.state+
' | '+wt.device+
' | '+wt.location+
' | '+convertMinsToHrsMins(wt.month.fullHours)+//workHours)+
' | ');
}
}
$('#monthHoursTable > tbody:last-child').append (newRow);
})
}
// Ellenőrzi, hogy a tömb tartalmazza e az adott elemet, ha igen true-vel visszatér
var contains = function(needle) {
// Per spec, the way to identify NaN is that it is not equal to itself
var findNaN = needle !== needle;
var indexOf;
if(!findNaN && typeof Array.prototype.indexOf === 'function') {
indexOf = Array.prototype.indexOf;
} else {
indexOf = function(needle) {
var i = -1, index = -1;
for(i = 0; i < this.length; i++) {
var item = this[i];
if((findNaN && item !== item) || item === needle) {
index = i;
break;
}
}
return index;
};
}
return indexOf.call(this, needle) > -1;
};
// Táblázat sorainak generálása jelenléti ív részletes egy munkavállalóra egy havi
function renderWorkingTimesTableDetailed(wtList)
{
var monthWorkHours=0;
var workDays=[];
var weekendDays=[];
var overTime=0;
$('#monthHoursTableDetails > tbody').empty();
$.each(wtList,function(i,wt){
var newRow = $('
"');
var day = moment(wt.date,'YYYY.MM.DD.').day();
var color='#64b4da';
var isWeekend = (day === 6) || (day === 0); // 6 = Saturday, 0 = Sunday
var ot= 0;
overTime='-';
if (wt.isHoliday===false)
{
if (isWeekend)
{
// Ha hétvége wt.date;wt.workhours;wt.timeArrive;wt.timeGetaway;wt.location
color='#FB667A';
if (!contains.call(weekendDays,wt.date))
{
weekendDays.push(wt.date);
}
}
else
{
monthWorkHours+= wt.workHours
// Ha hétköznap
wdays=workDays.find(e=>e.date===wt.date);
if (wdays)
{
wdays.hours+=wt.workHours;
wdays.start.push(wt.timeArrive);
wdays.stop.push(wt.timeGetaway);
if (wdays.hours>540) wdays.overtime=wdays.hours-540;
}
else
{
//if (wt.workHours>540) ot=convertMinsToHrsMins((wt.workHours-540));
if (wt.workHours>540) ot=(wt.workHours-540);
workDays.push({date:wt.date,start:[wt.timeArrive],stop:[wt.timeGetaway],hours:wt.workHours,overtime:ot});
}
}
if (wt.timeGetaway==='-')
{
wt.timeGetaway=wt.timeGetaway;
}
else
{
wt.timeGetaway=moment(wt.timeGetaway,'YYYY.MM.DD. HH:mm').format('HH:mm');
}
//if (wt.workHours>540) overTime=convertMinsToHrsMins((wt.workHours-540));
//if (wdays.hours>540) overTime=convertMinsToHrsMins((wdays.hours-540));
newRow.append(
'| '+moment(wt.timeArrive,'YYYY.MM.DD. HH:mm').format('DD')+
' | '+moment(wt.timeArrive,'YYYY.MM.DD. HH:mm').format('dddd')+
' | '+wt.location+
' | '+moment(wt.timeArrive,'YYYY.MM.DD. HH:mm').format('HH:mm')+
' | '+wt.timeGetaway+
//' | '+convertMinsToHrsMins(wt.workHours)+
' | '+convertMinsToHrsMins(wt.workHours)+
' | '+overTime+
' | '+wt.notes+
' | ');
}
if (wt.isHoliday===true)
{
newRow.append(
''+moment(wt.timeArrive,'YYYY.MM.DD. HH:mm').format('DD')+
' | '+moment(wt.date,'YYYY.MM.DD. HH:mm').format('dddd')+
' | ----'+
' | --:--'+
' | --:--'+
//' | '+convertMinsToHrsMins(wt.workHours)+
' | 0:00'+
' | 0:00'+
' | Szabadság'+
' | ');
}
$('#monthHoursTableDetails > tbody:last-child').append (newRow);
document.getElementById('weekendsCount').value=weekendDays.length;
})
// személyi adatok lekérése
var uid=document.getElementById('uid').textContent;
$.get('/employee/persondata/'+uid, function(employee) {
document.getElementById('vacations').value=employee.vacationYear+' / '+employee.vacationUsed;
});
// Túlórák számítása
var overTime=0;
workDays.forEach(element => {
if(element.hours>540)
{
overTime+=(element.hours-540);
}
else
{
// monthWorkHours+=element.hours;
}
});
document.getElementById('weekDayFullHours').value=workDays.length;
document.getElementById('weekHourWork').value=convertMinsToHrsMins(monthWorkHours);
document.getElementById('overTime').value=convertMinsToHrsMins(overTime);
}
// Táblázat sorainak generálása jelenléti ív részletes egy munkavállalóra egy havi
function renderWorkingTimesTableDetailed2(wtList)
{
var monthWorkHours=wtList.monthWorkHours;
var workDays=[];
var weekendDays=[];
var monthOverTime=wtList.monthOverTime;
var fullWorkHoursMonth=wtList.monthWorkHours+wtList.monthOverTime;
var hol=0;
var modifyColumn='';
$('#print2').data('key',wtList.wd);
var getBackMyJSON = $('#print2').data('key');
console.log(getBackMyJSON);
$('#monthHoursTableDetails > tbody').empty();
$('#monthSumTable > tbody').empty();
$.each(wtList.wd,function(idx,wt){
var arrives="";
var getaways="";
var locs="";
var newRow = $('
"');
//var newRow = '
';$('
"');
var day = moment(wt.date,'YYYY.MM.DD.').day();
var color='#64b4da';
var isWeekend = (day === 6) || (day === 0); // 6 = Saturday, 0 = Sunday
var ot= 0;
var drName='';
var drShift='';
var notes="";
//var companyNotes="";
/* if (wt.dailyReport==='')
{
drName='';
drShift='';
}
else
{
drShift='';
//drShift='
';
$.each(wt.dailyReport,function(i,drs){
drShift+='
';
drName+=''+i+' '+drs.name+'
';
})
}*/
//overTime='-';
if (wt.isHoliday===false)
{
if (wt.dailyReport==='')
{
drName='';
drShift='';
}
else
{
drShift='';
//drShift='
';
$.each(wt.dailyReport,function(i,drs){
drShift+='
';
drName+=''+i+' '+drs.name+'
';
})
}
if (wt.isWeekend)
{
// Ha hétvége
color='#FB667A';
}
//document.getElementById("modifyColumn").rowSpan = wt.startStop.length;
/*if (wt.startStop.length>1)
{
modifyColumn='';// | ';
}
else
{*/
modifyColumn=' | ';
deleteColumn=' | ';
//}
$.each(wt.startStop,function(i,interval){//
arrives+=moment(interval.start,'YYYY.MM.DD. HH:mm').format('HH:mm')+" ";
/* if (wt.state=='ENDED')
//if (wtList.wd.length>idx+1)
{
}*/
if (interval.stop==='-')
{
modifyColumn+='';
deleteColumn+='';
getaways+="-";
}
else
{
modifyColumn+='';
deleteColumn+='';
getaways+=moment(interval.stop,'YYYY.MM.DD. HH:mm').format('HH:mm')+" ";
}
})
$.each(wt.locations,function(i,loc){
if (loc.arriveCoords.lat!='N/A' && loc.arriveCoords.lat!=null)
{
locs+=""+loc.arriveLoc+""+" - ";// +""+loc.getawayLoc+""+" ";
}
else
{
locs+=loc.arriveLoc +' - ';// +loc.getawayLoc+" ";
}
if (loc.getavayCoords.lat!='N/A' && loc.getavayCoords.lat!=null)
{
locs+=""+loc.getawayLoc+""+" ";
}
else
{
locs+=loc.getawayLoc+" ";
}
//'a(href="/articles/"+article._id+"/"+work._id)='+loc.arriveLoc
})//arriveCoords
$.each(wt.notes,function(i,note){
notes+=''+note.userNote+''+ ' '+note.companyNote+' '
})
newRow.append(
' | '+moment(wt.date,'YYYY.MM.DD. HH:mm').format('DD')+' | '+
''+moment(wt.date,'YYYY.MM.DD. HH:mm').format('dddd')+' | '+
''+drName+locs+''+' | '+//wt.location+
''+drShift+arrives+' | '+//moment(wt.timeArrive,'YYYY.MM.DD. HH:mm').format('HH:mm')+
''+drShift+getaways+' | '+
modifyColumn+
deleteColumn+
//''+convertMinsToHrsMins(wt.workHours)+
' | '+drShift+convertMinsToHrsMins(wt.hours)+' | '+
''+drShift+convertMinsToHrsMins(wt.overTime)+' | '+
//''+wt.notes+''+ ' '+wt.companyNotes+''+' | '
''+notes+' | '
);
}
else
{
if (wt.isHoliday===true)
{
hol++;
newRow.append(
''+moment(wt.date,'YYYY.MM.DD. HH:mm').format('DD')+
' | '+moment(wt.date,'YYYY.MM.DD. HH:mm').format('dddd')+
' | ---- '+//wt.location+
' | --:-- '+//moment(wt.timeArrive,'YYYY.MM.DD. HH:mm').format('HH:mm')+
' | --:--'+
' | '+
' | '+
//' | '+convertMinsToHrsMins(wt.workHours)+
' | --:--'+
' | --:--'+
' | Szabadság'+
' | ');
}
}
$('#monthHoursTableDetails > tbody:last-child').append (newRow);
// document.getElementById('weekendsCount').value=wtList.weekend.days;//weekendDays.length;
})
// személyi adatok lekérése
var uid=document.getElementById('uid').textContent;
$.get('/employee/persondata/'+uid, function(employee) {
if (employee.isSubcontractor===null)
{
document.getElementById('vacations').value=(employee.vacationYear-employee.vacationUsed);
document.getElementById('vacationsY').value=employee.vacationYear;
document.getElementById('munkaszunet').value=wtList.munkaszunet.length;
newRow=$('
"'+
'| Munkaszüneti napokra elszámolt órák: '+' | '+
' '+convertMinsToHrsMins((wtList.munkaszunet.length*480))+' | '+
' --:--'+' | '+
' '+convertMinsToHrsMins((wtList.munkaszunet.length*480))+' | '+
' -'+' | '+
' '+convertMinsToHrsMins((wtList.munkaszunet.length*480))+' | '+
'"
'+
'"'+
'| Szabadságra elszámolt órák: '+' | '+
' '+convertMinsToHrsMins((hol*480))+' | '+
' --:--'+' | '+
' '+convertMinsToHrsMins((hol*480))+' | '+
' -'+' | '+
' '+convertMinsToHrsMins((hol*480))+' | '+
'"
'+
'"'+
'| Munkanapok: '+' | '+
' '+convertMinsToHrsMins(wtList.month.workHours)+' | '+
' '+convertMinsToHrsMins(wtList.month.overTime)+' | '+
' '+convertMinsToHrsMins(wtList.month.fullWorkHours)+' | '+
' -'+' | '+
' '+convertMinsToHrsMins(wtList.month.fullWorkHours)+' | '+
'"
'+
'"'+
'| Szombat: '+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Saturday.workHours)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Saturday.overTime)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Saturday.fullWorkHours)+' | '+
' 50%'+' | '+
' '+convertMinsToHrsMins((wtList.weekend.Saturday.fullWorkHours*1.5))+' | '+
'"
'+
'"'+
'| Vasárnap: '+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Sunday.workHours)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Sunday.overTime)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Sunday.fullWorkHours)+' | '+
' 100%'+' | '+
' '+convertMinsToHrsMins((wtList.weekend.Sunday.fullWorkHours*2))+' | '+
'"
'+
'"'+
'| Összesen: '+' | '+
' '+convertMinsToHrsMins(wtList.month.workHours+
wtList.weekend.Saturday.workHours+
wtList.weekend.Sunday.workHours+
(wtList.munkaszunet.length*480)+
(hol*480)
)+' | '+
' '+convertMinsToHrsMins(wtList.month.overTime+
wtList.weekend.Saturday.overTime+
wtList.weekend.Sunday.overTime
)+' | '+
' '+convertMinsToHrsMins(wtList.month.fullWorkHours+
wtList.weekend.Saturday.fullWorkHours+
wtList.weekend.Sunday.fullWorkHours+
(wtList.munkaszunet.length*480)+
(hol*480)
)+' | '+
''+' | '+
' '+convertMinsToHrsMins(wtList.month.fullWorkHours+
(wtList.weekend.Saturday.fullWorkHours*1.5)+
(wtList.weekend.Sunday.fullWorkHours*2)+
(wtList.munkaszunet.length*480)+
(hol*480)
)+' | '+
'"
'
);
}
else
{ // Vállalkozó
newRow=$(
'"'+
'| Munkanapok: '+' | '+
' '+convertMinsToHrsMins(wtList.month.workHours)+' | '+
' '+convertMinsToHrsMins(wtList.month.overTime)+' | '+
' '+convertMinsToHrsMins(wtList.month.fullWorkHours)+' | '+
//' -'+' | '+
//' '+convertMinsToHrsMins(wtList.month.fullWorkHours)+' | '+
'"
'+
'"'+
'| Szombat: '+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Saturday.workHours)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Saturday.overTime)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Saturday.fullWorkHours)+' | '+
//' 50%'+' | '+
//' '+convertMinsToHrsMins((wtList.weekend.Saturday.fullWorkHours*1.5))+' | '+
'"
'+
'"'+
'| Vasárnap: '+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Sunday.workHours)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Sunday.overTime)+' | '+
' '+convertMinsToHrsMins(wtList.weekend.Sunday.fullWorkHours)+' | '+
//' 100%'+' | '+
//' '+convertMinsToHrsMins((wtList.weekend.Sunday.fullWorkHours*2))+' | '+
'"
'+
'"'+
'| Összesen: '+' | '+
' '+convertMinsToHrsMins(wtList.month.workHours+
wtList.weekend.Saturday.workHours+
wtList.weekend.Sunday.workHours
)+' | '+
' '+convertMinsToHrsMins(wtList.month.overTime+
wtList.weekend.Saturday.overTime+
wtList.weekend.Sunday.overTime
)+' | '+
' '+convertMinsToHrsMins(wtList.month.fullWorkHours+
wtList.weekend.Saturday.fullWorkHours+
wtList.weekend.Sunday.fullWorkHours
)+' | '+
//''+' | '+
/*' '+convertMinsToHrsMins(wtList.month.fullWorkHours+
(wtList.weekend.Saturday.fullWorkHours*1.5)+
(wtList.weekend.Sunday.fullWorkHours*2)
)+' | '*/+
'"
'
);
}
$('#monthSumTable > tbody:last-child').append (newRow);
});
}
$("#monthHoursTable").on('click','tr',function(ev) {
//console.log($(this).attr("data-href"));
document.location = $(this).attr("data-href");
});