示例#1
0
        public VentasCentro <Center> FillSalesCenter(VentasCentro <Center> ventasCentro, int mode = -1)
        {
            foreach (Center center in ventasCentro.Items)
            {
                foreach (Subcenter subcenter in center.Subcenters)
                {
                    List <SalesCountedCenter> oSales = new List <SalesCountedCenter>();
                    foreach (LabelAndValue <DateTime> date in ventasCentro.Dates)
                    {
                        if (mode == 1)
                        {
                            SalesCountedCenter sale = subcenter.SalesCountedCenters.SingleOrDefault(o => o.PostingDate.Value.Day == date.Value.Day);
                            if (sale == null)
                            {
                                oSales.Add(new SalesCountedCenter());
                            }
                            else
                            {
                                oSales.Add(sale);
                            }
                        }
                        else if (mode == 7)
                        {
                            SalesCountedCenter weekSale = new SalesCountedCenter()
                            {
                                Amount = 0
                            };
                            foreach (SalesCountedCenter sales in subcenter.SalesCountedCenters)
                            {
                                if (sales.PostingDate.Value >= date.Value && sales.PostingDate.Value <= Convert.ToDateTime(date.Data))
                                {
                                    weekSale.Amount += sales.Amount;
                                }
                            }
                            oSales.Add(weekSale);
                        }
                        else if (mode == 12)
                        {
                            SalesCountedCenter monthSale = new SalesCountedCenter()
                            {
                                Amount = 0
                            };
                            foreach (SalesCountedCenter sales in subcenter.SalesCountedCenters)
                            {
                                if (sales.PostingDate.Value >= date.Value &&
                                    sales.PostingDate.Value <= new DateTime(date.Value.Year, date.Value.Month, DateTime.DaysInMonth(date.Value.Year, date.Value.Month)))
                                {
                                    monthSale.Amount += sales.Amount;
                                }
                            }
                            oSales.Add(monthSale);
                        }
                    }
                    subcenter.SalesCountedCenters = oSales;
                }
            }

            return(ventasCentro);
        }
示例#2
0
        public VentasCentro <CustomerRate> FillSalesCenter(VentasCentro <CustomerRate> ventasCentro, int mode = -1)
        {
            foreach (CustomerRate customer in ventasCentro.Items)
            {
                List <SalesCenter> oSales = new List <SalesCenter>();
                foreach (LabelAndValue <DateTime> date in ventasCentro.Dates)
                {
                    if (mode == 1)
                    {
                        SalesCenter sale = customer.SalesCenters.SingleOrDefault(o => o.PostingDate.Value.Day == date.Value.Day && o.PostingDate >= customer.StartingDate && (o.PostingDate <= customer.EndingDate || customer.EndingDate == null));
                        if (sale == null)
                        {
                            oSales.Add(new SalesCenter());
                        }
                        else
                        {
                            oSales.Add(sale);
                        }
                    }
                    else if (mode == 7)
                    {
                        SalesCenter weekSale = new SalesCenter()
                        {
                            Quantity = 0
                        };
                        foreach (SalesCenter sales in customer.SalesCenters)
                        {
                            if (sales.PostingDate.Value >= date.Value && sales.PostingDate.Value <= Convert.ToDateTime(date.Data))
                            {
                                weekSale.Quantity += sales.Quantity;
                            }
                        }
                        oSales.Add(weekSale);
                    }
                    else if (mode == 12)
                    {
                        SalesCenter monthSale = new SalesCenter()
                        {
                            Quantity = 0
                        };
                        foreach (SalesCenter sales in customer.SalesCenters)
                        {
                            if (sales.PostingDate.Value >= date.Value && sales.PostingDate.Value <= new DateTime(date.Value.Year, date.Value.Month, DateTime.DaysInMonth(date.Value.Year, date.Value.Month)))
                            {
                                monthSale.Quantity += sales.Quantity;
                            }
                        }
                        oSales.Add(monthSale);
                    }
                }
                customer.SalesCenters = oSales;
            }

            return(ventasCentro);
        }
示例#3
0
        public VentasCentro <Center> GetVentasCentro(int year = -1, int month = -1, int mode = 7)
        {
            VentasCentro <Center> oVentas = new VentasCentro <Center>()
            {
                Items = cBS.GetCentroList(pagesize: 0, sortName: "name")
            };

            if (mode == 1)
            {
                oVentas.Dates = dBS.GetDaysInMonth(year, month);           //daily
            }
            else if (mode == 7)
            {
                oVentas.Dates = dBS.GetWeeksInMonth(year, month).Select(o => new LabelAndValue <DateTime>(o.From.ToString("dd/MM") + " - " + o.To.ToString("dd/MM"), o.From, o.To));               //weekly
            }
            else if (mode == 12)
            {
                oVentas.Dates = dBS.GetMonthsInYear().Select(o => new LabelAndValue <DateTime>(o.Value, new DateTime(year, o.Key, 1), o));                 //monthly
            }
            return(FillSalesCenter(oVentas, mode));
        }
示例#4
0
        public IActionResult GetSalesCountedCenterList([FromQuery(Name = "y")] int year, [FromQuery(Name = "m")] int month, [FromQuery] int mode)
        {
            VentasCentro <Center> ventasCentro = sBS.GetVentasCentro(year: year, month: month, mode: mode);

            return(Ok(new VentasContado_View(ventasCentro)));
        }
示例#5
0
 public VentasCentro_View(VentasCentro <CustomerRate> v)
 {
     Items = v.Items.Select(o => new CustomerRate_View(o));
     Dates = v.Dates;
 }
 public VentasContado_View(VentasCentro <Center> v)
 {
     Items = v.Items.Select(o => new Center_View(o));
     Dates = v.Dates;
 }