diff --git a/routes/employee.js b/routes/employee.js index ef75153..cf31983 100644 --- a/routes/employee.js +++ b/routes/employee.js @@ -2310,7 +2310,50 @@ router.delete('/holidays_delete/:uid/:hid',utils.ensureAuthenticated,function(re }) }) +// Szabadság kiadás full calendar +router.post('/holidays_byperson_fc/:id', utils.ensureAuthenticated,function(req,res){ + console.log(req.params.id); + console.log(req.body); + moment.locale('HU'); + let startd = moment(req.body.sField, 'DD.MM.YYYY'); //Pick any format + let endd = moment(req.body.eField, 'DD.MM.YYYY'); + let weekdayCounter = 0; + while (startd <= endd) { + console.log(startd.format('ddd')); + // if (startd.format('ddd') !== 'szo' && startd.format('ddd') !== 'vas'){ + weekdayCounter++; //add 1 to your counter if its not a weekend day + //} + startd = moment(startd, 'DD.MM.YYYY').add(1, 'days'); //increment by one day + } + console.log("Hétköznapok",weekdayCounter); //display your total elapsed weekdays in the console! + + let hd ={ + start_date: req.body.sField, + end_date: req.body.eField, + + duration: weekdayCounter, + + }; + //hd.id=hd._id; + Employee.findByIdAndUpdate(req.params.id,{ $inc: {'vacationUsed': weekdayCounter },$push: {holidayData:hd}},function(error,success){ + if (error) { + console.log(error); + res.setHeader('Content-Type', 'application/json'); + res.send({'response':'Fail','message':'Sikertelen művelet!'}); + } else { + console.log(success); + sendEmailHolidayNotify(success.name,success.email,hd); + //res.redirect('/employee/holidays_byperson/'+req.params.id); + res.setHeader('Content-Type', 'application/json'); + res.send({'response':'OK','message':'A szabadság sikeresen kiírva!'}); + + } + }); + + }); + +// Szabadság kiadás régi router.post('/holidays_byperson/:id', utils.ensureAuthenticated,function(req,res){ console.log(req.params.id); console.log(req.body); diff --git a/views/employee_holidays_byperson.pug b/views/employee_holidays_byperson.pug index e6f6239..bf27b34 100644 --- a/views/employee_holidays_byperson.pug +++ b/views/employee_holidays_byperson.pug @@ -32,6 +32,7 @@ block content button.btn.btn-primary(type='submit') Rendben br label#uid(style='display:none;') #{employee._id} + label#uname(style='display:none;') #{employee.name} .container(style='width:95%') .panel.panel-primary(style='width:95%') @@ -158,6 +159,7 @@ block content // Calendar var calendarEl = document.getElementById('calendar'); var empId = document.getElementById('uid') + var empname = document.getElementById('uname').textContent const year=+moment().format("YYYY") var calendar = new FullCalendar.Calendar(calendarEl, { @@ -174,8 +176,92 @@ block content nextDayThreshold: "01:00:00", displayEventTime: false, editable: true, + selectable: true, eventStartEditable:true, eventDurationEditable:true, + select: async function (start, end, allDay) { + var vacationLeft = document.getElementById('vacationLeft').value + + var a = moment(start.start); + var b = moment(start.end); + b= b.subtract(1,'days') + var duration = b.diff(a, 'days')+1 + if (duration>vacationLeft) + { + Swal.fire({ + position: "top-end", + icon: "warning", + title: 'Nincs ennyi szabid!\n'+duration+' nap', + showConfirmButton: false, + timer: 1500 + }); + calendar.unselect(); + } + else { + + + const result= await Swal.fire( + { + title: "Biztosan kiadja a szabadságot? "+moment(a).format('YYYY.MM.DD')+" - "+moment(b).format('YYYY.MM.DD'), + text: "A szabadság kiadásáról "+empname+" e-mail értesítést fog kapni.", + icon: "question", + showDenyButton: true, + confirmButtonText: 'Igen', + denyButtonText: 'Nem', + customClass: { + actions: 'my-actions', + confirmButton: 'order-2', + denyButton: 'order-3', + }, + } + ); + if (result.isConfirmed) + { + //console.log("Event ID: "+eventDropInfo.event.id) + //console.log("Event Before Drop\n"+eventDropInfo.oldEvent.start+'-'+eventDropInfo.oldEvent.end) + //console.log("Event After Drop\n"+eventDropInfo.event.start+'-'+eventDropInfo.event.end) + const response = await fetch("/employee/holidays_byperson_fc/"+empId.textContent, + { + headers: { + "Content-Type": "application/json", + }, + method: "POST", + body: JSON.stringify({ sField: moment(a).format('DD.MM.YYYY'),eField: moment(b).format('DD.MM.YYYY')}), + }); + const data = await response.json(); + if (!response.ok) + { + Swal.fire('Error', '', 'error') + } + if (data.response="OK") + { + + Swal.fire({ + position: "top-end", + icon: "success", + title: data.message, + showConfirmButton: false, + timer: 1500 + }); + //Swal.fire('Saved!', '', 'success') + } + + } + else + if (result.isDenied) + { + //Swal.fire('Changes are not saved', '', 'info') + Swal.fire({ + position: "top-end", + icon: "info", + title: 'Nem történt változtatás', + showConfirmButton: false, + timer: 1500 + }); + calendar.unselect(); + } + } + }, views: { multiMonthFourMonth: { type: 'multiMonth', diff --git a/views/layout_vehicles.pug b/views/layout_vehicles.pug index ffd2d20..fdea6bf 100644 --- a/views/layout_vehicles.pug +++ b/views/layout_vehicles.pug @@ -85,12 +85,12 @@ html footer p(style='margin-left:10px;') IO-Technic Hungary Copyright © 2018 //-#picsa -script(type='text/javascript',src='/bower_components/jquery/dist/jquery.js') -script(type='text/javascript',src='/js/datepicker.js') + script(type='text/javascript',src='/bower_components/jquery/dist/jquery.js') + script(type='text/javascript',src='/js/datepicker.js') - script(src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js') + script(src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js') script(type='text/javascript', src='/bower_components/moment/min/moment.min.js') script(src='/bower_components/moment/min/moment-with-locales.js') //-script(type='text/javascript', src='/bower_components/bootstrap/dist/js/bootstrap.min.js') diff --git a/views/vehicles.pug b/views/vehicles.pug index a775c2f..1e5a777 100644 --- a/views/vehicles.pug +++ b/views/vehicles.pug @@ -165,7 +165,7 @@ block content script(src='https://cdn.jsdelivr.net/gh/gitbrent/bootstrap-switch-button@1.1.0/dist/bootstrap-switch-button.min.js') script. - // $(document).ready(function () { + $(document).ready(function () { // Get current page name const currentUrl = window.location.href; var page = currentUrl.split("/").pop(); @@ -196,39 +196,27 @@ block content element.parent().removeClass('has-error'); }; - $(document).ready(function() { + //$(document).ready(function() { function specialValidation(value, validator) { // Determine the numbers which are generated in captchaOperation var items = $('#otherField').txt(); return value == sum; }; - }) + //}) $('tr[data-href]').on("click", function() { document.location = $(this).data('href'); }); - /* function renderEventContent(eventInfo) { - return ( - '
\ -

{eventInfo.timeText}

\ - {eventInfo.event.title} \ - \ -
' - ); - }*/ - /* function haha(dayRenderInfo){ - console.log(dayRenderInfo) - }*/ // Szerkesztés modal $(document).on('show.bs.modal','#vehicleEditModal', function () { - //$('#vehicleEditModal').on('show.bs.modal', function () { - // console.log('PICSA!'); - //$(document).on('show.bs.modal','#vehicleEditModal', function () { + //$('#vehicleEditModal').on('show.bs.modal', function () { + // console.log('PICSA!'); + //$(document).on('show.bs.modal','#vehicleEditModal', function () { var getIdFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-id')//$(event.target).closest('tr').data('id'); var getVidFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-vid');//$(event.target).closest('tr').data('vid'); var getVnameFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-name');//$(event.target).closest('tr').data('name'); - $('.modal-backdrop').css('background', 'red'); + //$('.modal-backdrop').css('background', 'red'); //$("#fuelingHeader").html(getIdFromRow); $(this).find('#vehicleId').html($(' Szerkesztés: '+ getVnameFromRow + ' '+getVidFromRow+'' )) $.get('/vehicles/api/getVehicle/'+getIdFromRow,function(data) @@ -357,5 +345,6 @@ block content } }); - }); - // }); \ No newline at end of file + }); + }); + \ No newline at end of file