private void SetMonth(IndexModel model) { DateTime now = DateTime.Now; DateTime currentDate = new DateTime(now.AddMonths(1).Year, now.AddMonths(1).Month, 1, 0, 0, 0); var WeekIncome = unit.LastVisitedProduct.GetLastEntry(currentDate.AddMonths(-6).ToUnix()).GroupBy(p => p.RegisterDate.PersianMonth()).Select(p => new { p.Key, Orders = p.ToList() }).ToList(); for (int i = 0; i < 6; i++) { MonthSales ws = new MonthSales(); ws.Month = PersianDate.Parse(DateTime.Now.AddMonths(-i)).Month.ToString(); ws.Income = 0; model.MonthSales.Add(ws); } foreach (var item in WeekIncome) { for (int i = 0; i < model.MonthSales.Count; i++) { if (model.MonthSales[i].Month == item.Key) { model.MonthSales[i].Income += item.Orders.Count; } } } }
private DateTime GetStartDate(MonthSales month) { if (month.Name == "January") { return(new DateTime(DateTime.Now.Year, 1, 1)); } else if (month.Name == "February") { return(new DateTime(DateTime.Now.Year, 2, 1)); } else if (month.Name == "March") { return(new DateTime(DateTime.Now.Year, 3, 1)); } else if (month.Name == "April") { return(new DateTime(DateTime.Now.Year, 4, 1)); } else if (month.Name == "May") { return(new DateTime(DateTime.Now.Year, 5, 1)); } else if (month.Name == "June") { return(new DateTime(DateTime.Now.Year, 6, 1)); } else if (month.Name == "July") { return(new DateTime(DateTime.Now.Year, 7, 1)); } else if (month.Name == "August") { return(new DateTime(DateTime.Now.Year, 8, 1)); } else if (month.Name == "September") { return(new DateTime(DateTime.Now.Year, 9, 1)); } else if (month.Name == "October") { return(new DateTime(DateTime.Now.Year, 10, 1)); } else if (month.Name == "November") { return(new DateTime(DateTime.Now.Year, 11, 1)); } else { return(new DateTime(DateTime.Now.Year, 12, 1)); } }
// 得到全部(order by time) public static List <MonthSales> GetAllMonthSales() { string sql = "select sum(number), sum(total_price), strftime(\"%m\", s_time) as month from sale group by month order by month desc"; var conn = SqlUtil.conn; List <MonthSales> monthSaleses = new List <MonthSales>(); using (var statement = conn.Prepare(sql)) { while (statement.Step() == SQLiteResult.ROW) { MonthSales monthSales = new MonthSales(); monthSales.TotalSaleNum = Int32.Parse(statement[0].ToString()); monthSales.TotalSales = float.Parse(statement[1].ToString()); monthSales.Month = int.Parse(statement[2].ToString()); monthSaleses.Add(monthSales); } } return(monthSaleses); }
public Highcharts ColumnWithDrilldownSector() { var months = new MonthSales[] { new MonthSales { Name = "January", Scale = 1 }, new MonthSales { Name = "February", Scale = 2 }, new MonthSales { Name = "March", Scale = 3 }, new MonthSales { Name = "April", Scale = 4 }, new MonthSales { Name = "May", Scale = 5 }, new MonthSales { Name = "June", Scale = 6 }, new MonthSales { Name = "July", Scale = 7 }, new MonthSales { Name = "August", Scale = 8 }, new MonthSales { Name = "September", Scale = 9 }, new MonthSales { Name = "October", Scale = 10 }, new MonthSales { Name = "November", Scale = 11 }, new MonthSales { Name = "December", Scale = 12 } }; var coursesNames = months.Select(x => x.Name).ToArray(); List <MonthSales> firststTermCourseList = new List <MonthSales>(); List <MonthSales> secondTermCourseList = new List <MonthSales>(); List <MonthSales> thirdTermCourseList = new List <MonthSales>(); List <MonthSales> fourthTermCourseList = new List <MonthSales>(); string[] firstTermSubjects = coursesNames; string[] secondTermSubjects = coursesNames; string[] thirdTermSubjects = coursesNames; string[] fourthTermSubjects = coursesNames; var firstTermData = GetRandom(months, 1, ref firststTermCourseList); var secondTermData = GetRandom(months, 2, ref secondTermCourseList); var thirdTermData = GetRandom(months, 3, ref thirdTermCourseList); var fourthTermData = GetRandom(months, 4, ref fourthTermCourseList); firstTermSubjects = firststTermCourseList.Select(x => x.Name).ToArray(); secondTermSubjects = secondTermCourseList.Select(x => x.Name).ToArray(); thirdTermSubjects = thirdTermCourseList.Select(x => x.Name).ToArray(); fourthTermSubjects = fourthTermCourseList.Select(x => x.Name).ToArray(); var p1 = (Number)GetActualData(1); var p2 = (Number)GetActualData(2); var p3 = (Number)GetActualData(3); var p4 = (Number)GetActualData(4); string[] categories = new[] { "1st Quarter", "2nd Quarter", "3rd Quarter", "4th Quarter" }; string strName = " Year Sales"; DotNet.Highcharts.Helpers.Data data = new DotNet.Highcharts.Helpers.Data(new[] { new Point { Y = p1, Color = System.Drawing.Color.FromName("colors[0]"), Drilldown = new Drilldown { Name = "1st Quarter", Categories = firstTermSubjects, Data = firstTermData, Color = System.Drawing.Color.FromName("colors[0]") } }, new Point { Y = p2, Color = System.Drawing.Color.FromName("colors[1]"), Drilldown = new Drilldown { Name = "2nd Quarter", Categories = secondTermSubjects, Data = secondTermData, Color = System.Drawing.Color.FromName("colors[1]") } }, new Point { Y = p3, Color = System.Drawing.Color.FromName("colors[2]"), Drilldown = new Drilldown { Name = "3rd Quarter", Categories = thirdTermSubjects, Data = thirdTermData, Color = System.Drawing.Color.FromName("colors[2]") } }, new Point { Y = p4, Color = System.Drawing.Color.FromName("colors[3]"), Drilldown = new Drilldown { Name = "4th Quarter", Categories = fourthTermSubjects, Data = fourthTermData, Color = System.Drawing.Color.FromName("colors[3]") } } }); Highcharts chart = new Highcharts("chart") .InitChart(new Chart { DefaultSeriesType = ChartTypes.Column }) .SetTitle(new Title { Text = strName }) .SetSubtitle(new Subtitle { Text = "Click the columns for Quarter View. Click again for Month View." }) .SetXAxis(new XAxis { Categories = categories }) .SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Sales (NGN)" } }) .SetLegend(new Legend { Enabled = false }) .SetTooltip(new Tooltip { Formatter = "TooltipFormatter" }) .SetPlotOptions(new PlotOptions { Column = new PlotOptionsColumn { Cursor = Cursors.Pointer, Point = new PlotOptionsColumnPoint { Events = new PlotOptionsColumnPointEvents { Click = "ColumnPointClick" } }, DataLabels = new PlotOptionsColumnDataLabels { Enabled = true, Color = System.Drawing.Color.FromName("colors[0]"), Formatter = "function() { return this.y +' '; }", Style = "fontWeight: 'bold'" } } }) .SetSeries(new Series { Name = "Sales", Data = data, Color = System.Drawing.Color.White }) .SetExporting(new Exporting { Enabled = false }) .AddJavascripFunction( "TooltipFormatter", @"var point = this.point, s = this.x +':<b>'+ this.y +' </b><br/>'; if (point.drilldown) { s += 'Click to view by '+ point.category +' results'; } else { s += 'Click to return to Quarter View'; } return s;" ) .AddJavascripFunction( "ColumnPointClick", @"var drilldown = this.drilldown; if (drilldown) { // drill down setChart(drilldown.name, drilldown.categories, drilldown.data.data, drilldown.color); } else { // restore setChart(name, categories, data.data); }" ) .AddJavascripFunction( "setChart", @"chart.xAxis[0].setCategories(categories); chart.series[0].remove(); chart.addSeries({ name: name, data: data, color: color || 'white' });", "name", "categories", "data", "color" ) .AddJavascripVariable("colors", "Highcharts.getOptions().colors") .AddJavascripVariable("name", "'{0}'".FormatWith(strName)) .AddJavascripVariable("categories", JsonSerializer.Serialize(categories)) .AddJavascripVariable("data", JsonSerializer.Serialize(data)); return(chart); }