public MatVarIssueScanner(IMaterialDetailsRepository materialDetailsRepository) : base(materialDetailsRepository) { _MaterialDetailsrepository = materialDetailsRepository; MaterialNamesIncludedInMatVar = _MaterialDetailsrepository.GetMaterialNamesThatAreIncludedInMatVar(); IssueDescriptor = "MatVar Issues"; ScanType = ScanTypes.MatVar; }
public HomeController(IBatchRepository batchRepository, IMaterialDetailsRepository materialDetailsRepository) { _BatchRepository = batchRepository; _materialDetailsRepository = materialDetailsRepository; if (!_materialDetailsRepository.GetMaterialNamesThatAreIncludedInMatVar().Any()) { _materialDetailsRepository.LoadMaterialData(); } }
private List <MaterialTotals> GetUnsortedTotals(List <BatchReport> reports, List <MaterialDetails> allMaterialDetails) { List <MaterialTotals> totals = new List <MaterialTotals>(); var materialsNamesIncludedInMatVar = _materialDetailsRepository.GetMaterialNamesThatAreIncludedInMatVar(); foreach (var report in reports) { foreach (var vessel in report.AllVessels) { foreach (var material in vessel.Materials) { if (materialsNamesIncludedInMatVar.Contains(material.Name)) { var tempMaterialDetail = allMaterialDetails.Where(x => x.Name == material.Name).FirstOrDefault(); double totalKg = material.TargetWeight - material.ActualWeight; if (material.Name.Contains("DYE")) { totalKg = helper.CalculateDyeAmountInSolution(material.Name, material.TargetWeight - material.ActualWeight); } if (totals.Any(x => x.Name == material.Name)) { totals.Find(x => x.Name == material.Name).TotalKg += totalKg; } else { totals.Add(new MaterialTotals { Name = material.Name, ShortName = ShortNameTo13Charactors(tempMaterialDetail.ShortName), ProductCode = tempMaterialDetail.ProductCode, TotalKg = Math.Round(totalKg, 2), Cost = Math.Round(_materialDetailsRepository.GetCostMaterialLoss(material.Name, totalKg), 2), CostPerTon = tempMaterialDetail.CostPerTon }); } } } } } return(totals); }