|
@@ -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
|