Tankolás működik
This commit is contained in:
parent
1e70fb7f5a
commit
882372dd7b
1
app.js
1
app.js
|
|
@ -199,6 +199,7 @@ app.use('/fullcalendar',express.static(path.join(__dirname, 'node_modules/@fullc
|
|||
app.use(express.static(path.join(__dirname, 'public')));
|
||||
app.use(express.static(path.join(__dirname, 'media')));
|
||||
app.use(express.static(path.join(__dirname, 'docs')));
|
||||
app.use(express.static(path.join(__dirname, '/views/Modals')));
|
||||
app.use(flash());
|
||||
// Express session middlevare
|
||||
app.use(session({
|
||||
|
|
|
|||
|
|
@ -227,35 +227,63 @@ exports.apiRefuelingById=asyncHandler(async (req,res)=>{
|
|||
// Tankolás adatainak lekérdezése
|
||||
exports.apiGetFueling=asyncHandler(async (req,res)=>{
|
||||
|
||||
if (isValidObjectId(req.params.id)==false)
|
||||
const {id, selectedMonth}=req.params;
|
||||
if (isValidObjectId(id)==false)
|
||||
{
|
||||
req.flash('error','Nem létező jármű');
|
||||
res.redirect('/');
|
||||
return;
|
||||
}
|
||||
var firstDay= moment(selectedMonth,"YYYY.MM").startOf('month').toISOString();
|
||||
var lastDay = moment(selectedMonth,"YYYY.MM").endOf('month').toISOString();
|
||||
try{
|
||||
const vehicle=await Vehicle//.findById(req.params.id).sort({dateTime:-1});
|
||||
.aggregate([
|
||||
{ "$match" : { _id: mongoose.Types.ObjectId(id) } },
|
||||
{ "$unwind" : "$refueling"} ,
|
||||
{"$match": {
|
||||
"refueling.dateTime":{
|
||||
$gte: new Date(firstDay),
|
||||
$lte: new Date(lastDay)
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "$sort" : { "refueling.dateTime" : 1}},
|
||||
{ "$group" : { "refueling" : { "$push" : { "dateTime" : "$refueling.dateTime", "quantity": "$refueling.quantity","kilometer":"$refueling.kilometer","fueledHUF":"$refueling.fueledHUF"}} , "_id" : "$_id"}},
|
||||
])
|
||||
|
||||
const vehicle=await Vehicle.findById(req.params.id);
|
||||
|
||||
if (vehicle)
|
||||
if (vehicle.length)
|
||||
{
|
||||
var fueling=[];
|
||||
vehicle.refueling.forEach(element => {
|
||||
fueling.push({
|
||||
id: element._id,
|
||||
title:"Tankolás <br /> "+element.quantity+" l "+element.kilometer+" km "+element.fueledHUF+" Ft",
|
||||
start:element.dateTime,
|
||||
allDay:false
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
res.status(200).send(fueling)
|
||||
// Átlagfogyasztás számítás
|
||||
if (vehicle[0].refueling.length>=2)
|
||||
{
|
||||
var refueling=vehicle[0].refueling;
|
||||
var kmStart=refueling[0].kilometer; // Kezdő kilométer
|
||||
var kmEnd=refueling[refueling.length-1].kilometer; // Utolsó kilométer
|
||||
var kmRun=kmEnd-kmStart; // Megtett út:
|
||||
var tankoltMennyiseg=0;
|
||||
var fogyasztas=0;
|
||||
// Tankolások összegzése (az utolsót nem számoljuk bele)
|
||||
refueling.forEach(function(element,idx,array) {
|
||||
if (idx<array.length-1)
|
||||
{
|
||||
tankoltMennyiseg+=element.quantity;
|
||||
}
|
||||
})
|
||||
fogyasztas=tankoltMennyiseg/(kmRun/100)
|
||||
console.log('Menny: '+tankoltMennyiseg)
|
||||
console.log('Fogyasztás: '+fogyasztas)
|
||||
}
|
||||
res.status(200).send({refueling:refueling,fueledSum:tankoltMennyiseg,fuelConsumption:fogyasztas})
|
||||
}
|
||||
else
|
||||
{
|
||||
res.status(404).send('Error')
|
||||
res.status(200).send()
|
||||
}
|
||||
|
||||
}
|
||||
catch(e){
|
||||
res.status(500).json({'Error':e})
|
||||
}
|
||||
})
|
||||
|
||||
// Beállítások olvasása
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ let mongoose = require('mongoose');
|
|||
|
||||
|
||||
const vehicleSchema=new mongoose.Schema({
|
||||
|
||||
|
||||
name: {type: String, require: true},
|
||||
persons: Number,
|
||||
vehicle_id: {type: String, require: true},
|
||||
|
|
@ -52,5 +52,7 @@ const vehicleSchema=new mongoose.Schema({
|
|||
heading: Number
|
||||
} ]
|
||||
});
|
||||
|
||||
|
||||
//var Route = module.exports = mongoose.model('Route', routeSchema);
|
||||
var Vehicle = module.exports = mongoose.model('Vehicle', vehicleSchema);
|
||||
|
|
@ -10,7 +10,7 @@ const { apiGetVehicles, apiRefuelingById, apiGetVehicle, apiUpdateVehicle, apiOi
|
|||
|
||||
router.route('/api/getVehicles').get(apiGetVehicles);
|
||||
router.route('/api/refueling/').post(apiRefuelingById);
|
||||
router.route('/api/fueling/:id').get(apiGetFueling);
|
||||
router.route('/api/fueling/:id/:selectedMonth').get(apiGetFueling);
|
||||
router.route('/api/getVehicle/:id').get(apiGetVehicle);
|
||||
router.route('/api/updateVehicle/:id').post(apiUpdateVehicle);
|
||||
router.route('/api/oilchangeVehicle/:id').post(apiOilChangeVehicle);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,99 @@
|
|||
#fuelingModal.modal(tabindex='-1', role='dialog', aria-labelledby='fuelingModalLabel', aria-hidden='true')
|
||||
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
||||
.modal-dialog(role='document', style='width:1000px;')
|
||||
.modal-content
|
||||
.modal-header#fuelingHeader.bg-primary(style="background: Primary")
|
||||
h4#vehicleId.modal-title
|
||||
h6#id
|
||||
.modal-body
|
||||
.container(style='width:100%;')
|
||||
#darktable.container
|
||||
table#fuelingTable(style='width:100%;')
|
||||
col(width='2%')
|
||||
col(width='10%')
|
||||
col(width='10%')
|
||||
col(width='10%')
|
||||
col(width='8%')
|
||||
thead
|
||||
tr
|
||||
th
|
||||
h1(style='text-align:right') #
|
||||
th
|
||||
h1(style='text-align:center') Időpont
|
||||
th
|
||||
h1(style='text-align:center') Mennyiség
|
||||
th
|
||||
h1(style='text-align:center') Kilométer óra állás
|
||||
th
|
||||
h1(style='text-align:center') Összeg
|
||||
tbody
|
||||
h4(style="height:12px")#sum
|
||||
h4(style="height:12px")#consumption
|
||||
br
|
||||
.modal-footer
|
||||
.form-group(style="width:150px;float:left")
|
||||
#datetimepickerFuel.input-group.date
|
||||
input.form-control(id='calcDate',name='dateEmission', tabindex='6',type='text',style='color: white;background-color:#2C3446;')
|
||||
span.input-group-addon
|
||||
span.glyphicon.glyphicon-calendar
|
||||
button#fmodalClose.btn.btn-primary(type='button', data-dismiss='modal') Bezár
|
||||
//-button.btn.btn-primary(type='submit') Rendben
|
||||
script.
|
||||
|
||||
// Generate Table
|
||||
var createTable=function (data){
|
||||
var sum=0;
|
||||
var consumption=0;
|
||||
$('#fuelingTable > tbody').empty();
|
||||
if (data)
|
||||
{
|
||||
$.each(data.refueling,function(i,el){
|
||||
var newRow=$('<tr class="clickable-row" id='+el._id+' data-href=/employee/detailstemp/'+el._id+'>"'+//);
|
||||
'<td style="text-align:right">'+(i+1)+'</td>'+
|
||||
'<td style="text-align:center">'+moment(el.dateTime).format("YYYY.MM.DD")+'</td>'+
|
||||
'<td style="text-align:center">'+el.quantity+' l'+'</td>'+
|
||||
'<td style="text-align:center">'+el.kilometer.toLocaleString('hu-HU')+' km'+'</td>'+
|
||||
'<td style="text-align:center">'+el.fueledHUF.toLocaleString('hu-HU')+' Ft'+'</td>'+
|
||||
'</tr>');
|
||||
$('#fuelingTable > tbody:last-child').append (newRow);
|
||||
sum+=parseInt(el.fueledHUF);
|
||||
})
|
||||
consumption= data.fuelConsumption;
|
||||
}
|
||||
|
||||
$('#sum').text('Összesen: '+sum.toLocaleString('hu-HU')+' Ft')
|
||||
$('#consumption').text('Fogyasztás: '+consumption.toLocaleString('hu-HU')+' l/100km')
|
||||
}
|
||||
// Tankolás modal
|
||||
$('#fuelingModal').on('show.bs.modal', 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');
|
||||
var selectedDate=$('#datetimepickerFuel').data("DateTimePicker").viewDate().format("YYYY.MM");
|
||||
$(this).find('#vehicleId').html($('<b> Tankolások: '+ getVnameFromRow + '</b> <b style="float:right">'+getVidFromRow+'</b>' ))
|
||||
$('#id').text(getIdFromRow);
|
||||
$.get('/vehicles/api/fueling/'+getIdFromRow+'/'+selectedDate,function(data)
|
||||
{
|
||||
createTable(data);
|
||||
})
|
||||
})
|
||||
$(document).ready(function () {
|
||||
$('#datetimepickerFuel').datetimepicker({
|
||||
locale: 'hu',
|
||||
format: 'LD',
|
||||
defaultDate: new Date(),
|
||||
inline: false,
|
||||
sideBySide: true,
|
||||
showTodayButton: true,
|
||||
format: 'YYYY.MM'
|
||||
}).on('dp.change',function(e){
|
||||
var calcdate=moment(e.date).format('YYYY.MM');// new Date($('#calcDate').val());
|
||||
//moment.locale('hu');
|
||||
var id=$('#id').text();
|
||||
//document.getElementById('month').innerHTML='Munkaidő lista '+moment(calcdate,'YYYY.MM').format('MMMM');
|
||||
$.get('/vehicles/api/fueling/'+id+'/'+calcdate,function(data)
|
||||
{
|
||||
createTable(data);
|
||||
})
|
||||
});
|
||||
});
|
||||
|
|
@ -24,7 +24,7 @@ html
|
|||
link(rel='stylesheet', href='/css/sidebar.css')
|
||||
link(rel='stylesheet' href='/bower_components/jquery-typeahead/dist/jquery.typeahead.min.css')
|
||||
link(rel='stylesheet' href='/css/darktable.css')
|
||||
link(rel='stylesheet' href='/css/infopanel.css')
|
||||
//link(rel='stylesheet' href='/css/infopanel.css')
|
||||
style.
|
||||
div.a {
|
||||
text-indent: 50px;
|
||||
|
|
@ -100,7 +100,7 @@ html
|
|||
script(type='text/javascript',src='/build/vfs_fonts.js')
|
||||
|
||||
script.
|
||||
window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\\/script>')
|
||||
//window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\\/script>')
|
||||
// Get current page and set current in nav
|
||||
$(document).ready(function(){
|
||||
|
||||
|
|
|
|||
|
|
@ -15,8 +15,10 @@ block content
|
|||
link(rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css')
|
||||
link(href='/bower_components/bootstrap-toggle/css/bootstrap-toggle.min.css', rel='stylesheet', type='text/css')
|
||||
link(href='https://cdn.jsdelivr.net/gh/gitbrent/bootstrap-switch-button@1.1.0/css/bootstrap-switch-button.min.css' rel='stylesheet')
|
||||
|
||||
//-link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css')
|
||||
include modal_settings
|
||||
include Modals/modal_settings
|
||||
include Modals/modal_fuelingInfo
|
||||
#vehicleModal.modal(tabindex='-1', role='dialog', aria-labelledby='vehicleModalLabel', aria-hidden='true')
|
||||
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
||||
.modal-dialog(role='document', style='width:720px')
|
||||
|
|
@ -29,18 +31,7 @@ block content
|
|||
.modal-footer
|
||||
button.btn.btn-primary(type='button', data-dismiss='modal') Bezár
|
||||
//-button.btn.btn-primary(type='submit') Rendben
|
||||
#fuelingModal.modal(tabindex='-1', role='dialog', aria-labelledby='fuelingModalLabel', aria-hidden='true')
|
||||
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
||||
.modal-dialog(role='document', style='width:1000px')
|
||||
.modal-content
|
||||
.modal-header#fuelingHeader.bg-primary(style="background: Primary")
|
||||
h4#vehicleId.modal-title A
|
||||
.modal-body
|
||||
#calendarFuel(style="background-color: white")
|
||||
br
|
||||
.modal-footer
|
||||
button.btn.btn-primary(type='button', data-dismiss='modal') Bezár
|
||||
//-button.btn.btn-primary(type='submit') Rendben
|
||||
|
||||
#oilChangeModal.modal(tabindex='-1',
|
||||
role='dialog',
|
||||
aria-labelledby='oilChangeModalLabel',
|
||||
|
|
@ -77,7 +68,7 @@ block content
|
|||
.row
|
||||
.col-sm-6
|
||||
.form-group
|
||||
label.form-label(for='editVehicleName') Megnevezés:
|
||||
label.form-label(for='editVehicleName' style="color: black !important") Megnevezés:
|
||||
input#editVehicleName.form-control(name='editVehicleName',type=text, autofocus,tabindex='1', readonly=false,width='1000')
|
||||
.col-sm-3
|
||||
.form-group
|
||||
|
|
@ -223,29 +214,19 @@ block content
|
|||
$('tr[data-href]').on("click", function() {
|
||||
document.location = $(this).data('href');
|
||||
});
|
||||
// Tankolás modal
|
||||
$('#fuelingModal').on('show.bs.modal', 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');
|
||||
//$("#fuelingHeader").html(getIdFromRow);
|
||||
$(this).find('#vehicleId').html($('<b> Tankolások: '+ getVnameFromRow + '</b> <b style="float:right">'+getVidFromRow+'</b>' ))
|
||||
$.get('/vehicles/api/fueling/'+getIdFromRow,function(data)
|
||||
{
|
||||
var calendarEl = document.getElementById('calendarFuel');
|
||||
var calendarFuel = new FullCalendar.Calendar(calendarEl, {
|
||||
//themeSystem: 'bootstrap',
|
||||
initialView: 'dayGridMonth',
|
||||
locale: 'hu',
|
||||
firstDay: 1,
|
||||
initialEvents: data,
|
||||
weekNumbers: true,
|
||||
themeSystem: 'default'
|
||||
});
|
||||
|
||||
calendarFuel.render();
|
||||
})
|
||||
})
|
||||
/* function renderEventContent(eventInfo) {
|
||||
return (
|
||||
' <div> \
|
||||
<p>{eventInfo.timeText}</p> \
|
||||
<i>{eventInfo.event.title}</i> \
|
||||
<button>123</button> \
|
||||
</div>'
|
||||
);
|
||||
}*/
|
||||
/* function haha(dayRenderInfo){
|
||||
console.log(dayRenderInfo)
|
||||
}*/
|
||||
|
||||
// Szerkesztés modal
|
||||
$('#vehicleEditModal').on('show.bs.modal', function () {
|
||||
var getIdFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-id')//$(event.target).closest('tr').data('id');
|
||||
|
|
|
|||
Loading…
Reference in New Issue