| 
					
				 | 
			
			
				@@ -16302,6 +16302,11 @@ FROM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     x.VisaCountry, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     x.VisaPrice, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     x.Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    IsVisaExemption = x.IsVisaExemption == 1 ? "否" : "是", //免签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    IsElectronicSignature = x.IsElectronicSignature == 1 ? "否" : "是", //电子签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    IsVisaOnArrival = x.IsVisaOnArrival == 1 ? "否" : "是", //落地签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    x.VisaTime, // 一般签证时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }).ToList(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 baoPi = _GroupCostParameterRepository.GetBaoPi(diid), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 blackCodeIsTrue = _sqlSugar.Queryable<Air_TicketBlackCode>().Where(x => x.IsDel == 0 && x.DiId == diid).Any(), //create.Code == 0 ? true : false, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18595,34 +18600,54 @@ ORDER by  gctggrc.id DESC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<DelegationInfoAndIsTrueView> matches = new List<DelegationInfoAndIsTrueView>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (string.IsNullOrWhiteSpace(dto.Keyword)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                matches = _sqlSugar.SqlQueryable<DelegationInfoAndIsTrueView>($@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                     Select  a.Id,TeamName GroupName,b.isTrue From  Grp_DelegationInfo  a left join  (select top 100 percent Diid, CASE  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      WHEN COUNT(*) >= 0 THEN 'True'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ELSE 'False' END as isTrue  from Grp_GroupCost where Isdel = 0 and date != '' group by Diid) b on a.Id = b.Diid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       Where TeamName != '' And IsDel = 0 Order By a.VisitStartDate Desc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                   ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #region SQL语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //if (string.IsNullOrWhiteSpace(dto.Keyword)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //    matches = _sqlSugar.SqlQueryable<DelegationInfoAndIsTrueView>($@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //         Select  a.Id,TeamName GroupName,b.isTrue From  Grp_DelegationInfo  a left join  (select top 100 percent Diid, CASE  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //          WHEN COUNT(*) >= 0 THEN 'True'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //          ELSE 'False' END as isTrue  from Grp_GroupCost where Isdel = 0 and date != '' group by Diid) b on a.Id = b.Diid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //           Where TeamName != '' And IsDel = 0 Order By a.VisitStartDate Desc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //       ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //    string likeKey = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //    foreach (var item in dto.Keyword) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //        likeKey += "%" + item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //    likeKey += "%"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //    matches = _sqlSugar.SqlQueryable<DelegationInfoAndIsTrueView>($@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //         Select  a.Id,TeamName GroupName,b.isTrue From  Grp_DelegationInfo  a left join  (select top 100 percent Diid, CASE  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //          WHEN COUNT(*) >= 0 THEN 'True'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //          ELSE 'False' END as isTrue  from Grp_GroupCost where Isdel = 0 and date != '' group by Diid) b on a.Id = b.Diid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //           Where TeamName != '' And IsDel = 0 And TeamName LIKE '{likeKey}'   Order By a.VisitStartDate Desc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //       ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var table = _sqlSugar.Ado.UseStoredProcedure().GetDataTable("SearchGroupByKeyword", new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                string likeKey = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                @KeyWord = dto.Keyword 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                foreach (var item in dto.Keyword) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (table != null && table.Rows.Count > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                foreach (DataRow row in table.Rows) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    likeKey += "%" + item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    matches.Add(new DelegationInfoAndIsTrueView 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Id = row.Field<int>("Id"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        GroupName = row.Field<string>("GroupName"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        isTrue = row.Field<string>("isTrue") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                likeKey += "%"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                matches = _sqlSugar.SqlQueryable<DelegationInfoAndIsTrueView>($@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                     Select  a.Id,TeamName GroupName,b.isTrue From  Grp_DelegationInfo  a left join  (select top 100 percent Diid, CASE  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      WHEN COUNT(*) >= 0 THEN 'True'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ELSE 'False' END as isTrue  from Grp_GroupCost where Isdel = 0 and date != '' group by Diid) b on a.Id = b.Diid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       Where TeamName != '' And IsDel = 0 And TeamName LIKE '{likeKey}'   Order By a.VisitStartDate Desc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                   ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (matches.Any()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -19270,6 +19295,85 @@ AirHotelPrice 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             public int Count { get; set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private class HotelSum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            internal decimal SGR { get; set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            internal decimal TBR { get; set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            internal decimal JSES { get; set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            internal decimal SUITE { get; set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            internal decimal AllPrice { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                get { return SGR + TBR + JSES + SUITE; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            [HttpPost] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public async Task<IActionResult> QueryGroupCostCoefficient(QueryGroupCostCoefficientDto dto) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var di = await _sqlSugar.Queryable<Grp_DelegationInfo>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .FirstAsync(x => x.Id == dto.Diid && x.IsDel == 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (di == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return Ok(JsonView(false, "团组不存在!")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var groupCost = _sqlSugar.Queryable<Grp_GroupCost>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     .Where(x => x.Diid == dto.Diid && x.IsDel == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var groupHotelNumber = _sqlSugar.Queryable<Grp_CostTypeHotelNumber>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     .Where(x => x.Diid == dto.Diid && x.IsDel == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     .ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var groupHotelNumberDefault = groupHotelNumber.FirstOrDefault(x => x.Type == "Default"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            HotelSum hotelSumP = new (); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (groupCost.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hotelSumP.SGR = groupHotelNumberDefault.SGR > 0 ?  groupCost.Sum(x => x.SGR) * groupHotelNumberDefault.SGR : 0 ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hotelSumP.TBR = groupHotelNumberDefault.TBR > 0 ? groupCost.Sum(x => x.TBR) * groupHotelNumberDefault.TBR : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hotelSumP.JSES = groupHotelNumberDefault.JSES > 0 ? groupCost.Sum(x => x.JS_ES) * groupHotelNumberDefault.JSES : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hotelSumP.SUITE = groupHotelNumberDefault.SUITE > 0 ? groupCost.Sum(x => x.Suite) * groupHotelNumberDefault.SUITE : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #region 地接系数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Func<int, decimal> coefficientByDJ = (number) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (number < 1) return 0.00M; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return number switch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    < 6 => 2.5M, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    6 => 2.4M, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    7 => 1.8M, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    8 => 2.0M, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    9 => 3.0M, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    10 => 1.75M, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    > 10 => 1.9M, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #region 酒店系数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return Ok(JsonView(true, "查询成功", new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                HotelSum = hotelSumP, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CoefficientByDJ = coefficientByDJ(di.VisitPNumber) // 示例调用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #region 酒店预订 New 2023-12-28 17:45 
			 |