Example #1
0
        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);
        }
Example #2
0
        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);
                //}
            }
        }
Example #3
0
        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);
            }
        }