public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (!(value is UMFamily)) { return(string.Empty); } UMFamily um_family = (UMFamily)value; string inSpanish = null; if (um_family.Name == "Quantity") { inSpanish = "Cantidad"; } if (um_family.Name == "Weight") { inSpanish = "Peso"; } if (um_family.Name == "Volume") { inSpanish = "Volumen"; } return(inSpanish); }
private void MakePretty(List <ReportLineViewModel> transformed) { var invSVC = ServiceContainer.GetService <IInventoryService>(); foreach (var item in transformed) { UMFamily umf = item.Product.UMFamily; bool isQtty = umf.Id == 1; int decimalPlaces = isQtty ? 0 : 2; double minQttyInBase = item.MinimumQuantity; double maxQttyInBase = item.MaximumQuantity; double aveQttyInBase = item.AverageQuantity; //double projQttyInBase = item.ProjectedQuantity; //double minQttyInBase = item.MinQuantities[i]; //double maxQttyInBase = item.MaxQuantities[i]; //double aveQttyInBase = item.AveQuantities[i]; //double projQttyInBase = item.ProjQuantities[i]; //if (minQttyInBase != 0) { item.MinimumUnitMeasure = invSVC.GetBestUM(umf, minQttyInBase); item.MinimumQuantity = Math.Round(minQttyInBase / item.MinimumUnitMeasure.ToBaseConversion, decimalPlaces); } //if (maxQttyInBase != 0) { item.MaximumUnitMeasure = invSVC.GetBestUM(umf, maxQttyInBase); item.MaximumQuantity = Math.Round(maxQttyInBase / item.MaximumUnitMeasure.ToBaseConversion, decimalPlaces); } //if (aveQttyInBase != 0) { item.AverageUnitMeasure = invSVC.GetBestUM(umf, aveQttyInBase); item.AverageQuantity = Math.Round(aveQttyInBase / item.AverageUnitMeasure.ToBaseConversion, decimalPlaces); } //if (projQttyInBase != 0) //{ // item.ProjectedUnitMeasure = invSVC.GetBestUM(umf, projQttyInBase); // item.ProjectedQuantity = Math.Round(projQttyInBase / item.ProjectedUnitMeasure.ToBaseConversion, decimalPlaces); //} //for (int i = 0; i < 7; i++) //{ // //item.ProjectedQuantities[i] = Math.Round(projectedQtty, 1); //} } }
public UnitMeasure GetBestUM(UMFamily umFamily, double qttyInBase) { var unitOfMeasures = umFamily.UnitMeasures.OrderBy(x => - x.ToBaseConversion); foreach (var item in unitOfMeasures) { if (qttyInBase / item.ToBaseConversion >= 1) { return(item); } } return(unitOfMeasures.First()); //resultUM = productUMFamily.UnitMeasures.Where(x => originalQttyInBase / x.ToBaseConversion >= 1).OrderBy(x => x.ToBaseConversion).Last(); //resultQtty = originalQttyInBase / resultUM.ToBaseConversion; //return bestUM; }
protected override void UpdateTotals() { if (ItemsShowing.Count() == 0) { Minimum = Maximum = Average = 0; return; } Minimum = ItemsShowing.Min(x => x.MinimumQuantity * x.MinimumUnitMeasure.ToBaseConversion); Maximum = ItemsShowing.Max(x => x.MaximumQuantity * x.MaximumUnitMeasure.ToBaseConversion); Average = Math.Round(ItemsShowing.Average(x => x.AverageQuantity * x.AverageUnitMeasure.ToBaseConversion)); //fit qtties var invSvc = base.GetService <IInventoryService>(); using (var unitOfWork = base.GetNewUnitOfWork()) { Product selectedProduct = Products.Single(x => x.Id == SelectedProductId); UMFamily umf = unitOfWork.UMFamilyRepository.GetById(selectedProduct.UMFamilyId); UnitMeasure bestUM = invSvc.GetBestUM(umf, Minimum); MinUnitMeasure = bestUM; Minimum = Minimum / bestUM.ToBaseConversion; bestUM = invSvc.GetBestUM(umf, Maximum); MaxUnitMeasure = bestUM; Maximum = Maximum / bestUM.ToBaseConversion; bestUM = invSvc.GetBestUM(umf, Average); AveUnitMeasure = bestUM; int decimalPlaces = umf.Id == 1 ? 0 : 2; Average = Math.Round(Average / bestUM.ToBaseConversion, decimalPlaces); } }