示例#1
0
        private bool PlaceOrder(yudingEntities db, order item, string pmscode = "0", string pms = "", string pmsratecode = "", string qudao = "", bool ispms = false, string cusno = "")
        {
            var order = new order_t()
            {
                ptchannel      = item.ptchannel,
                isSendMsg      = "0",
                hotelname      = item.hotelname,
                City           = item.City,
                channelid      = item.channelid,
                guestname      = item.guestname,
                arrivetime     = DateTime.Parse(item.arr),
                baojia         = item.baojia,
                bosscard       = item.resby,
                contact_mobile = item.mobile,
                contact_name   = item.name,
                count          = int.Parse(item.count),
                hotelcode      = item.hotelcode,
                leavetime      = DateTime.Parse(item.dep),
                ordernumber    = item.ordernumber,
                pay            = item.pay,
                yuanjia        = item.rate.ToString(),
                trueRate       = item.truerate,
                notes          = item.remark,
                roomname       = item.roomname,
                roomtype       = item.roomtype,
                xz_code        = item.xz_code,
                xz_name        = item.xz_name,
                sessionid      = item.sessionid,
                formulaid      = item.formulaid,
                categoryid     = item.categoryid,
                increasemoney  = item.increasemoney,
                yhmoney        = decimal.Parse(item.yhmoney),
                rate           = item.rate,
                tpid           = item.tpid,
                type           = int.Parse(item.type),
                Fmoney         = item.Fmoney,
                TicketSn       = item.TicketSn,
            };

            if (ispms && item.type == "0")
            {
                if (pmscode == "1")
                {
                    ly ly = new ly("http://115.159.81.168:8100/ipmsgroup/router", item.hotelcode);
                    Dictionary <string, string> parms = new Dictionary <string, string>();
                    parms.Add("arr", item.arr + " 12:00:00");
                    parms.Add("dep", item.dep + " 12:00:00");
                    parms.Add("rmtype", pms);
                    parms.Add("channel", qudao);
                    parms.Add("rateCode", pmsratecode);
                    parms.Add("rmNum", item.count);
                    parms.Add("rsvMan", item.name);
                    parms.Add("sex", "1");
                    parms.Add("mobile", item.mobile);
                    parms.Add("idType", "");
                    parms.Add("idNo", "");
                    parms.Add("email", "");
                    parms.Add("cardType", "");
                    parms.Add("cardNo", "");
                    parms.Add("adult", "1");
                    parms.Add("resultCode", "");
                    parms.Add("remark", item.remark);
                    var json = new List <object>();
                    foreach (var item1 in item.everydate)
                    {
                        var everydate = new
                        {
                            date     = item1.date + " 12:00:00",
                            realRate = item1.realRate - item1.yhmoney,
                        };
                        json.Add(everydate);
                    }
                    var everyDayRateJson = JsonConvert.SerializeObject(json);
                    parms.Add("everyDayRate", everyDayRateJson);
                    //parms.Add("everyDayRate", "[{\"date\":\"" + item.arr + " 12:00:00\",\"realRate\":\"" + (item.rate - int.Parse(item.yhmoney)).ToString() + "\"}]");
                    var result = ly.xiadan(parms, "http://115.159.81.168:8100/ipmsgroup/CRS/book");
                    //success:
                    var crsNo = JsonHelper.GetJsonValue(result, "crsNo");
                    if (crsNo != "")
                    {
                        var date  = DateTime.Parse(item.arr);
                        var every = db.everydate_price_t.Where(x => x.everydate == date && x.xz_code == item.xz_code).FirstOrDefault();
                        every.ordernum += 1;
                        order.lvorder   = crsNo;
                        db.order_t.Add(order);
                        foreach (var item1 in item.everydate)
                        {
                            var time = DateTime.Parse(item1.date);
                            //BookingWeb.Refresh(db, item.xz_code, item.hotelcode, int.Parse(item.type), time);
                        }
                        return(true);
                    }
                    //error
                    else
                    {
                        return(false);
                    }
                }
                if (pmscode == "2")
                {
                    var service = new WxAPI(item.hotelcode);
                    var mp      = new MPDBEntities();
                    var hotel   = mp.MPConfigs.FirstOrDefault(x => x.ShopCode == item.hotelcode);
                    var hotel1  = db.hotel_list.FirstOrDefault(x => x.hotelId == item.hotelcode);
                    if (hotel != null)
                    {
                        var nightNum = (DateTime.Parse(item.dep) - DateTime.Parse(item.arr)).Days.ToString();
                        var res3     = service.Reservation("10", DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss"), "1009", hotel1.username, hotel1.pwd, item.guestname, "NA", "ADD", "6016913", "", "CHANGE", item.remark, "GUEST", "MALE", item.name, "", "C", "NA", "ADD", "CHANGE", "RESERVED", "", pms, "", "DAY", item.arr + " 18:00:00", nightNum, "", "ADULT", "1", "CHANGE", pmsratecode, hotel.src, hotel.market, item.count, qudao, order.contact_mobile, order.contact_name, "");
                        if (res3 != null)
                        {
                            if (res3.Head.retcode == "00001")
                            {
                                var date  = DateTime.Parse(item.arr);
                                var every = db.everydate_price_t.Where(x => x.everydate == date && x.xz_code == item.xz_code).FirstOrDefault();
                                every.ordernum += 1;
                                order.lvorder   = res3.Body.ReservationResponse.Reservation.confirmationID;
                                db.order_t.Add(order);
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
                if (pmscode == "0")
                {
                    for (var start = DateTime.Parse(item.arr); start < DateTime.Parse(item.dep); start = start.AddDays(1))
                    {
                        //var date = DateTime.Parse(start);
                        var every = db.everydate_price_t.Where(x => x.everydate == start && x.xz_code == item.xz_code).FirstOrDefault();
                        every.ordernum += 1;
                        db.order_t.Add(order);
                        //BookingWeb.Refresh(db, item.xz_code, item.hotelcode, int.Parse(item.type), start);
                    }
                    return(true);
                }
                if (pmscode == "3")
                {
                    var mp     = new MPDBEntities();
                    var hotel  = mp.MPConfigs.FirstOrDefault(x => x.ShopCode == item.hotelcode);
                    var hotel1 = db.hotel_list.FirstOrDefault(x => x.hotelId == item.hotelcode);
                    // 平台提供的地址
                    string url = hotel.orderUrl;
                    // 平台appkey
                    string appKey = "KSKJ";
                    // 平台授权码
                    string secret = hotel1.pwd;
                    // 使用哪个酒店的身份接入
                    string hotelId = "G000001";
                    var    client  = new XopClient(url, appKey, secret, hotelId);
                    // 开始登录平台
                    var rspLogin = client.login();

                    if (!XopClient.isResponseSuccess(rspLogin))
                    {
                        return(false);
                    }
                    var daily = new JsonArray();
                    foreach (var item1 in item.everydate)
                    {
                        var one = new JsonObject();
                        one["ratecode"] = pmsratecode;
                        one["rate"]     = item1.realRate - item1.yhmoney;
                        one["date"]     = item1.date + " 12:00:00";
                        one["rmrate"]   = item1.realRate - item1.yhmoney;
                        daily.Add(one);
                    }
                    var remark = Enum.Parse(typeof(Pay), item.pay, false).ToString();
                    var r      = client.saveReservation(qudao, hotel1.username, pmsratecode, pms, item.count, item.everydate[0].realRate.ToString(), item.name, item.name, item.arr, item.dep, "2", daily, hotel.rsvType, item.mobile, "支付方式:" + remark + "," + item.remark, hotel.src, hotel.market, cusno);
                    if (r.success)
                    {
                        // var c = client.cxlReservation("KSKJ", "H000069", r.results[0].rsvno, "测试", "T");
                        var date  = DateTime.Parse(item.arr);
                        var every = db.everydate_price_t.Where(x => x.everydate == date && x.xz_code == item.xz_code).FirstOrDefault();
                        every.ordernum += 1;
                        order.notes     = "支付方式:" + remark + "," + item.remark;
                        order.lvorder   = r.results[0].rsvno;
                        db.order_t.Add(order);
                        return(true);
                    }
                }
                if (pmscode == "4")
                {
                    //var mp = new MPDBEntities();
                    //var hotel = mp.MPConfigs.FirstOrDefault(x => x.ShopCode == item.hotelcode);
                    //var hotel1 = db.hotel_list.FirstOrDefault(x => x.hotelId == item.hotelcode);
                    //PlaceOrderData orderData = new PlaceOrderData
                    //{
                    //    srcHotelGroupCode = "MKYL",
                    //    //webFrom = "KUAISHUN",
                    //    //srcHotelGroupCode="GCBZG",
                    //    hotelCode = item.hotelcode,
                    //    hotelGroupCode = hotel.LvyunHotelgroupId,
                    //    operationType = "Book",
                    //    otaChannel = "CRS",
                    //    otaRsvNo = Guid.NewGuid().ToString(),
                    //    productCode = pmsratecode,
                    //    bookOrderInfoRQ = new P_BookOrderInfoRQ()
                    //    {
                    //        arr = item.arr,
                    //        dep = item.dep,
                    //        earlyArrTime = item.arr,
                    //        lastArrTime = item.dep,
                    //        paySta = "2",
                    //        guests = new List<Guests>(),
                    //        everyDayPrices = new List<EveryDayPrices>(),
                    //        rmNum =int.Parse( item.count),
                    //        rateSum = 0,
                    //        rsvMan = item.name,
                    //        mobile =item.mobile,
                    //        adult =1,
                    //        remark = item.remark,
                    //        isCheckRoomQuentity = "T",
                    //        needPay = "F",
                    //        isZeroOrder = "F",
                    //    }
                    //};
                    //var everyprice = new List<EveryDayPrices>();
                    //var guests = new List<Guests>();
                    //var m = new
                    //{
                    //    hotelGroupCode = hotel.LvyunHotelgroupId,
                    //    hotelCode = hotel.LvyunHotelId,
                    //    fromDate = item.arr,
                    //    toDate = item.dep,
                    //    otaChannel = "CRS",
                    //    productCode = pmsratecode
                    //};
                    //var crsEveryPrice = CrsAPI.GetproductBaseDetail(Config.CRS_URL, m);
                    //if (crsEveryPrice.resultCode == ReturnCode.请求成功 && crsEveryPrice != null)
                    //{
                    //    decimal rateSum = 0;
                    //    foreach (var item in crsEveryPrice.resultInfo[0].everyDetails)
                    //    {
                    //        var price = new EveryDayPrices
                    //        {
                    //            costPrice = item.costPrice,
                    //            isClosed = item.isClosed,
                    //            realPrice = item.realPrice,
                    //            rsvDate = item.rsvDate,
                    //            saleNum = item.saleNum,
                    //        };
                    //        rateSum += item.costPrice * rmNum;
                    //        everyprice.Add(price);
                    //    }
                    //    orderData.bookOrderInfoRQ.everyDayPrices = everyprice;
                    //    foreach (var item in data.guests)
                    //    {
                    //        var guest = new Guests
                    //        {
                    //            name = item,
                    //        };
                    //        guests.Add(guest);
                    //    }
                    //    orderData.bookOrderInfoRQ.guests = guests;
                    //    orderData.bookOrderInfoRQ.rateSum = rateSum;
                    //    //result.data = orderData;
                    //    orderData.bookOrderInfoRQ.everyDayPrices = everyprice;
                    //    order.subRoomTypeId = data.productCode;
                    //    order.roomTypeId = room.roomTypeId;
                    //    order.hotelGroupCode = room.hotelGroupCode;
                    //    var str = JsonConvert.SerializeObject(orderData);

                    //    var orderResult = CrsAPI.PlaceOrder(Config.CRS_URL, orderData);
                    //    if (orderResult.resultCode == ReturnCode.请求成功 && orderResult != null)
                    //    {
                    //        Logger.WriteLog(string.Concat(new string[]{
                    //                        "绿云数据:"+str+"\r\n",
                    //                        //  "下单数据:"+JsonConvert.SerializeObject(data)+"\r\n",
                    //                        "绿云接口返回:"+orderResult.resultMessage
                    //                    }));
                    //        //var orderResult = new PlaceOrderResult();
                    //        //orderResult.resultCode = ReturnCode.请求失败;
                    //        //orderResult.resultMessage = "暂时关闭调试";
                    //        if (orderResult.resultCode == ReturnCode.请求成功)
                    //        {
                    //            order.gcRsvNo = orderResult.resultInfo;
                    //            order.apiType = "SUCCESS";
                    //            result.code = ApiCode.成功;
                    //            result.message = "成功";
                    //            order.apiMessage = "成功";
                    //            result.orderId = data.orderId;
                    //            result.orderStatus = 1;
                    //            result.amount = data.amount;
                    //            result.confirmNum = orderResult.resultInfo;
                    //        }
                    //        else
                    //        {
                    //            order.apiType = "FAIL";
                    //            result.code = ApiCode.成功;
                    //            result.message = orderResult.resultMessage;
                    //            order.apiMessage = orderResult.resultMessage;
                    //            result.orderStatus = 2;
                    //        }
                    //        Logger.WriteLog(string.Concat(new string[]{
                    //                        "下单数据:"+JsonConvert.SerializeObject(data)+"\r\n",
                    //                        "绿云接口返回:"+JsonConvert.SerializeObject( orderResult)+"\r\n"
                    //                    }));
                    //    }
                    //    else
                    //    {
                    //        order.apiType = "FAIL";
                    //        result.orderStatus = 2;
                    //        result.code = ApiCode.成功;
                    //        order.apiMessage = "接口调用失败";
                    //    }
                    //}
                    //else
                    //{
                    //    Logger.WriteLog(string.Concat(new string[]{
                    //                        //"下单数据:"+JsonConvert.SerializeObject(data)+"\r\n",
                    //                        "没有该产品价格"
                    //                    }));
                    //    order.apiType = "FAIL";
                    //    result.code = ApiCode.成功;
                    //    result.message = "没有该产品价格";
                    //    order.apiMessage = "没有该产品价格";
                    //    result.orderStatus = 2;
                    //}
                }
                return(false);
            }
            else
            {
                for (var start = DateTime.Parse(item.arr); start < DateTime.Parse(item.dep); start = start.AddDays(1))
                {
                    //var date = DateTime.Parse(start);
                    var every = db.everydate_price_t.Where(x => x.everydate == start && x.xz_code == item.xz_code).FirstOrDefault();
                    every.ordernum += 1;
                    db.order_t.Add(order);
                    //BookingWeb.Refresh(db, item.xz_code, item.hotelcode, int.Parse(item.type), start);
                }
                return(true);
            }
        }
示例#2
0
 public static extern herr_t set_order(hid_t dtype_id, order_t order);