public sys_customer_model() { db = new sys_customer_db(); }
public dynamic caculateReportOnMonth(string id_customer, int month) { List <string> MONTHS = new List <string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }; sys_customer_db CUSTOMER = _context.sys_customers.Where(d => d.id == id_customer).Where(d => d.is_customer == true).Where(d => d.status_del == 1).Select(d => d).SingleOrDefault(); List <data_chart> columnChartOfYear = new List <data_chart>(); List <data_chart> stackedColumnChartOfYear = new List <data_chart>(); List <data_chart> columnChartOfQuantityOderOnWeek = new List <data_chart>(); List <data_chart> columnChartOfRevenueOnWeek = new List <data_chart>(); var random = new Random(); // Caculate for colunm chart in year for (int i = 0; i < MONTHS.Count; i++) { columnChartOfYear.Add(new data_chart { name = MONTHS[i], series = new List <series> { new series { name = "Đơn hàng", value = random.Next(1, 5) } } }); //Fake generate order List <string> numberCustomer = _context.sys_customers.Where(d => d.is_customer == true).Where(d => d.status_del == 1).Select(d => d.name).ToList(); List <dynamic> ListCustomer = new List <dynamic>(); for (int n = 0; n < numberCustomer.Count; n++) { ListCustomer.Add(new { name = numberCustomer[n], }); } List <series> tempSeries = new List <series>(); for (int customer = 0; customer < ListCustomer.Count; customer++) { tempSeries.Add(new series { name = ListCustomer[customer].name, value = random.Next(1, 3) } ); } stackedColumnChartOfYear.Add(new data_chart { name = MONTHS[i], series = tempSeries }); } // Caculate for quantity order colunm chart in month int year = DateTime.Now.Year; int numberOfDate = DateTime.DaysInMonth(year, month); int numberOfWeek = GetWeekNumberOfMonth(new DateTime(year, month, numberOfDate)); for (int week = 1; week <= numberOfWeek; week++) { columnChartOfQuantityOderOnWeek.Add(new data_chart { name = week.ToString(), series = new List <series> { new series { name = "Đơn hàng", value = random.Next(1, 10) } } }); } // Caculate for quantity order colunm chart in month for (int week = 1; week <= numberOfWeek; week++) { columnChartOfRevenueOnWeek.Add(new data_chart { name = week.ToString(), series = new List <series> { new series { name = "VNĐ", value = random.NextDouble() * (200000000 - 1000000) + 1000000000 } } }); } var result = new { business_order_on_month = new { ranges = new { DW = "Tháng này", }, currentRange = "DW", data = new { count = new { DW = random.Next(1, 50), }, extra = new { count = new { DW = "", }, label = "NAV.quantity_business_order_on_month" }, label = "NAV.sales_order" }, detail = "null" }, business_deliveried_order_on_month = new { ranges = new { DW = "Tháng này", }, currentRange = "DW", data = new { count = new { DW = random.Next(1, 50), }, extra = new { count = new { DW = "", }, label = "NAV.quantity_deliveried_order_on_month" }, label = "NAV.business_deliveried_order" }, detail = "null" }, all_revenue_on_month = new { ranges = new { DW = "Tháng này", }, currentRange = "DW", data = new { count = new { DW = random.NextDouble() * (100 - 50) + 100 }, extra = new { count = new { DW = "", }, label = "NAV.all_revenue_on_month" }, label = "NAV.all_revenue_on_month" }, detail = "null" }, columnChartOfQuantityOderOnWeek = columnChartOfQuantityOderOnWeek, columnChartOfRevenueOnWeek = columnChartOfRevenueOnWeek, columnChartOfYear = columnChartOfYear, stackedColumnChartOfYear = stackedColumnChartOfYear }; return(result); }