Merge pull request #426 from hargata/Hargata/multiple.reminders

Select Multiple Reminders when creating new record.
This commit is contained in:
Hargata Softworks
2024-03-23 20:55:04 -06:00
committed by GitHub
12 changed files with 105 additions and 24 deletions

View File

@@ -824,9 +824,12 @@ namespace CarCareTracker.Controllers
serviceRecord.RequisitionHistory = RequisitionSupplyRecordsByUsage(serviceRecord.Supplies, DateTime.Parse(serviceRecord.Date), serviceRecord.Description);
}
//push back any reminders
if (serviceRecord.ReminderRecordId != default)
if (serviceRecord.ReminderRecordId.Any())
{
PushbackRecurringReminderRecordWithChecks(serviceRecord.ReminderRecordId);
foreach(int reminderRecordId in serviceRecord.ReminderRecordId)
{
PushbackRecurringReminderRecordWithChecks(reminderRecordId);
}
}
var result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(serviceRecord.ToServiceRecord());
if (result)
@@ -909,9 +912,12 @@ namespace CarCareTracker.Controllers
collisionRecord.RequisitionHistory = RequisitionSupplyRecordsByUsage(collisionRecord.Supplies, DateTime.Parse(collisionRecord.Date), collisionRecord.Description);
}
//push back any reminders
if (collisionRecord.ReminderRecordId != default)
if (collisionRecord.ReminderRecordId.Any())
{
PushbackRecurringReminderRecordWithChecks(collisionRecord.ReminderRecordId);
foreach (int reminderRecordId in collisionRecord.ReminderRecordId)
{
PushbackRecurringReminderRecordWithChecks(reminderRecordId);
}
}
var result = _collisionRecordDataAccess.SaveCollisionRecordToVehicle(collisionRecord.ToCollisionRecord());
if (result)
@@ -1020,9 +1026,12 @@ namespace CarCareTracker.Controllers
//move files from temp.
taxRecord.Files = taxRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList();
//push back any reminders
if (taxRecord.ReminderRecordId != default)
if (taxRecord.ReminderRecordId.Any())
{
PushbackRecurringReminderRecordWithChecks(taxRecord.ReminderRecordId);
foreach (int reminderRecordId in taxRecord.ReminderRecordId)
{
PushbackRecurringReminderRecordWithChecks(reminderRecordId);
}
}
var result = _taxRecordDataAccess.SaveTaxRecordToVehicle(taxRecord.ToTaxRecord());
if (result)
@@ -1726,9 +1735,12 @@ namespace CarCareTracker.Controllers
upgradeRecord.RequisitionHistory = RequisitionSupplyRecordsByUsage(upgradeRecord.Supplies, DateTime.Parse(upgradeRecord.Date), upgradeRecord.Description);
}
//push back any reminders
if (upgradeRecord.ReminderRecordId != default)
if (upgradeRecord.ReminderRecordId.Any())
{
PushbackRecurringReminderRecordWithChecks(upgradeRecord.ReminderRecordId);
foreach (int reminderRecordId in upgradeRecord.ReminderRecordId)
{
PushbackRecurringReminderRecordWithChecks(reminderRecordId);
}
}
var result = _upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(upgradeRecord.ToUpgradeRecord());
if (result)

View File

@@ -8,7 +8,7 @@ namespace CarCareTracker.Helper
/// </summary>
public static class StaticHelper
{
public static string VersionNumber = "1.2.8";
public static string VersionNumber = "1.2.9";
public static string DbName = "data/cartracker.db";
public static string UserConfigPath = "config/userConfig.json";
public static string GenericErrorMessage = "An error occurred, please try again later";

View File

@@ -4,7 +4,7 @@
{
public int Id { get; set; }
public int VehicleId { get; set; }
public int ReminderRecordId { get; set; }
public List<int> ReminderRecordId { get; set; } = new List<int>();
public string Date { get; set; } = DateTime.Now.ToShortDateString();
public int Mileage { get; set; }
public string Description { get; set; }

View File

@@ -4,7 +4,7 @@
{
public int Id { get; set; }
public int VehicleId { get; set; }
public int ReminderRecordId { get; set; }
public List<int> ReminderRecordId { get; set; } = new List<int>();
public string Date { get; set; } = DateTime.Now.ToShortDateString();
public int Mileage { get; set; }
public string Description { get; set; }

View File

@@ -4,7 +4,7 @@
{
public int Id { get; set; }
public int VehicleId { get; set; }
public int ReminderRecordId { get; set; }
public List<int> ReminderRecordId { get; set; } = new List<int>();
public string Date { get; set; } = DateTime.Now.ToShortDateString();
public string Description { get; set; }
public decimal Cost { get; set; }

View File

@@ -4,7 +4,7 @@
{
public int Id { get; set; }
public int VehicleId { get; set; }
public int ReminderRecordId { get; set; }
public List<int> ReminderRecordId { get; set; } = new List<int>();
public string Date { get; set; } = DateTime.Now.ToShortDateString();
public int Mileage { get; set; }
public string Description { get; set; }

View File

@@ -121,7 +121,7 @@
<script>
var uploadedFiles = [];
var selectedSupplies = [];
var recurringReminderRecordId = 0;
var recurringReminderRecordId = [];
getUploadedFilesFromModel();
function getUploadedFilesFromModel() {
@foreach (UploadedFiles filesUploaded in Model.Files)

View File

@@ -1,4 +1,11 @@
@model List<ReminderRecord>
@if (Model.Count() > 1)
{
<div class="mb-2">
<input class="form-check-input" type="checkbox" onchange="showMultipleRemindersSelector()" id="multipleRemindersCheck">
<label class="form-check-label" for="multipleRemindersCheck">Multiple</label>
</div>
}
<select class="form-select" id="recurringReminderInput">
@if (Model.Any())
{
@@ -10,4 +17,15 @@
{
<!option value="0">No Recurring Reminders Found</!option>
}
</select>
</select>
<div id="recurringMultipleReminders" style="display:none;">
<ul class="list-group">
@foreach (ReminderRecord reminderRecord in Model)
{
<li class="list-group-item text-start">
<input class="form-check-input" type="checkbox" value="@reminderRecord.Id" id="recurringReminder_@reminderRecord.Id">
<label class="form-check-label stretched-link" for="recurringReminder_@reminderRecord.Id">@reminderRecord.Description</label>
</li>
}
</ul>
</div>

View File

@@ -121,7 +121,7 @@
<script>
var uploadedFiles = [];
var selectedSupplies = [];
var recurringReminderRecordId = 0;
var recurringReminderRecordId = [];
getUploadedFilesFromModel();
function getUploadedFilesFromModel() {
@foreach (UploadedFiles filesUploaded in Model.Files)

View File

@@ -115,7 +115,7 @@
<script>
var uploadedFiles = [];
var customMonthInterval = @Model.CustomMonthInterval;
var recurringReminderRecordId = 0;
var recurringReminderRecordId = [];
getUploadedFilesFromModel();
function getUploadedFilesFromModel() {
@foreach (UploadedFiles filesUploaded in Model.Files)

View File

@@ -121,7 +121,7 @@
<script>
var uploadedFiles = [];
var selectedSupplies = [];
var recurringReminderRecordId = 0;
var recurringReminderRecordId = [];
getUploadedFilesFromModel();
function getUploadedFilesFromModel() {
@foreach (UploadedFiles filesUploaded in Model.Files)

View File

@@ -340,19 +340,19 @@ function showRecurringReminderSelector(descriptionFieldName) {
confirmButtonText: 'Select',
focusConfirm: false,
preConfirm: () => {
const selectedRecurringReminder = $("#recurringReminderInput").val();
const selectedRecurringReminderText = $("#recurringReminderInput option:selected").text();
if (!selectedRecurringReminder || parseInt(selectedRecurringReminder) == 0) {
//validate
var selectedRecurringReminderData = getAndValidateSelectedRecurringReminder();
if (selectedRecurringReminderData.hasError) {
Swal.showValidationMessage(`You must select a recurring reminder`);
}
return { selectedRecurringReminder, selectedRecurringReminderText }
return { selectedRecurringReminderData }
},
}).then(function (result) {
if (result.isConfirmed) {
recurringReminderRecordId = result.value.selectedRecurringReminder;
recurringReminderRecordId = result.value.selectedRecurringReminderData.ids;
var descriptionField = $(`#${descriptionFieldName}`);
if (descriptionField.length > 0) {
descriptionField.val(result.value.selectedRecurringReminderText.trim());
descriptionField.val(result.value.selectedRecurringReminderData.text);
}
}
});
@@ -554,4 +554,55 @@ function adjustRecordsOdometer(ids, source) {
$("#workAroundInput").hide();
}
});
}
function showMultipleRemindersSelector() {
if ($("#multipleRemindersCheck").is(":checked")) {
$("#recurringMultipleReminders").show();
$("#recurringReminderInput").hide();
} else {
$("#recurringMultipleReminders").hide();
$("#recurringReminderInput").show();
}
}
function getAndValidateSelectedRecurringReminder() {
if ($("#multipleRemindersCheck").is(":checked")) {
//validate multiple reminders
var selectedRecurringRemindersArray = [];
$("#recurringMultipleReminders :checked").map(function () {
selectedRecurringRemindersArray.push({
value: this.value,
text: $(this).parent().find('.form-check-label').text()
});
});
if (selectedRecurringRemindersArray.length == 0) {
return {
hasError: true,
ids: [],
text: ''
}
} else {
return {
hasError: false,
ids: selectedRecurringRemindersArray.map(x=>x.value),
text: selectedRecurringRemindersArray.map(x=>x.text).join(', ')
}
}
} else {
//validate single reminder
var selectedRecurringReminder = $("#recurringReminderInput").val();
var selectedRecurringReminderText = $("#recurringReminderInput option:selected").text();
if (!selectedRecurringReminder || parseInt(selectedRecurringReminder) == 0) {
return {
hasError: true,
ids: [],
text: ''
}
} else {
return {
hasError: false,
ids: [selectedRecurringReminder],
text: selectedRecurringReminderText
}
}
}
}