private List <MatVarWeeklyGiveawayTotals> CalculateWeeklyTotals(List <BatchReport> reports) { List <MatVarWeeklyGiveawayTotals> totals = new List <MatVarWeeklyGiveawayTotals>(); var allMaterialsDetailsIncludedInMatVar = _materialDetails.GetAllMaterialDetails().Where(x => x.IncludeInMatVar == true).ToList(); CreateTotalsUptoCurrentWeek(totals); foreach (var report in reports) { foreach (var vessel in report.AllVessels) { foreach (var material in vessel.Materials) { if (allMaterialsDetailsIncludedInMatVar.Any(x => x.Name == material.Name)) { if (totals.Any(x => x.Week == report.WeekNo)) { double costPerTon = allMaterialsDetailsIncludedInMatVar .Where(x => x.Name == material.Name) .Select(x => x.CostPerTon) .FirstOrDefault() / 1000; double amountUsed = material.TargetWeight - material.ActualWeight; double totalCost = Math.Round(costPerTon * amountUsed, 2); totals.Find(x => x.Week == report.WeekNo).Total += totalCost; } } } } } return(totals.OrderBy(x => x.Week).ToList()); }
public override void ScanForIssues(BatchReport report) { var tempSensitiveMaterials = _materialDetailsRepository.GetAllMaterialDetails() .Where(x => x.MinRawTemp > 0 || x.MaxRawTemp > 0) .ToList(); foreach (var material in tempSensitiveMaterials) { var materialFromBatch = BatchHelperMethods.GetSingleMaterialFromVessel(report, material.Name); if (materialFromBatch != null) { bool overTemp = materialFromBatch.RawMatTemp > material.MaxRawTemp; bool underTemp = materialFromBatch.RawMatTemp < material.MinRawTemp; if (overTemp || underTemp) { report.BatchIssues.Add(new BatchIssue { FaultType = overTemp ? BatchIssue.FaultTypes.TemperatureHigh : BatchIssue.FaultTypes.TemperatureLow, Message = $"{material.Name} temperature in storage was {UnderOverText(overTemp)} of {GetMaxMinTemp(overTemp, material)}C", MaterialName = material.Name, MaterialShortName = material.ShortName, TimeLost = 0, ActualReading = materialFromBatch.RawMatTemp, IssueCreatedBy = IssueDescriptor }); } } } SetIssueScannedFor(report); }
private MatVarOverviewViewModel GetGainsAndLosses(MatVarOverviewViewModel overview) { List <BatchReport> reports = helper.GetBatchReportsForDateSelector(overview.DateSelectorModal); List <MaterialDetails> allMaterialDetails = _materialDetailsRepository.GetAllMaterialDetails(); overview.UnsortedTotals = GetUnsortedTotals(reports, allMaterialDetails); SortTotals(overview); overview.CombinedTotal = overview.TotalGainForPeriod + overview.TotalLossForPeriod; return(overview); }
public MaterialUsageViewModel(IMaterialDetailsRepository MaterialDetailsRepository, IBatchRepository batchReportRepository) { _materialDetailsRepository = MaterialDetailsRepository; _batchReportRepository = batchReportRepository; DateSelectorModal = new DateSelectorModal(); foreach (var material in _materialDetailsRepository.GetAllMaterialDetails()) { if (material.IncludeInMatVar) { MaterialsForDropDown.Add(new SelectListItem() { Text = material.ShortName, Value = material.Name }); } } MaterialsForDropDown = MaterialsForDropDown.OrderBy(x => x.Text).ToList(); }
// GET: MaterialDetailsSettings public IActionResult Index() { return(View(_materialDetailsRepository.GetAllMaterialDetails().Where(x => x.NeedsDetailsInput == true).ToList())); }
public IssueScannerBase(IMaterialDetailsRepository materialDetailsRepository) { _materialDetailsRepository = materialDetailsRepository; materialDetails = _materialDetailsRepository.GetAllMaterialDetails(); }