lubelog/wwwroot/js/collisionrecord.js
DESKTOP-T0O5CDB\DESK-555BD a653f3ac7f make odometer optional
2024-09-24 18:36:59 -06:00

155 lines
5.9 KiB
JavaScript

function showAddCollisionRecordModal() {
$.get('/Vehicle/GetAddCollisionRecordPartialView', function (data) {
if (data) {
$("#collisionRecordModalContent").html(data);
//initiate datepicker
initDatePicker($('#collisionRecordDate'));
initTagSelector($("#collisionRecordTag"));
$('#collisionRecordModal').modal('show');
}
});
}
function showEditCollisionRecordModal(collisionRecordId, nocache) {
if (!nocache) {
var existingContent = $("#collisionRecordModalContent").html();
if (existingContent.trim() != '') {
//check if id is same.
var existingId = getCollisionRecordModelData().id;
if (existingId == collisionRecordId && $('[data-changed=true]').length > 0) {
$('#collisionRecordModal').modal('show');
$('.cached-banner').show();
return;
}
}
}
$.get(`/Vehicle/GetCollisionRecordForEditById?collisionRecordId=${collisionRecordId}`, function (data) {
if (data) {
$("#collisionRecordModalContent").html(data);
//initiate datepicker
initDatePicker($('#collisionRecordDate'));
initTagSelector($("#collisionRecordTag"));
$('#collisionRecordModal').modal('show');
bindModalInputChanges('collisionRecordModal');
$('#collisionRecordModal').off('shown.bs.modal').on('shown.bs.modal', function () {
if (getGlobalConfig().useMarkDown) {
toggleMarkDownOverlay("collisionRecordNotes");
}
});
}
});
}
function hideAddCollisionRecordModal() {
$('#collisionRecordModal').modal('hide');
}
function deleteCollisionRecord(collisionRecordId) {
$("#workAroundInput").show();
Swal.fire({
title: "Confirm Deletion?",
text: "Deleted Repair Records cannot be restored.",
showCancelButton: true,
confirmButtonText: "Delete",
confirmButtonColor: "#dc3545"
}).then((result) => {
if (result.isConfirmed) {
$.post(`/Vehicle/DeleteCollisionRecordById?collisionRecordId=${collisionRecordId}`, function (data) {
if (data) {
hideAddCollisionRecordModal();
successToast("Repair Record Deleted");
var vehicleId = GetVehicleId().vehicleId;
getVehicleCollisionRecords(vehicleId);
} else {
errorToast(genericErrorMessage());
}
});
} else {
$("#workAroundInput").hide();
}
});
}
function saveCollisionRecordToVehicle(isEdit) {
//get values
var formValues = getAndValidateCollisionRecordValues();
//validate
if (formValues.hasError) {
errorToast("Please check the form data");
return;
}
//save to db.
$.post('/Vehicle/SaveCollisionRecordToVehicleId', { collisionRecord: formValues }, function (data) {
if (data) {
successToast(isEdit ? "Repair Record Updated" : "Repair Record Added.");
hideAddCollisionRecordModal();
saveScrollPosition();
getVehicleCollisionRecords(formValues.vehicleId);
if (formValues.addReminderRecord) {
setTimeout(function () { showAddReminderModal(formValues); }, 500);
}
} else {
errorToast(genericErrorMessage());
}
})
}
function getAndValidateCollisionRecordValues() {
var collisionDate = $("#collisionRecordDate").val();
var collisionMileage = parseInt(globalParseFloat($("#collisionRecordMileage").val())).toString();
var collisionDescription = $("#collisionRecordDescription").val();
var collisionCost = $("#collisionRecordCost").val();
var collisionNotes = $("#collisionRecordNotes").val();
var collisionTags = $("#collisionRecordTag").val();
var vehicleId = GetVehicleId().vehicleId;
var collisionRecordId = getCollisionRecordModelData().id;
var addReminderRecord = $("#addReminderCheck").is(":checked");
//Odometer Adjustments
if (isNaN(collisionMileage)) {
collisionMileage = '0';
}
collisionMileage = GetAdjustedOdometer(collisionRecordId, collisionMileage);
//validation
var hasError = false;
var extraFields = getAndValidateExtraFields();
if (extraFields.hasError) {
hasError = true;
}
if (collisionDate.trim() == '') { //eliminates whitespace.
hasError = true;
$("#collisionRecordDate").addClass("is-invalid");
} else {
$("#collisionRecordDate").removeClass("is-invalid");
}
if (collisionMileage.trim() == '' || isNaN(collisionMileage) || parseInt(collisionMileage) < 0) {
hasError = true;
$("#collisionRecordMileage").addClass("is-invalid");
} else {
$("#collisionRecordMileage").removeClass("is-invalid");
}
if (collisionDescription.trim() == '') {
hasError = true;
$("#collisionRecordDescription").addClass("is-invalid");
} else {
$("#collisionRecordDescription").removeClass("is-invalid");
}
if (collisionCost.trim() == '' || !isValidMoney(collisionCost)) {
hasError = true;
$("#collisionRecordCost").addClass("is-invalid");
} else {
$("#collisionRecordCost").removeClass("is-invalid");
}
return {
id: collisionRecordId,
hasError: hasError,
vehicleId: vehicleId,
date: collisionDate,
mileage: collisionMileage,
description: collisionDescription,
cost: collisionCost,
notes: collisionNotes,
files: uploadedFiles,
supplies: selectedSupplies,
tags: collisionTags,
addReminderRecord: addReminderRecord,
extraFields: extraFields.extraFields,
requisitionHistory: supplyUsageHistory,
reminderRecordId: recurringReminderRecordId,
copySuppliesAttachment: copySuppliesAttachments
}
}