Exemplo n.º 1
0
        public DataTable ReportAmenities(string flight_num)
        {
            Connection objDAL = new Connection();
            //lấy ra danh sách các dịch vụ
            DataTable list_amenity = objDAL.GetDataInfo("SELECT Amenities.AmenService FROM Amenities");
            //bảng lưu thông tin đầy đủ của cách dịch vụ theo cabin (giá trị null tức khoang đó không có sẵn dịch vụ)
            DataTable amen_by_cabin = new DataTable();

            //đặt tên cho header column là tên các dịch vụ
            for (int i = 0; i < list_amenity.Rows.Count; i++)
            {
                amen_by_cabin.Columns.Add(list_amenity.Rows[i]["AmenService"].ToString());
            }

            Connection objDAL1    = new Connection();
            DataTable  list_cabin = objDAL1.GetDataInfo("SELECT ID FROM CabinTypes");

            //lấy ra dữ liệu của các dịch vụ theo từng cabin 1
            //mã cabin được lấy ra từ list_cabin
            for (int i = 0; i < list_cabin.Rows.Count; i++)
            {
                //bảng dịch vụ dưới dạng cột định dạng thành list và đổ vào datatable kết quả theo hàng (cột -> hàng)
                List <string> temp = objDAL.GetListDataInt("SELECT ISNULL(S.SOLUONG, 0 ) FROM Amenities LEFT JOIN (SELECT AmenitiesTickets.AmenitiesID, Tickets.CabinType, COUNT(*) AS SOLUONG FROM AmenitiesTickets INNER JOIN Tickets ON AmenitiesTickets.TicketID = Tickets.ID LEFT JOIN Schedules ON Tickets.ScheduleID = Schedules.ID WHERE Tickets.CabinType = '" + list_cabin.Rows[i]["ID"].ToString() + "' AND Schedules.FlightNumber = '" + flight_num + "' GROUP BY AmenitiesTickets.AmenitiesID, Tickets.CabinType) S ON Amenities.ID = S.AmenitiesID");
                amen_by_cabin.Rows.Add(temp.ToArray <string>());
            }

            return(amen_by_cabin);
        }