/// <summary> /// 根据订单游客的xml获取订单信息、订单游客信息(单项业务订单信息、游客信息) /// </summary> /// <param name="xml"></param> /// <param name="single"></param> /// <returns></returns> private IList <MTourOrderTraveller> GetOrderAndTravellerByXml(string xml, ref MSingleService single) { IList <MTourOrderTraveller> list = null; xml = xml.Replace("<", "<").Replace(">", ">"); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNode root = doc.SelectSingleNode("Root"); if (root.HasChildNodes) { list = new List <MTourOrderTraveller>(); for (int i = 0; i < root.ChildNodes.Count; i++) { XmlNode node = root.ChildNodes[i]; single.OrderId = node["OrderId"].InnerText; single.OrderCode = node["OrderCode"] != null ? node["OrderCode"].InnerText : string.Empty; single.BuyCompanyName = node["BuyCompanyName"] != null ? node["BuyCompanyName"].InnerText : string.Empty; single.BuyCompanyId = node["BuyCompanyId"].InnerText; single.ContactName = node["ContactName"] != null ? node["ContactName"].InnerText : string.Empty; single.ContactTel = node["ContactTel"] != null ? node["ContactTel"].InnerText : string.Empty; single.ContactDepartId = node["ContactDepartId"] != null ? node["ContactDepartId"].InnerText : string.Empty; single.Adults = node["Adults"] != null?Utils.GetInt(node["Adults"].InnerText) : 0; single.TravellerFile = node["TravellerFile"] != null ? node["TravellerFile"].InnerText : string.Empty; if (node["TourOrderTraveller"] != null) { if (node["TourOrderTraveller"].HasChildNodes) { for (int j = 0; j < node["TourOrderTraveller"].ChildNodes.Count; j++) { XmlNode child = node["TourOrderTraveller"].ChildNodes[j]; MTourOrderTraveller traveller = new MTourOrderTraveller(); traveller.TravellerId = child["TravellerId"].InnerText; traveller.OrderId = child["OrderId"].InnerText; traveller.CnName = child["CnName"] != null ? child["CnName"].InnerText : string.Empty; traveller.VisitorType = child["VisitorType"] != null ? (VisitorType?)Utils.GetInt(child["VisitorType"].InnerText) : null; traveller.CardType = child["CardType"] != null ? (CardType?)Utils.GetInt(child["CardType"].InnerText) : null; traveller.CardNumber = child["CardNumber"] != null ? child["CardNumber"].InnerText : string.Empty; traveller.Gender = child["Gender"] != null ? (Gender?)Utils.GetInt(child["Gender"].InnerText) : null; traveller.Contact = child["Contact"] != null ? child["Contact"].InnerText : string.Empty; traveller.Remark = child["Remark"] != null ? child["Remark"].InnerText : string.Empty; list.Add(traveller); } } } single.HeTongId = node["ContractId"] != null ? node["ContractId"].InnerText : string.Empty; single.HeTongCode = node["ContractCode"] != null ? node["ContractCode"].InnerText : string.Empty; } } return(list); }
/// <summary> /// 查询获取单项业务的列表 /// </summary> /// <param name="search">查询的实体类</param> /// <param name="pagesize">每页显示的条数</param> /// <param name="pageindex">当前页</param> /// <param name="recordCount">总记录数</param> /// <param name="loginId">当前登录人编号</param> /// <param name="deptIds">部门编号</param> /// <param name="isOnlySeft">是否查看全部</param> /// <returns></returns> public IList <MSingleService> GetSingleServiceList(MSeachSingleService search, int pagesize, int pageindex, ref int recordCount, string loginId, int[] deptIds, bool isOnlySeft) { IList <EyouSoft.Model.TourStructure.MSingleService> list = null; string fields = "TourId,TourStatus,OperatorId,OrderId,OrderCode,CompanyId,BuyCompanyName,SellerName,DeptId,ContactName,ContactTel,Adults,Operator,IssueTime,PlanProject,TourPlaner,TourType,IsDelete,LDate,CancelReson,HeTongId,HeTongCode"; StringBuilder query = new StringBuilder(); //TourType=6(单项业务) query.AppendFormat("TourType='{0}' and IsDelete='{1}' ", (int)TourType.单项服务, 0); //团队状态搜索条件未添加 query.AppendFormat(" AND TourStatus IN(0,3,9,10,11,12) "); if (!string.IsNullOrEmpty(search.CompanyId)) { query.AppendFormat(" and CompanyId='{0}' ", search.CompanyId); } if (!string.IsNullOrEmpty(search.OrderCode)) { query.AppendFormat(" and OrderCode like '%{0}%' ", search.OrderCode); } if (search.BeginLDate.HasValue) { query.AppendFormat(" and IssueTime>'{0}' ", search.BeginLDate.Value.AddDays(-1)); } if (search.EndLDate.HasValue) { query.AppendFormat(" and IssueTime<'{0}' ", search.EndLDate.Value.AddDays(1)); } if (!string.IsNullOrEmpty(search.BuyCompanyName)) { query.AppendFormat(" and BuyCompanyName like '%{0}%' ", search.BuyCompanyName); } if (!string.IsNullOrEmpty(search.BuyCompanyId)) { query.AppendFormat(" and BuyCompanyId='{0}' ", search.BuyCompanyId); } if (!string.IsNullOrEmpty(search.Operator)) { query.AppendFormat(" and Operator='{0}' ", search.Operator); } if (!string.IsNullOrEmpty(search.OperatorId)) { query.AppendFormat(" and OperatorId='{0}' ", search.OperatorId); } if (search.TourStatus.HasValue) { query.AppendFormat(" and TourStatus='{0}' ", (int)search.TourStatus.Value); } if (isOnlySeft) { query.AppendFormat(" and SellerId='{0}' ", loginId); } else { if (deptIds != null) { query.AppendFormat(" and DeptId in ({0})", GetIdsByArr(deptIds)); } } if (search.SWeiTuoRiQi.HasValue) { query.AppendFormat(" and LDate>'{0}' ", search.SWeiTuoRiQi.Value.AddDays(-1)); } if (search.EWeiTuoRiQi.HasValue) { query.AppendFormat(" and LDate<'{0}' ", search.EWeiTuoRiQi.Value.AddDays(1)); } if (!string.IsNullOrEmpty(search.XiaoShouYuanId)) { query.AppendFormat(" and SellerId='{0}' ", search.XiaoShouYuanId); } else if (!string.IsNullOrEmpty(search.XiaoShouYuanName)) { query.AppendFormat(" and SellerName LIKE '%{0}%' ", search.XiaoShouYuanName); } if (!string.IsNullOrEmpty(search.JiDiaoYuanId)) { query.AppendFormat(" AND EXISTS(SELECT 1 FROM tbl_TourPlaner AS A WHERE A.TourId=view_SingleService.TourId AND A.PlanerId='{0}') ", search.JiDiaoYuanId); } else if (!string.IsNullOrEmpty(search.JiDiaoYunaName)) { query.AppendFormat(" AND EXISTS(SELECT 1 FROM tbl_TourPlaner AS A WHERE A.TourId=view_SingleService.TourId AND A.Planer LIKE '%{0}%') ", search.JiDiaoYunaName); } using (IDataReader dr = DbHelper.ExecuteReader(_db , pagesize , pageindex , ref recordCount , "view_SingleService" , "TourId" , fields.ToString() , query.ToString() , "IssueTime desc")) { if (dr != null) { list = new List <MSingleService>(); while (dr.Read()) { MSingleService service = new MSingleService(); service.TourId = dr.GetString(dr.GetOrdinal("TourId")); service.TourStatus = (TourStatus)dr.GetByte(dr.GetOrdinal("TourStatus")); service.OperatorId = dr.GetString(dr.GetOrdinal("OperatorId")); service.OrderId = dr.GetString(dr.GetOrdinal("OrderId")); service.OrderCode = !dr.IsDBNull(dr.GetOrdinal("OrderCode")) ? dr.GetString(dr.GetOrdinal("OrderCode")) : string.Empty; service.CompanyId = dr.GetString(dr.GetOrdinal("CompanyId")); service.BuyCompanyName = dr.IsDBNull(dr.GetOrdinal("BuyCompanyName")) == false ? dr["BuyCompanyName"].ToString() : string.Empty; service.ContactName = dr.IsDBNull(dr.GetOrdinal("ContactName")) == false ? dr["ContactName"].ToString() : string.Empty; service.ContactTel = dr.IsDBNull(dr.GetOrdinal("ContactTel")) == false ? dr["ContactTel"].ToString() : string.Empty; service.Adults = dr.GetInt32(dr.GetOrdinal("Adults")); service.Operator = dr.IsDBNull(dr.GetOrdinal("Operator")) == false ? dr["Operator"].ToString() : string.Empty; service.SellerName = !dr.IsDBNull(dr.GetOrdinal("SellerName")) ? dr.GetString(dr.GetOrdinal("SellerName")) : string.Empty; //计调项 string plan = dr.IsDBNull(dr.GetOrdinal("PlanProject")) == false?dr.GetString(dr.GetOrdinal("PlanProject")) : string.Empty; if (!string.IsNullOrEmpty(plan)) { service.PlanProjectType = GetPlanProjectByXML(plan); } string planers = dr.IsDBNull(dr.GetOrdinal("TourPlaner")) == false?dr.GetString(dr.GetOrdinal("TourPlaner")) : string.Empty; //计调员 if (!string.IsNullOrEmpty(planers)) { service.Planers = GetPlanerByXML(planers); } service.WeiTuoRiQi = dr.GetDateTime(dr.GetOrdinal("LDate")); service.QuXiaoYuanYin = dr["CancelReson"].ToString(); service.HeTongId = dr["HeTongId"].ToString(); service.HeTongCode = dr["HeTongCode"].ToString(); list.Add(service); } } } return(list); }
/// <summary> /// 根据计划编号获取单项业务的拓展实体 /// </summary> /// <param name="tourId"></param> /// <returns></returns> public MSingleServiceExtend GetSingleServiceExtendByTourId(string tourId) { MSingleServiceExtend single = null; StringBuilder query = new StringBuilder(); query.Append(" select TourId,CompanyId,SellerName,SellerId,DeptId,TourPay,TourCode,"); query.Append("TourIncome,TourProfit,TourStatus,OperatorId,Operator,TourType,IsDelete,"); query.Append(" (SELECT TourId,Unit,Quote,ServiceStandard,ServiceType,ServiceName,ServiceId,Remark"); query.Append(" from "); query.Append("tbl_TourTeamPrice"); query.Append(" where "); query.Append(" tbl_TourTeamPrice.TourId=tbl_Tour.TourId "); query.Append(" for xml raw,root('Root'))"); query.Append(" as TourTeamPrice,"); query.Append("(select OrderId,OrderCode,BuyCompanyName,BuyCompanyId,ContactName,ContactTel,ContactDepartId,Adults,TravellerFile,"); query.Append("(SELECT TravellerId,OrderId,CnName,EnName,CardId,VisitorType,CardType"); query.Append(",CardNumber,CardValidDate,VisaStatus,IsCardTransact,Gender,Contact"); query.Append(",LNotice,RNotice,Remark,Status,RAmount,RAmountRemark,RTime,RRemark,IsInsurance"); query.Append(" FROM "); query.Append(" tbl_TourOrderTraveller "); query.Append(" where tbl_TourOrder.OrderId=tbl_TourOrderTraveller.OrderId"); query.Append(" for xml path,elements)"); query.Append("as TourOrderTraveller"); query.Append(" ,ContractId,ContractCode "); query.Append(" from "); query.Append("tbl_TourOrder"); query.Append(" where tbl_TourOrder.TourId=tbl_Tour.TourId"); query.Append(" for xml path,elements,root('Root'))"); query.Append("as TourOrder,"); query.Append("(SELECT PlanId,CompanyId,TourId,Type,SourceId,SourceName,ContactName,ContactPhone"); query.Append(",ContactFax,Num,ReceiveJourney,CostDetail,PlanCost,PaymentType,Status,GuideNotes"); query.Append(",Remarks,SueId,CostId,CostName,CostStatus,CostTime,Confirmation,CostRemarks,DeptId"); query.Append(",OperatorId,OperatorName,IssueTime,Prepaid,IsRebate,AddStatus,IsDelete,ServiceStandard"); query.Append(",CustomerInfo,StartDate,StartTime,EndDate,EndTime"); query.Append(" FROM "); query.Append("tbl_Plan"); query.Append(" where "); query.Append("tbl_Tour.TourId=tbl_Plan.TourId and tbl_Plan.IsDelete=0 "); query.Append("for xml raw,root('Root'))"); query.Append("as TourPlan,"); query.Append("(SELECT TourId,PlanerId,Planer,DeptId "); query.Append(" FROM "); query.Append(" tbl_TourPlaner "); query.Append(" where "); query.Append("tbl_TourPlaner.TourId=tbl_Tour.TourId "); query.Append("for xml raw,root('Root') )"); query.Append("as TourPlaner"); query.Append(" ,LDate "); query.Append(" from tbl_Tour"); query.Append(" Where "); query.AppendFormat(" TourType='{0}' ", 6); query.Append(" and "); query.AppendFormat(" TourId='{0}' ", tourId); DbCommand cmd = _db.GetSqlStringCommand(query.ToString()); using (IDataReader dr = DbHelper.ExecuteReader(cmd, _db)) { if (dr != null) { single = new MSingleServiceExtend(); if (dr.Read()) { single.TourId = dr["TourId"].ToString(); single.CompanyId = dr.GetString(dr.GetOrdinal("CompanyId")); single.SellerName = !dr.IsDBNull(dr.GetOrdinal("SellerName")) ? dr.GetString(dr.GetOrdinal("SellerName")) : string.Empty; single.SellerId = dr.GetString(dr.GetOrdinal("SellerId")); single.DeptId = dr.GetInt32(dr.GetOrdinal("DeptId")); single.TourPay = dr.GetDecimal(dr.GetOrdinal("TourPay")); single.TourIncome = dr.GetDecimal(dr.GetOrdinal("TourIncome")); single.TourProfit = dr.GetDecimal(dr.GetOrdinal("TourProfit")); single.TourStatus = (TourStatus)dr.GetByte(dr.GetOrdinal("TourStatus")); single.OperatorId = dr.GetString(dr.GetOrdinal("OperatorId")); single.Operator = dr.GetString(dr.GetOrdinal("Operator")); single.TourCode = dr["TourCode"].ToString(); string TourOrder = !dr.IsDBNull(dr.GetOrdinal("TourOrder")) ? dr.GetString(dr.GetOrdinal("TourOrder")) : string.Empty; if (!string.IsNullOrEmpty(TourOrder)) { single.TourOrderTravellerList = new List <MTourOrderTraveller>(); MSingleService order = new MSingleService(); single.TourOrderTravellerList = GetOrderAndTravellerByXml(TourOrder, ref order); single.OrderId = order.OrderId; single.OrderCode = order.OrderCode; single.BuyCompanyId = order.BuyCompanyId; single.BuyCompanyName = order.BuyCompanyName; single.ContactName = order.ContactName; single.ContactTel = order.ContactTel; single.ContactDepartId = order.ContactDepartId; single.TravellerFile = order.TravellerFile; single.Adults = order.Adults; single.HeTongId = order.HeTongId; single.HeTongCode = order.HeTongCode; } //计调员信息 string TourPlaner = !dr.IsDBNull(dr.GetOrdinal("TourPlaner")) ? dr.GetString(dr.GetOrdinal("TourPlaner")) : string.Empty; if (!string.IsNullOrEmpty(TourPlaner)) { single.TourPlanersList = new List <MTourPlaner>(); single.TourPlanersList = GetTourPlanerByXML(TourPlaner); } //客人要求(分项报价) string TourTeamPrice = !dr.IsDBNull(dr.GetOrdinal("TourTeamPrice")) ? dr.GetString(dr.GetOrdinal("TourTeamPrice")) : string.Empty; if (!string.IsNullOrEmpty(TourTeamPrice)) { single.TourTeamPriceList = new List <MTourTeamPrice>(); single.TourTeamPriceList = GetTourTeamPriceByXML(TourTeamPrice); } //供应商安排(计调中心) string TourPlan = !dr.IsDBNull(dr.GetOrdinal("TourPlan")) ? dr.GetString(dr.GetOrdinal("TourPlan")) : string.Empty; if (!string.IsNullOrEmpty(TourPlan)) { single.PlanBaseInfoList = new List <EyouSoft.Model.PlanStructure.MPlanBaseInfo>(); single.PlanBaseInfoList = GetPlanBaseInfoByXML(TourPlan); } single.WeiTuoRiQi = dr.GetDateTime(dr.GetOrdinal("LDate")); } } } return(single); }