mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 00:46:08 -06:00
130 lines
4.4 KiB
JavaScript
130 lines
4.4 KiB
JavaScript
function showAddGasRecordModal() {
|
|
$.get('/Vehicle/GetAddGasRecordPartialView', function (data) {
|
|
if (data) {
|
|
$("#gasRecordModalContent").html(data);
|
|
//initiate datepicker
|
|
initDatePicker($('#gasRecordDate'));
|
|
$('#gasRecordModal').modal('show');
|
|
}
|
|
});
|
|
}
|
|
function showEditGasRecordModal(gasRecordId) {
|
|
$.get(`/Vehicle/GetGasRecordForEditById?gasRecordId=${gasRecordId}`, function (data) {
|
|
if (data) {
|
|
$("#gasRecordModalContent").html(data);
|
|
//initiate datepicker
|
|
initDatePicker($('#gasRecordDate'));
|
|
$('#gasRecordModal').modal('show');
|
|
}
|
|
});
|
|
}
|
|
function hideAddGasRecordModal() {
|
|
$('#gasRecordModal').modal('hide');
|
|
}
|
|
function deleteGasRecord(gasRecordId) {
|
|
$("#workAroundInput").show();
|
|
Swal.fire({
|
|
title: "Confirm Deletion?",
|
|
text: "Deleted Gas Records cannot be restored.",
|
|
showCancelButton: true,
|
|
confirmButtonText: "Delete",
|
|
confirmButtonColor: "#dc3545"
|
|
}).then((result) => {
|
|
if (result.isConfirmed) {
|
|
$.post(`/Vehicle/DeleteGasRecordById?gasRecordId=${gasRecordId}`, function (data) {
|
|
if (data) {
|
|
hideAddGasRecordModal();
|
|
successToast("Gas Record deleted");
|
|
var vehicleId = GetVehicleId().vehicleId;
|
|
getVehicleGasRecords(vehicleId);
|
|
} else {
|
|
errorToast("An error has occurred, please try again later.");
|
|
}
|
|
});
|
|
} else {
|
|
$("#workAroundInput").hide();
|
|
}
|
|
});
|
|
}
|
|
function saveGasRecordToVehicle(isEdit) {
|
|
//get values
|
|
var formValues = getAndValidateGasRecordValues();
|
|
//validate
|
|
if (formValues.hasError) {
|
|
errorToast("Please check the form data");
|
|
return;
|
|
}
|
|
//save to db.
|
|
$.post('/Vehicle/SaveGasRecordToVehicleId', { gasRecord: formValues }, function (data) {
|
|
if (data) {
|
|
successToast(isEdit ? "Gas Record Updated" : "Gas Record Added.");
|
|
hideAddGasRecordModal();
|
|
saveScrollPosition();
|
|
getVehicleGasRecords(formValues.vehicleId);
|
|
} else {
|
|
errorToast("An error has occurred, please try again later.");
|
|
}
|
|
})
|
|
}
|
|
function getAndValidateGasRecordValues() {
|
|
var gasDate = $("#gasRecordDate").val();
|
|
var gasMileage = $("#gasRecordMileage").val();
|
|
var gasGallons = $("#gasRecordGallons").val();
|
|
var gasCost = $("#gasRecordCost").val();
|
|
var gasCostType = $("#gasCostType").val();
|
|
var gasIsFillToFull = $("#gasIsFillToFull").is(":checked");
|
|
var gasIsMissed = $("#gasIsMissed").is(":checked");
|
|
var gasNotes = $("#gasRecordNotes").val();
|
|
var vehicleId = GetVehicleId().vehicleId;
|
|
var gasRecordId = getGasRecordModelData().id;
|
|
//validation
|
|
var hasError = false;
|
|
if (gasDate.trim() == '') { //eliminates whitespace.
|
|
hasError = true;
|
|
$("#gasRecordDate").addClass("is-invalid");
|
|
} else {
|
|
$("#gasRecordDate").removeClass("is-invalid");
|
|
}
|
|
if (gasMileage.trim() == '' || parseInt(gasMileage) < 0) {
|
|
hasError = true;
|
|
$("#gasRecordMileage").addClass("is-invalid");
|
|
} else {
|
|
$("#gasRecordMileage").removeClass("is-invalid");
|
|
}
|
|
if (gasGallons.trim() == '' || parseFloat(gasGallons) <= 0) {
|
|
hasError = true;
|
|
$("#gasRecordGallons").addClass("is-invalid");
|
|
} else {
|
|
$("#gasRecordGallons").removeClass("is-invalid");
|
|
}
|
|
if (gasCostType != undefined && gasCostType == 'unit') {
|
|
var convertedGasCost = parseFloat(gasCost) * parseFloat(gasGallons);
|
|
gasCost = convertedGasCost.toFixed(2).toString();
|
|
if (isNaN(gasCost))
|
|
{
|
|
hasError = true;
|
|
$("#gasRecordCost").addClass("is-invalid");
|
|
} else {
|
|
$("#gasRecordCost").removeClass("is-invalid");
|
|
}
|
|
}
|
|
if (gasCost.trim() == '' || !isValidMoney(gasCost)) {
|
|
hasError = true;
|
|
$("#gasRecordCost").addClass("is-invalid");
|
|
} else {
|
|
$("#gasRecordCost").removeClass("is-invalid");
|
|
}
|
|
return {
|
|
id: gasRecordId,
|
|
hasError: hasError,
|
|
vehicleId: vehicleId,
|
|
date: gasDate,
|
|
mileage: gasMileage,
|
|
gallons: gasGallons,
|
|
cost: gasCost,
|
|
files: uploadedFiles,
|
|
isFillToFull: gasIsFillToFull,
|
|
missedFuelUp: gasIsMissed,
|
|
notes: gasNotes
|
|
}
|
|
} |