Add Reminder function.

This commit is contained in:
DESKTOP-GENO133\IvanPlex 2024-01-07 11:28:17 -07:00
parent c05b5e4c3d
commit f28af456b3
11 changed files with 57 additions and 13 deletions

View File

@ -672,7 +672,7 @@ namespace CarCareTracker.Controllers
var result = _reminderRecordDataAccess.SaveReminderRecordToVehicle(reminderRecord.ToReminderRecord());
return Json(result);
}
[HttpGet]
[HttpPost]
public IActionResult GetAddReminderRecordPartialView(ReminderRecordInput? reminderModel)
{
if (reminderModel is not null)

View File

@ -4,7 +4,7 @@
{
public int Id { get; set; }
public int VehicleId { get; set; }
public string Date { get; set; }
public string Date { get; set; } = DateTime.Now.AddDays(1).ToShortDateString();
public int Mileage { get; set; }
public string Description { get; set; }
public string Notes { get; set; }

View File

@ -44,6 +44,15 @@
}
else
{
@if (isNew)
{
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="addReminderCheck">
<label class="form-check-label" for="addReminderCheck">
Add Reminder
</label>
</div>
}
<label for="collisionRecordFiles">Upload documents(optional)</label>
<input onChange="uploadVehicleFilesAsync(this)" type="file" multiple accept=".png,.jpg,.jpeg,.pdf,.xls,.xlsx,.docx" class="form-control-file" id="collisionRecordFiles">
}

View File

@ -24,12 +24,12 @@
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="reminderMetricOptions" id="reminderMetricOdometer" value="1" checked="@(Model.Metric == ReminderMetric.Odometer)">
<input class="form-check-input" type="radio" name="reminderMetricOptions" id="reminderMetricOdometer" value="@(ReminderMetric.Odometer)" checked="@(Model.Metric == ReminderMetric.Odometer)">
<label class="form-check-label" for="reminderMetricOdometer">Odometer</label>
</div>
<input type="number" id="reminderMileage" class="form-control" placeholder="Future Odometer Reading" value="@(isNew ? "" : Model.Mileage)">
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="reminderMetricOptions" id="reminderMetricBoth" value="2" checked="@(Model.Metric == ReminderMetric.Both)">
<input class="form-check-input" type="radio" name="reminderMetricOptions" id="reminderMetricBoth" value="@(ReminderMetric.Both)" checked="@(Model.Metric == ReminderMetric.Both)">
<label class="form-check-label" for="reminderMetricBoth">Whichever comes first</label>
</div>
</div>

View File

@ -44,6 +44,15 @@
}
else
{
@if (isNew)
{
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="addReminderCheck">
<label class="form-check-label" for="addReminderCheck">
Add Reminder
</label>
</div>
}
<label for="serviceRecordFiles">Upload documents(optional)</label>
<input onChange="uploadVehicleFilesAsync(this)" type="file" multiple accept=".png,.jpg,.jpeg,.pdf,.xls,.xlsx,.docx" class="form-control-file" id="serviceRecordFiles">
}

View File

@ -42,6 +42,15 @@
}
else
{
@if (isNew)
{
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="addReminderCheck">
<label class="form-check-label" for="addReminderCheck">
Add Reminder
</label>
</div>
}
<label for="taxRecordFiles">Upload documents(optional)</label>
<input onChange="uploadVehicleFilesAsync(this)" type="file" multiple accept=".png,.jpg,.jpeg,.pdf,.xls,.xlsx,.docx" class="form-control-file" id="taxRecordFiles">
}

View File

@ -66,6 +66,9 @@ function saveCollisionRecordToVehicle(isEdit) {
successToast(isEdit ? "Repair Record Updated" : "Repair Record Added.");
hideAddCollisionRecordModal();
getVehicleCollisionRecords(formValues.vehicleId);
if (formValues.addReminderRecord) {
setTimeout(function () { showAddReminderModal(formValues); }, 500);
}
} else {
errorToast("An error has occurred, please try again later.");
}
@ -79,6 +82,7 @@ function getAndValidateCollisionRecordValues() {
var collisionNotes = $("#collisionRecordNotes").val();
var vehicleId = GetVehicleId().vehicleId;
var collisionRecordId = getCollisionRecordModelData().id;
var addReminderRecord = $("#addReminderCheck").is(":checked");
//validation
var hasError = false;
if (collisionDate.trim() == '') { //eliminates whitespace.
@ -114,7 +118,8 @@ function getAndValidateCollisionRecordValues() {
description: collisionDescription,
cost: collisionCost,
notes: collisionNotes,
files: uploadedFiles
files: uploadedFiles,
addReminderRecord: addReminderRecord
}
}
function deleteCollisionRecordFile(fileLocation, event) {

View File

@ -69,16 +69,18 @@ function getAndValidateReminderRecordValues() {
var reminderId = getReminderRecordModelData().id;
//validation
var hasError = false;
if (reminderDate.trim() == '') { //eliminates whitespace.
var reminderDateIsInvalid = reminderDate.trim() == ''; //eliminates whitespace.
var reminderMileageIsInvalid = reminderMileage.trim() == '' || parseInt(reminderMileage) < 0;
if ((reminderOption == "Both" || reminderOption == "Date") && reminderDateIsInvalid) {
hasError = true;
$("#reminderDate").addClass("is-invalid");
} else {
} else if (reminderOption == "Date") {
$("#reminderDate").removeClass("is-invalid");
}
if (reminderMileage.trim() == '' || parseInt(reminderMileage) < 0) {
if ((reminderOption == "Both" || reminderOption == "Odometer") && reminderMileageIsInvalid) {
hasError = true;
$("#reminderMileage").addClass("is-invalid");
} else {
} else if (reminderOption == "Odometer") {
$("#reminderMileage").removeClass("is-invalid");
}
if (reminderDescription.trim() == '') {

View File

@ -66,6 +66,9 @@ function saveServiceRecordToVehicle(isEdit) {
successToast(isEdit ? "Service Record Updated" : "Service Record Added.");
hideAddServiceRecordModal();
getVehicleServiceRecords(formValues.vehicleId);
if (formValues.addReminderRecord) {
setTimeout(function () { showAddReminderModal(formValues); }, 500);
}
} else {
errorToast("An error has occurred, please try again later.");
}
@ -79,6 +82,7 @@ function getAndValidateServiceRecordValues() {
var serviceNotes = $("#serviceRecordNotes").val();
var vehicleId = GetVehicleId().vehicleId;
var serviceRecordId = getServiceRecordModelData().id;
var addReminderRecord = $("#addReminderCheck").is(":checked");
//validation
var hasError = false;
if (serviceDate.trim() == '') { //eliminates whitespace.
@ -114,7 +118,8 @@ function getAndValidateServiceRecordValues() {
description: serviceDescription,
cost: serviceCost,
notes: serviceNotes,
files: uploadedFiles
files: uploadedFiles,
addReminderRecord: addReminderRecord
}
}
function deleteServiceRecordFile(fileLocation, event) {

View File

@ -66,6 +66,9 @@ function saveTaxRecordToVehicle(isEdit) {
successToast(isEdit ? "Tax Record Updated" : "Tax Record Added.");
hideAddTaxRecordModal();
getVehicleTaxRecords(formValues.vehicleId);
if (formValues.addReminderRecord) {
setTimeout(function () { showAddReminderModal(formValues); }, 500);
}
} else {
errorToast("An error has occurred, please try again later.");
}
@ -78,6 +81,7 @@ function getAndValidateTaxRecordValues() {
var taxNotes = $("#taxRecordNotes").val();
var vehicleId = GetVehicleId().vehicleId;
var taxRecordId = getTaxRecordModelData().id;
var addReminderRecord = $("#addReminderCheck").is(":checked");
//validation
var hasError = false;
if (taxDate.trim() == '') { //eliminates whitespace.
@ -106,7 +110,8 @@ function getAndValidateTaxRecordValues() {
description: taxDescription,
cost: taxCost,
notes: taxNotes,
files: uploadedFiles
files: uploadedFiles,
addReminderRecord: addReminderRecord
}
}
function deleteTaxRecordFile(fileLocation, event) {

View File

@ -179,7 +179,7 @@ function uploadVehicleFilesAsync(event) {
}
function showAddReminderModal(reminderModalInput) {
if (reminderModalInput != undefined) {
$.get('/Vehicle/GetAddReminderRecordPartialView', {reminderModel: reminderModalInput}, function (data) {
$.post('/Vehicle/GetAddReminderRecordPartialView', {reminderModel: reminderModalInput}, function (data) {
$("#reminderRecordModalContent").html(data);
$('#reminderDate').datepicker({
startDate: "+0d"
@ -187,7 +187,7 @@ function showAddReminderModal(reminderModalInput) {
$("#reminderRecordModal").modal("show");
});
} else {
$.get('/Vehicle/GetAddReminderRecordPartialView', function (data) {
$.post('/Vehicle/GetAddReminderRecordPartialView', function (data) {
$("#reminderRecordModalContent").html(data);
$('#reminderDate').datepicker({
startDate: "+0d"