diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index 57bcf1c..a8de258 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -703,7 +703,7 @@ namespace CarCareTracker.Controllers var result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(serviceRecord.ToServiceRecord()); if (result && serviceRecord.Supplies.Any()) { - RequisitionSupplyRecordsByUsage(serviceRecord.Supplies); + RequisitionSupplyRecordsByUsage(serviceRecord.Supplies, DateTime.Parse(serviceRecord.Date), serviceRecord.Description); } return Json(result); } @@ -774,7 +774,7 @@ namespace CarCareTracker.Controllers var result = _collisionRecordDataAccess.SaveCollisionRecordToVehicle(collisionRecord.ToCollisionRecord()); if (result && collisionRecord.Supplies.Any()) { - RequisitionSupplyRecordsByUsage(collisionRecord.Supplies); + RequisitionSupplyRecordsByUsage(collisionRecord.Supplies, DateTime.Parse(collisionRecord.Date), collisionRecord.Description); } return Json(result); } @@ -1455,7 +1455,7 @@ namespace CarCareTracker.Controllers var result = _upgradeRecordDataAccess.SaveUpgradeRecordToVehicle(upgradeRecord.ToUpgradeRecord()); if (result && upgradeRecord.Supplies.Any()) { - RequisitionSupplyRecordsByUsage(upgradeRecord.Supplies); + RequisitionSupplyRecordsByUsage(upgradeRecord.Supplies, DateTime.Parse(upgradeRecord.Date), upgradeRecord.Description); } return Json(result); } @@ -1552,7 +1552,7 @@ namespace CarCareTracker.Controllers } return result; } - private void RequisitionSupplyRecordsByUsage(List supplyUsage) + private void RequisitionSupplyRecordsByUsage(List supplyUsage, DateTime dateRequisitioned, string usageDescription) { foreach(SupplyUsage supply in supplyUsage) { @@ -1563,6 +1563,12 @@ namespace CarCareTracker.Controllers result.Quantity -= supply.Quantity; //deduct cost. result.Cost -= (supply.Quantity * unitCost); + result.UsageHistory.Add(new SupplyUsageHistory { + Date = dateRequisitioned, + Description = usageDescription, + Quantity = supply.Quantity, + Cost = (supply.Quantity * unitCost) + }); //save _supplyRecordDataAccess.SaveSupplyRecordToVehicle(result); } @@ -1635,6 +1641,7 @@ namespace CarCareTracker.Controllers VehicleId = result.VehicleId, Files = result.Files, Tags = result.Tags, + UsageHistory = result.UsageHistory, ExtraFields = StaticHelper.AddExtraFields(result.ExtraFields, _extraFieldDataAccess.GetExtraFieldsById((int)ImportMode.SupplyRecord).ExtraFields) }; return PartialView("_SupplyRecordModal", convertedResult); @@ -1668,7 +1675,7 @@ namespace CarCareTracker.Controllers var result = _planRecordDataAccess.SavePlanRecordToVehicle(planRecord.ToPlanRecord()); if (result && planRecord.Supplies.Any()) { - RequisitionSupplyRecordsByUsage(planRecord.Supplies); + RequisitionSupplyRecordsByUsage(planRecord.Supplies, DateTime.Parse(planRecord.DateCreated), planRecord.Description); } return Json(result); } @@ -1722,7 +1729,7 @@ namespace CarCareTracker.Controllers var result = _planRecordDataAccess.SavePlanRecordToVehicle(existingRecord.ToPlanRecord()); if (result && existingRecord.Supplies.Any()) { - RequisitionSupplyRecordsByUsage(existingRecord.Supplies); + RequisitionSupplyRecordsByUsage(existingRecord.Supplies, DateTime.Parse(existingRecord.DateCreated), existingRecord.Description); } return Json(new OperationResponse { Success = result, Message = result ? "Plan Record Added" : StaticHelper.GenericErrorMessage }); } diff --git a/Models/Supply/SupplyRecord.cs b/Models/Supply/SupplyRecord.cs index 6ecfbe9..f9212a3 100644 --- a/Models/Supply/SupplyRecord.cs +++ b/Models/Supply/SupplyRecord.cs @@ -35,5 +35,6 @@ public List Files { get; set; } = new List(); public List Tags { get; set; } = new List(); public List ExtraFields { get; set; } = new List(); + public List UsageHistory { get; set; } = new List(); } } diff --git a/Models/Supply/SupplyRecordInput.cs b/Models/Supply/SupplyRecordInput.cs index 14896d2..c43f248 100644 --- a/Models/Supply/SupplyRecordInput.cs +++ b/Models/Supply/SupplyRecordInput.cs @@ -14,6 +14,7 @@ public List Files { get; set; } = new List(); public List Tags { get; set; } = new List(); public List ExtraFields { get; set; } = new List(); + public List UsageHistory { get; set; } = new List(); public SupplyRecord ToSupplyRecord() { return new SupplyRecord { Id = Id, VehicleId = VehicleId, @@ -26,7 +27,8 @@ Notes = Notes, Files = Files, Tags = Tags, - ExtraFields = ExtraFields + ExtraFields = ExtraFields, + UsageHistory = UsageHistory }; } } } diff --git a/Models/Supply/SupplyUsageHistory.cs b/Models/Supply/SupplyUsageHistory.cs new file mode 100644 index 0000000..0cb2365 --- /dev/null +++ b/Models/Supply/SupplyUsageHistory.cs @@ -0,0 +1,9 @@ +namespace CarCareTracker.Models +{ + public class SupplyUsageHistory { + public DateTime Date { get; set; } + public string Description { get; set; } + public decimal Quantity { get; set; } + public decimal Cost { get; set; } + } +} diff --git a/Views/Vehicle/_SupplyRecordModal.cshtml b/Views/Vehicle/_SupplyRecordModal.cshtml index b55c03d..5372e54 100644 --- a/Views/Vehicle/_SupplyRecordModal.cshtml +++ b/Views/Vehicle/_SupplyRecordModal.cshtml @@ -80,6 +80,10 @@