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, 'public')));
|
||||||
app.use(express.static(path.join(__dirname, 'media')));
|
app.use(express.static(path.join(__dirname, 'media')));
|
||||||
app.use(express.static(path.join(__dirname, 'docs')));
|
app.use(express.static(path.join(__dirname, 'docs')));
|
||||||
|
app.use(express.static(path.join(__dirname, '/views/Modals')));
|
||||||
app.use(flash());
|
app.use(flash());
|
||||||
// Express session middlevare
|
// Express session middlevare
|
||||||
app.use(session({
|
app.use(session({
|
||||||
|
|
|
||||||
|
|
@ -227,35 +227,63 @@ exports.apiRefuelingById=asyncHandler(async (req,res)=>{
|
||||||
// Tankolás adatainak lekérdezése
|
// Tankolás adatainak lekérdezése
|
||||||
exports.apiGetFueling=asyncHandler(async (req,res)=>{
|
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ű');
|
req.flash('error','Nem létező jármű');
|
||||||
res.redirect('/');
|
res.redirect('/');
|
||||||
return;
|
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.length)
|
||||||
|
|
||||||
if (vehicle)
|
|
||||||
{
|
{
|
||||||
var fueling=[];
|
// Átlagfogyasztás számítás
|
||||||
vehicle.refueling.forEach(element => {
|
if (vehicle[0].refueling.length>=2)
|
||||||
fueling.push({
|
{
|
||||||
id: element._id,
|
var refueling=vehicle[0].refueling;
|
||||||
title:"Tankolás <br /> "+element.quantity+" l "+element.kilometer+" km "+element.fueledHUF+" Ft",
|
var kmStart=refueling[0].kilometer; // Kezdő kilométer
|
||||||
start:element.dateTime,
|
var kmEnd=refueling[refueling.length-1].kilometer; // Utolsó kilométer
|
||||||
allDay:false
|
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) {
|
||||||
res.status(200).send(fueling)
|
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
|
else
|
||||||
{
|
{
|
||||||
res.status(404).send('Error')
|
res.status(200).send()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch(e){
|
||||||
|
res.status(500).json({'Error':e})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Beállítások olvasása
|
// Beállítások olvasása
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ let mongoose = require('mongoose');
|
||||||
|
|
||||||
|
|
||||||
const vehicleSchema=new mongoose.Schema({
|
const vehicleSchema=new mongoose.Schema({
|
||||||
|
|
||||||
name: {type: String, require: true},
|
name: {type: String, require: true},
|
||||||
persons: Number,
|
persons: Number,
|
||||||
vehicle_id: {type: String, require: true},
|
vehicle_id: {type: String, require: true},
|
||||||
|
|
@ -52,5 +52,7 @@ const vehicleSchema=new mongoose.Schema({
|
||||||
heading: Number
|
heading: Number
|
||||||
} ]
|
} ]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//var Route = module.exports = mongoose.model('Route', routeSchema);
|
//var Route = module.exports = mongoose.model('Route', routeSchema);
|
||||||
var Vehicle = module.exports = mongoose.model('Vehicle', vehicleSchema);
|
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/getVehicles').get(apiGetVehicles);
|
||||||
router.route('/api/refueling/').post(apiRefuelingById);
|
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/getVehicle/:id').get(apiGetVehicle);
|
||||||
router.route('/api/updateVehicle/:id').post(apiUpdateVehicle);
|
router.route('/api/updateVehicle/:id').post(apiUpdateVehicle);
|
||||||
router.route('/api/oilchangeVehicle/:id').post(apiOilChangeVehicle);
|
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='/css/sidebar.css')
|
||||||
link(rel='stylesheet' href='/bower_components/jquery-typeahead/dist/jquery.typeahead.min.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/darktable.css')
|
||||||
link(rel='stylesheet' href='/css/infopanel.css')
|
//link(rel='stylesheet' href='/css/infopanel.css')
|
||||||
style.
|
style.
|
||||||
div.a {
|
div.a {
|
||||||
text-indent: 50px;
|
text-indent: 50px;
|
||||||
|
|
@ -100,7 +100,7 @@ html
|
||||||
script(type='text/javascript',src='/build/vfs_fonts.js')
|
script(type='text/javascript',src='/build/vfs_fonts.js')
|
||||||
|
|
||||||
script.
|
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
|
// Get current page and set current in nav
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,10 @@ block content
|
||||||
link(rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css')
|
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='/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(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')
|
//-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')
|
#vehicleModal.modal(tabindex='-1', role='dialog', aria-labelledby='vehicleModalLabel', aria-hidden='true')
|
||||||
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
||||||
.modal-dialog(role='document', style='width:720px')
|
.modal-dialog(role='document', style='width:720px')
|
||||||
|
|
@ -29,18 +31,7 @@ block content
|
||||||
.modal-footer
|
.modal-footer
|
||||||
button.btn.btn-primary(type='button', data-dismiss='modal') Bezár
|
button.btn.btn-primary(type='button', data-dismiss='modal') Bezár
|
||||||
//-button.btn.btn-primary(type='submit') Rendben
|
//-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',
|
#oilChangeModal.modal(tabindex='-1',
|
||||||
role='dialog',
|
role='dialog',
|
||||||
aria-labelledby='oilChangeModalLabel',
|
aria-labelledby='oilChangeModalLabel',
|
||||||
|
|
@ -77,7 +68,7 @@ block content
|
||||||
.row
|
.row
|
||||||
.col-sm-6
|
.col-sm-6
|
||||||
.form-group
|
.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')
|
input#editVehicleName.form-control(name='editVehicleName',type=text, autofocus,tabindex='1', readonly=false,width='1000')
|
||||||
.col-sm-3
|
.col-sm-3
|
||||||
.form-group
|
.form-group
|
||||||
|
|
@ -223,29 +214,19 @@ block content
|
||||||
$('tr[data-href]').on("click", function() {
|
$('tr[data-href]').on("click", function() {
|
||||||
document.location = $(this).data('href');
|
document.location = $(this).data('href');
|
||||||
});
|
});
|
||||||
// Tankolás modal
|
/* function renderEventContent(eventInfo) {
|
||||||
$('#fuelingModal').on('show.bs.modal', function () {
|
return (
|
||||||
var getIdFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-id')//$(event.target).closest('tr').data('id');
|
' <div> \
|
||||||
var getVidFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-vid');//$(event.target).closest('tr').data('vid');
|
<p>{eventInfo.timeText}</p> \
|
||||||
var getVnameFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-name');//$(event.target).closest('tr').data('name');
|
<i>{eventInfo.event.title}</i> \
|
||||||
//$("#fuelingHeader").html(getIdFromRow);
|
<button>123</button> \
|
||||||
$(this).find('#vehicleId').html($('<b> Tankolások: '+ getVnameFromRow + '</b> <b style="float:right">'+getVidFromRow+'</b>' ))
|
</div>'
|
||||||
$.get('/vehicles/api/fueling/'+getIdFromRow,function(data)
|
);
|
||||||
{
|
}*/
|
||||||
var calendarEl = document.getElementById('calendarFuel');
|
/* function haha(dayRenderInfo){
|
||||||
var calendarFuel = new FullCalendar.Calendar(calendarEl, {
|
console.log(dayRenderInfo)
|
||||||
//themeSystem: 'bootstrap',
|
}*/
|
||||||
initialView: 'dayGridMonth',
|
|
||||||
locale: 'hu',
|
|
||||||
firstDay: 1,
|
|
||||||
initialEvents: data,
|
|
||||||
weekNumbers: true,
|
|
||||||
themeSystem: 'default'
|
|
||||||
});
|
|
||||||
|
|
||||||
calendarFuel.render();
|
|
||||||
})
|
|
||||||
})
|
|
||||||
// Szerkesztés modal
|
// Szerkesztés modal
|
||||||
$('#vehicleEditModal').on('show.bs.modal', function () {
|
$('#vehicleEditModal').on('show.bs.modal', function () {
|
||||||
var getIdFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-id')//$(event.target).closest('tr').data('id');
|
var getIdFromRow = $(event)[0].currentTarget.activeElement.getAttribute('data-id')//$(event.target).closest('tr').data('id');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue