Exemple #1
0
        private static XJ_Order PopulateOTAOrder(OtaOrderModel row, Tbl_OTABusiness business, Tbl_Ticket ticket)
        {
            var orderInfo = new XJ_Order
            {
                OrderOtaId    = row.OrderNo,
                OTABusinessId = business.Id,
                OrderPrice    = row.ProductPrice,
                OrderQuantity = row.ProductCount,
                TicketList    = new List <XJ_ProductItem>(),
                VisitDate     = row.StartDate.ToDataTimeFormat(),
                ContactPerson = new XJ_ContactPerson
                {
                    BuyName  = row.LinkName,
                    Name     = row.LinkName,
                    Mobile   = row.LinkPhone,
                    CardType = "ID_CARD",
                    CardNo   = row.IdCard
                }
            };

            orderInfo.TicketList.Add(new XJ_ProductItem
            {
                ProductId     = ticket.TicketId,
                ProductName   = ticket.TicketName,
                SellPrice     = ticket.SalePrice,
                Quantity      = row.ProductCount,
                OrderNo       = row.OrderNo,
                OrderDetailId = row.OrderId,
                CodeStr       = row.Code,
                StartDate     = row.StartDate.ToDataTimeFormat(),
                EndDate       = row.EndDate.ToDataTimeFormat(),
                State         = StateAction.GetState(row.OrderState)
            });
            return(orderInfo);
        }
Exemple #2
0
        private void OrderOtaAction(List <Tbl_Ticket> tickets, OtaOrderModel row, XJ_Order orderInfo)
        {
            //验证OTA订单id是否已存在
            var otaOrder = _orderService.GetOrderBy(row.OrderNo);

            if (otaOrder == null)
            {
                if (row.OrderState != OrderDetailState.Paid.GetDescriptionByName())
                {
                    return;
                }
                //OTA订单id已存在, 修改订单
                //订单已审核
                var isCreate = AddOrder(orderInfo, tickets);
                if (isCreate)
                {
                    foreach (var orderDetail in orderInfo.TicketList)
                    {
                        UpdateIssuedLineForOTA(orderDetail);
                    }
                }
                Console.Write("\n同步OTA订单,创建订单:" + (isCreate == true ? "成功" : "失败") + "  订单号:" + orderInfo.OrderOtaId);
            }
            else
            {
                foreach (var orderDetail in orderInfo.TicketList)
                {
                    if (orderDetail.State == (int)OrderDetailState.HasChange)
                    {
                        //G-已改签--修改订单
                        var result = UpdateOrderDetail(orderDetail);
                        if (result)
                        {
                            UpdateIssuedLineForOTA(orderDetail);
                        }
                        Console.Write("\n同步OTA订单,已改签:" + (result == true ? "成功" : "失败") + "  订单号:" + orderInfo.OrderOtaId);
                        continue;
                    }
                    if (orderDetail.State == (int)OrderDetailState.FullRefund)
                    {
                        //A-全部退票
                        var result = RefundOrderDetail(orderDetail);
                        if (result)
                        {
                            UpdateIssuedLineForOTA(orderDetail);
                        }
                        Console.Write("\n同步OTA订单,全部退票:" + (result == true ? "成功" : "失败") + "  订单号:" + orderInfo.OrderOtaId);
                        continue;
                    }
                    if (orderDetail.State == (int)OrderDetailState.Refunded || orderDetail.State == (int)OrderDetailState.Cancel)
                    {
                        //取消订单
                        var result = RefundOrderDetail(orderDetail);
                        if (result)
                        {
                            UpdateIssuedLineForOTA(orderDetail);
                        }
                        Console.Write("\n同步OTA订单,取消订单:" + (result == true ? "成功" : "失败") + "  订单号:" + orderInfo.OrderOtaId);
                        continue;
                    }
                    UpdateIssuedLineForOTA(orderDetail);
                }
            }
        }