|  | @@ -199,14 +199,33 @@ namespace OASystem.API.Controllers
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  /*
 | 
	
		
			
				|  |  |                   * 应收报表
 | 
	
		
			
				|  |  | +                 * 增加方式=实际报价时 费用必须审核才能进入团组报表
 | 
	
		
			
				|  |  |                   */
 | 
	
		
			
				|  |  |                  decimal frTotalAmount = 0.00M;//应收总金额
 | 
	
		
			
				|  |  | -                string _frSql = string.Format(@"Select fr.Id,fr.Diid,fr.PriceName,fr.Price,fr.Count,fr.Unit,fr.Currency,
 | 
	
		
			
				|  |  | +                string _frSql = string.Format(@"Select fr.Id,fr.AddingWay,fr.Status,fr.Diid,fr.PriceName,fr.Price,fr.Count,fr.Unit,fr.Currency,
 | 
	
		
			
				|  |  |  										        sd.Name As CurrencyCode,sd.Remark As CurrencyName,fr.Rate,fr.ItemSumPrice,fr.CreateTime
 | 
	
		
			
				|  |  |  										        From Fin_ForeignReceivables fr
 | 
	
		
			
				|  |  |  										        Left Join Sys_SetData sd On fr.Currency = sd.Id
 | 
	
		
			
				|  |  |  										        Where fr.IsDel = 0 And fr.Diid = {0} Order By CreateTime", _dto.DiId);
 | 
	
		
			
				|  |  | -                List<Gsd_ForeignReceivablesView> _frViews = await _sqlSugar.SqlQueryable<Gsd_ForeignReceivablesView>(_frSql).ToListAsync();
 | 
	
		
			
				|  |  | +                List<Gsd_ForeignReceivablesView> _frViews1 = await _sqlSugar.SqlQueryable<Gsd_ForeignReceivablesView>(_frSql).ToListAsync();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                List<Gsd_ForeignReceivablesView> _frViews = new List<Gsd_ForeignReceivablesView>();
 | 
	
		
			
				|  |  | +                if (_frViews1.Count > 0)
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    _frViews.AddRange(_frViews1.Where(x => x.AddingWay != 2).ToList());
 | 
	
		
			
				|  |  | +                    _frViews.AddRange(_frViews1.Where(x => x.AddingWay == 2 && x.Status == 1).ToList());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                _frViews.ForEach(x =>
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    string namePrefix = string.Empty;
 | 
	
		
			
				|  |  | +                    if (x.AddingWay == 0) namePrefix = $"账单模块-";
 | 
	
		
			
				|  |  | +                    else if (x.AddingWay == 1) namePrefix = $"成本预算模块-";
 | 
	
		
			
				|  |  | +                    else if (x.AddingWay == 2) namePrefix = $"实际报价-";
 | 
	
		
			
				|  |  | +                    x.PriceName = $"{namePrefix}{x.PriceName}";
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  frTotalAmount = _frViews.Sum(it => it.ItemSumPrice);
 | 
	
		
			
				|  |  |                  _giView.Receivables = _frViews;
 | 
	
		
			
				|  |  |                  _giView.ReceivableStr = string.Format(@"应收款合计:{0} CNY(人民币)", frTotalAmount.ConvertToDecimal1().ToString("#0.00"));
 | 
	
	
		
			
				|  | @@ -413,7 +432,7 @@ namespace OASystem.API.Controllers
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  //ccp.RMBPrice As CNYPrice
 | 
	
		
			
				|  |  |                  //(((ccp.PayMoney * ccp.DayRate) / ccp.PayPercentage) * 100) As CNYPrice
 | 
	
		
			
				|  |  | -                string hotelFeeSql = string.Format(@"Select hr.Id As HrId,hr.DiId As HrDiId,hr.City,hr.HotelName,hr.CheckInDate,hr.CheckOutDate,
 | 
	
		
			
				|  |  | +                string hotelFeeSql = string.Format(@"Select hr.Id As HrId,hr.DiId As HrDiId,hr.City,hr.HotelName,hr.CheckInDate,hr.CheckOutDate,hr.CardPrice As RoomPrice,
 | 
	
		
			
				|  |  |                                                       sd1.Name As PaymentCurrency,hr.SingleRoomPrice,hr.SingleRoomCount,hr.DoubleRoomPrice,
 | 
	
		
			
				|  |  |                                                       hr.DoubleRoomCount,hr.SuiteRoomPrice,hr.SuiteRoomCount,hr.OtherRoomPrice,hr.OtherRoomCount,
 | 
	
		
			
				|  |  |                                                       hr.BreakfastPrice,sd4.Name As BreakfastCurrency,hr.Isoppay,hr.GovernmentRent,
 | 
	
	
		
			
				|  | @@ -443,58 +462,108 @@ namespace OASystem.API.Controllers
 | 
	
		
			
				|  |  |                  var teamRateData = await _teamRateRep.PostGroupRateInfoByDiId(_dto.DiId);
 | 
	
		
			
				|  |  |                  foreach (var item in groupHotelFeeViews)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    var roomData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 1); //房费 
 | 
	
		
			
				|  |  | -                    item.RoomPrice = roomData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  | -                    item.RoomPriceCurrency = _setDatas.Find(it => it.Id == roomData?.Currency)?.Name;
 | 
	
		
			
				|  |  | -                    string feeMark1 = roomData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | -                    string isFeeMark1 = roomData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | -                    item.RoomInfoTips = @$"当时汇率:{roomData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  | +                    if (groupHotelContentFeeViews.Count > 0)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        string paymentStr = string.Empty;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        var roomData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 1); //房费 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        item.RoomPrice = roomData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  | +                        if (item.RoomPrice != 0)
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (roomData.IsPay == 0) paymentStr += $"房费:未付款<br/>";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            item.RoomPriceCurrency = _setDatas.Find(it => it.Id == roomData?.Currency)?.Name;
 | 
	
		
			
				|  |  | +                            string feeMark1 = roomData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | +                            string isFeeMark1 = roomData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | +                            item.RoomInfoTips = @$"当时汇率:{roomData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  |                                             收款方:{roomData?.Payee}<br/>
 | 
	
		
			
				|  |  |                                             费用标识:{feeMark1} <br/>
 | 
	
		
			
				|  |  |                                             支付方式:{_setDatas.Find(it => it.Id == roomData?.PayDId)?.Name} <br/>
 | 
	
		
			
				|  |  | -                                           卡类型:{_setDatas.Find(it => it.Id == roomData?.CTDId)?.Name}
 | 
	
		
			
				|  |  | +                                           卡类型:{_setDatas.Find(it => it.Id == roomData?.CTDId)?.Name}<br/>
 | 
	
		
			
				|  |  |                                             是否由地接支付:{isFeeMark1} <br/>";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    var breakfastData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 2); //早餐 
 | 
	
		
			
				|  |  | -                    item.BreakfastPrice = breakfastData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  | -                    item.BreakfastCurrency = _setDatas.Find(it => it.Id == breakfastData?.Currency)?.Name;
 | 
	
		
			
				|  |  | -                    string feeMark2 = breakfastData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | -                    string isFeeMark2 = breakfastData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | -                    item.BreakfastInfoTips = @$"当时汇率:{breakfastData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        var breakfastData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 2); //早餐 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        item.BreakfastPrice = breakfastData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        if (item.BreakfastPrice != 0)
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (breakfastData.IsPay == 0) paymentStr += $"早餐:未付款<br/>";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            item.BreakfastCurrency = _setDatas.Find(it => it.Id == breakfastData?.Currency)?.Name;
 | 
	
		
			
				|  |  | +                            string feeMark2 = breakfastData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | +                            string isFeeMark2 = breakfastData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | +                            item.BreakfastInfoTips = @$"当时汇率:{breakfastData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  |                                                  收款方:{breakfastData?.Payee}<br/>
 | 
	
		
			
				|  |  |                                                  费用标识:{feeMark2} <br/>
 | 
	
		
			
				|  |  |                                                  支付方式:{_setDatas.Find(it => it.Id == roomData?.PayDId)?.Name} <br/>
 | 
	
		
			
				|  |  |                                                  卡类型:{_setDatas.Find(it => it.Id == roomData?.CTDId)?.Name} <br/>
 | 
	
		
			
				|  |  |                                                  是否由地接支付:{isFeeMark2} <br/>";
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        var landTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 3); //地税
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        item.GovernmentRent = landTaxData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        if (item.GovernmentRent != 0)
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (landTaxData.IsPay == 0) paymentStr += $"地税:未付款<br/>";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    var landTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 3); //地税 
 | 
	
		
			
				|  |  | -                    item.GovernmentRent = landTaxData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  | -                    item.GovernmentRentCurrency = _setDatas.Find(it => it.Id == landTaxData?.Currency)?.Name;
 | 
	
		
			
				|  |  | -                    string feeMark3 = landTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | -                    string isFeeMark3 = landTaxData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | -                    item.GovernmentRentTips = @$"当时汇率:{landTaxData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  | +                            item.GovernmentRentCurrency = _setDatas.Find(it => it.Id == landTaxData?.Currency)?.Name;
 | 
	
		
			
				|  |  | +                            string feeMark3 = landTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | +                            string isFeeMark3 = landTaxData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | +                            item.GovernmentRentTips = @$"当时汇率:{landTaxData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  |                                                   收款方:{landTaxData?.Payee}<br/>
 | 
	
		
			
				|  |  |                                                   费用标识:{feeMark3} <br/>
 | 
	
		
			
				|  |  |                                                   支付方式:{_setDatas.Find(it => it.Id == landTaxData?.PayDId)?.Name} <br/>
 | 
	
		
			
				|  |  |                                                   卡类型:{_setDatas.Find(it => it.Id == landTaxData?.CTDId)?.Name} <br/>
 | 
	
		
			
				|  |  |                                                   是否由地接支付:{isFeeMark3} <br/>";
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        var cityTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 4); //城市税 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        item.CityTax = cityTaxData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    var cityTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 4); //城市税 
 | 
	
		
			
				|  |  | -                    item.CityTax = cityTaxData?.Price ?? 0.00M;
 | 
	
		
			
				|  |  | -                    item.CityTaxCurrency = _setDatas.Find(it => it.Id == cityTaxData?.Currency)?.Name;
 | 
	
		
			
				|  |  | -                    string feeMark4 = cityTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | -                    string isFeeMark4 = landTaxData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | -                    item.CityTaxTips = @$"当时汇率:{cityTaxData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  | +                        if (item.CityTax != 0)
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            if (cityTaxData.IsPay == 0) paymentStr += $"城市税:未付款<br/>";
 | 
	
		
			
				|  |  | +                            item.CityTaxCurrency = _setDatas.Find(it => it.Id == cityTaxData?.Currency)?.Name;
 | 
	
		
			
				|  |  | +                            string feeMark4 = cityTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
 | 
	
		
			
				|  |  | +                            string isFeeMark4 = landTaxData?.IsOppay == 1 ? "是" : "否";
 | 
	
		
			
				|  |  | +                            item.CityTaxTips = @$"当时汇率:{cityTaxData?.Rate.ToString("#0.0000")} <br/>
 | 
	
		
			
				|  |  |                                            收款方:{cityTaxData?.Payee}<br/>
 | 
	
		
			
				|  |  |                                            费用标识:{feeMark4} <br/>
 | 
	
		
			
				|  |  |                                            支付方式:{_setDatas.Find(it => it.Id == cityTaxData?.PayDId)?.Name} <br/>
 | 
	
		
			
				|  |  |                                            卡类型:{_setDatas.Find(it => it.Id == cityTaxData?.CTDId)?.Name} <br/>
 | 
	
		
			
				|  |  |                                            是否由地接支付:{isFeeMark4} <br/>";
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                        if (!string.IsNullOrEmpty(paymentStr))
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            item.IsPay = 2;
 | 
	
		
			
				|  |  | +                            item.PayTips = paymentStr;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    else
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        decimal roomPrice = (item.SingleRoomCount * item.SingleRoomPrice) +
 | 
	
		
			
				|  |  | +                                            (item.DoubleRoomCount * item.DoubleRoomPrice) +
 | 
	
		
			
				|  |  | +                                            (item.SuiteRoomCount * item.SuiteRoomPrice) +
 | 
	
		
			
				|  |  | +                                            (item.OtherRoomCount * item.OtherRoomPrice);
 | 
	
		
			
				|  |  | +                        //item.RoomPrice = item.CardPrice;
 | 
	
		
			
				|  |  | +                        item.RoomPriceCurrency = item.PaymentCurrency;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  |                      HotelCNYTotalPrice += item.CNYPrice;
 | 
	
		
			
				|  |  |                      item.PayMoney = item.PayMoney.ConvertToDecimal1();
 | 
	
		
			
				|  |  |                      item.CNYPrice = item.CNYPrice.ConvertToDecimal1();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  _geView.GroupHotelFeeViews = groupHotelFeeViews;
 | 
	
	
		
			
				|  | @@ -3086,6 +3155,9 @@ Where dfp.IsDel = 0 And dfp.IsPay = 1
 | 
	
		
			
				|  |  |                                                .ToList();
 | 
	
		
			
				|  |  |                      });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                      return Ok(JsonView(true, "操作成功!", _view, total));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  else if (_dto.Type == 2) //view
 |