|
@@ -61,6 +61,7 @@ using MathNet.Numerics;
|
|
|
using System.Security.Policy;
|
|
|
using System.Xml;
|
|
|
using OASystem.Domain.Dtos.QiYeWeChat;
|
|
|
+using static NPOI.POIFS.Crypt.CryptoFunctions;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
|
{
|
|
@@ -590,7 +591,7 @@ namespace OASystem.API.Controllers
|
|
|
var userInfo = _usersRep._sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && it.Id == dto.UserId).First();
|
|
|
if (userInfo != null) createGroupUser = userInfo.CnName;
|
|
|
|
|
|
- string title = $"";
|
|
|
+ string title = $"系统通知";
|
|
|
string content = $"团组[{groupName}(创建人:{createGroupUser})]创建成功,请前往页面进行下一步操作!";
|
|
|
await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
|
|
|
}
|
|
@@ -672,7 +673,7 @@ namespace OASystem.API.Controllers
|
|
|
var userInfo = _usersRep._sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && it.Id == dto.UserId).First();
|
|
|
if (userInfo != null) createGroupUser = userInfo.CnName;
|
|
|
|
|
|
- string title = $"";
|
|
|
+ string title = $"系统通知";
|
|
|
string content = $"团组[{groupName}(创建人:{createGroupUser})]创建成功,请前往页面进行下一步操作!";
|
|
|
await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
|
|
|
}
|
|
@@ -1274,7 +1275,6 @@ namespace OASystem.API.Controllers
|
|
|
.Query<Grp_CarTouristGuideGroundReservationsContent>(s => s.DiId == _dto.DiId && s.IsDel == 0)
|
|
|
.ToListAsync();
|
|
|
|
|
|
-
|
|
|
/*
|
|
|
* 80: //签证
|
|
|
*/
|
|
@@ -1282,8 +1282,6 @@ namespace OASystem.API.Controllers
|
|
|
.Query<Grp_VisaInfo>(s => s.DIId == _dto.DiId && s.IsDel == 0)
|
|
|
.ToListAsync();
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/*
|
|
|
*81: //邀请/公务活动
|
|
|
*/
|
|
@@ -1296,12 +1294,7 @@ namespace OASystem.API.Controllers
|
|
|
*/
|
|
|
List<Grp_Customers> _Customers = await _groupRepository.Query<Grp_Customers>(s => s.DiId == _dto.DiId && s.IsDel == 0).ToListAsync();
|
|
|
|
|
|
- /*
|
|
|
- * Label = 98 其他款项
|
|
|
- */
|
|
|
- List<Grp_DecreasePayments> _DecreasePayments = await _groupRepository
|
|
|
- .Query<Grp_DecreasePayments>(s => s.DiId == _dto.DiId && s.IsDel == 0)
|
|
|
- .ToListAsync();
|
|
|
+
|
|
|
/*
|
|
|
* Lable = 85 机票预订
|
|
|
*/
|
|
@@ -1310,16 +1303,27 @@ namespace OASystem.API.Controllers
|
|
|
.ToListAsync();
|
|
|
|
|
|
/*
|
|
|
- * 98 机票预定
|
|
|
+ * 85 机票预定
|
|
|
*/
|
|
|
List<Grp_AirTicketReservations> _AirTicketReservations = await _groupRepository.Query<Grp_AirTicketReservations>(s => s.DIId == _dto.DiId && s.IsDel == 0).ToListAsync();
|
|
|
|
|
|
/*
|
|
|
- * 285://收款退还
|
|
|
+ * 98 其他款项
|
|
|
+ */
|
|
|
+ List<Grp_DecreasePayments> _DecreasePayments = await _groupRepository
|
|
|
+ .Query<Grp_DecreasePayments>(s => s.DiId == _dto.DiId && s.IsDel == 0)
|
|
|
+ .ToListAsync();
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 285:收款退还
|
|
|
*/
|
|
|
List<Fin_PaymentRefundAndOtherMoney> _PaymentRefundAndOtherMoneys = await _groupRepository
|
|
|
.Query<Fin_PaymentRefundAndOtherMoney>(s => s.DiId == _dto.DiId && s.IsDel == 0)
|
|
|
.ToListAsync();
|
|
|
+ /*
|
|
|
+ * 1015: //超支费用
|
|
|
+ */
|
|
|
+ List<Fin_GroupExtraCost> _GroupExtraCosts = await _groupRepository.Query<Fin_GroupExtraCost>(s => s.DiId == _dto.DiId && s.IsDel == 0).ToListAsync();
|
|
|
|
|
|
|
|
|
/*
|
|
@@ -1340,8 +1344,8 @@ namespace OASystem.API.Controllers
|
|
|
var userItems = await _groupRepository.Query<Sys_Users>(s => s.IsDel == 0).ToListAsync();
|
|
|
|
|
|
/*
|
|
|
- * 费用模块
|
|
|
- */
|
|
|
+ * 费用模块
|
|
|
+ */
|
|
|
Sys_SetData sdPriceName = _groupRepository.Query<Sys_SetData>(s => s.Id == _dto.Label).First();
|
|
|
string priceModule = string.Empty;
|
|
|
if (sdPriceName != null)
|
|
@@ -1591,6 +1595,13 @@ namespace OASystem.API.Controllers
|
|
|
break;
|
|
|
case 751://酒店早餐
|
|
|
|
|
|
+ break;
|
|
|
+ case 1015://超支费用
|
|
|
+ Fin_GroupExtraCost groupExtraCost = _GroupExtraCosts.Where(s => s.Id == entity.CId).FirstOrDefault();
|
|
|
+ if (groupExtraCost != null) {
|
|
|
+ _detail.PriceNameContent = groupExtraCost.PriceName;
|
|
|
+ _detail.PriceMsgContent = "备注:" + groupExtraCost.Remark;
|
|
|
+ }
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -2712,7 +2723,7 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region 团组增减款项
|
|
|
+ #region 团组增减款项/其他款项
|
|
|
/// <summary>
|
|
|
/// 团组增减款项下拉框绑定
|
|
|
/// </summary>
|
|
@@ -3688,8 +3699,10 @@ namespace OASystem.API.Controllers
|
|
|
.ToList();
|
|
|
var blackCode = _sqlSugar.Queryable<Air_TicketBlackCode>().Where(it => it.IsDel == 0 && it.DiId == dto.DiId).First();
|
|
|
var threeCodes = _sqlSugar.Queryable<Res_ThreeCode>().Where(it => it.IsDel == 0).ToList();
|
|
|
+ var placeData = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(it => it.IsDel == 0).ToList();
|
|
|
var rateDatas = await _EnterExitCosts.CurrencyRemark.SplitExchangeRate();
|
|
|
|
|
|
+
|
|
|
if (dto.ExportType == 1) //明细表
|
|
|
{
|
|
|
if (dto.SubTypeId == 1005) //1005(默认明细表)
|
|
@@ -3707,16 +3720,59 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
decimal stayFeeTotal = _DayAndCosts.Where(it => it.Type == 1).Sum(it => it.SubTotal); // 住宿费
|
|
|
decimal mealsFeeTotal = _DayAndCosts.Where(it => it.Type == 2).Sum(it => it.SubTotal); // 伙食费费
|
|
|
- decimal miscellaneousFeeTotal = _DayAndCosts.Where(it => it.Type == 1).Sum(it => it.SubTotal); // 公杂费
|
|
|
+ decimal miscellaneousFeeTotal = _DayAndCosts.Where(it => it.Type == 3).Sum(it => it.SubTotal); // 公杂费
|
|
|
decimal tainFeeTotal = _DayAndCosts.Where(it => it.Type == 4).Sum(it => it.SubTotal); // 培训费
|
|
|
- dic.Add("InsidePay", _EnterExitCosts.InsidePay.ToString("#0.00"));
|
|
|
- dic.Add("VisaPay", _EnterExitCosts.Visa.ToString("#0.00"));
|
|
|
- dic.Add("VisaRemark", _EnterExitCosts.VisaRemark);
|
|
|
- dic.Add("SafePay", _EnterExitCosts.Safe.ToString("#0.00"));
|
|
|
- dic.Add("YiMiao", _EnterExitCosts.YiMiao.ToString("#0.00"));
|
|
|
- dic.Add("HeSuan", _EnterExitCosts.HeSuan.ToString("#0.00"));
|
|
|
- dic.Add("ServiceFee", _EnterExitCosts.Service.ToString("#0.00"));
|
|
|
- dic.Add("Ticket", _EnterExitCosts.Ticket.ToString("#0.00"));
|
|
|
+
|
|
|
+ decimal insidePayTotal = _EnterExitCosts.InsidePay;
|
|
|
+
|
|
|
+ string row1_1 = "";
|
|
|
+ if (_EnterExitCosts.Visa > 0)
|
|
|
+ {
|
|
|
+ //insidePayTotal += _EnterExitCosts.Visa;
|
|
|
+ row1_1 = $"签证费: {_EnterExitCosts.Visa.ToString("#0.00")} 人民币/人";
|
|
|
+ if (!string.IsNullOrEmpty(_EnterExitCosts.VisaRemark))
|
|
|
+ {
|
|
|
+ row1_1 += $"\t签证费用描述: : {_EnterExitCosts.VisaRemark} 人民币/人";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ string row1_2 = "";
|
|
|
+ if (_EnterExitCosts.YiMiao > 0)
|
|
|
+ {
|
|
|
+ //insidePayTotal += _EnterExitCosts.YiMiao;
|
|
|
+ row1_2 += $"疫苗费:{_EnterExitCosts.YiMiao.ToString("#0.00")} 人民币/人";
|
|
|
+ }
|
|
|
+ if (_EnterExitCosts.HeSuan > 0)
|
|
|
+ {
|
|
|
+ //insidePayTotal += _EnterExitCosts.HeSuan;
|
|
|
+ row1_2 += $"核酸检测费:{_EnterExitCosts.HeSuan.ToString("#0.00")} 人民币/人";
|
|
|
+ }
|
|
|
+ if (_EnterExitCosts.Service > 0)
|
|
|
+ {
|
|
|
+ //insidePayTotal += _EnterExitCosts.Service;
|
|
|
+ row1_2 += $"服务费:{_EnterExitCosts.Service.ToString("#0.00")} 人民币/人";
|
|
|
+ }
|
|
|
+
|
|
|
+ string row1_3 = "";
|
|
|
+ if (_EnterExitCosts.Safe > 0)
|
|
|
+ {
|
|
|
+ //insidePayTotal += _EnterExitCosts.Safe;
|
|
|
+ row1_3 += $"保险费:{_EnterExitCosts.Safe.ToString("#0.00")} 人民币/人";
|
|
|
+ }
|
|
|
+ if (_EnterExitCosts.Ticket > 0)
|
|
|
+ {
|
|
|
+ //insidePayTotal += _EnterExitCosts.Ticket;
|
|
|
+ row1_3 += $"参展门票:{_EnterExitCosts.Ticket.ToString("#0.00")} 人民币/人";
|
|
|
+ }
|
|
|
+ string row1 = "";
|
|
|
+ if (!string.IsNullOrEmpty(row1_1)) row1 += $"{row1_1}\r\n";
|
|
|
+ if (!string.IsNullOrEmpty(row1_2)) row1 += $"{row1_2}\r\n";
|
|
|
+ if (!string.IsNullOrEmpty(row1_3)) row1 += $"{row1_3}";
|
|
|
+
|
|
|
+
|
|
|
+ dic.Add("InsidePay", insidePayTotal.ToString("#0.00"));
|
|
|
+ dic.Add("Row1Str", row1);
|
|
|
+
|
|
|
dic.Add("OutsideJJ", _EnterExitCosts.OutsideJJPay.ToString("#0.00"));
|
|
|
dic.Add("OutsaideGW", _EnterExitCosts.OutsaideGWPay.ToString("#0.00"));
|
|
|
dic.Add("AirJJ", _EnterExitCosts.AirJJ.ToString("#0.00"));
|
|
@@ -3724,11 +3780,13 @@ namespace OASystem.API.Controllers
|
|
|
dic.Add("CityTranffic", _EnterExitCosts.CityTranffic.ToString("#0.00"));
|
|
|
dic.Add("SubZS", stayFeeTotal.ToString("#0.00"));
|
|
|
dic.Add("SubHS", mealsFeeTotal.ToString("#0.00"));
|
|
|
- dic.Add("SubGZF", miscellaneousFeeTotal.ToString("#0.00"));
|
|
|
- dic.Add("SubPX", tainFeeTotal.ToString("#0.00"));
|
|
|
|
|
|
- decimal subJJC = _EnterExitCosts.InsidePay + stayFeeTotal + mealsFeeTotal + miscellaneousFeeTotal + tainFeeTotal + _EnterExitCosts.OutsideJJPay;
|
|
|
- decimal subGWC = _EnterExitCosts.InsidePay + stayFeeTotal + mealsFeeTotal + miscellaneousFeeTotal + tainFeeTotal + _EnterExitCosts.OutsaideGWPay;
|
|
|
+ string miscellaneousFeeTotalStr = miscellaneousFeeTotal.ToString("#0.00");
|
|
|
+ dic.Add("SubGZF", miscellaneousFeeTotalStr);
|
|
|
+ //dic.Add("SubPX", tainFeeTotal.ToString("#0.00"));
|
|
|
+
|
|
|
+ decimal subJJC = insidePayTotal + stayFeeTotal + mealsFeeTotal + miscellaneousFeeTotal + tainFeeTotal + _EnterExitCosts.OutsideJJPay;
|
|
|
+ decimal subGWC = insidePayTotal + stayFeeTotal + mealsFeeTotal + miscellaneousFeeTotal + tainFeeTotal + _EnterExitCosts.OutsaideGWPay;
|
|
|
dic.Add("SubJJC", subJJC.ToString("#0.00"));
|
|
|
dic.Add("SubGWC", subGWC.ToString("#0.00"));
|
|
|
|
|
@@ -3748,108 +3806,118 @@ namespace OASystem.API.Controllers
|
|
|
Aspose.Words.Tables.Table table1 = allTables[0] as Aspose.Words.Tables.Table;
|
|
|
for (int i = 0; i < dac1.Count; i++)
|
|
|
{
|
|
|
- builder.MoveToCell(0, i + 1, 0, 0);
|
|
|
- builder.Write("第" + dac1[i].Days.ToString() + "晚:");
|
|
|
|
|
|
- builder.MoveToCell(0, i + 1, 1, 0);
|
|
|
- builder.Write(dac1[i].Place == null ? "" : dac1[i].Place);
|
|
|
+ Grp_DayAndCost dac = dac1[i];
|
|
|
+ if (dac == null) continue;
|
|
|
|
|
|
- builder.MoveToCell(0, i + 1, 2, 0);
|
|
|
+ builder.MoveToCell(0, i, 0, 0);
|
|
|
+ builder.Write("第" + dac.Days.ToString() + "晚:");
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i, 1, 0);
|
|
|
+ builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");
|
|
|
+ builder.Write(dac.Place == null ? "" : dac.Place);
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i, 2, 0);
|
|
|
builder.Write("费用标准:");
|
|
|
|
|
|
string curr = "";
|
|
|
- var currData = _CurrDatas.Where(it => it.Id == dac1[i].Currency).FirstOrDefault();
|
|
|
+ var currData = _CurrDatas.Where(it => it.Id == dac.Currency).FirstOrDefault();
|
|
|
if (currData != null)
|
|
|
{
|
|
|
curr = currData.Name;
|
|
|
}
|
|
|
- builder.MoveToCell(0, i + 1, 3, 0);
|
|
|
- builder.Write(dac1[i].Cost.ToString("#0.00") + curr);
|
|
|
+ builder.MoveToCell(0, i, 3, 0);
|
|
|
+ builder.Write(dac.Cost.ToString("#0.00") + curr);
|
|
|
|
|
|
- builder.MoveToCell(0, i + 1, 4, 0);
|
|
|
+ builder.MoveToCell(0, i, 4, 0);
|
|
|
builder.Write("费用小计:");
|
|
|
|
|
|
- builder.MoveToCell(0, i + 1, 5, 0);
|
|
|
- builder.Write(dac1[i].SubTotal.ToString("#0.00") + "CNY");
|
|
|
-
|
|
|
-
|
|
|
+ builder.MoveToCell(0, i, 5, 0);
|
|
|
+ builder.Write(dac.SubTotal.ToString("#0.00") + "CNY");
|
|
|
}
|
|
|
+
|
|
|
//删除多余行
|
|
|
- while (table1.Rows.Count > dac1.Count + 1)
|
|
|
+ while (table1.Rows.Count > dac1.Count)
|
|
|
{
|
|
|
- table1.Rows.RemoveAt(dac1.Count + 1);
|
|
|
+ table1.Rows.RemoveAt(dac1.Count);
|
|
|
}
|
|
|
|
|
|
Aspose.Words.Tables.Table table2 = allTables[1] as Aspose.Words.Tables.Table;
|
|
|
for (int i = 0; i < dac2.Count; i++)
|
|
|
{
|
|
|
|
|
|
- builder.MoveToCell(1, i + 1, 0, 0);
|
|
|
- builder.Write("第" + dac2[i].Days.ToString() + "天:");
|
|
|
+ Grp_DayAndCost dac = dac2[i];
|
|
|
+ if (dac == null) continue;
|
|
|
+
|
|
|
+ builder.MoveToCell(1, i, 0, 0);
|
|
|
+ builder.Write("第" + dac.Days.ToString() + "天:");
|
|
|
|
|
|
- builder.MoveToCell(1, i + 1, 1, 0);
|
|
|
- builder.Write(dac2[i].Place == null ? "" : dac1[i].Place);
|
|
|
+ builder.MoveToCell(1, i, 1, 0);
|
|
|
+ builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");
|
|
|
|
|
|
- builder.MoveToCell(1, i + 1, 2, 0);
|
|
|
+ builder.MoveToCell(1, i, 2, 0);
|
|
|
builder.Write("费用标准:");
|
|
|
|
|
|
string curr = "";
|
|
|
- var currData = _CurrDatas.Where(it => it.Id == dac1[i].Currency).FirstOrDefault();
|
|
|
+ var currData = _CurrDatas.Where(it => it.Id == dac.Currency).FirstOrDefault();
|
|
|
if (currData != null)
|
|
|
{
|
|
|
curr = currData.Name;
|
|
|
}
|
|
|
- builder.MoveToCell(1, i + 1, 3, 0);
|
|
|
- builder.Write(dac2[i].Cost.ToString("#0.00") + curr);
|
|
|
+ builder.MoveToCell(1, i, 3, 0);
|
|
|
+ builder.Write(dac.Cost.ToString("#0.00") + curr);
|
|
|
|
|
|
- builder.MoveToCell(1, i + 1, 4, 0);
|
|
|
+ builder.MoveToCell(1, i, 4, 0);
|
|
|
builder.Write("费用小计:");
|
|
|
|
|
|
- builder.MoveToCell(1, i + 1, 5, 0);
|
|
|
- builder.Write(dac2[i].SubTotal.ToString() + "CNY");
|
|
|
+ builder.MoveToCell(1, i, 5, 0);
|
|
|
+ builder.Write(dac.SubTotal.ToString("#0.00") + "CNY");
|
|
|
|
|
|
}
|
|
|
|
|
|
//删除多余行
|
|
|
- while (table2.Rows.Count > dac2.Count + 1)
|
|
|
+ while (table2.Rows.Count > dac2.Count)
|
|
|
{
|
|
|
- table2.Rows.RemoveAt(dac2.Count + 1);
|
|
|
+ table2.Rows.RemoveAt(dac2.Count);
|
|
|
}
|
|
|
|
|
|
Aspose.Words.Tables.Table table3 = allTables[2] as Aspose.Words.Tables.Table;
|
|
|
for (int i = 0; i < dac3.Count; i++)
|
|
|
{
|
|
|
|
|
|
- builder.MoveToCell(2, i + 1, 0, 0);
|
|
|
- builder.Write("第" + dac3[i].Days.ToString() + "天:");
|
|
|
+ Grp_DayAndCost dac = dac3[i];
|
|
|
+ if (dac == null) continue;
|
|
|
+
|
|
|
+ builder.MoveToCell(2, i, 0, 0);
|
|
|
+ builder.Write("第" + dac.Days.ToString() + "天:");
|
|
|
|
|
|
- builder.MoveToCell(2, i + 1, 1, 0);
|
|
|
- builder.Write(dac3[i].Place == null ? "" : dac1[i].Place);
|
|
|
+ builder.MoveToCell(2, i, 1, 0);
|
|
|
+ builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");
|
|
|
|
|
|
- builder.MoveToCell(2, i + 1, 2, 0);
|
|
|
+ builder.MoveToCell(2, i, 2, 0);
|
|
|
builder.Write("费用标准:");
|
|
|
|
|
|
string curr = "";
|
|
|
- var currData = _CurrDatas.Where(it => it.Id == dac1[i].Currency).FirstOrDefault();
|
|
|
+ var currData = _CurrDatas.Where(it => it.Id == dac.Currency).FirstOrDefault();
|
|
|
if (currData != null)
|
|
|
{
|
|
|
curr = currData.Name;
|
|
|
}
|
|
|
- builder.MoveToCell(2, i + 1, 3, 0);
|
|
|
- builder.Write(dac3[i].Cost.ToString("#0.00") + curr);
|
|
|
+ builder.MoveToCell(2, i, 3, 0);
|
|
|
+ builder.Write(dac.Cost.ToString("#0.00") + curr);
|
|
|
|
|
|
- builder.MoveToCell(2, i + 1, 4, 0);
|
|
|
+ builder.MoveToCell(2, i, 4, 0);
|
|
|
builder.Write("费用小计:");
|
|
|
|
|
|
- builder.MoveToCell(2, i + 1, 5, 0);
|
|
|
- builder.Write(dac3[i].SubTotal.ToString("#0.00") + "CNY");
|
|
|
+ builder.MoveToCell(2, i, 5, 0);
|
|
|
+ builder.Write(dac.SubTotal.ToString("#0.00") + "CNY");
|
|
|
|
|
|
}
|
|
|
|
|
|
//删除多余行
|
|
|
- while (table3.Rows.Count > dac3.Count + 1)
|
|
|
+ while (table3.Rows.Count > dac3.Count)
|
|
|
{
|
|
|
- table3.Rows.RemoveAt(dac3.Count + 1);
|
|
|
+ table3.Rows.RemoveAt(dac3.Count);
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
@@ -3943,10 +4011,10 @@ namespace OASystem.API.Controllers
|
|
|
//builder.MoveToCell(0, accommodationStartIndex, 0, 0);
|
|
|
//builder.Write(DeleClientList[i].LastName + DeleClientList[i].Name);
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 1, 0);
|
|
|
- builder.Write(dac.Place == null ? "" : dac.Place);//城市
|
|
|
+ builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");//城市
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 2, 0);
|
|
|
|
|
|
- string currency = _CurrDatas.Find(it => it.Id == dac.Currency).Name;
|
|
|
+ string currency = _CurrDatas.Find(it => it.Id == dac.Currency)?.Name ?? "Unknown";
|
|
|
builder.Write(currency);//币种
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 3, 0);
|
|
|
builder.Write(dac.Cost.ToString("#0.00"));//标准
|
|
@@ -3959,7 +4027,7 @@ namespace OASystem.API.Controllers
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 7, 0);
|
|
|
|
|
|
decimal rate = 0.00M;
|
|
|
- rate = rateDatas.Find(it => it.CurrencyCode.Equals(currency)).Rate;
|
|
|
+ rate = rateDatas.Find(it => it.CurrencyCode.Equals(currency))?.Rate ?? 0.00M;
|
|
|
|
|
|
builder.Write(rate.ToString("#0.0000"));//汇率
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 8, 0);
|
|
@@ -3967,7 +4035,7 @@ namespace OASystem.API.Controllers
|
|
|
decimal rbmPrice = rate * dac.SubTotal;
|
|
|
builder.Write(rbmPrice.ToString("#0.00"));//折合人民币
|
|
|
accommodationStartIndex++;
|
|
|
- dac1totalPrice += rbmPrice;
|
|
|
+ dac1totalPrice += Convert.ToDecimal(rbmPrice.ToString("#0.00"));
|
|
|
}
|
|
|
|
|
|
dic.Add("dac1totalPrice", dac1totalPrice.ToString("#0.00"));
|
|
@@ -3997,9 +4065,9 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 1, 0);
|
|
|
- builder.Write(dac.Place == null ? "" : dac.Place);//城市
|
|
|
+ builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");//城市
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 2, 0);
|
|
|
- string currency = _CurrDatas.Find(it => it.Id == dac.Currency).Name;
|
|
|
+ string currency = _CurrDatas.Find(it => it.Id == dac.Currency)?.Name ?? "Unknown" ;
|
|
|
builder.Write(currency);//币种
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 3, 0);
|
|
|
builder.Write(dac.Cost.ToString("#0.00"));//标准
|
|
@@ -4012,18 +4080,18 @@ namespace OASystem.API.Controllers
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 7, 0);
|
|
|
|
|
|
decimal rate = 0.00M;
|
|
|
- rate = rateDatas.Find(it => it.CurrencyCode.Equals(currency)).Rate;
|
|
|
+ rate = rateDatas.Find(it => it.CurrencyCode.Equals(currency))?.Rate ?? 0.00M;
|
|
|
|
|
|
builder.Write(rate.ToString("#0.0000"));//汇率
|
|
|
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 8, 0);
|
|
|
decimal rbmPrice = rate * dac.SubTotal;
|
|
|
- builder.Write(rbmPrice.ToString());//折合人民币
|
|
|
+ builder.Write(rbmPrice.ToString("#0.00"));//折合人民币
|
|
|
foodandotherStartIndex++;
|
|
|
- dac2totalPrice += rbmPrice;
|
|
|
+ dac2totalPrice += Convert.ToDecimal(rbmPrice.ToString("#0.00"));
|
|
|
}
|
|
|
|
|
|
- dic.Add("dac2totalPrice", dac2totalPrice.ToString());
|
|
|
+ dic.Add("dac2totalPrice", dac2totalPrice.ToString("#0.00"));
|
|
|
|
|
|
for (int i = foodandotherStartIndex + (15 - dac2.Count); i > (dac2.Count == 0 ? 1 : 0) + foodandotherStartIndex; i--)
|
|
|
{
|
|
@@ -4069,8 +4137,8 @@ namespace OASystem.API.Controllers
|
|
|
var spDotandEmpty = item.Split('.')[1].Split(' ').Where(x => !string.IsNullOrEmpty(x)).ToList();
|
|
|
var depCode = spDotandEmpty[2].Substring(0, 3);
|
|
|
var arrCode = spDotandEmpty[2].Substring(3, 3);
|
|
|
- string depName = threeCodes.Find(it => it.Three.Equals(depCode)).City,
|
|
|
- arrName = threeCodes.Find(it => it.Three.Equals(arrCode)).City;
|
|
|
+ string depName = threeCodes.Find(it => it.Three.Equals(depCode))?.City ?? "Unknwon",
|
|
|
+ arrName = threeCodes.Find(it => it.Three.Equals(arrCode))?.City ?? "Unknown";
|
|
|
|
|
|
list.Add(depName);
|
|
|
list.Add(arrName);
|
|
@@ -4152,22 +4220,23 @@ namespace OASystem.API.Controllers
|
|
|
decimal dac1totalPrice = 0.00M, dac2totalPrice = 0.00M;
|
|
|
foreach (var item in dac1)
|
|
|
{
|
|
|
+ item.Place = placeData.Find(it => it.Id == item.NationalTravelFeeId)?.Country ?? "Unknown";
|
|
|
if (place.Contains(item.Place))
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
DataRow row = dtdac1.NewRow();
|
|
|
- row["city"] = item.Place;
|
|
|
- row["curr"] = item.Currency;
|
|
|
- row["criterion"] = item.Cost;
|
|
|
- row["number"] = 1;
|
|
|
- row["day"] = dac1.FindAll(x => x.Place == item.Place).Count;
|
|
|
|
|
|
- string currency = _CurrDatas.Find(it => it.Id == item.Currency).Name;
|
|
|
- decimal rate = rateDatas.Find(it => it.CurrencyCode == currency).Rate;
|
|
|
+ row["city"] = placeData.Find(it => it.Id == item.NationalTravelFeeId)?.Country ?? "Unknown";
|
|
|
|
|
|
+ string currency = _CurrDatas.Find(it => it.Id == item.Currency)?.Name ?? "Unknwon";
|
|
|
+ decimal rate = rateDatas.Find(it => it.CurrencyCode == currency)?.Rate ?? 0.00M;
|
|
|
+ row["curr"] = currency;
|
|
|
row["rate"] = rate;
|
|
|
+ row["criterion"] = item.Cost;
|
|
|
+ row["number"] = 1;
|
|
|
+ row["day"] = dac1.FindAll(x => x.NationalTravelFeeId == item.NationalTravelFeeId).Count;
|
|
|
+
|
|
|
//row["costRMB"] = rbmPrice;
|
|
|
|
|
|
dtdac1.Rows.Add(row);
|
|
@@ -4177,22 +4246,22 @@ namespace OASystem.API.Controllers
|
|
|
place = new List<string>();
|
|
|
foreach (var item in dac2)
|
|
|
{
|
|
|
+ item.Place = placeData.Find(it => it.Id == item.NationalTravelFeeId)?.Country ?? "Unknown";
|
|
|
if (place.Contains(item.Place))
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
DataRow row = dtdac2.NewRow();
|
|
|
row["city"] = item.Place;
|
|
|
- row["curr"] = item.Currency;
|
|
|
+ string currency = _CurrDatas.Find(it => it.Id == item.Currency)?.Name ?? "Unknwon";
|
|
|
+ decimal rate = rateDatas.Find(it => it.CurrencyCode == currency)?.Rate ?? 0.00M;
|
|
|
+ row["curr"] = currency;
|
|
|
+ row["rate"] = rate;
|
|
|
row["criterion"] = item.Cost;
|
|
|
row["number"] = 1;
|
|
|
row["day"] = dac2.FindAll(x => x.Place == item.Place).Count;
|
|
|
//row["cost"] = item.SubTotal;
|
|
|
|
|
|
- string currency = _CurrDatas.Find(it => it.Id == item.Currency).Name;
|
|
|
- decimal rate = rateDatas.Find(it => it.CurrencyCode == currency).Rate;
|
|
|
-
|
|
|
- row["rate"] = rate;
|
|
|
//row["costRMB"] = rbmPrice;
|
|
|
|
|
|
dtdac2.Rows.Add(row);
|
|
@@ -4356,10 +4425,10 @@ namespace OASystem.API.Controllers
|
|
|
//builder.MoveToCell(0, accommodationStartIndex, 0, 0);
|
|
|
//builder.Write(DeleClientList[i].LastName + DeleClientList[i].Name);
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 1, 0);
|
|
|
- builder.Write(dac.Place == null ? "" : dac.Place);//城市
|
|
|
+ builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");//城市
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 2, 0);
|
|
|
|
|
|
- string currency = _CurrDatas.Find(it => it.Id == dac.Currency).Name;
|
|
|
+ string currency = _CurrDatas.Find(it => it.Id == dac.Currency)?.Name ?? "Unknwon";
|
|
|
builder.Write(currency);//币种
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 3, 0);
|
|
|
builder.Write(dac.Cost.ToString("#0.00"));//标准
|
|
@@ -4371,7 +4440,7 @@ namespace OASystem.API.Controllers
|
|
|
builder.Write(dac.SubTotal.ToString("#0.00"));//小计
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 7, 0);
|
|
|
|
|
|
- decimal rate = rateDatas.Find(it => it.CurrencyCode == currency).Rate;
|
|
|
+ decimal rate = rateDatas.Find(it => it.CurrencyCode == currency)?.Rate ?? 0.00M;
|
|
|
builder.Write(rate.ToString("#0.0000"));//汇率
|
|
|
builder.MoveToCell(0, accommodationStartIndex, 8, 0);
|
|
|
|
|
@@ -4401,10 +4470,10 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 1, 0);
|
|
|
- builder.Write(dac.Place == null ? "" : dac.Place);//城市
|
|
|
+ builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");//城市
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 2, 0);
|
|
|
|
|
|
- string currency = _CurrDatas.Find(it => it.Id == dac.Currency).Name;
|
|
|
+ string currency = _CurrDatas.Find(it => it.Id == dac.Currency)?.Name ?? "Unknwon";
|
|
|
builder.Write(currency);//币种
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 3, 0);
|
|
|
builder.Write(dac.Cost.ToString("#0.00"));//标准
|
|
@@ -4416,7 +4485,7 @@ namespace OASystem.API.Controllers
|
|
|
builder.Write(dac.SubTotal.ToString("#0.00"));//小计
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 7, 0);
|
|
|
|
|
|
- decimal rate = rateDatas.Find(it => it.CurrencyCode == currency).Rate;
|
|
|
+ decimal rate = rateDatas.Find(it => it.CurrencyCode == currency)?.Rate ?? 0.00M;
|
|
|
builder.Write(rate.ToString());//汇率
|
|
|
builder.MoveToCell(0, foodandotherStartIndex, 8, 0);
|
|
|
|
|
@@ -4489,7 +4558,6 @@ namespace OASystem.API.Controllers
|
|
|
builder.Write(DeleClientList[i].Job);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//删除多余行
|
|
|
while (tableOne.Rows.Count > DeleClientList.Count + 1)
|
|
|
{
|
|
@@ -7897,7 +7965,6 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
-
|
|
|
Grp_HotelReservations hr = await _sqlSugar.Queryable<Grp_HotelReservations>().Where(it => it.IsDel == 0 && it.Id == _dto.Id).FirstAsync();
|
|
|
|
|
|
//判断数据是否完整
|
|
@@ -7984,7 +8051,6 @@ namespace OASystem.API.Controllers
|
|
|
{
|
|
|
mark.Text = hr.HotelFax;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
//入住时间
|
|
|
if (doc.Range.Bookmarks["CIn"] != null)
|
|
@@ -8003,8 +8069,56 @@ namespace OASystem.API.Controllers
|
|
|
//客户名称
|
|
|
if (doc.Range.Bookmarks["GName"] != null)
|
|
|
{
|
|
|
+ string guestName = "";
|
|
|
+ string[] clients = new string[] { };
|
|
|
+ if (hr.GuestName.Contains(","))
|
|
|
+ {
|
|
|
+ clients = hr.GuestName.Split(",");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ clients = new string[] { hr.GuestName };
|
|
|
+ }
|
|
|
+
|
|
|
+ List<int> clientIds_int = new List<int>();
|
|
|
+ if (clients.Length > 0)
|
|
|
+ {
|
|
|
+ foreach (var item in clients)
|
|
|
+ {
|
|
|
+ if (item.IsNumeric())
|
|
|
+ {
|
|
|
+ clientIds_int.Add(int.Parse(item));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (clientIds_int.Count > 0)
|
|
|
+ {
|
|
|
+ var _clientDatas = _sqlSugar.Queryable<Crm_DeleClient>().Where(it => it.IsDel == 0 && clientIds_int.Contains(it.Id)).ToList();
|
|
|
+ foreach (var client in _clientDatas)
|
|
|
+ {
|
|
|
+ //男
|
|
|
+ if (client.Sex == 0) guestName += $"Mr.";
|
|
|
+ //女
|
|
|
+ else if (client.Sex == 1) guestName += $"Ms.";
|
|
|
+
|
|
|
+ if (!String.IsNullOrEmpty(client.FirstName+ client.LastName))
|
|
|
+ {
|
|
|
+ guestName += $"{string.Join("",client.FirstName.GetTotalPingYin()).ToUpper()} {string.Join("", client.LastName.GetTotalPingYin()).ToUpper()},";
|
|
|
+ }
|
|
|
+
|
|
|
+ //guestName += $"{client.Pinyin},";
|
|
|
+ }
|
|
|
+ if (guestName.Length > 0)
|
|
|
+ {
|
|
|
+ guestName = guestName.Substring(0, guestName.Length - 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ guestName = hr.GuestName;
|
|
|
+ }
|
|
|
Bookmark mark = doc.Range.Bookmarks["GName"];
|
|
|
- mark.Text = hr.GuestName;
|
|
|
+ mark.Text = guestName;
|
|
|
}
|
|
|
|
|
|
//房间介绍
|