protected bool GetFlights(string pnr)
    {
        string errMsg = string.Empty;
        DpwPNR dpwPNR = new DpwPNR();
        bool isMatchAirline = false;
        bool isMatchDeparture = false;
        bool isMatchBeginDate = false;
        bool isMatchEndDate = false;
        string originalAirline = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).AirLine;
        string originalDeparture = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).DepartureCity;
        //string originalDestination= ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).;
        DateTime originalBeginDate = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).BeginDate;
        DateTime originalEndDate = ((TourOrderItem)Transaction.CurrentTransactionObject.Items[0]).EndDate;
        if (pnr.Equals(string.Empty))
        {
            errMsg = "Please Input PNR";

        }
        else if (pnr.Length != 6)
        {
            errMsg = "Please Input Correct PNR";

        }
        else
        {
            dpwPNR = m_airService.GetPnrData(pnr, out errMsg);

        }
        if (errMsg.Equals(string.Empty))
        {
            DpwFlightList flights = dpwPNR.Flights;

            AirMaterial airMaterial = new AirMaterial(new TERMS.Core.Profiles.Profile("air"));
            //int[] divideNumber =

            Hashtable timeSpan = new Hashtable();
            List<AirLeg> airLegList = m_AirLegList;
            bool isOneWay = false;

            if (flights.Count > 0)
            {
                if (!flights[0].DepartureAirport.Equals(flights[flights.Count - 1].ArrivalAirport))
                    isOneWay = true;
            }

            for (int i = 0; i < flights.Count; i++)
            {
                if (flights[i].Airline.Contains(originalAirline))
                    isMatchAirline = true;
                AirLeg air = new AirLeg();
                air.AirLine = new Airline(flights[i].Airline);
                air.ArriveTime = flights[i].ArrivalDateTime;
                air.BookingClass = flights[i].BookingClass;
                Airport deptAirport = new Airport();
                City deptCity = new City();

                Terms.Common.Domain.Airport airport = m_airService.CommAirportDao.FindByAirport(flights[i].DepartureAirport);
                deptCity.Code = airport.City.Code;
                deptCity.Name = airport.City.Name;
                deptAirport.City = deptCity;
                deptAirport.Name = airport.Name;
                deptAirport.Code = airport.Code;
                air.DepartureAirport = deptAirport;
                air.DepartureTime = flights[i].DepartureDateTime;

                if (i == 0)
                {
                    if (deptCity.Code.Contains(originalDeparture))
                        isMatchDeparture = true;
                    if (air.DepartureTime.ToString("MM/dd/yyyy").Equals(originalBeginDate.ToString("MM/dd/yyyy")))
                        isMatchBeginDate = true;
                }

                Airport destAirport = new Airport();
                City destCity = new City();

                Terms.Common.Domain.Airport airtport2 = m_airService.CommAirportDao.FindByAirport(flights[i].ArrivalAirport);
                destCity.Code = airtport2.City.Code;
                destCity.Name = airtport2.City.Name;
                destAirport.City = destCity;
                destAirport.Name = airtport2.Name;
                destAirport.Code = airtport2.Code;
                air.DestinationAirport = destAirport;
                air.FlightNumber = flights[i].FlightNumber;

                if (i > 0)
                {
                    timeSpan.Add(i.ToString() + "-" + (i + 1).ToString(), flights[i].DepartureDateTime.Subtract(flights[i - 1].ArrivalDateTime));

                }

                airLegList.Add(air);
                //SubAirTrip subAirTrip = new SubAirTrip();
                //subAirTrip.
            }

            if (isOneWay)
            {
                SubAirTrip deptSubAirTrip = new SubAirTrip();
                for (int j = 0; j < airLegList.Count; j++)
                {
                    deptSubAirTrip.AddLeg(airLegList[j]);
                }
                airMaterial.AddSubTrip(deptSubAirTrip);
            }
            else
            {
                TimeSpan bigSpan = new TimeSpan();
                string bigSpanKey = string.Empty;
                foreach (string key in timeSpan.Keys)
                {
                    if (bigSpan.CompareTo(timeSpan[key]) < 0)
                    {
                        bigSpan = (TimeSpan)timeSpan[key];
                        bigSpanKey = key;
                    }
                }

                string[] flightNumber = bigSpanKey.Split('-');

                if (flightNumber.Length == 2)
                {
                    SubAirTrip deptSubAirTrip = new SubAirTrip();
                    SubAirTrip retnSubAirTrip = new SubAirTrip();

                    for (int j = 0; j < airLegList.Count; j++)
                    {
                        if (j <= (Convert.ToInt32(flightNumber[0]) - 1))
                            deptSubAirTrip.AddLeg(airLegList[j]);
                        else
                            retnSubAirTrip.AddLeg(airLegList[j]);

                    }

                    airMaterial.AddSubTrip(deptSubAirTrip);
                    airMaterial.AddSubTrip(retnSubAirTrip);
                    if (retnSubAirTrip.Flights[0].DepartureTime.ToString("MM/dd/yyyy").Equals(originalEndDate.ToString("MM/dd/yyyy")))
                        isMatchEndDate = true;
                }
            }

            m_NewAirOrderItem = new AirOrderItem(airMaterial);

            //Fare
            int fareLength = dpwPNR.FareInfo.Fares.Count;
            for (int fareCount = 0; fareCount < fareLength; fareCount++)
            {
                DpwFare fare = dpwPNR.FareInfo.Fares[fareCount];

                switch (fare.PTC)
                {
                    case GTTWSpanClient.PassengerType.Adult:
                        m_NewAirOrderItem.Merchandise.SetAdultBaseFare(fare.BaseFare);
                        m_NewAirOrderItem.Merchandise.SetAdultTax(fare.Tax);
                        break;
                    case GTTWSpanClient.PassengerType.Child:
                        m_NewAirOrderItem.Merchandise.SetChildBaseFare(fare.BaseFare);
                        m_NewAirOrderItem.Merchandise.SetChildTax(fare.Tax);
                        break;
                    case GTTWSpanClient.PassengerType.Infant:
                        break;
                    default:
                        break;
                }
            }
            m_NewAirOrderItem.WSpanRecordLocator = dpwPNR.RecordLoactor;

            Transaction.CurrentTransactionObject.Items.Add(m_NewAirOrderItem);

            int adultNumber = GetPassengers(dpwPNR.Passengers)[0];
            int childNumber = GetPassengers(dpwPNR.Passengers)[1];

            //TourPriceInfoControl1.Tax = m_NewAirOrderItem.Merchandise.AdultTax * adultNumber + m_NewAirOrderItem.Merchandise.ChildTax * childNumber;
            //TourPriceInfoControl1.ShowTotalPrice = GetNetPrice();// +TourPriceInfoControl1.Tax;
            if (Transaction.CurrentTransactionObject.Items[0].AdultNumber != adultNumber || Transaction.CurrentTransactionObject.Items[0].ChildNumber != childNumber)
            {
                lblError.Text = "PNR��s passenger number is not equal order��s traveler number.";
                return false;
            }
            else
            {
                if (!isMatchAirline)
                {
                    lblError.Text = "Warning: Not default airlines price may be different.";

                    lblError.Style.Add("color", "blue");
                }
                else if (!isMatchDeparture)
                {
                    lblError.Text = "Warning: Not default departure city/destination. Be careful.";
                    lblError.Style.Add("color", "blue");
                }
                else if (!isMatchBeginDate || !isMatchEndDate)
                {
                    lblError.Text = "Warning: Not default departure/return date. Be careful.";
                    lblError.Style.Add("color", "blue");
                }
                else
                {
                    lblError.Style.Add("color", "red");
                }
                return true;
            }

        }
        else
        {
            lblError.Text = errMsg;
            return false;
        }
    }