Compare commits
3 Commits
v1.4.3
...
Hargata/de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f1b585893 | ||
|
|
92c0c103be | ||
|
|
4dc896084e |
@@ -73,7 +73,7 @@ namespace CarCareTracker.Controllers
|
|||||||
var result = PushbackRecurringReminderRecordWithChecks(reminderRecordId, null, null);
|
var result = PushbackRecurringReminderRecordWithChecks(reminderRecordId, null, null);
|
||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
private bool PushbackRecurringReminderRecordWithChecks(int reminderRecordId, DateTime? currentDate, int? currentMileage)
|
private bool PushbackRecurringReminderRecordWithChecks(int reminderRecordId, DateTime? currentDate, decimal? currentMileage)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -350,7 +350,7 @@ namespace CarCareTracker.Controllers
|
|||||||
vehicleHistory.ReportParameters = reportParameter;
|
vehicleHistory.ReportParameters = reportParameter;
|
||||||
vehicleHistory.VehicleData = _dataAccess.GetVehicleById(vehicleId);
|
vehicleHistory.VehicleData = _dataAccess.GetVehicleById(vehicleId);
|
||||||
var maxMileage = _vehicleLogic.GetMaxMileage(vehicleId);
|
var maxMileage = _vehicleLogic.GetMaxMileage(vehicleId);
|
||||||
vehicleHistory.Odometer = maxMileage.ToString("N0");
|
vehicleHistory.Odometer = maxMileage.ToString("N1");
|
||||||
var minMileage = _vehicleLogic.GetMinMileage(vehicleId);
|
var minMileage = _vehicleLogic.GetMinMileage(vehicleId);
|
||||||
var distanceTraveled = maxMileage - minMileage;
|
var distanceTraveled = maxMileage - minMileage;
|
||||||
if (!string.IsNullOrWhiteSpace(vehicleHistory.VehicleData.PurchaseDate))
|
if (!string.IsNullOrWhiteSpace(vehicleHistory.VehicleData.PurchaseDate))
|
||||||
@@ -364,7 +364,7 @@ namespace CarCareTracker.Controllers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
daysOwned = (DateTime.Parse(endDate) - DateTime.Parse(vehicleHistory.VehicleData.PurchaseDate)).Days;
|
daysOwned = (DateTime.Parse(endDate) - DateTime.Parse(vehicleHistory.VehicleData.PurchaseDate)).Days;
|
||||||
vehicleHistory.DaysOwned = daysOwned.ToString("N0");
|
vehicleHistory.DaysOwned = daysOwned.ToString("N1");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -401,7 +401,7 @@ namespace CarCareTracker.Controllers
|
|||||||
vehicleHistory.TotalCost = serviceRecords.Sum(x => x.Cost) + repairRecords.Sum(x => x.Cost) + upgradeRecords.Sum(x => x.Cost) + taxRecords.Sum(x => x.Cost);
|
vehicleHistory.TotalCost = serviceRecords.Sum(x => x.Cost) + repairRecords.Sum(x => x.Cost) + upgradeRecords.Sum(x => x.Cost) + taxRecords.Sum(x => x.Cost);
|
||||||
if (distanceTraveled != default)
|
if (distanceTraveled != default)
|
||||||
{
|
{
|
||||||
vehicleHistory.DistanceTraveled = distanceTraveled.ToString("N0");
|
vehicleHistory.DistanceTraveled = distanceTraveled.ToString("N1");
|
||||||
vehicleHistory.TotalCostPerMile = vehicleHistory.TotalCost / distanceTraveled;
|
vehicleHistory.TotalCostPerMile = vehicleHistory.TotalCost / distanceTraveled;
|
||||||
vehicleHistory.TotalGasCostPerMile = vehicleHistory.TotalGasCost / distanceTraveled;
|
vehicleHistory.TotalGasCostPerMile = vehicleHistory.TotalGasCost / distanceTraveled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,6 @@ namespace CarCareTracker.Controllers
|
|||||||
return Json(new OperationResponse { Success = false, Message = StaticHelper.GenericErrorMessage });
|
return Json(new OperationResponse { Success = false, Message = StaticHelper.GenericErrorMessage });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region "Shared Methods"
|
#region "Shared Methods"
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public IActionResult GetFilesPendingUpload(List<UploadedFiles> uploadedFiles)
|
public IActionResult GetFilesPendingUpload(List<UploadedFiles> uploadedFiles)
|
||||||
@@ -450,7 +449,7 @@ namespace CarCareTracker.Controllers
|
|||||||
{
|
{
|
||||||
var existingRecord = _serviceRecordDataAccess.GetServiceRecordById(recordId);
|
var existingRecord = _serviceRecordDataAccess.GetServiceRecordById(recordId);
|
||||||
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
||||||
existingRecord.Mileage = decimal.ToInt32(existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any));
|
existingRecord.Mileage = existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any);
|
||||||
result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(existingRecord);
|
result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(existingRecord);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -458,7 +457,7 @@ namespace CarCareTracker.Controllers
|
|||||||
{
|
{
|
||||||
var existingRecord = _collisionRecordDataAccess.GetCollisionRecordById(recordId);
|
var existingRecord = _collisionRecordDataAccess.GetCollisionRecordById(recordId);
|
||||||
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
||||||
existingRecord.Mileage = decimal.ToInt32(existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any));
|
existingRecord.Mileage = existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any);
|
||||||
result = _collisionRecordDataAccess.SaveCollisionRecordToVehicle(existingRecord);
|
result = _collisionRecordDataAccess.SaveCollisionRecordToVehicle(existingRecord);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -466,7 +465,7 @@ namespace CarCareTracker.Controllers
|
|||||||
{
|
{
|
||||||
var existingRecord = _upgradeRecordDataAccess.GetUpgradeRecordById(recordId);
|
var existingRecord = _upgradeRecordDataAccess.GetUpgradeRecordById(recordId);
|
||||||
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
||||||
existingRecord.Mileage = decimal.ToInt32(existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any));
|
existingRecord.Mileage = existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any);
|
||||||
result = _upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(existingRecord);
|
result = _upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(existingRecord);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -474,7 +473,7 @@ namespace CarCareTracker.Controllers
|
|||||||
{
|
{
|
||||||
var existingRecord = _gasRecordDataAccess.GetGasRecordById(recordId);
|
var existingRecord = _gasRecordDataAccess.GetGasRecordById(recordId);
|
||||||
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
||||||
existingRecord.Mileage = decimal.ToInt32(existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any));
|
existingRecord.Mileage = existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any);
|
||||||
result = _gasRecordDataAccess.SaveGasRecordToVehicle(existingRecord);
|
result = _gasRecordDataAccess.SaveGasRecordToVehicle(existingRecord);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -482,7 +481,7 @@ namespace CarCareTracker.Controllers
|
|||||||
{
|
{
|
||||||
var existingRecord = _odometerRecordDataAccess.GetOdometerRecordById(recordId);
|
var existingRecord = _odometerRecordDataAccess.GetOdometerRecordById(recordId);
|
||||||
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
existingRecord.Mileage += int.Parse(vehicleData.OdometerDifference);
|
||||||
existingRecord.Mileage = decimal.ToInt32(existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any));
|
existingRecord.Mileage = existingRecord.Mileage * decimal.Parse(vehicleData.OdometerMultiplier, NumberStyles.Any);
|
||||||
result = _odometerRecordDataAccess.SaveOdometerRecordToVehicle(existingRecord);
|
result = _odometerRecordDataAccess.SaveOdometerRecordToVehicle(existingRecord);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ namespace CarCareTracker.Helper
|
|||||||
//need to order by to get correct results
|
//need to order by to get correct results
|
||||||
result = result.OrderBy(x => x.Date).ThenBy(x => x.Mileage).ToList();
|
result = result.OrderBy(x => x.Date).ThenBy(x => x.Mileage).ToList();
|
||||||
var computedResults = new List<GasRecordViewModel>();
|
var computedResults = new List<GasRecordViewModel>();
|
||||||
int previousMileage = 0;
|
decimal previousMileage = 0.00M;
|
||||||
decimal unFactoredConsumption = 0.00M;
|
decimal unFactoredConsumption = 0.00M;
|
||||||
int unFactoredMileage = 0;
|
decimal unFactoredMileage = 0.00M;
|
||||||
//perform computation.
|
//perform computation.
|
||||||
for (int i = 0; i < result.Count; i++)
|
for (int i = 0; i < result.Count; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using LiteDB;
|
using CarCareTracker.Models;
|
||||||
|
using LiteDB;
|
||||||
|
|
||||||
namespace CarCareTracker.Helper;
|
namespace CarCareTracker.Helper;
|
||||||
|
|
||||||
@@ -15,6 +16,29 @@ public class LiteDBHelper: ILiteDBHelper
|
|||||||
if (db == null)
|
if (db == null)
|
||||||
{
|
{
|
||||||
db = new LiteDatabase(StaticHelper.DbName);
|
db = new LiteDatabase(StaticHelper.DbName);
|
||||||
|
if (db.UserVersion == 0)
|
||||||
|
{
|
||||||
|
//migration required to convert ints to decimals
|
||||||
|
var collections = db.GetCollectionNames();
|
||||||
|
foreach (string collection in collections)
|
||||||
|
{
|
||||||
|
var documents = db.GetCollection(collection);
|
||||||
|
foreach (var document in documents.FindAll())
|
||||||
|
{
|
||||||
|
if (document.ContainsKey(nameof(GenericRecord.Mileage)))
|
||||||
|
{
|
||||||
|
document[nameof(GenericRecord.Mileage)] = Convert.ToDecimal(document[nameof(GenericRecord.Mileage)].AsInt32);
|
||||||
|
//check for initial mileage as well
|
||||||
|
if (document.ContainsKey(nameof(OdometerRecord.InitialMileage)))
|
||||||
|
{
|
||||||
|
document[nameof(OdometerRecord.InitialMileage)] = Convert.ToDecimal(document[nameof(OdometerRecord.InitialMileage)].AsInt32);
|
||||||
|
}
|
||||||
|
documents.Update(document);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
db.UserVersion = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public LiteDatabase GetLiteDB()
|
public LiteDatabase GetLiteDB()
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ namespace CarCareTracker.Helper
|
|||||||
{
|
{
|
||||||
public interface IReminderHelper
|
public interface IReminderHelper
|
||||||
{
|
{
|
||||||
ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, int? currentMileage);
|
ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, decimal? currentMileage);
|
||||||
List<ReminderRecordViewModel> GetReminderRecordViewModels(List<ReminderRecord> reminders, int currentMileage, DateTime dateCompare);
|
List<ReminderRecordViewModel> GetReminderRecordViewModels(List<ReminderRecord> reminders, decimal currentMileage, DateTime dateCompare);
|
||||||
}
|
}
|
||||||
public class ReminderHelper: IReminderHelper
|
public class ReminderHelper: IReminderHelper
|
||||||
{
|
{
|
||||||
@@ -14,7 +14,7 @@ namespace CarCareTracker.Helper
|
|||||||
{
|
{
|
||||||
_config = config;
|
_config = config;
|
||||||
}
|
}
|
||||||
public ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, int? currentMileage)
|
public ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, decimal? currentMileage)
|
||||||
{
|
{
|
||||||
var newDate = currentDate ?? existingReminder.Date;
|
var newDate = currentDate ?? existingReminder.Date;
|
||||||
var newMileage = currentMileage ?? existingReminder.Mileage;
|
var newMileage = currentMileage ?? existingReminder.Mileage;
|
||||||
@@ -60,7 +60,7 @@ namespace CarCareTracker.Helper
|
|||||||
}
|
}
|
||||||
return existingReminder;
|
return existingReminder;
|
||||||
}
|
}
|
||||||
public List<ReminderRecordViewModel> GetReminderRecordViewModels(List<ReminderRecord> reminders, int currentMileage, DateTime dateCompare)
|
public List<ReminderRecordViewModel> GetReminderRecordViewModels(List<ReminderRecord> reminders, decimal currentMileage, DateTime dateCompare)
|
||||||
{
|
{
|
||||||
List<ReminderRecordViewModel> reminderViewModels = new List<ReminderRecordViewModel>();
|
List<ReminderRecordViewModel> reminderViewModels = new List<ReminderRecordViewModel>();
|
||||||
var reminderUrgencyConfig = _config.GetReminderUrgencyConfig();
|
var reminderUrgencyConfig = _config.GetReminderUrgencyConfig();
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ namespace CarCareTracker.Logic
|
|||||||
{
|
{
|
||||||
public interface IOdometerLogic
|
public interface IOdometerLogic
|
||||||
{
|
{
|
||||||
int GetLastOdometerRecordMileage(int vehicleId, List<OdometerRecord> odometerRecords);
|
decimal GetLastOdometerRecordMileage(int vehicleId, List<OdometerRecord> odometerRecords);
|
||||||
bool AutoInsertOdometerRecord(OdometerRecord odometer);
|
bool AutoInsertOdometerRecord(OdometerRecord odometer);
|
||||||
List<OdometerRecord> AutoConvertOdometerRecord(List<OdometerRecord> odometerRecords);
|
List<OdometerRecord> AutoConvertOdometerRecord(List<OdometerRecord> odometerRecords);
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ namespace CarCareTracker.Logic
|
|||||||
_odometerRecordDataAccess = odometerRecordDataAccess;
|
_odometerRecordDataAccess = odometerRecordDataAccess;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
public int GetLastOdometerRecordMileage(int vehicleId, List<OdometerRecord> odometerRecords)
|
public decimal GetLastOdometerRecordMileage(int vehicleId, List<OdometerRecord> odometerRecords)
|
||||||
{
|
{
|
||||||
if (!odometerRecords.Any())
|
if (!odometerRecords.Any())
|
||||||
{
|
{
|
||||||
@@ -47,7 +47,7 @@ namespace CarCareTracker.Logic
|
|||||||
{
|
{
|
||||||
//perform ordering
|
//perform ordering
|
||||||
odometerRecords = odometerRecords.OrderBy(x => x.Date).ThenBy(x => x.Mileage).ToList();
|
odometerRecords = odometerRecords.OrderBy(x => x.Date).ThenBy(x => x.Mileage).ToList();
|
||||||
int previousMileage = 0;
|
decimal previousMileage = 0.00M;
|
||||||
for (int i = 0; i < odometerRecords.Count; i++)
|
for (int i = 0; i < odometerRecords.Count; i++)
|
||||||
{
|
{
|
||||||
var currentObject = odometerRecords[i];
|
var currentObject = odometerRecords[i];
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ namespace CarCareTracker.Logic
|
|||||||
{
|
{
|
||||||
VehicleRecords GetVehicleRecords(int vehicleId);
|
VehicleRecords GetVehicleRecords(int vehicleId);
|
||||||
decimal GetVehicleTotalCost(VehicleRecords vehicleRecords);
|
decimal GetVehicleTotalCost(VehicleRecords vehicleRecords);
|
||||||
int GetMaxMileage(int vehicleId);
|
decimal GetMaxMileage(int vehicleId);
|
||||||
int GetMaxMileage(VehicleRecords vehicleRecords);
|
decimal GetMaxMileage(VehicleRecords vehicleRecords);
|
||||||
int GetMinMileage(int vehicleId);
|
decimal GetMinMileage(int vehicleId);
|
||||||
int GetMinMileage(VehicleRecords vehicleRecords);
|
decimal GetMinMileage(VehicleRecords vehicleRecords);
|
||||||
int GetOwnershipDays(string purchaseDate, string soldDate, List<ServiceRecord> serviceRecords, List<CollisionRecord> repairRecords, List<GasRecord> gasRecords, List<UpgradeRecord> upgradeRecords, List<OdometerRecord> odometerRecords, List<TaxRecord> taxRecords);
|
int GetOwnershipDays(string purchaseDate, string soldDate, List<ServiceRecord> serviceRecords, List<CollisionRecord> repairRecords, List<GasRecord> gasRecords, List<UpgradeRecord> upgradeRecords, List<OdometerRecord> odometerRecords, List<TaxRecord> taxRecords);
|
||||||
bool GetVehicleHasUrgentOrPastDueReminders(int vehicleId, int currentMileage);
|
bool GetVehicleHasUrgentOrPastDueReminders(int vehicleId, decimal currentMileage);
|
||||||
List<VehicleInfo> GetVehicleInfo(List<Vehicle> vehicles);
|
List<VehicleInfo> GetVehicleInfo(List<Vehicle> vehicles);
|
||||||
List<ReminderRecordViewModel> GetReminders(List<Vehicle> vehicles, bool isCalendar);
|
List<ReminderRecordViewModel> GetReminders(List<Vehicle> vehicles, bool isCalendar);
|
||||||
List<PlanRecord> GetPlans(List<Vehicle> vehicles, bool excludeDone);
|
List<PlanRecord> GetPlans(List<Vehicle> vehicles, bool excludeDone);
|
||||||
@@ -71,9 +71,9 @@ namespace CarCareTracker.Logic
|
|||||||
var gasRecordSum = vehicleRecords.GasRecords.Sum(x => x.Cost);
|
var gasRecordSum = vehicleRecords.GasRecords.Sum(x => x.Cost);
|
||||||
return serviceRecordSum + repairRecordSum + upgradeRecordSum + taxRecordSum + gasRecordSum;
|
return serviceRecordSum + repairRecordSum + upgradeRecordSum + taxRecordSum + gasRecordSum;
|
||||||
}
|
}
|
||||||
public int GetMaxMileage(int vehicleId)
|
public decimal GetMaxMileage(int vehicleId)
|
||||||
{
|
{
|
||||||
var numbersArray = new List<int>();
|
var numbersArray = new List<decimal>();
|
||||||
var serviceRecords = _serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicleId);
|
var serviceRecords = _serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicleId);
|
||||||
if (serviceRecords.Any())
|
if (serviceRecords.Any())
|
||||||
{
|
{
|
||||||
@@ -99,11 +99,11 @@ namespace CarCareTracker.Logic
|
|||||||
{
|
{
|
||||||
numbersArray.Add(odometerRecords.Max(x => x.Mileage));
|
numbersArray.Add(odometerRecords.Max(x => x.Mileage));
|
||||||
}
|
}
|
||||||
return numbersArray.Any() ? numbersArray.Max() : 0;
|
return numbersArray.Any() ? numbersArray.Max() : 0.00M;
|
||||||
}
|
}
|
||||||
public int GetMaxMileage(VehicleRecords vehicleRecords)
|
public decimal GetMaxMileage(VehicleRecords vehicleRecords)
|
||||||
{
|
{
|
||||||
var numbersArray = new List<int>();
|
var numbersArray = new List<decimal>();
|
||||||
if (vehicleRecords.ServiceRecords.Any())
|
if (vehicleRecords.ServiceRecords.Any())
|
||||||
{
|
{
|
||||||
numbersArray.Add(vehicleRecords.ServiceRecords.Max(x => x.Mileage));
|
numbersArray.Add(vehicleRecords.ServiceRecords.Max(x => x.Mileage));
|
||||||
@@ -126,9 +126,9 @@ namespace CarCareTracker.Logic
|
|||||||
}
|
}
|
||||||
return numbersArray.Any() ? numbersArray.Max() : 0;
|
return numbersArray.Any() ? numbersArray.Max() : 0;
|
||||||
}
|
}
|
||||||
public int GetMinMileage(int vehicleId)
|
public decimal GetMinMileage(int vehicleId)
|
||||||
{
|
{
|
||||||
var numbersArray = new List<int>();
|
var numbersArray = new List<decimal>();
|
||||||
var serviceRecords = _serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicleId).Where(x => x.Mileage != default);
|
var serviceRecords = _serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicleId).Where(x => x.Mileage != default);
|
||||||
if (serviceRecords.Any())
|
if (serviceRecords.Any())
|
||||||
{
|
{
|
||||||
@@ -156,9 +156,9 @@ namespace CarCareTracker.Logic
|
|||||||
}
|
}
|
||||||
return numbersArray.Any() ? numbersArray.Min() : 0;
|
return numbersArray.Any() ? numbersArray.Min() : 0;
|
||||||
}
|
}
|
||||||
public int GetMinMileage(VehicleRecords vehicleRecords)
|
public decimal GetMinMileage(VehicleRecords vehicleRecords)
|
||||||
{
|
{
|
||||||
var numbersArray = new List<int>();
|
var numbersArray = new List<decimal>();
|
||||||
var _serviceRecords = vehicleRecords.ServiceRecords.Where(x => x.Mileage != default).ToList();
|
var _serviceRecords = vehicleRecords.ServiceRecords.Where(x => x.Mileage != default).ToList();
|
||||||
if (_serviceRecords.Any())
|
if (_serviceRecords.Any())
|
||||||
{
|
{
|
||||||
@@ -218,7 +218,7 @@ namespace CarCareTracker.Logic
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool GetVehicleHasUrgentOrPastDueReminders(int vehicleId, int currentMileage)
|
public bool GetVehicleHasUrgentOrPastDueReminders(int vehicleId, decimal currentMileage)
|
||||||
{
|
{
|
||||||
var reminders = _reminderRecordDataAccess.GetReminderRecordsByVehicleId(vehicleId);
|
var reminders = _reminderRecordDataAccess.GetReminderRecordsByVehicleId(vehicleId);
|
||||||
var results = _reminderHelper.GetReminderRecordViewModels(reminders, currentMileage, DateTime.Now);
|
var results = _reminderHelper.GetReminderRecordViewModels(reminders, currentMileage, DateTime.Now);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
public decimal TaxRecordCost { get; set; }
|
public decimal TaxRecordCost { get; set; }
|
||||||
public int GasRecordCount { get; set; }
|
public int GasRecordCount { get; set; }
|
||||||
public decimal GasRecordCost { get; set; }
|
public decimal GasRecordCost { get; set; }
|
||||||
public int LastReportedOdometer { get; set; }
|
public decimal LastReportedOdometer { get; set; }
|
||||||
public int PlanRecordBackLogCount { get; set; }
|
public int PlanRecordBackLogCount { get; set; }
|
||||||
public int PlanRecordInProgressCount { get; set; }
|
public int PlanRecordInProgressCount { get; set; }
|
||||||
public int PlanRecordTestingCount { get; set; }
|
public int PlanRecordTestingCount { get; set; }
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public List<int> ReminderRecordId { get; set; } = new List<int>();
|
public List<int> ReminderRecordId { get; set; } = new List<int>();
|
||||||
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public decimal Cost { get; set; }
|
public decimal Cost { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// American moment
|
/// American moment
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wtf is a kilometer?
|
/// Wtf is a kilometer?
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// American moment
|
/// American moment
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wtf is a kilometer?
|
/// Wtf is a kilometer?
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -9,13 +9,13 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// American moment
|
/// American moment
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wtf is a kilometer?
|
/// Wtf is a kilometer?
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public decimal Gallons { get; set; }
|
public decimal Gallons { get; set; }
|
||||||
public decimal Cost { get; set; }
|
public decimal Cost { get; set; }
|
||||||
public int DeltaMileage { get; set; }
|
public decimal DeltaMileage { get; set; }
|
||||||
public decimal MilesPerGallon { get; set; }
|
public decimal MilesPerGallon { get; set; }
|
||||||
public decimal CostPerGallon { get; set; }
|
public decimal CostPerGallon { get; set; }
|
||||||
public bool IsFillToFull { get; set; }
|
public bool IsFillToFull { get; set; }
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public DateTime Date { get; set; }
|
public DateTime Date { get; set; }
|
||||||
public int InitialMileage { get; set; }
|
public decimal InitialMileage { get; set; }
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public int DistanceTraveled { get { return Mileage - InitialMileage; } }
|
public decimal DistanceTraveled { get { return Mileage - InitialMileage; } }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public List<string> Tags { get; set; } = new List<string>();
|
public List<string> Tags { get; set; } = new List<string>();
|
||||||
public List<UploadedFiles> Files { get; set; } = new List<UploadedFiles>();
|
public List<UploadedFiles> Files { get; set; } = new List<UploadedFiles>();
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
||||||
public int InitialMileage { get; set; }
|
public decimal InitialMileage { get; set; }
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public List<UploadedFiles> Files { get; set; } = new List<UploadedFiles>();
|
public List<UploadedFiles> Files { get; set; } = new List<UploadedFiles>();
|
||||||
public List<string> Tags { get; set; } = new List<string>();
|
public List<string> Tags { get; set; } = new List<string>();
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public DateTime Date { get; set; }
|
public DateTime Date { get; set; }
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public bool IsRecurring { get; set; } = false;
|
public bool IsRecurring { get; set; } = false;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public string Date { get; set; } = DateTime.Now.AddDays(1).ToShortDateString();
|
public string Date { get; set; } = DateTime.Now.AddDays(1).ToShortDateString();
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public bool IsRecurring { get; set; } = false;
|
public bool IsRecurring { get; set; } = false;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public DateTime Date { get; set; }
|
public DateTime Date { get; set; }
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -5,6 +5,6 @@
|
|||||||
public int MonthId { get; set; }
|
public int MonthId { get; set; }
|
||||||
public string MonthName { get; set; }
|
public string MonthName { get; set; }
|
||||||
public decimal Cost { get; set; }
|
public decimal Cost { get; set; }
|
||||||
public int DistanceTraveled { get; set; }
|
public decimal DistanceTraveled { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
public class CostTableForVehicle
|
public class CostTableForVehicle
|
||||||
{
|
{
|
||||||
public string DistanceUnit { get; set; } = "Cost Per Mile";
|
public string DistanceUnit { get; set; } = "Cost Per Mile";
|
||||||
public int TotalDistance { get; set; }
|
public decimal TotalDistance { get; set; }
|
||||||
public int NumberOfDays { get; set; }
|
public int NumberOfDays { get; set; }
|
||||||
public decimal ServiceRecordSum { get; set; }
|
public decimal ServiceRecordSum { get; set; }
|
||||||
public decimal GasRecordSum { get; set; }
|
public decimal GasRecordSum { get; set; }
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
{
|
{
|
||||||
public ImportMode DataType { get; set; }
|
public ImportMode DataType { get; set; }
|
||||||
public DateTime Date { get; set; }
|
public DateTime Date { get; set; }
|
||||||
public int Odometer { get; set; }
|
public decimal Odometer { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public decimal Cost { get; set; }
|
public decimal Cost { get; set; }
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public List<int> ReminderRecordId { get; set; } = new List<int>();
|
public List<int> ReminderRecordId { get; set; } = new List<int>();
|
||||||
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public decimal Cost { get; set; }
|
public decimal Cost { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public DateTime Date { get; set; }
|
public DateTime Date { get; set; }
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public decimal Cost { get; set; }
|
public decimal Cost { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
public int VehicleId { get; set; }
|
public int VehicleId { get; set; }
|
||||||
public List<int> ReminderRecordId { get; set; } = new List<int>();
|
public List<int> ReminderRecordId { get; set; } = new List<int>();
|
||||||
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
public string Date { get; set; } = DateTime.Now.ToShortDateString();
|
||||||
public int Mileage { get; set; }
|
public decimal Mileage { get; set; }
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public decimal Cost { get; set; }
|
public decimal Cost { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
public string VehicleIdentifier { get; set; } = "LicensePlate";
|
public string VehicleIdentifier { get; set; } = "LicensePlate";
|
||||||
//Dashboard Metric Attributes
|
//Dashboard Metric Attributes
|
||||||
public List<DashboardMetric> DashboardMetrics { get; set; } = new List<DashboardMetric>();
|
public List<DashboardMetric> DashboardMetrics { get; set; } = new List<DashboardMetric>();
|
||||||
public int LastReportedMileage { get; set; }
|
public decimal LastReportedMileage { get; set; }
|
||||||
public bool HasReminders { get; set; } = false;
|
public bool HasReminders { get; set; } = false;
|
||||||
public decimal CostPerMile { get; set; }
|
public decimal CostPerMile { get; set; }
|
||||||
public decimal TotalCost { get; set; }
|
public decimal TotalCost { get; set; }
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div>
|
<div>
|
||||||
<span class="ms-2"><i class="bi bi-speedometer me-2"></i>@vehicle.LastReportedMileage.ToString("N0")</span>
|
<span class="ms-2"><i class="bi bi-speedometer me-2"></i>@vehicle.LastReportedMileage.ToString("N1")</span>
|
||||||
</div>
|
</div>
|
||||||
@if (vehicle.HasReminders)
|
@if (vehicle.HasReminders)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<label for="collisionRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
<label for="collisionRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" inputmode="numeric" id="collisionRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when repaired")" value="@(isNew || Model.Mileage == default ? "" : Model.Mileage)">
|
<input type="text" inputmode="decimal" id="collisionRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when repaired")" value="@(isNew || Model.Mileage == default ? "" : Model.Mileage)">
|
||||||
@if (isNew)
|
@if (isNew)
|
||||||
{
|
{
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<label for="gasRecordMileage">@($"{translator.Translate(userLanguage,"Odometer Reading")}({distanceUnit})")</label>
|
<label for="gasRecordMileage">@($"{translator.Translate(userLanguage,"Odometer Reading")}({distanceUnit})")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" inputmode="numeric" id="gasRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when refueled")" value="@(isNew || Model.GasRecord.Mileage == default ? "" : Model.GasRecord.Mileage)">
|
<input type="text" inputmode="decimal" id="gasRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when refueled")" value="@(isNew || Model.GasRecord.Mileage == default ? "" : Model.GasRecord.Mileage)">
|
||||||
@if (isNew)
|
@if (isNew)
|
||||||
{
|
{
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
|
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
|
||||||
</div>
|
</div>
|
||||||
<label for="gasRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
<label for="gasRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
||||||
<input type="number" inputmode="numeric" id="gasRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
<input type="text" inputmode="decimal" id="gasRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
||||||
<label for="gasRecordConsumption">@translator.Translate(userLanguage, "Fuel Consumption")</label>
|
<label for="gasRecordConsumption">@translator.Translate(userLanguage, "Fuel Consumption")</label>
|
||||||
<input type="text" inputmode="decimal" onkeydown="interceptDecimalKeys(event)" onkeyup="fixDecimalInput(this, 3)" id="gasRecordConsumption" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
<input type="text" inputmode="decimal" onkeydown="interceptDecimalKeys(event)" onkeyup="fixDecimalInput(this, 3)" id="gasRecordConsumption" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
||||||
<label for="gasRecordCost">@translator.Translate(userLanguage, "Cost")</label>
|
<label for="gasRecordCost">@translator.Translate(userLanguage, "Cost")</label>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
|
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
|
||||||
</div>
|
</div>
|
||||||
<label for="genericRecordMileage">@translator.Translate(userLanguage,"Odometer")</label>
|
<label for="genericRecordMileage">@translator.Translate(userLanguage,"Odometer")</label>
|
||||||
<input type="number" inputmode="numeric" id="genericRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
<input type="text" inputmode="decimal" id="genericRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
||||||
<label for="genericRecordDescription">@translator.Translate(userLanguage, "Description")</label>
|
<label for="genericRecordDescription">@translator.Translate(userLanguage, "Description")</label>
|
||||||
<input type="text" id="genericRecordDescription" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
<input type="text" id="genericRecordDescription" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
||||||
<label for="genericRecordCost">@translator.Translate(userLanguage, "Cost")</label>
|
<label for="genericRecordCost">@translator.Translate(userLanguage, "Cost")</label>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<label for="initialOdometerRecordMileage">@translator.Translate(userLanguage, "Initial Odometer")</label>
|
<label for="initialOdometerRecordMileage">@translator.Translate(userLanguage, "Initial Odometer")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" inputmode="numeric" id="initialOdometerRecordMileage" @(Model.InitialMileage != default ? "disabled" : "") class="form-control" placeholder="@translator.Translate(userLanguage,"Initial Odometer reading")" value="@(Model.InitialMileage)">
|
<input type="text" inputmode="decimal" id="initialOdometerRecordMileage" @(Model.InitialMileage != default ? "disabled" : "") class="form-control" placeholder="@translator.Translate(userLanguage,"Initial Odometer reading")" value="@(Model.InitialMileage)">
|
||||||
@if (Model.InitialMileage != default)
|
@if (Model.InitialMileage != default)
|
||||||
{
|
{
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<label for="odometerRecordMileage">@translator.Translate(userLanguage,"Odometer")</label>
|
<label for="odometerRecordMileage">@translator.Translate(userLanguage,"Odometer")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" inputmode="numeric" id="odometerRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading")" value="@(isNew ? "" : Model.Mileage)">
|
<input type="text" inputmode="decimal" id="odometerRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading")" value="@(isNew ? "" : Model.Mileage)">
|
||||||
@if (isNew)
|
@if (isNew)
|
||||||
{
|
{
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
|
|||||||
@@ -21,9 +21,9 @@
|
|||||||
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
|
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
|
||||||
</div>
|
</div>
|
||||||
<label for="initialOdometerRecordMileage">@translator.Translate(userLanguage, "Initial Odometer")</label>
|
<label for="initialOdometerRecordMileage">@translator.Translate(userLanguage, "Initial Odometer")</label>
|
||||||
<input type="number" inputmode="numeric" id="initialOdometerRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
<input type="text" inputmode="decimal" id="initialOdometerRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
||||||
<label for="odometerRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
<label for="odometerRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
||||||
<input type="number" inputmode="numeric" id="odometerRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
<input type="text" inputmode="decimal" id="odometerRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"(multiple)")">
|
||||||
<label for="odometerRecordTag">@translator.Translate(userLanguage, "Tags(use --- to clear all existing tags)")</label>
|
<label for="odometerRecordTag">@translator.Translate(userLanguage, "Tags(use --- to clear all existing tags)")</label>
|
||||||
<select multiple class="form-select" id="odometerRecordTag"></select>
|
<select multiple class="form-select" id="odometerRecordTag"></select>
|
||||||
@foreach (ExtraField field in Model.EditRecord.ExtraFields)
|
@foreach (ExtraField field in Model.EditRecord.ExtraFields)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<label class="form-check-label" for="reminderMetricOdometer">@translator.Translate(userLanguage,"Odometer")</label>
|
<label class="form-check-label" for="reminderMetricOdometer">@translator.Translate(userLanguage,"Odometer")</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" inputmode="numeric" id="reminderMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Future Odometer Reading")" value="@(isNew ? "" : Model.Mileage)">
|
<input type="text" inputmode="decimal" id="reminderMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Future Odometer Reading")" value="@(isNew ? "" : Model.Mileage)">
|
||||||
@if (isNew)
|
@if (isNew)
|
||||||
{
|
{
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<label for="serviceRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
<label for="serviceRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" inputmode="numeric" id="serviceRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when serviced")" value="@(isNew || Model.Mileage == default ? "" : Model.Mileage)">
|
<input type="text" inputmode="decimal" id="serviceRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when serviced")" value="@(isNew || Model.Mileage == default ? "" : Model.Mileage)">
|
||||||
@if (isNew)
|
@if (isNew)
|
||||||
{
|
{
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<label for="upgradeRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
<label for="upgradeRecordMileage">@translator.Translate(userLanguage, "Odometer")</label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" inputmode="numeric" id="upgradeRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when upgraded/modded")" value="@(isNew || Model.Mileage == default ? "" : Model.Mileage)">
|
<input type="text" inputmode="decimal" id="upgradeRecordMileage" class="form-control" placeholder="@translator.Translate(userLanguage,"Odometer reading when upgraded/modded")" value="@(isNew || Model.Mileage == default ? "" : Model.Mileage)">
|
||||||
@if (isNew)
|
@if (isNew)
|
||||||
{
|
{
|
||||||
<div class="input-group-text">
|
<div class="input-group-text">
|
||||||
|
|||||||
@@ -143,7 +143,7 @@
|
|||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Date)) ? "" : "d-none")">@reportData.Date.ToShortDateString()</td>
|
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Date)) ? "" : "d-none")">@reportData.Date.ToShortDateString()</td>
|
||||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Odometer)) ? "" : "d-none")">@(reportData.Odometer == default ? "---" : reportData.Odometer.ToString("N0"))</td>
|
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Odometer)) ? "" : "d-none")">@(reportData.Odometer == default ? "---" : reportData.Odometer.ToString("N1"))</td>
|
||||||
<td class="col-3 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Description)) ? "" : "d-none")">@reportData.Description</td>
|
<td class="col-3 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Description)) ? "" : "d-none")">@reportData.Description</td>
|
||||||
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Cost)) ? "" : "d-none")">@((hideZero && reportData.Cost == default) ? "---" : reportData.Cost.ToString("C"))</td>
|
<td class="col-2 text-truncate flex-grow-1 flex-shrink-1 @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Cost)) ? "" : "d-none")">@((hideZero && reportData.Cost == default) ? "---" : reportData.Cost.ToString("C"))</td>
|
||||||
<td class="col-4 flex-grow-1 flex-shrink-1 text-wrap text-break @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Notes)) ? "" : "d-none")">@StaticHelper.TruncateStrings(reportData.Notes, 100)</td>
|
<td class="col-4 flex-grow-1 flex-shrink-1 text-wrap text-break @(Model.ReportParameters.VisibleColumns.Contains(nameof(GenericReportModel.Notes)) ? "" : "d-none")">@StaticHelper.TruncateStrings(reportData.Notes, 100)</td>
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ function saveCollisionRecordToVehicle(isEdit) {
|
|||||||
}
|
}
|
||||||
function getAndValidateCollisionRecordValues() {
|
function getAndValidateCollisionRecordValues() {
|
||||||
var collisionDate = $("#collisionRecordDate").val();
|
var collisionDate = $("#collisionRecordDate").val();
|
||||||
var collisionMileage = parseInt(globalParseFloat($("#collisionRecordMileage").val())).toString();
|
var collisionMileage = globalParseFloat($("#collisionRecordMileage").val()).toString();
|
||||||
var collisionDescription = $("#collisionRecordDescription").val();
|
var collisionDescription = $("#collisionRecordDescription").val();
|
||||||
var collisionCost = $("#collisionRecordCost").val();
|
var collisionCost = $("#collisionRecordCost").val();
|
||||||
var collisionNotes = $("#collisionRecordNotes").val();
|
var collisionNotes = $("#collisionRecordNotes").val();
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ function saveGasRecordToVehicle(isEdit) {
|
|||||||
}
|
}
|
||||||
function getAndValidateGasRecordValues() {
|
function getAndValidateGasRecordValues() {
|
||||||
var gasDate = $("#gasRecordDate").val();
|
var gasDate = $("#gasRecordDate").val();
|
||||||
var gasMileage = parseInt(globalParseFloat($("#gasRecordMileage").val())).toString();
|
var gasMileage = globalParseFloat($("#gasRecordMileage").val()).toString();
|
||||||
var gasGallons = $("#gasRecordGallons").val();
|
var gasGallons = $("#gasRecordGallons").val();
|
||||||
var gasCost = $("#gasRecordCost").val();
|
var gasCost = $("#gasRecordCost").val();
|
||||||
var gasCostType = $("#gasCostType").val();
|
var gasCostType = $("#gasCostType").val();
|
||||||
@@ -468,7 +468,7 @@ function editMultipleGasRecords(ids) {
|
|||||||
function saveMultipleGasRecordsToVehicle() {
|
function saveMultipleGasRecordsToVehicle() {
|
||||||
var gasDate = $("#gasRecordDate").val();
|
var gasDate = $("#gasRecordDate").val();
|
||||||
var gasMileage = $("#gasRecordMileage").val();
|
var gasMileage = $("#gasRecordMileage").val();
|
||||||
var gasMileageToParse = parseInt(globalParseFloat($("#gasRecordMileage").val())).toString();
|
var gasMileageToParse = globalParseFloat($("#gasRecordMileage").val()).toString();
|
||||||
var gasConsumption = $("#gasRecordConsumption").val();
|
var gasConsumption = $("#gasRecordConsumption").val();
|
||||||
var gasCost = $("#gasRecordCost").val();
|
var gasCost = $("#gasRecordCost").val();
|
||||||
var gasNotes = $("#gasRecordNotes").val();
|
var gasNotes = $("#gasRecordNotes").val();
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ function saveOdometerRecordToVehicle(isEdit) {
|
|||||||
}
|
}
|
||||||
function getAndValidateOdometerRecordValues() {
|
function getAndValidateOdometerRecordValues() {
|
||||||
var serviceDate = $("#odometerRecordDate").val();
|
var serviceDate = $("#odometerRecordDate").val();
|
||||||
var initialOdometerMileage = parseInt(globalParseFloat($("#initialOdometerRecordMileage").val())).toString();
|
var initialOdometerMileage = globalParseFloat($("#initialOdometerRecordMileage").val()).toString();
|
||||||
var serviceMileage = parseInt(globalParseFloat($("#odometerRecordMileage").val())).toString();
|
var serviceMileage = globalParseFloat($("#odometerRecordMileage").val()).toString();
|
||||||
var serviceNotes = $("#odometerRecordNotes").val();
|
var serviceNotes = $("#odometerRecordNotes").val();
|
||||||
var serviceTags = $("#odometerRecordTag").val();
|
var serviceTags = $("#odometerRecordTag").val();
|
||||||
var vehicleId = GetVehicleId().vehicleId;
|
var vehicleId = GetVehicleId().vehicleId;
|
||||||
@@ -166,8 +166,8 @@ function saveMultipleOdometerRecordsToVehicle() {
|
|||||||
var odometerDate = $("#odometerRecordDate").val();
|
var odometerDate = $("#odometerRecordDate").val();
|
||||||
var initialOdometerMileage = $("#initialOdometerRecordMileage").val();
|
var initialOdometerMileage = $("#initialOdometerRecordMileage").val();
|
||||||
var odometerMileage = $("#odometerRecordMileage").val();
|
var odometerMileage = $("#odometerRecordMileage").val();
|
||||||
var initialOdometerMileageToParse = parseInt(globalParseFloat($("#initialOdometerRecordMileage").val())).toString();
|
var initialOdometerMileageToParse = globalParseFloat($("#initialOdometerRecordMileage").val()).toString();
|
||||||
var odometerMileageToParse = parseInt(globalParseFloat($("#odometerRecordMileage").val())).toString();
|
var odometerMileageToParse = globalParseFloat($("#odometerRecordMileage").val()).toString();
|
||||||
var odometerNotes = $("#odometerRecordNotes").val();
|
var odometerNotes = $("#odometerRecordNotes").val();
|
||||||
var odometerTags = $("#odometerRecordTag").val();
|
var odometerTags = $("#odometerRecordTag").val();
|
||||||
var odometerExtraFields = getAndValidateExtraFields();
|
var odometerExtraFields = getAndValidateExtraFields();
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ function markDoneReminderRecord(reminderRecordId, e) {
|
|||||||
|
|
||||||
function getAndValidateReminderRecordValues() {
|
function getAndValidateReminderRecordValues() {
|
||||||
var reminderDate = $("#reminderDate").val();
|
var reminderDate = $("#reminderDate").val();
|
||||||
var reminderMileage = parseInt(globalParseFloat($("#reminderMileage").val())).toString();
|
var reminderMileage = globalParseFloat($("#reminderMileage").val()).toString();
|
||||||
var reminderDescription = $("#reminderDescription").val();
|
var reminderDescription = $("#reminderDescription").val();
|
||||||
var reminderNotes = $("#reminderNotes").val();
|
var reminderNotes = $("#reminderNotes").val();
|
||||||
var reminderOption = $('#reminderOptions input:radio:checked').val();
|
var reminderOption = $('#reminderOptions input:radio:checked').val();
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ function saveServiceRecordToVehicle(isEdit) {
|
|||||||
}
|
}
|
||||||
function getAndValidateServiceRecordValues() {
|
function getAndValidateServiceRecordValues() {
|
||||||
var serviceDate = $("#serviceRecordDate").val();
|
var serviceDate = $("#serviceRecordDate").val();
|
||||||
var serviceMileage = parseInt(globalParseFloat($("#serviceRecordMileage").val())).toString();
|
var serviceMileage = globalParseFloat($("#serviceRecordMileage").val()).toString();
|
||||||
var serviceDescription = $("#serviceRecordDescription").val();
|
var serviceDescription = $("#serviceRecordDescription").val();
|
||||||
var serviceCost = $("#serviceRecordCost").val();
|
var serviceCost = $("#serviceRecordCost").val();
|
||||||
var serviceNotes = $("#serviceRecordNotes").val();
|
var serviceNotes = $("#serviceRecordNotes").val();
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ function saveVehicle(isEdit) {
|
|||||||
var vehicleOdometerOptional = $("#inputOdometerOptional").is(":checked");
|
var vehicleOdometerOptional = $("#inputOdometerOptional").is(":checked");
|
||||||
var vehicleHasOdometerAdjustment = $("#inputHasOdometerAdjustment").is(':checked');
|
var vehicleHasOdometerAdjustment = $("#inputHasOdometerAdjustment").is(':checked');
|
||||||
var vehicleOdometerMultiplier = $("#inputOdometerMultiplier").val();
|
var vehicleOdometerMultiplier = $("#inputOdometerMultiplier").val();
|
||||||
var vehicleOdometerDifference = parseInt(globalParseFloat($("#inputOdometerDifference").val())).toString();
|
var vehicleOdometerDifference = globalParseFloat($("#inputOdometerDifference").val()).toString();
|
||||||
var vehiclePurchasePrice = $("#inputPurchasePrice").val();
|
var vehiclePurchasePrice = $("#inputPurchasePrice").val();
|
||||||
var vehicleSoldPrice = $("#inputSoldPrice").val();
|
var vehicleSoldPrice = $("#inputSoldPrice").val();
|
||||||
var vehicleIdentifier = $("#inputIdentifier").val();
|
var vehicleIdentifier = $("#inputIdentifier").val();
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ function saveUpgradeRecordToVehicle(isEdit) {
|
|||||||
}
|
}
|
||||||
function getAndValidateUpgradeRecordValues() {
|
function getAndValidateUpgradeRecordValues() {
|
||||||
var upgradeDate = $("#upgradeRecordDate").val();
|
var upgradeDate = $("#upgradeRecordDate").val();
|
||||||
var upgradeMileage = parseInt(globalParseFloat($("#upgradeRecordMileage").val())).toString();
|
var upgradeMileage = globalParseFloat($("#upgradeRecordMileage").val()).toString();
|
||||||
var upgradeDescription = $("#upgradeRecordDescription").val();
|
var upgradeDescription = $("#upgradeRecordDescription").val();
|
||||||
var upgradeCost = $("#upgradeRecordCost").val();
|
var upgradeCost = $("#upgradeRecordCost").val();
|
||||||
var upgradeNotes = $("#upgradeRecordNotes").val();
|
var upgradeNotes = $("#upgradeRecordNotes").val();
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ function saveGenericRecord() {
|
|||||||
function getAndValidateGenericRecordValues() {
|
function getAndValidateGenericRecordValues() {
|
||||||
var genericDate = $("#genericRecordDate").val();
|
var genericDate = $("#genericRecordDate").val();
|
||||||
var genericMileage = $("#genericRecordMileage").val();
|
var genericMileage = $("#genericRecordMileage").val();
|
||||||
var genericMileageToParse = parseInt(globalParseFloat($("#genericRecordMileage").val())).toString();
|
var genericMileageToParse = globalParseFloat($("#genericRecordMileage").val()).toString();
|
||||||
var genericDescription = $("#genericRecordDescription").val();
|
var genericDescription = $("#genericRecordDescription").val();
|
||||||
var genericCost = $("#genericRecordCost").val();
|
var genericCost = $("#genericRecordCost").val();
|
||||||
var genericNotes = $("#genericRecordNotes").val();
|
var genericNotes = $("#genericRecordNotes").val();
|
||||||
@@ -458,7 +458,7 @@ function getRecordsDeltaStats(recordIds) {
|
|||||||
var costReadings = [];
|
var costReadings = [];
|
||||||
//get all of the odometer readings
|
//get all of the odometer readings
|
||||||
recordIds.map(x => {
|
recordIds.map(x => {
|
||||||
var odometerReading = parseInt($(`tr[data-rowId='${x}'] td[data-column='odometer']`).text());
|
var odometerReading = globalParseFloat($(`tr[data-rowId='${x}'] td[data-column='odometer']`).text());
|
||||||
if (!isNaN(odometerReading)) {
|
if (!isNaN(odometerReading)) {
|
||||||
odometerReadings.push(odometerReading);
|
odometerReadings.push(odometerReading);
|
||||||
}
|
}
|
||||||
@@ -505,7 +505,7 @@ function GetAdjustedOdometer(id, odometerInput) {
|
|||||||
return odometerInput;
|
return odometerInput;
|
||||||
}
|
}
|
||||||
//apply odometer adjustments first.
|
//apply odometer adjustments first.
|
||||||
var adjustedOdometer = parseInt(odometerInput) + parseInt(GetVehicleId().odometerDifference);
|
var adjustedOdometer = globalParseFloat(odometerInput) + globalParseFloat(GetVehicleId().odometerDifference);
|
||||||
//apply odometer multiplier.
|
//apply odometer multiplier.
|
||||||
adjustedOdometer *= globalParseFloat(GetVehicleId().odometerMultiplier);
|
adjustedOdometer *= globalParseFloat(GetVehicleId().odometerMultiplier);
|
||||||
return adjustedOdometer.toFixed(0);
|
return adjustedOdometer.toFixed(0);
|
||||||
@@ -640,7 +640,7 @@ function getLastOdometerReadingAndIncrement(odometerFieldName) {
|
|||||||
confirmButtonText: 'Add',
|
confirmButtonText: 'Add',
|
||||||
focusConfirm: false,
|
focusConfirm: false,
|
||||||
preConfirm: () => {
|
preConfirm: () => {
|
||||||
const odometerIncrement = parseInt(globalParseFloat($("#inputOdometerIncrement").val()));
|
const odometerIncrement = globalParseFloat($("#inputOdometerIncrement").val());
|
||||||
if (isNaN(odometerIncrement) || odometerIncrement <= 0) {
|
if (isNaN(odometerIncrement) || odometerIncrement <= 0) {
|
||||||
Swal.showValidationMessage(`Please enter a non-zero amount to increment`);
|
Swal.showValidationMessage(`Please enter a non-zero amount to increment`);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user