|
@@ -51,6 +51,9 @@ using Google.Protobuf.WellKnownTypes;
|
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
using OASystem.API.OAMethodLib.Hub.HubClients;
|
|
|
using OASystem.API.OAMethodLib.Hub.Hubs;
|
|
|
+using System.Collections.Generic;
|
|
|
+using OASystem.API.OAMethodLib.JuHeAPI;
|
|
|
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
|
{
|
|
@@ -93,6 +96,7 @@ namespace OASystem.API.Controllers
|
|
|
private readonly EnterExitCostRepository _enterExitCostRep;
|
|
|
private readonly IHubContext<ChatHub, IChatClient> _hubContext;
|
|
|
private readonly UsersRepository _usersRep;
|
|
|
+ private readonly IJuHeApiService _juHeApi;
|
|
|
|
|
|
public GroupsController(IMapper mapper, SqlSugarClient sqlSugar, GrpScheduleRepository grpScheduleRep, DelegationInfoRepository groupRepository,
|
|
|
TaskAssignmentRepository taskAssignmentRep, AirTicketResRepository airTicketResRep, DecreasePaymentsRepository decreasePaymentsRep,
|
|
@@ -100,7 +104,7 @@ namespace OASystem.API.Controllers
|
|
|
, DelegationVisaRepository delegationVisaRep, MessageRepository message, VisaPriceRepository visaPriceRep, CarTouristGuideGroundRepository carTouristGuideGroundRep,
|
|
|
CheckBoxsRepository checkBoxs, GroupCostRepository GroupCostRepository, CostTypeHotelNumberRepository CostTypeHotelNumberRepository,
|
|
|
GroupCostParameterRepository GroupCostParameterRepository, HotelPriceRepository hotelPriceRep, CustomersRepository customersRep, SetDataRepository setDataRep,
|
|
|
- TourClientListRepository tourClientListRep, TeamRateRepository teamRateRep, IHubContext<ChatHub, IChatClient> hubContext, UsersRepository usersRep)
|
|
|
+ TourClientListRepository tourClientListRep, TeamRateRepository teamRateRep, IHubContext<ChatHub, IChatClient> hubContext, UsersRepository usersRep, IJuHeApiService juHeApi)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
_grpScheduleRep = grpScheduleRep;
|
|
@@ -133,6 +137,7 @@ namespace OASystem.API.Controllers
|
|
|
_teamRateRep = teamRateRep;
|
|
|
_hubContext = hubContext;
|
|
|
_usersRep = usersRep;
|
|
|
+ _juHeApi = juHeApi;
|
|
|
}
|
|
|
|
|
|
#region 流程管控
|
|
@@ -405,7 +410,7 @@ namespace OASystem.API.Controllers
|
|
|
//团组名称
|
|
|
if (!string.IsNullOrEmpty(dto.TeamName))
|
|
|
{
|
|
|
- sqlWhere += string.Format(@"And TeamName Like '%{0}%'",dto.TeamName);
|
|
|
+ sqlWhere += string.Format(@"And TeamName Like '%{0}%'", dto.TeamName);
|
|
|
}
|
|
|
|
|
|
//客户名称
|
|
@@ -440,7 +445,7 @@ namespace OASystem.API.Controllers
|
|
|
Inner Join Sys_SetData ssd1 On gdi.TeamLevSId = ssd1.Id
|
|
|
Left Join Sys_Users su On gdi.JietuanOperator = su.Id
|
|
|
Where gdi.IsDel = 0 {1}
|
|
|
- ) temp ", orderbyStr , sqlWhere);
|
|
|
+ ) temp ", orderbyStr, sqlWhere);
|
|
|
|
|
|
|
|
|
RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
|
|
@@ -514,9 +519,13 @@ namespace OASystem.API.Controllers
|
|
|
if (dto.Status == 1) //添加
|
|
|
{
|
|
|
diId = groupData.Data;
|
|
|
- GeneralMethod.PostGroupRateAddInit(dto.UserId, diId);//添加默认币种
|
|
|
+ //添加默认币种
|
|
|
+ await GeneralMethod.PostGroupRateAddInit(dto.UserId, diId);
|
|
|
|
|
|
- //消息提示
|
|
|
+ //默认分配权限
|
|
|
+ await GeneralMethod.PostGroupAuthAddInit(dto.UserId, diId);
|
|
|
+
|
|
|
+ //消息提示 王鸽 主管号
|
|
|
List<int> _managerIds = new List<int>() { 22, 32 };
|
|
|
var userIds = _usersRep._sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && _managerIds.Contains(it.JobPostId)).Select(it => it.Id).ToList();
|
|
|
if (userIds.Count > 0)
|
|
@@ -534,16 +543,15 @@ namespace OASystem.API.Controllers
|
|
|
string title = $"新建团组";
|
|
|
string content = $"团组[{groupName}(创建人:{createGroupUser})]创建成功,请前往页面进行下一步操作!";
|
|
|
await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- else if(dto.Status == 2)
|
|
|
+ else if (dto.Status == 2)
|
|
|
{
|
|
|
diId = dto.Id;
|
|
|
}
|
|
|
|
|
|
- return Ok(JsonView(true,"操作成功!", diId));
|
|
|
+ return Ok(JsonView(true, "操作成功!", diId));
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -592,9 +600,9 @@ namespace OASystem.API.Controllers
|
|
|
if (dto.Status == 1) //添加
|
|
|
{
|
|
|
diId = groupData.Data;
|
|
|
- GeneralMethod.PostGroupRateAddInit(dto.UserId, diId);
|
|
|
+ await GeneralMethod.PostGroupRateAddInit(dto.UserId, diId);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
if (dto.Status == 2)
|
|
|
{
|
|
@@ -655,11 +663,11 @@ namespace OASystem.API.Controllers
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
- public async Task<IActionResult> GroupOperation11(int userId,int diId)
|
|
|
+ public async Task<IActionResult> GroupOperation11(int userId, int diId)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- GeneralMethod.PostGroupRateAddInit(userId, diId);
|
|
|
+ GeneralMethod.PostGroupRateAddInit(userId, diId);
|
|
|
|
|
|
return Ok(JsonView(true));
|
|
|
}
|
|
@@ -741,8 +749,6 @@ namespace OASystem.API.Controllers
|
|
|
return Ok(JsonView(true, "操作成功!", groupData.Data));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 获取团组名称data And 签证国别Data
|
|
|
/// </summary>
|
|
@@ -761,6 +767,7 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
return Ok(JsonView(groupData.Data));
|
|
|
}
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 根据CTable类型返回对应的团组名称及简单数据(APP端)
|
|
|
/// </summary>
|
|
@@ -1181,7 +1188,6 @@ namespace OASystem.API.Controllers
|
|
|
/// </summary>
|
|
|
/// <param name="paras">参数Json字符串</param>
|
|
|
/// <returns></returns>
|
|
|
-
|
|
|
[HttpPost]
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
public async Task<IActionResult> PostSearchGrpCreditCardPayment(Search_GrpCreditCardPaymentDto _dto)
|
|
@@ -1205,6 +1211,8 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
Grp_CreditCardPaymentView _view = new Grp_CreditCardPaymentView();
|
|
|
|
|
|
+ List<SimplClientInfo> clientNameList = getSimplClientList(_dto.DiId);
|
|
|
+
|
|
|
#region 费用清单
|
|
|
var exp = Expressionable.Create<Grp_CreditCardPayment>();
|
|
|
exp.AndIF(_dto.AuditStatus != -1, it => it.IsAuditGM == _dto.AuditStatus);
|
|
@@ -1245,6 +1253,7 @@ namespace OASystem.API.Controllers
|
|
|
List<Grp_VisaInfo> _VisaInfos = await _groupRepository
|
|
|
.Query<Grp_VisaInfo>(s => s.DIId == _dto.DiId && s.IsDel == 0)
|
|
|
.ToListAsync();
|
|
|
+
|
|
|
|
|
|
|
|
|
/*
|
|
@@ -1280,11 +1289,11 @@ namespace OASystem.API.Controllers
|
|
|
/*
|
|
|
* 285://收款退还
|
|
|
*/
|
|
|
- List<Fin_PaymentRefundAndOtherMoney> _PaymentRefundAndOtherMoneys= await _groupRepository
|
|
|
+ List<Fin_PaymentRefundAndOtherMoney> _PaymentRefundAndOtherMoneys = await _groupRepository
|
|
|
.Query<Fin_PaymentRefundAndOtherMoney>(s => s.DiId == _dto.DiId && s.IsDel == 0)
|
|
|
.ToListAsync();
|
|
|
|
|
|
-
|
|
|
+
|
|
|
/*
|
|
|
* 币种信息
|
|
|
*/
|
|
@@ -1385,15 +1394,15 @@ namespace OASystem.API.Controllers
|
|
|
Grp_HotelReservations hotelReservations = _HotelReservations.Where(s => s.Id == entity.CId).FirstOrDefault();
|
|
|
if (hotelReservations != null)
|
|
|
{
|
|
|
- string GovernmentRentCode ="",GovernmentRentName = "", CityTaxCode="",CityTaxName = "", BreakfastCode="", BreakfastName = "";
|
|
|
+ string GovernmentRentCode = "", GovernmentRentName = "", CityTaxCode = "", CityTaxName = "", BreakfastCode = "", BreakfastName = "";
|
|
|
Sys_SetData sdPaymentCurrency_GovernmentRent = currencyItems.Where(s => s.Id == hotelReservations.GovernmentRentCurrency).FirstOrDefault();
|
|
|
- if (sdPaymentCurrency_GovernmentRent!= null)
|
|
|
+ if (sdPaymentCurrency_GovernmentRent != null)
|
|
|
{
|
|
|
GovernmentRentCode = sdPaymentCurrency_GovernmentRent.Name;
|
|
|
GovernmentRentName = sdPaymentCurrency_GovernmentRent.Remark;
|
|
|
}
|
|
|
|
|
|
- Sys_SetData sdPaymentCurrency_CityTax = currencyItems.Where(s => s.Id == hotelReservations.CityTaxCurrency).FirstOrDefault();
|
|
|
+ Sys_SetData sdPaymentCurrency_CityTax = currencyItems.Where(s => s.Id == hotelReservations.CityTaxCurrency).FirstOrDefault();
|
|
|
if (sdPaymentCurrency_CityTax != null)
|
|
|
{
|
|
|
CityTaxCode = sdPaymentCurrency_CityTax.Name;
|
|
@@ -1411,7 +1420,7 @@ namespace OASystem.API.Controllers
|
|
|
$"房间说明: {hotelReservations.Remark} <br/>" +
|
|
|
$"地税: {hotelReservations.GovernmentRent} {GovernmentRentCode} ({GovernmentRentName})<br/>" +
|
|
|
$"城市税: {hotelReservations.CityTax} {CityTaxCode} ({CityTaxName})<br/>" +
|
|
|
- $"酒店早餐: {hotelReservations.BreakfastPrice} {BreakfastCode} ({BreakfastName})<br/>"+
|
|
|
+ $"酒店早餐: {hotelReservations.BreakfastPrice} {BreakfastCode} ({BreakfastName})<br/>" +
|
|
|
$"酒店早餐是否由地接代付: {isoppayStr}";
|
|
|
_detail.PriceNameContent = hotelReservations.HotelName;
|
|
|
}
|
|
@@ -1426,7 +1435,7 @@ namespace OASystem.API.Controllers
|
|
|
_detail.BusName = touristGuideGroundReservations.BusName;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
_detail.PriceNameContent = touristGuideGroundReservations.Area;
|
|
|
|
|
|
List<Grp_CarTouristGuideGroundReservationsContent> touristGuideGroundReservationsContents = _CarTouristGuideGroundReservationsContent
|
|
@@ -1462,7 +1471,7 @@ namespace OASystem.API.Controllers
|
|
|
Grp_VisaInfo visaInfo = _VisaInfos.Where(s => s.Id == entity.CId).FirstOrDefault();
|
|
|
if (visaInfo != null)
|
|
|
{
|
|
|
- _detail.PriceNameContent = visaInfo.VisaClient;
|
|
|
+ _detail.PriceNameContent = getClientNameStr(clientNameList, visaInfo.VisaClient);
|
|
|
_detail.PriceMsgContent = "备注:" + visaInfo.Remark;
|
|
|
}
|
|
|
|
|
@@ -1474,7 +1483,7 @@ namespace OASystem.API.Controllers
|
|
|
{
|
|
|
|
|
|
string ioaCurrencyCode = "Unknown";
|
|
|
- string ioaCurrencyName= "Unknown";
|
|
|
+ string ioaCurrencyName = "Unknown";
|
|
|
|
|
|
var currencyData = currencyItems.Where(s => s.Id == invitationOfficialActivities.InviteCurrency && s.IsDel == 0).FirstOrDefault();
|
|
|
if (currencyData != null)
|
|
@@ -1484,7 +1493,7 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
|
|
|
_detail.PriceNameContent = invitationOfficialActivities.InviterArea;
|
|
|
- _detail.PriceMsgContent = "邀请费用:" + invitationOfficialActivities.InviteCost + " "+ ioaCurrencyCode + "("+ ioaCurrencyName+ ")<br/>" +
|
|
|
+ _detail.PriceMsgContent = "邀请费用:" + invitationOfficialActivities.InviteCost + " " + ioaCurrencyCode + "(" + ioaCurrencyName + ")<br/>" +
|
|
|
"活动费用:- <br/>" +
|
|
|
"备注:" + invitationOfficialActivities.Remark + "<br/>";
|
|
|
|
|
@@ -1496,7 +1505,7 @@ namespace OASystem.API.Controllers
|
|
|
Grp_Customers customers = _Customers.Where(s => s.Id == entity.Id && s.IsDel == 0).FirstOrDefault();
|
|
|
if (customers != null)
|
|
|
{
|
|
|
- _detail.PriceNameContent = customers.ClientName;
|
|
|
+ _detail.PriceNameContent = getClientNameStr(clientNameList, customers.ClientName);
|
|
|
_detail.PriceMsgContent = "备注:" + customers.Remark + "<br/>";
|
|
|
}
|
|
|
|
|
@@ -1529,7 +1538,7 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
break;
|
|
|
case 751://酒店早餐
|
|
|
-
|
|
|
+
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -1629,7 +1638,7 @@ namespace OASystem.API.Controllers
|
|
|
if (strs.Count > 0)
|
|
|
{
|
|
|
decimal amountPayable = strs.Sum(it => it.AmountPayable);
|
|
|
-
|
|
|
+
|
|
|
decimal balancePayment = strs.Sum(it => it.BalancePayment);
|
|
|
amountPayableStr += string.Format(@"{0}{1} |", amountPayable.ToString("#0.00"), item.CurrencyName);
|
|
|
|
|
@@ -1641,7 +1650,7 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- thisPaymentStr += string.Format(@"{0}{1} |","0.00", item.CurrencyName);
|
|
|
+ thisPaymentStr += string.Format(@"{0}{1} |", "0.00", item.CurrencyName);
|
|
|
}
|
|
|
|
|
|
balancePaymentStr += string.Format(@"{0}{1} |", balancePayment.ToString("#0.00"), item.CurrencyName);
|
|
@@ -1657,7 +1666,6 @@ namespace OASystem.API.Controllers
|
|
|
{
|
|
|
auditedFundsStr += string.Format(@"{0}{1} |", "0.00", item.CurrencyName);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1682,7 +1690,6 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 费用审核
|
|
|
/// 修改团组费用审核状态
|
|
@@ -1742,7 +1749,7 @@ namespace OASystem.API.Controllers
|
|
|
string groupNameStr = string.Empty;
|
|
|
var groupData = groupDatas.Where(it => it.Id == creditData.DIId).FirstOrDefault();
|
|
|
if (groupData != null) groupNameStr = groupData.TeamName;
|
|
|
-
|
|
|
+
|
|
|
|
|
|
string creditTypeStr = string.Empty;
|
|
|
var creditTypeData = creditTypeDatas.Where(it => it.Id == creditData.CTable).FirstOrDefault();
|
|
@@ -1775,10 +1782,10 @@ namespace OASystem.API.Controllers
|
|
|
msgContent = $"[{groupNameStr}({creditTypeStr})]费用申请(金额:{CNYPrice.ToString("0.00")} CNY({creditData.PayMoney.ToString("0.00")} {creditCurrency})) {auditStr}!";
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- msgDatas.Add(new {DiId = creditData.DIId, UserId = creditData.CreateUserId, MsgTitle = msgTitle, MsgContent = msgContent });
|
|
|
+
|
|
|
+ msgDatas.Add(new { DiId = creditData.DIId, UserId = creditData.CreateUserId, MsgTitle = msgTitle, MsgContent = msgContent });
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
if (rst == 0)
|
|
|
{
|
|
@@ -1945,11 +1952,44 @@ namespace OASystem.API.Controllers
|
|
|
jw.Msg += "请输入正确的diid";
|
|
|
return Ok(jw);
|
|
|
}
|
|
|
- string sql = string.Format("select b.Id,b.Pinyin,b.lastName,b.firstName,b.phone from Grp_TourClientList a, Crm_DeleClient b where a.clientid = b.id and a.isdel = 0 and a.diid = {0}",dto.DIID);
|
|
|
- var arr = _sqlSugar.SqlQueryable<SimplClientInfo>(sql).ToList();
|
|
|
+
|
|
|
+ var arr = getSimplClientList(dto.DIID);
|
|
|
jw = JsonView(true, "获取成功!", arr);
|
|
|
|
|
|
- return Ok(jw);
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<SimplClientInfo> getSimplClientList(int diId) {
|
|
|
+ string sql = string.Format("select b.Id,b.Pinyin,b.lastName,b.firstName,b.phone from Grp_TourClientList a, Crm_DeleClient b where a.clientid = b.id and a.isdel = 0 and a.diid = {0}", diId);
|
|
|
+ List<SimplClientInfo> arr = _sqlSugar.SqlQueryable<SimplClientInfo>(sql).ToList();
|
|
|
+ return arr;
|
|
|
+ }
|
|
|
+
|
|
|
+ private string getClientNameStr(List<SimplClientInfo> list, string origin) {
|
|
|
+ string result = origin;
|
|
|
+
|
|
|
+ if (Regex.Match(origin, @"\d+,?").Value.Length > 0) {
|
|
|
+ string[] temparr = origin.Split(',');
|
|
|
+ string fistrStr = temparr[0];
|
|
|
+ int count = temparr.Count();
|
|
|
+
|
|
|
+ int tempId;
|
|
|
+ bool success = int.TryParse(fistrStr, out tempId);
|
|
|
+ if (success) {
|
|
|
+ SimplClientInfo tempInfo = list.FirstOrDefault(s => s.Id == tempId);
|
|
|
+ if (tempInfo != null) {
|
|
|
+ if (count > 1)
|
|
|
+ {
|
|
|
+ result = string.Format(@"{0}{1}等{2}人", tempInfo.LastName, tempInfo.FirstName, count);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ result = string.Format(@"{0}{1}", tempInfo.LastName, tempInfo.FirstName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -3352,13 +3392,39 @@ namespace OASystem.API.Controllers
|
|
|
var excelTypeData = dataSource.Where(it => it.STid == 73).ToList(); //三公费用-Excel明细类型
|
|
|
List<SetDataInfoView> _ExcelTypeData = _mapper.Map<List<SetDataInfoView>>(excelTypeData);
|
|
|
|
|
|
+ //默认币种显示
|
|
|
+ List<CurrencyInfo> _currencyInfos = new List<CurrencyInfo>()
|
|
|
+ {
|
|
|
+ new CurrencyInfo (){ CurrencyCode="USD",CurrencyName = "美元",Rate = 0.0000M },
|
|
|
+ new CurrencyInfo (){ CurrencyCode="EUR",CurrencyName = "欧元",Rate = 0.0000M },
|
|
|
+ new CurrencyInfo (){ CurrencyCode="GBP",CurrencyName = "英镑",Rate = 0.0000M },
|
|
|
+ new CurrencyInfo (){ CurrencyCode="JPY",CurrencyName = "日元",Rate = 0.0000M },
|
|
|
+ new CurrencyInfo (){ CurrencyCode="HKD",CurrencyName = "港币",Rate = 0.0000M },
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode).ToArray());
|
|
|
+ if (_currencyRate.Count > 0)
|
|
|
+ {
|
|
|
+
|
|
|
+ foreach (var item in _currencyInfos)
|
|
|
+ {
|
|
|
+ var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
|
|
|
+ if (rateInfo != null)
|
|
|
+ {
|
|
|
+ item.Rate = Convert.ToDecimal(rateInfo.FSellPri) / 100.00M;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
return Ok(JsonView(true, "查询成功!", new
|
|
|
{
|
|
|
GroupNameData = groupNameData.Data,
|
|
|
CurrencyData = _CurrencyData,
|
|
|
WordTypeData = _WordTypeData,
|
|
|
- ExcelTypeData = _ExcelTypeData
|
|
|
- //NationalTravelFeeData = nationalTravelFeeData
|
|
|
+ ExcelTypeData = _ExcelTypeData,
|
|
|
+ CurrencyInit = _currencyInfos
|
|
|
}));
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -3443,9 +3509,6 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 团组模块 - 出入境费用 - 子项删除
|
|
|
/// </summary>
|
|
@@ -5607,6 +5670,169 @@ namespace OASystem.API.Controllers
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostGroupCostModulePrompt(GroupCostModulePromptDto dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ #region 参数验证
|
|
|
+ if (dto.DiId < 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "请传入有效的DiId参数!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<int> cTableIds = new List<int>() {
|
|
|
+ 76 ,//酒店预订
|
|
|
+ 77 ,//行程
|
|
|
+ 79 ,//车 / 导游地接
|
|
|
+ 80 ,//签证
|
|
|
+ 81 ,//邀请 / 公务活
|
|
|
+ 82 ,//团组客户保险
|
|
|
+ 85 ,//机票预订
|
|
|
+ 98 ,//其他款项
|
|
|
+ 285 ,//收款退还
|
|
|
+ 751 ,//酒店早餐
|
|
|
+ 1015 // 超支费用
|
|
|
+ };
|
|
|
+
|
|
|
+ if (dto.CTable < 0 && !cTableIds.Contains(dto.CTable))
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "请传入有效的CTable参数!"));
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ //Grp_GroupCostParameter 预算表 Grp_GroupCost 详细费用列表
|
|
|
+ var _GroupCostParameters = _usersRep._sqlSugar.Queryable<Grp_GroupCostParameter>().Where(it => it.IsDel == 0 && it.DiId == dto.DiId).ToList();
|
|
|
+
|
|
|
+ if (_GroupCostParameters.Count <= 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(true, "暂无该团组成本信息!", new List<dynamic>()));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (_GroupCostParameters[0].IsShare == 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(true, "该团组成本未完成!", new List<dynamic>()));
|
|
|
+ }
|
|
|
+ var _GroupCosts = _usersRep._sqlSugar.Queryable<Grp_GroupCost>().Where(it => it.IsDel == 0 && it.Diid == dto.DiId).ToList();
|
|
|
+
|
|
|
+ //处理date为空问题
|
|
|
+ if (_GroupCosts.Count > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < _GroupCosts.Count; i++)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(_GroupCosts[i].Date))
|
|
|
+ {
|
|
|
+ if (i > 0)
|
|
|
+ {
|
|
|
+ _GroupCosts[i].Date = _GroupCosts[i - 1].Date;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ GroupCostModulePromptView _view = new GroupCostModulePromptView()
|
|
|
+ {
|
|
|
+ CurrencyCode = _GroupCostParameters[0].Currency,
|
|
|
+ Rate = _GroupCostParameters[0].Rate
|
|
|
+ };
|
|
|
+
|
|
|
+ List<GroupCostModulePromptInfo> _ModulePromptInfos = new List<GroupCostModulePromptInfo>();
|
|
|
+ foreach (var item in _GroupCostParameters)
|
|
|
+ {
|
|
|
+ GroupCostModulePromptInfo modulePromptInfo = new GroupCostModulePromptInfo()
|
|
|
+ {
|
|
|
+ CostType = item.CostType,
|
|
|
+ CostTypeStartTime = Convert.ToDateTime(item.CostTypeStartTime).ToString("yyyy-MM-dd"),
|
|
|
+ CostTypeEndTime = Convert.ToDateTime(item.CostTypeendTime).ToString("yyyy-MM-dd"),
|
|
|
+ CostTypeNumber = item.CostTypenumber
|
|
|
+ };
|
|
|
+
|
|
|
+ List<string> costTypes = new List<string>() { "A","B" };
|
|
|
+
|
|
|
+ List<Grp_GroupCost> _GroupCostsTypeData = new List<Grp_GroupCost>();
|
|
|
+ var _GroupCostsDuplicates = _GroupCostParameters.GroupBy(x => x.CostType).Select(y => y.FirstOrDefault());
|
|
|
+ if (_GroupCostsDuplicates.Count() == 1)
|
|
|
+ {
|
|
|
+ _GroupCostsTypeData = _GroupCosts;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _GroupCostsTypeData = _GroupCosts.Where(it => Convert.ToDateTime(it.Date) >= Convert.ToDateTime(item.CostTypeStartTime) &&
|
|
|
+ Convert.ToDateTime(it.Date) <= Convert.ToDateTime(item.CostTypeendTime)).ToList();
|
|
|
+ }
|
|
|
+
|
|
|
+ //var _GroupCostsTypeData = _GroupCosts.Where(it => it.Date)
|
|
|
+ List<dynamic> datas = new List<dynamic>();
|
|
|
+ /*
|
|
|
+ * 76 酒店预订
|
|
|
+ * 77 行程
|
|
|
+ * 79 车/导游地接
|
|
|
+ * 80 签证
|
|
|
+ * 81 邀请/公务活动
|
|
|
+ * 82 团组客户保险
|
|
|
+ * 85 机票预订
|
|
|
+ * 98 其他款项
|
|
|
+ * 285 收款退还
|
|
|
+ * 751 酒店早餐
|
|
|
+ * 1015 超支费用
|
|
|
+ */
|
|
|
+ switch (dto.CTable)
|
|
|
+ {
|
|
|
+ case 76: // 酒店预订
|
|
|
+ datas.AddRange(
|
|
|
+ _GroupCostsTypeData.Select(it => new
|
|
|
+ {
|
|
|
+ it.DAY,
|
|
|
+ it.Date,
|
|
|
+ it.ACCON,
|
|
|
+ it.ITIN,
|
|
|
+ it.SGR,
|
|
|
+ it.TBR,
|
|
|
+ it.JS_ES,
|
|
|
+ it.Suite
|
|
|
+ })
|
|
|
+ );
|
|
|
+ break;
|
|
|
+ case 79: // 车/导游地接
|
|
|
+ datas.AddRange(
|
|
|
+ _GroupCostsTypeData.Select(it => new
|
|
|
+ {
|
|
|
+ it.Date,
|
|
|
+ it.CarCost,
|
|
|
+ it.TGS,
|
|
|
+ it.SGR,
|
|
|
+ it.TBR,
|
|
|
+ it.JS_ES,
|
|
|
+ it.Suite
|
|
|
+ })
|
|
|
+ );
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ modulePromptInfo.Data = datas;
|
|
|
+ _ModulePromptInfos.Add(modulePromptInfo);
|
|
|
+
|
|
|
+ }
|
|
|
+ _view.ModulePromptInfos = _ModulePromptInfos;
|
|
|
+
|
|
|
+ return Ok(JsonView(true,"操作成功!", _view));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, ex.Message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 酒店预定 保留
|