Esempio n. 1
0
        public static bool canStartGetPolicy()
        {
            try
            {
                EagleWebService.IbeFunc fc = new EagleWebService.IbeFunc();

                DateTime serverTime = fc.ServerTime();
                if (serverTime.Hour < 8 || serverTime.Hour >= 20)
                {
                    return(true);
                }
                else if (serverTime.Hour >= 12 && serverTime.Hour < 14)
                {
                    return(true);
                }
                else
                {
                    MessageBox.Show("由于在高峰时期计算返点政策可能导致服务器崩溃,可使用时间:0点-8点,12点-14点,20点-24点"
                                    , "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(false);
                }
            }
            catch
            {
                MessageBox.Show("不能得到服务器时间,请重试", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 产生PNR
        /// </summary>
        /// <param name="flightno">航班号</param>
        /// <param name="actioncode">"LL"</param>
        /// <param name="date">航班日期</param>
        /// <param name="city">起飞城市</param>
        /// <param name="city2">抵达城市</param>
        /// <param name="bunk">舱位</param>
        /// <param name="names">姓名</param>
        /// <param name="dtlimit">时限</param>
        /// <param name="cardnos">证件号</param>
        /// <param name="remarks">备注</param>
        /// <param name="pnr">返回PNR</param>
        public static void CreatePnrFromIbe(string [] flightno, string [] actioncode, DateTime [] date, string[] city, string [] city2, char[] bunk,
                                            string [] names, DateTime dtlimit, string[] cardnos, string [] remarks, ref string pnr)
        {
            EagleWebService.IbeFunc fc = new EagleWebService.IbeFunc();
            string[] flightdate        = new string[date.Length];
            string[] bunks             = new string[date.Length];
            for (int i = 0; i < date.Length; ++i)
            {
                flightdate[i] = date[i].ToString("yyyy-MM-dd");
                bunks[i]      = bunk[i].ToString();
            }
            logic.IBEAgent ibeagent = new logic.IBEAgent();


            string xml = EagleString.egString.CreateXmlOfEagleIbe(flightno, actioncode, date, city, city2, bunk, names, dtlimit, cardnos, remarks);

            try
            {
                pnr = fc.SS(flightno, actioncode, flightdate, city, city2, bunks, names, dtlimit.ToString("yyyy-MM-dd HH:mm:00"), cardnos, remarks);
            }
            catch
            {
                pnr = ibeagent.MakeEbtOrder(xml);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 计算一个PNR的各种价格(各航段分计),注:不取返点政策
        /// </summary>
        /// <param name="total">总票价与etdz结果比较</param>
        /// <param name="sFare">单个成人票面价</param>
        /// <param name="sBuild">单个成人机建</param>
        /// <param name="sFuel">单个成人燃油</param>
        /// <param name="sFareY">Y舱的价格,为了儿童或婴儿的计算</param>
        public static void CalPnrsTotalPrice(RtResult rtres, string wsaddr,
                                             ref int total, ref int[] sFare, ref int[] sBuild, ref int[] sFuel, ref int[] sFareY)
        {
            total = 0;
            EagleWebService.IbeFunc fc = new EagleWebService.IbeFunc();
            //Hashtable ht = fc.DSG(rtres.PNR);//有待IBE恢复
            for (int i = 0; i < rtres.SEGMENG.Length; ++i)
            {
                string          cp       = rtres.SEGMENG[i].Citypair;
                OleDbConnection cn       = new OleDbConnection();
                int             price    = EagleString.EagleFileIO.PriceOf(cp);
                int             distance = EagleString.EagleFileIO.DistanceOf(cp);
                if (price == 0)
                {
                    EagleWebService.kernalFunkEx.FC_get_server_local(cp, cn, wsaddr, ref distance, ref price);
                }
                int pricec = EagleString.egString.TicketPrice(price, 50);
                int rebate = EagleString.EagleFileIO.RebateOf(rtres.SEGMENG[i].Bunk, rtres.SEGMENG[i].Flight);
                if (EagleString.egString.LargeThan420(rtres.SEGMENG[i].Date))
                {
                    rebate = EagleString.EagleFileIO.RebateOfNew(rtres.SEGMENG[i].Bunk, rtres.SEGMENG[i].Flight);
                }
                int    pricea = EagleString.egString.TicketPrice(price, rebate);
                string flight = rtres.SEGMENG[i].Flight;
                if (flight[0] == '*')
                {
                    flight = flight.Substring(1);
                }
                //由于IBE不能使用,暂时用50代替
                int taxbuild = 50;
                //int taxbuild = EagleString.EagleFileIO.TaxOfBuildBy(ht[flight].ToString());
                int taxfuel = EagleString.EagleFileIO.TaxOfFuelBy(distance);
                pricec  += EagleString.egString.TicketPrice(taxfuel, 50);//(taxfuel) / 2;
                sFare[i] = pricea;
                pricea  += taxfuel + taxbuild;
                total   += pricec * rtres.CHILDRENCOUNT + pricea * rtres.ADULTCOUNT;

                sBuild[i] = taxbuild;
                sFuel[i]  = taxfuel;
                sFareY[i] = price;
            }
        }
Esempio n. 4
0
        private int MoneyOfPnr(string pnr)
        {
            if (!EagleString.BaseFunc.PnrValidate(pnr))
            {
                throw new Exception("INVALID PNR!");
            }

            EagleWebService.IbeFunc ibe = new EagleWebService.IbeFunc();

            string xml = ibe.RT2(pnr);

            if (xml == "")
            {
                if (ibe.RT(pnr).ToLower().Contains("cancel"))
                {
                    return(0);
                }
            }
            EagleWebService.IbeRtResult ibert = new EagleWebService.IbeRtResult(xml);
            string[] names = ibert.getpeopleinfo(0);
            int      iAdult = 0, iChild = 0;//成人数与儿童数

            for (int i = 0; i < names.Length; i++)
            {
                if (names[i].Contains("(CHD)"))
                {
                    iChild++;
                }
                else
                {
                    iAdult++;
                }
            }
            EagleWebService.IbeFunc func = new EagleWebService.IbeFunc();
            Hashtable ht;

            try
            {
                ht = func.DSG(pnr);
            }
            catch
            {
                ht = null;
            }
            string[] flights = ibert.getflightsegsinfo();
            int      pAdult = 0, pChild = 0;

            for (int i = 0; i < flights.Length; i++)
            {
                string[] a = flights[i].Split('~');
                if (a[0] == "ARNK")
                {
                    continue;
                }
                int y = EagleString.EagleFileIO.PriceOf(a[2]);
                pChild += EagleString.egString.TicketPrice(y, 50);
                int rebate;
                //Fri Apr 17 10:30:00 CST 2009
                string[] b          = a[3].Split(' ');
                DateTime flightdate = new DateTime(int.Parse(b[5]), EagleString.BaseFunc.MonthInt2(b[1]), int.Parse(b[2]));
                if (DateTime.Compare(flightdate, DateTime.Parse("2009-4-20")) >= 0)
                {
                    rebate = EagleString.EagleFileIO.RebateOfNew(a[1][0], a[0]);
                }
                else
                {
                    rebate = EagleString.EagleFileIO.RebateOf(a[1][0], a[0]);
                }
                if (rebate == 29 || rebate == 43)
                {
                    throw new Exception("SPECIAL BUNK!");
                }
                pAdult += EagleString.egString.TicketPrice(y, rebate);
                pAdult += (ht == null ? 50 : EagleString.EagleFileIO.TaxOfBuildBy(ht[a[0]].ToString()));
                int fuel = EagleString.EagleFileIO.TaxOfFuelBy(EagleString.EagleFileIO.DistanceOf(a[2]));
                pChild += EagleString.egString.TicketPrice(fuel, 50);
                pAdult += fuel;
            }
            int ret = pAdult * iAdult + pChild * iChild;

            return(ret);
        }
Esempio n. 5
0
 private void btnPnrView_Click(object sender, EventArgs e)
 {
     get_control();
     EagleWebService.IbeFunc fc = new EagleWebService.IbeFunc();
     MessageBox.Show(fc.RT(m_pnr));
 }