예제 #1
0
 //  tổng tiền thu được từ sp đã bán
 public static int countMoney_ProductSold(IProductDTOService productService, IInfoOrderDTOService infoOrderService,
                                          IPayOrderDTOService payOrderService,
                                          string thang, string nam)
 {
     return(TopSoldProducts_Greater(productService, infoOrderService, payOrderService, thang, nam)
            .Sum(p => p.totalMoney));
 }
예제 #2
0
 // sl sp đã bán
 public static int countProductSoldInYear(IProductDTOService productService, IInfoOrderDTOService infoOrderService,
                                          IPayOrderDTOService payOrderService,
                                          string nam)
 {
     return(TopSoldProducts_GreaterInYear(productService, infoOrderService, payOrderService, nam)
            .Sum(p => p.count_ProductSold));
 }
예제 #3
0
        // đếm số lượng thông báo chỉ tiêu < 1 triệu
        public static int countTurnoverLess1Milion(IPayOrderDTOService payOrderService, string sendYear)
        {
            var less_1_million = TurnoverOfYear(payOrderService, sendYear).Where(t => t.Message == "_").ToList();

            if (less_1_million == null)
            {
                return(0);
            }
            return(less_1_million.Count());
        }
예제 #4
0
        public static List <StatisticalProducts> TopSoldProducts_Greater(
            IProductDTOService productService, IInfoOrderDTOService infoOrderService,
            IPayOrderDTOService payOrderService,
            string thang, string nam
            )
        {
            List <StatisticalProducts> data = new List <StatisticalProducts>();

            var products   = productService.GetAllProduct();
            var payOrders  = payOrderService.GetAllPayOrder();
            var infoOrders = infoOrderService.GetAllInfoOrder();

            foreach (var product in products)
            {
                var countAmount_Product_Sold = 0;
                var totalMoney = 0;
                foreach (var pay in payOrders)
                {
                    if (pay.StatusPay == "Đã thanh toán")
                    {
                        var dateToPay        = pay.DateToPay;
                        var ConvertDateToPay = dateToPay.Split('-'); // tách chuỗi ngày - tháng - năm
                        var month            = ConvertDateToPay[1];
                        var year             = ConvertDateToPay[2];  // lấy tháng năm
                        if (nam == year && thang == month)
                        {
                            foreach (var info in infoOrders)
                            {
                                if (info.IDP == pay.ID && info.IDSP == product.IDSP)
                                {
                                    countAmount_Product_Sold += int.Parse(info.Amount);
                                    totalMoney += int.Parse(info.IntoMoney);
                                }
                            }
                        }
                    }
                }
                data.Add(new StatisticalProducts {
                    ID_Product        = product.IDSP,
                    Name_Product      = product.Name,
                    count_ProductSold = countAmount_Product_Sold,
                    totalMoney        = totalMoney,
                    year = nam,
                });
            }
            return(data.OrderByDescending(d => d.count_ProductSold).ToList());
        }
예제 #5
0
        public static List <TurnoverOfYear> TurnoverOfYear(IPayOrderDTOService payOrderService, string sendYear)
        {
            List <TurnoverOfYear> data = new List <TurnoverOfYear>();
            var orders = payOrderService.GetAllPayOrder();

            // b1: duyệt tháng từ 1 -> 12
            for (int m = 1; m <= 12; m++)
            {
                var turnoverOfMonth = 0;
                var message         = "";
                foreach (var order in orders)
                {
                    var dateToPay = order.DateToPay;
                    if (order.StatusPay == "Đã thanh toán")
                    {
                        if (dateToPay != null)
                        {
                            var ConvertDateToPay = dateToPay.Split('-'); // tách chuỗi ngày - tháng - năm
                            var month            = ConvertDateToPay[1];  // lấy tháng ra
                            var year             = ConvertDateToPay[2];  // lấy tháng ra

                            // kiểm tra tháng trùng khớp vs tháng duyệt ko
                            if (int.Parse(month) == m && year == sendYear)
                            {
                                // cộng dồn doanh thu của tháng đó
                                turnoverOfMonth += int.Parse(order.Total);
                            }
                        }
                    }
                }
                // lập thông báo cho tháng đó nếu doanh thu thấp hơn 1 triệu
                if (turnoverOfMonth < 1000000)
                {
                    message += "_";
                }
                // sau khi duyệt xong 1 tháng thì add vào mảng doanh thu của năm
                data.Add(new TurnoverOfYear
                {
                    Month    = m.ToString(),
                    Year     = sendYear,
                    Turnover = turnoverOfMonth.ToString(),
                    Message  = message
                });
            }

            return(data.OrderByDescending(d => d.Turnover).ToList());
        }
예제 #6
0
 public static List <StatisticalOrders> statisticalOrders_Asc(IPayOrderDTOService orderService, String nam)
 {
     return(statisticalOrders(orderService, nam).OrderBy(s => s.totalOrders).ToList());
 }
예제 #7
0
 public static int totalMoney(IPayOrderDTOService orderService, String nam)
 {
     return(statisticalOrders(orderService, nam).Sum(s => int.Parse(s.totalMoney)));
 }
예제 #8
0
 public static int totalOrderCancel(IPayOrderDTOService orderService, String nam)
 {
     return(statisticalOrders(orderService, nam).Sum(s => s.totalOrderCancels));
 }
예제 #9
0
        public static List <StatisticalOrders> statisticalOrders(IPayOrderDTOService orderService, String nam)
        {
            List <StatisticalOrders> data = new List <StatisticalOrders>();

            for (int i = 1; i <= 12; i++)
            {
                var countOrders       = 0;
                var countOrderSuccess = 0;
                var countOrderCancel  = 0;
                var countMoney        = 0;
                foreach (var order in orderService.GetAllPayOrder())
                {
                    if (order.Status == "Đã giao hàng")
                    {
                        var monthPay = int.Parse(order.DateToPay.Split('-')[1]);
                        var yearPay  = order.DateToPay.Split('-')[2];
                        if (monthPay == i && yearPay == nam)
                        {
                            countOrderSuccess++;
                            countMoney += int.Parse(order.Total);
                            countOrders++;
                        }
                    }
                    if (order.Status == "Đã hủy")
                    {
                        var monthPay = int.Parse(order.DateCancel.Split('-')[1]);
                        var yearPay  = order.DateCancel.Split('-')[2];
                        if (monthPay == i && yearPay == nam)
                        {
                            countOrderCancel++;
                            countOrders++;
                        }
                    }
                }
                if (countOrders == 0)
                {
                    data.Add(new StatisticalOrders
                    {
                        idMonth             = i,
                        idYear              = int.Parse(nam),
                        totalOrders         = countOrders,
                        totalOrderSuccesses = countOrderSuccess,
                        totalOrderCancels   = countOrderCancel,
                        totalMoney          = countMoney.ToString(),
                        ratioSuccess        = 0,
                        ratioCancel         = 0,
                    });
                }
                else
                {
                    data.Add(new StatisticalOrders
                    {
                        idMonth             = i,
                        idYear              = int.Parse(nam),
                        totalOrders         = countOrders,
                        totalOrderSuccesses = countOrderSuccess,
                        totalOrderCancels   = countOrderCancel,
                        totalMoney          = countMoney.ToString(),
                        ratioSuccess        = ((float)countOrderSuccess / (float)countOrders) * 100,
                        ratioCancel         = ((float)countOrderCancel / (float)countOrders) * 100,
                    });
                }
            }
            return(data);
        }
예제 #10
0
 // tháng có doanh thu thấp nhất
 public static TurnoverOfYear LowestRevenue(IPayOrderDTOService payOrderService, string sendYear)
 {
     return(TurnoverOfYear(payOrderService, sendYear).OrderBy(s => s.Turnover).First());
 }
예제 #11
0
 // tổng doanh thu
 public static int countTotalStatistics(IPayOrderDTOService payOrderService, string sendYear)
 {
     return(TurnoverOfYear(payOrderService, sendYear).Sum(t => int.Parse(t.Turnover)));
 }