コード例 #1
0
        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());
        }
コード例 #2
0
        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();
 }