public sys_customer_model()
 {
     db = new sys_customer_db();
 }
Exemple #2
0
        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);
        }