From 4ec11a47a1ed1c9c6302c0992f206bfb3bb47021 Mon Sep 17 00:00:00 2001 From: "DESKTOP-T0O5CDB\\DESK-555BD" Date: Mon, 22 Jan 2024 11:47:53 -0700 Subject: [PATCH] added method to requisiton supplies. --- Controllers/VehicleController.cs | 19 +++++++++++++++++++ Models/ServiceRecord/ServiceRecordInput.cs | 1 + Models/Supply/SupplyUsage.cs | 7 +++++++ Views/Vehicle/_ServiceRecordModal.cshtml | 6 +++++- Views/Vehicle/_SupplyStore.cshtml | 1 + wwwroot/js/servicerecord.js | 1 + 6 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Models/Supply/SupplyUsage.cs diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index 6b55132..e896f6e 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -615,6 +615,10 @@ namespace CarCareTracker.Controllers //move files from temp. serviceRecord.Files = serviceRecord.Files.Select(x => { return new UploadedFiles { Name = x.Name, Location = _fileHelper.MoveFileFromTemp(x.Location, "documents/") }; }).ToList(); var result = _serviceRecordDataAccess.SaveServiceRecordToVehicle(serviceRecord.ToServiceRecord()); + if (result) + { + RequisitionSupplyRecordsByUsage(serviceRecord.Supplies); + } return Json(result); } [HttpGet] @@ -1237,6 +1241,21 @@ namespace CarCareTracker.Controllers } #endregion #region "Supply Records" + private void RequisitionSupplyRecordsByUsage(List supplyUsage) + { + foreach(SupplyUsage supply in supplyUsage) + { + //get supply record. + var result = _supplyRecordDataAccess.GetSupplyRecordById(supply.SupplyId); + var unitCost = (result.Quantity != 0 ) ? result.Cost / result.Quantity : 0; + //deduct quantity used. + result.Quantity -= supply.Quantity; + //deduct cost. + result.Cost -= (supply.Quantity * unitCost); + //save + _supplyRecordDataAccess.SaveSupplyRecordToVehicle(result); + } + } [TypeFilter(typeof(CollaboratorFilter))] [HttpGet] public IActionResult GetSupplyRecordsByVehicleId(int vehicleId) diff --git a/Models/ServiceRecord/ServiceRecordInput.cs b/Models/ServiceRecord/ServiceRecordInput.cs index f904ab1..2a3191e 100644 --- a/Models/ServiceRecord/ServiceRecordInput.cs +++ b/Models/ServiceRecord/ServiceRecordInput.cs @@ -10,6 +10,7 @@ public decimal Cost { get; set; } public string Notes { get; set; } public List Files { get; set; } = new List(); + public List Supplies { get; set; } = new List(); public ServiceRecord ToServiceRecord() { return new ServiceRecord { Id = Id, VehicleId = VehicleId, Date = DateTime.Parse(Date), Cost = Cost, Mileage = Mileage, Description = Description, Notes = Notes, Files = Files }; } } } diff --git a/Models/Supply/SupplyUsage.cs b/Models/Supply/SupplyUsage.cs new file mode 100644 index 0000000..283a9c9 --- /dev/null +++ b/Models/Supply/SupplyUsage.cs @@ -0,0 +1,7 @@ +namespace CarCareTracker.Models +{ + public class SupplyUsage { + public int SupplyId { get; set; } + public decimal Quantity { get; set; } + } +} diff --git a/Views/Vehicle/_ServiceRecordModal.cshtml b/Views/Vehicle/_ServiceRecordModal.cshtml index e43c759..a844fb8 100644 --- a/Views/Vehicle/_ServiceRecordModal.cshtml +++ b/Views/Vehicle/_ServiceRecordModal.cshtml @@ -23,7 +23,10 @@ - @await Html.PartialAsync("_SupplyStore", "ServiceRecord") + @if (isNew) + { + @await Html.PartialAsync("_SupplyStore", "ServiceRecord") + }
@@ -72,6 +75,7 @@