- @($"# of Service Records: {Model.Count()}")
+ @($"# of Service Records: {Model.Count()}")
@($"Total: {Model.Sum(x => x.Cost).ToString("C")}")
diff --git a/wwwroot/js/collisionrecord.js b/wwwroot/js/collisionrecord.js
new file mode 100644
index 0000000..ccab704
--- /dev/null
+++ b/wwwroot/js/collisionrecord.js
@@ -0,0 +1,121 @@
+function showAddCollisionRecordModal() {
+ $.get('/Vehicle/GetAddCollisionRecordPartialView', function (data) {
+ if (data) {
+ $("#collisionRecordModalContent").html(data);
+ //initiate datepicker
+ $('#collisionRecordDate').datepicker({
+ endDate: "+0d"
+ });
+ $('#collisionRecordModal').modal('show');
+ }
+ });
+}
+function showEditCollisionRecordModal(collisionRecordId) {
+ $.get(`/Vehicle/GetCollisionRecordForEditById?collisionRecordId=${collisionRecordId}`, function (data) {
+ if (data) {
+ $("#collisionRecordModalContent").html(data);
+ //initiate datepicker
+ $('#collisionRecordDate').datepicker({
+ endDate: "+0d"
+ });
+ $('#collisionRecordModal').modal('show');
+ }
+ });
+}
+function hideAddCollisionRecordModal() {
+ $('#collisionRecordModal').modal('hide');
+}
+function deleteCollisionRecord(collisionRecordId) {
+ $("#workAroundInput").show();
+ Swal.fire({
+ title: "Confirm Deletion?",
+ text: "Deleted Collision 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("Collision Record Deleted");
+ var vehicleId = GetVehicleId().vehicleId;
+ getVehicleCollisionRecords(vehicleId);
+ } else {
+ errorToast("An error has occurred, please try again later.");
+ }
+ });
+ } 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 ? "Collision Record Updated" : "Collision Record Added.");
+ hideAddCollisionRecordModal();
+ getVehicleCollisionRecords(formValues.vehicleId);
+ } else {
+ errorToast("An error has occurred, please try again later.");
+ }
+ })
+}
+function getAndValidateCollisionRecordValues() {
+ var collisionDate = $("#collisionRecordDate").val();
+ var collisionMileage = $("#collisionRecordMileage").val();
+ var collisionDescription = $("#collisionRecordDescription").val();
+ var collisionCost = $("#collisionRecordCost").val();
+ var collisionNotes = $("#collisionRecordNotes").val();
+ var vehicleId = GetVehicleId().vehicleId;
+ var collisionRecordId = getCollisionRecordModelData().id;
+ //validation
+ var hasError = false;
+ if (collisionDate.trim() == '') { //eliminates whitespace.
+ hasError = true;
+ $("#collisionRecordDate").addClass("is-invalid");
+ } else {
+ $("#collisionRecordDate").removeClass("is-invalid");
+ }
+ if (collisionMileage.trim() == '' || 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() == '') {
+ 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
+ }
+}
+function deleteCollisionRecordFile(fileLocation, event) {
+ event.parentElement.remove();
+ uploadedFiles = uploadedFiles.filter(x => x.location != fileLocation);
+}
\ No newline at end of file
diff --git a/wwwroot/js/servicerecord.js b/wwwroot/js/servicerecord.js
index 34c0c8f..e224a79 100644
--- a/wwwroot/js/servicerecord.js
+++ b/wwwroot/js/servicerecord.js
@@ -38,7 +38,7 @@ function deleteServiceRecord(serviceRecordId) {
$.post(`/Vehicle/DeleteServiceRecordById?serviceRecordId=${serviceRecordId}`, function (data) {
if (data) {
hideAddServiceRecordModal();
- successToast("Service Record deleted");
+ successToast("Service Record Deleted");
var vehicleId = GetVehicleId().vehicleId;
getVehicleServiceRecords(vehicleId);
} else {
diff --git a/wwwroot/js/vehicle.js b/wwwroot/js/vehicle.js
index 3757250..0532fa2 100644
--- a/wwwroot/js/vehicle.js
+++ b/wwwroot/js/vehicle.js
@@ -25,11 +25,20 @@ $(document).ready(function () {
case "gas-tab":
getVehicleGasRecords(vehicleId);
break;
+ case "accident-tab":
+ getVehicleCollisionRecords(vehicleId);
+ break;
}
switch (e.relatedTarget.id) { //clear out previous tabs with grids in them to help with performance
case "servicerecord-tab":
$("#servicerecord-tab-pane").html("");
break;
+ case "gas-tab":
+ $("#gas-tab-pane").html("");
+ break;
+ case "accident-tab":
+ $("#accident-tab-pane").html("");
+ break;
}
});
getVehicleServiceRecords(vehicleId);
@@ -49,6 +58,20 @@ function getVehicleServiceRecords(vehicleId) {
}
})
}
+function getVehicleGasRecords(vehicleId) {
+ $.get(`/Vehicle/GetGasRecordsByVehicleId?vehicleId=${vehicleId}`, function (data) {
+ if (data) {
+ $("#gas-tab-pane").html(data);
+ }
+ });
+}
+function getVehicleCollisionRecords(vehicleId) {
+ $.get(`/Vehicle/GetCollisionRecordsByVehicleId?vehicleId=${vehicleId}`, function (data) {
+ if (data) {
+ $("#accident-tab-pane").html(data);
+ }
+ });
+}
function editVehicle(vehicleId) {
$.get(`/Vehicle/GetEditVehiclePartialViewById?vehicleId=${vehicleId}`, function (data) {
if (data) {
@@ -77,13 +100,6 @@ function deleteVehicle(vehicleId) {
}
});
}
-function getVehicleGasRecords(vehicleId) {
- $.get(`/Vehicle/GetGasRecordsByVehicleId?vehicleId=${vehicleId}`, function (data) {
- if (data) {
- $("#gas-tab-pane").html(data);
- }
- });
-}
function uploadVehicleFilesAsync(event) {
let formData = new FormData();
var files = event.files;