Olajcsere array hozzáadva
This commit is contained in:
parent
882372dd7b
commit
a190714cfb
|
|
@ -63,7 +63,26 @@ exports.apiGetVehicle=asyncHandler(async (req,res)=>{
|
|||
|
||||
if (vehicle)
|
||||
{
|
||||
res.status(200).send(vehicle)
|
||||
if (!vehicle.oilChangeLast)
|
||||
{
|
||||
const arc = { ...vehicle.toObject(), oilChangeLastVal: 0};
|
||||
res.status(200).send(arc);
|
||||
return;
|
||||
}
|
||||
|
||||
var oilChangeLastVal= getTopN(vehicle.oilChangeLast,'kilometer',1);
|
||||
if (!oilChangeLastVal.length)
|
||||
{
|
||||
const arc = { ...vehicle.toObject(), oilChangeLastVal: 0};
|
||||
res.status(200).send(arc);
|
||||
return;
|
||||
}
|
||||
|
||||
const arc = { ...vehicle.toObject(), oilChangeLastVal: oilChangeLastVal[0].kilometer};
|
||||
|
||||
res.status(200).send(arc)
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -89,7 +108,7 @@ exports.apiUpdateVehicle=asyncHandler(async (req,res) => {
|
|||
persons: req.body.persons,
|
||||
vehicle_id: req.body.vehicleId,
|
||||
oilChangeInterval: req.body.oilChangeInterval,
|
||||
oilChangeLast:req.body.oilChangeLast,
|
||||
//oilChangeLast:req.body.oilChangeLast,
|
||||
visible: req.body.visible
|
||||
},function(err,docs){
|
||||
if (err){
|
||||
|
|
@ -107,7 +126,7 @@ exports.apiUpdateVehicle=asyncHandler(async (req,res) => {
|
|||
});
|
||||
// Olajcsere
|
||||
exports.apiOilChangeVehicle=asyncHandler(async (req,res) => {
|
||||
|
||||
const {oilChangeLast, oilChangeDate}=req.body;
|
||||
// Get errors
|
||||
if (isValidObjectId(req.params.id)==false)
|
||||
{
|
||||
|
|
@ -115,10 +134,25 @@ exports.apiOilChangeVehicle=asyncHandler(async (req,res) => {
|
|||
res.status(400).send('Nem Létező Jármű!')
|
||||
return;
|
||||
}
|
||||
|
||||
let vehicle={}
|
||||
|
||||
Vehicle.findByIdAndUpdate(req.params.id,{
|
||||
/* if (!oilChangeDate._isAMomentObject)
|
||||
{
|
||||
res.status(400).send('Dátum hiba!')
|
||||
return;
|
||||
}*/
|
||||
try{
|
||||
await Vehicle.findByIdAndUpdate(req.params.id,
|
||||
{$push:{oilChangeLast:{
|
||||
dateTime: Date.parse(oilChangeDate),
|
||||
kilometer:oilChangeLast}
|
||||
}
|
||||
})
|
||||
res.status(200).send('Sikeres rögzítés')
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
res.status(500).send(e.message)
|
||||
}
|
||||
/*Vehicle.findByIdAndUpdate(req.params.id,{
|
||||
oilChangeLast: req.body.oilChangeLast
|
||||
},function(err,docs){
|
||||
if (err){
|
||||
|
|
@ -131,11 +165,20 @@ exports.apiOilChangeVehicle=asyncHandler(async (req,res) => {
|
|||
//res.redirect('/vehicles/view');
|
||||
res.status(200).send('Sikeres rögzítés')
|
||||
}
|
||||
})
|
||||
})*/
|
||||
|
||||
});
|
||||
|
||||
|
||||
// JSON Legnagyobb érték a tömbben
|
||||
function getTopN(arr, prop, n) {
|
||||
var clone = arr.slice(0);
|
||||
// sort descending
|
||||
clone.sort(function(x, y) {
|
||||
if (x[prop] == y[prop]) return 0;
|
||||
else if (parseInt(x[prop]) < parseInt(y[prop])) return 1;
|
||||
else return -1;
|
||||
});
|
||||
return clone.slice(0, n);
|
||||
}
|
||||
// Közeli dátum
|
||||
// az adott dátum előtt nem lehet nagyobb óraállás egyébként return -1
|
||||
// az adott dátum után nem lehet kisebb óraállás egyébként return 1
|
||||
|
|
@ -190,9 +233,9 @@ exports.apiRefuelingById=asyncHandler(async (req,res)=>{
|
|||
res.redirect('/');
|
||||
return;
|
||||
}
|
||||
|
||||
var oilChangeLast= getTopN(vehicle.oilChangeLast,'kilometer',1)[0].kilometer;
|
||||
const settings=await Settings.find({name:"vehicleEmailNotify"});
|
||||
var nextOilChange=vehicle.oilChangeLast+vehicle.oilChangeInterval
|
||||
var nextOilChange=oilChangeLast+vehicle.oilChangeInterval
|
||||
var remainingKilometers=nextOilChange-parseInt(kmcounter);
|
||||
|
||||
if(nextOilChange<=(parseInt(kmcounter)+5000))
|
||||
|
|
@ -213,7 +256,10 @@ exports.apiRefuelingById=asyncHandler(async (req,res)=>{
|
|||
console.log(req.body)
|
||||
//res.status(204).send()
|
||||
await Vehicle.findByIdAndUpdate(vehicleId,
|
||||
{$push:{refueling:{
|
||||
{ $set:{
|
||||
oilChangeRemainingKm:remainingKilometers
|
||||
},
|
||||
$push:{refueling:{
|
||||
dateTime: Date.parse(refuelPicker),
|
||||
quantity:fueledqty,
|
||||
fueledHUF:fueledHUF,
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@ const vehicleSchema=new mongoose.Schema({
|
|||
fueledHUF:{type: Number,require:true}
|
||||
}],
|
||||
oilChangeInterval:{type: Number,require:true,default: 50000},
|
||||
oilChangeLast:{type: Number,require:true,default: 0},
|
||||
oilChangeRemainingKm:{type: Number,require:true,default: 0},
|
||||
oilChangeLast:[{
|
||||
kilometer:{type: Number,require:true,default: 0},
|
||||
dateTime:{type: Date,require: true},
|
||||
}],
|
||||
/* service: [
|
||||
{
|
||||
dateTime_Start:{type: Date,require: true},
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
.modal-header#fuelingHeader.bg-primary(style="background: Primary")
|
||||
h4#vehicleId.modal-title
|
||||
h6#id
|
||||
.modal-body
|
||||
.modal-body(style='background-color:#4f5b69')
|
||||
.container(style='width:100%;')
|
||||
#darktable.container
|
||||
table#fuelingTable(style='width:100%;')
|
||||
|
|
@ -27,10 +27,11 @@
|
|||
th
|
||||
h1(style='text-align:center') Összeg
|
||||
tbody
|
||||
h4(style="height:12px")#sum
|
||||
h4(style="height:12px")#consumption
|
||||
#darktable.container
|
||||
h4(style="height:12px;color:#64b4da")#sum
|
||||
h4(style="height:12px;color:#64b4da")#consumption
|
||||
br
|
||||
.modal-footer
|
||||
.modal-footer(style="background-color: #2C3446")
|
||||
.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;')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,109 @@
|
|||
link(rel='stylesheet', type='text/css', href='https://unpkg.com/lightpick@latest/css/lightpick.css')
|
||||
#oilChangeModal.modal(tabindex='-1',
|
||||
role='dialog',
|
||||
aria-labelledby='oilChangeModalLabel',
|
||||
aria-hidden='true',
|
||||
|
||||
)
|
||||
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
||||
.modal-dialog(role='document', style='width:720px')
|
||||
.modal-content
|
||||
.modal-header#oilChangeHeader.bg-primary(style="background: Primary")
|
||||
h4#vehicleId.modal-title A
|
||||
.modal-body
|
||||
.form-group
|
||||
label.form-label(for='oilChangePicker') Olaj csere időpontja
|
||||
.input-group
|
||||
input.form-control(id='oilChangePicker',required,placeholder='Olaj csere időpontja',name='oilChangePicker',type=text, tabindex='2',readonly,style='background-color:#c9ddfc;')
|
||||
span.input-group-addon
|
||||
span.glyphicon.glyphicon-calendar
|
||||
.form-group
|
||||
//-input#oilChangeLast.form-control(name="oilChangeLast" readonly min=0 type='number')
|
||||
.input-group
|
||||
span.input-group-addon.transparent
|
||||
span.glyphicon.glyphicon-user
|
||||
input#oilChangeKilometer.form-control(name="oilChangeKilometer" placeholder='Óra állás olajcsere után' min=0 type='number')
|
||||
p.help-block.hidden Please enter a name 3 characters or more.
|
||||
.modal-footer
|
||||
button.btn.btn-primary(type='button', data-dismiss='modal')
|
||||
i.fa.fa-arrow-left
|
||||
| | Bezár
|
||||
button#oilChangeSave.btn.btn-primary(type='button' )
|
||||
i.fa.fa-save
|
||||
| | Mentés
|
||||
script(type='text/javascript', src='/bower_components/moment/min/moment.min.js')
|
||||
script(src='https://unpkg.com/lightpick@latest/lightpick.js')
|
||||
|
||||
script.
|
||||
//- Olajcsere modal
|
||||
$('#oilChangeModal').on('show.bs.modal', function () {
|
||||
$(this).find('form').trigger('reset');
|
||||
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');
|
||||
$('#vehicleId').val(getIdFromRow);
|
||||
//-$("#fuelingHeader").html(getIdFromRow);
|
||||
$(this).find('#vehicleId').html($('<b> Olaj csere: '+ getVnameFromRow + '</b> <b style="float:right">'+getVidFromRow+'</b>' ))
|
||||
$.get('/vehicles/api/getVehicle/'+getIdFromRow,function(data)
|
||||
{
|
||||
//- $('#editVehicleName').val(data.name);
|
||||
//- $('#editVehiclePersons').val(data.persons);
|
||||
//- $('#editVehicleId').val(data.vehicle_id);
|
||||
//- $('#editOilChange').val(data.oilChangeInterval);
|
||||
//- $('#oilChangeKilometer').val(data.oilChangeLast);
|
||||
$('#oilChangeLast').val(data.oilChangeLast);
|
||||
})
|
||||
//- Mentés
|
||||
})
|
||||
$( "#oilChangeSave" ).click(function() {
|
||||
|
||||
event.preventDefault();
|
||||
//-validate name
|
||||
var th=$(this);
|
||||
var oilChangeKilometer = $('#oilChangeKilometer').val();
|
||||
var oilChangeLast=$('#oilChangeLast').val();
|
||||
var oilChangeDate=picker.getDate();
|
||||
const editId = $('#vehicleId').val();
|
||||
if (oilChangeKilometer.length < 4) {
|
||||
return showErrorSuccess($('#oilChangeKilometer'), false, 'Legalláb 4 karakter!');
|
||||
}
|
||||
if (oilChangeKilometer<=oilChangeLast) {
|
||||
return showErrorSuccess($('#oilChangeKilometer'), false, 'Az olajcsere óra állása nem lehet kisebb, mint az előző!');
|
||||
}
|
||||
//- disable button
|
||||
$(this).prop("disabled", true);
|
||||
//- add spinner to button
|
||||
$(this).html('<i class="fa fa-circle-o-notch fa-spin"></i> Várjon!');
|
||||
showErrorSuccess($('#oilChangeKilometer'));
|
||||
$.post( "/vehicles/api/oilchangeVehicle/"+editId, { oilChangeLast:oilChangeKilometer,oilChangeDate:oilChangeDate.toISOString()})
|
||||
.done(function( data ) {
|
||||
// disable button
|
||||
th.prop("disabled", false);
|
||||
// add spinner to buttoni.fa.fa-save
|
||||
th.html('<i class="fa fa-save"></i> Mentés');
|
||||
$('.modal-backdrop').remove()
|
||||
$('#oilChangeModal').hide();
|
||||
|
||||
}).fail(function(xhr,status,error){
|
||||
alert( "Hiba: " + xhr.responseText );
|
||||
// disable button
|
||||
th.prop("disabled", false);
|
||||
// add spinner to buttoni.fa.fa-save
|
||||
th.html('<i class="fa fa-save"></i> Mentés');
|
||||
})
|
||||
|
||||
});
|
||||
var picker = new Lightpick({ field: document.getElementById('oilChangePicker'),
|
||||
singleDate: true,
|
||||
inline: false,
|
||||
//numberOfColumns: 2,
|
||||
//numberOfMonths: 4,
|
||||
format: 'YYYY.MM.DD',
|
||||
disableWeekends: false,
|
||||
maxDate: moment(),
|
||||
//maxDays: remaining,
|
||||
//disableDates: [['21.09.2020', '22.09.2020'], ['24.09.2020', '25.09.2020']],
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
|
@ -19,6 +19,7 @@ block content
|
|||
//-link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css')
|
||||
include Modals/modal_settings
|
||||
include Modals/modal_fuelingInfo
|
||||
include Modals/modal_oilChange
|
||||
#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')
|
||||
|
|
@ -32,32 +33,6 @@ block content
|
|||
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',
|
||||
aria-hidden='true',
|
||||
|
||||
)
|
||||
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
||||
.modal-dialog(role='document', style='width:720px')
|
||||
.modal-content
|
||||
.modal-header#oilChangeHeader.bg-primary(style="background: Primary")
|
||||
h4#vehicleId.modal-title A
|
||||
.modal-body
|
||||
.form-group
|
||||
//-input#oilChangeLast.form-control(name="oilChangeLast" readonly min=0 type='number')
|
||||
.input-group
|
||||
span.input-group-addon.transparent
|
||||
span.glyphicon.glyphicon-user
|
||||
input#oilChangeKilometer.form-control(name="oilChangeKilometer" placeholder='Óra állás olajcsere után' min=0 type='number')
|
||||
p.help-block.hidden Please enter a name 3 characters or more.
|
||||
.modal-footer
|
||||
button.btn.btn-primary(type='button', data-dismiss='modal')
|
||||
i.fa.fa-arrow-left
|
||||
| | Bezár
|
||||
button#oilChangeSave.btn.btn-primary(type='button' )
|
||||
i.fa.fa-save
|
||||
| | Mentés
|
||||
#vehicleEditModal.modal(tabindex='-1', role='dialog', aria-labelledby='vehicleEditModalLabel', aria-hidden='true')
|
||||
//-form(method='GET',id='holidayForm' action='/employee/holidays_byperson/')
|
||||
.modal-dialog(role='document', style='width:720px')
|
||||
|
|
@ -90,7 +65,7 @@ block content
|
|||
.col-sm-6
|
||||
.form-group
|
||||
label.form-label(for='editLastOilChange') Legutóbbi Olajcsere:
|
||||
input#editLastOilChange.form-control(name='editLastOilChange',type=number, tabindex='4', readonly=false,required=true)
|
||||
input#editLastOilChange.form-control(name='editLastOilChange',type=number, tabindex='4', readonly,required=true)
|
||||
p.help-block.hidden Please enter a name 3 characters or more.
|
||||
.col-sm-6
|
||||
#form-group
|
||||
|
|
@ -114,7 +89,7 @@ block content
|
|||
table#vehicleTable(style='width:100%;')
|
||||
col(width='5%')
|
||||
col(width='20%')
|
||||
col(width='10%')
|
||||
col(width='8%')
|
||||
col(width='10%')
|
||||
col(width='8%')
|
||||
col(width='8%')
|
||||
|
|
@ -128,7 +103,7 @@ block content
|
|||
th
|
||||
h1 Megnevezés
|
||||
th
|
||||
h1(style='text-align:center') Személyek
|
||||
h1(style='text-align:left') Személyek
|
||||
th
|
||||
h1(style='text-align:left') Rendszám
|
||||
th
|
||||
|
|
@ -137,6 +112,8 @@ block content
|
|||
h1(style='text-align:center') Tankolások
|
||||
th
|
||||
h1(style='text-align:center') Olajcsere
|
||||
th
|
||||
h1(style='text-align:center') Esedékes Olajcsere
|
||||
th
|
||||
h1(style='text-align:center') Utolsó pozíció
|
||||
th
|
||||
|
|
@ -145,7 +122,6 @@ block content
|
|||
tbody
|
||||
each vehicle, i in Vehicles
|
||||
if(vehicle.visible==true || showAll==true)
|
||||
|
||||
tr
|
||||
//-.clickable-clientRow(data-id=vehicle._id, data-vid=vehicle.vehicle_id,data-name=vehicle.name,data-toggle='modal', data-target='#vehicleModal')
|
||||
//-data-href="/vehicles/details/"+vehicle._id,
|
||||
|
|
@ -162,6 +138,7 @@ block content
|
|||
td(style='text-align:center')
|
||||
button.btn.btn-primary(data-id=vehicle._id, data-vid=vehicle.vehicle_id,data-name=vehicle.name,data-toggle='modal', data-target='#oilChangeModal',style='width:40px;',type='button')
|
||||
i.fa.fa-tint
|
||||
td(style='text-align:center') #{vehicle.oilChangeRemainingKm} km
|
||||
if (vehicle.lastCity.length>0)
|
||||
td(style='text-align:center; font-size: 12px') #{lastPos=vehicle.lastCity.at(-1).city} #{moment(vehicle.lastCity.at(-1).timestamp).format("YYYY.MM.DD HH:mm")}
|
||||
else
|
||||
|
|
@ -171,6 +148,7 @@ block content
|
|||
i.fa.fa-edit
|
||||
script(type='text/javascript', src='/bower_components/bootstrap-toggle/js/bootstrap-toggle.min.js')
|
||||
script(src='https://cdn.jsdelivr.net/gh/gitbrent/bootstrap-switch-button@1.1.0/dist/bootstrap-switch-button.min.js')
|
||||
|
||||
script.
|
||||
// $(document).ready(function () {
|
||||
// Get current page name
|
||||
|
|
@ -241,7 +219,7 @@ block content
|
|||
$('#editVehiclePersons').val(data.persons);
|
||||
$('#editVehicleId').val(data.vehicle_id);
|
||||
$('#editOilChange').val(data.oilChangeInterval);
|
||||
$('#editLastOilChange').val(data.oilChangeLast);
|
||||
$('#editLastOilChange').val(data.oilChangeLastVal);
|
||||
$('#vehicleId').val(getIdFromRow);
|
||||
if (data.visible)
|
||||
{
|
||||
|
|
@ -318,59 +296,7 @@ block content
|
|||
})
|
||||
})
|
||||
});
|
||||
// Olajcsere modal
|
||||
$('#oilChangeModal').on('show.bs.modal', function () {
|
||||
$(this).find('form').trigger('reset');
|
||||
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');
|
||||
$('#vehicleId').val(getIdFromRow);
|
||||
//$("#fuelingHeader").html(getIdFromRow);
|
||||
$(this).find('#vehicleId').html($('<b> Olaj csere: '+ getVnameFromRow + '</b> <b style="float:right">'+getVidFromRow+'</b>' ))
|
||||
$.get('/vehicles/api/getVehicle/'+getIdFromRow,function(data)
|
||||
{
|
||||
$('#editVehicleName').val(data.name);
|
||||
$('#editVehiclePersons').val(data.persons);
|
||||
$('#editVehicleId').val(data.vehicle_id);
|
||||
$('#editOilChange').val(data.oilChangeInterval);
|
||||
$('#oilChangeKilometer').val(data.oilChangeLast);
|
||||
$('#oilChangeLast').val(data.oilChangeLast);
|
||||
})
|
||||
// Mentés
|
||||
})
|
||||
$( "#oilChangeSave" ).click(function() {
|
||||
|
||||
event.preventDefault();
|
||||
//validate name
|
||||
var th=$(this);
|
||||
var oilChangeKilometer = $('#oilChangeKilometer').val();
|
||||
var oilChangeLast=$('#oilChangeLast').val();
|
||||
const editId = $('#vehicleId').val();
|
||||
if (oilChangeKilometer.length < 4) {
|
||||
return showErrorSuccess($('#oilChangeKilometer'), false, 'Legalláb 4 karakter!');
|
||||
}
|
||||
if (oilChangeKilometer<=oilChangeLast) {
|
||||
return showErrorSuccess($('#oilChangeKilometer'), false, 'Az olajcsere óra állása nem lehet kisebb, mint az előző!');
|
||||
}
|
||||
// disable button
|
||||
$(this).prop("disabled", true);
|
||||
// add spinner to button
|
||||
$(this).html('<i class="fa fa-circle-o-notch fa-spin"></i> Várjon!');
|
||||
showErrorSuccess($('#oilChangeKilometer'));
|
||||
$.post( "/vehicles/api/oilchangeVehicle/"+editId, { oilChangeLast:oilChangeKilometer})
|
||||
.done(function( data ) {
|
||||
// disable button
|
||||
th.prop("disabled", false);
|
||||
// add spinner to buttoni.fa.fa-save
|
||||
th.html('<i class="fa fa-save"></i> Mentés');
|
||||
$('.modal-backdrop').remove()
|
||||
$('#oilChangeModal').hide();
|
||||
|
||||
}).fail(function(xhr,status,error){
|
||||
alert( "Hiba: " + xhr.responseText );
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
// Pozíció Modal
|
||||
$('#vehicleModal').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