|
@@ -1739,6 +1739,37 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
|
|
|
/// <summary>
|
|
|
/// 付款申请
|
|
|
+ /// 基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostPayRequestInit()
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var conpanyDatas = _sqlSugar.Queryable<Sys_Company>()
|
|
|
+ .Where(it => it.IsDel == 0)
|
|
|
+ .Select(it => new
|
|
|
+ {
|
|
|
+ Id = it.Id,
|
|
|
+ ConpamyName = it.CompanyName
|
|
|
+
|
|
|
+ }).ToList();
|
|
|
+
|
|
|
+
|
|
|
+ return Ok(JsonView(true, "操作成功!",new { ConpanyData = conpanyDatas }));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, ex.Message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 付款申请 (PageId=51)
|
|
|
/// 查询 根据日期范围
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
@@ -1759,6 +1790,14 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
return Ok(JsonView(false, "结束日期格式不正确!正确格式:yyyy-MM-dd"));
|
|
|
}
|
|
|
|
|
|
+ #region 页面操作权限验证
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+ pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
|
|
|
+
|
|
|
+ if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, "您没有查看权限!"));
|
|
|
+ #endregion
|
|
|
+
|
|
|
#endregion
|
|
|
try
|
|
|
{
|
|
@@ -1782,7 +1821,45 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 付款申请(团组费用申请相关)
|
|
|
+ /// 根据团组类型类型处理团组费用所属公司
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="teamId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ private CompanyInfo ExpenseCompanyByTeamId(int teamId)
|
|
|
+ {
|
|
|
+ CompanyInfo _companyInfo = new CompanyInfo();
|
|
|
+
|
|
|
+ List<int> _SiChuan = new List<int>() {
|
|
|
+ 38 , // 政府团
|
|
|
+ 39 , // 企业团
|
|
|
+ 40 , // 散客团
|
|
|
+ 102, // 未知
|
|
|
+ 248, // 非团组
|
|
|
+ 691, // 四川-会务活动
|
|
|
+ 762, // 四川-赛事项目收入
|
|
|
+ };
|
|
|
+ List<int> _ChengDu = new List<int>() {
|
|
|
+ 302, // 成都-会务活动
|
|
|
+ 1047, // 成都-赛事项目收入
|
|
|
+ };
|
|
|
+
|
|
|
+ if (_SiChuan.Contains(teamId))
|
|
|
+ {
|
|
|
+ _companyInfo.Id = 2;
|
|
|
+ _companyInfo.ConpanyName = "四川泛美交流有限公司";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (_ChengDu.Contains(teamId))
|
|
|
+ {
|
|
|
+ _companyInfo.Id = 1;
|
|
|
+ _companyInfo.ConpanyName = "成都泛美商务有限公司";
|
|
|
+ }
|
|
|
+
|
|
|
+ return _companyInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 付款申请(团组费用申请相关)
|
|
|
/// 查询 根据日期范围
|
|
|
/// </summary>
|
|
|
/// <param name="_groupIds"></param>
|
|
@@ -1813,8 +1890,9 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
_DailyFeePaymentResult.gz = _paymentDatas.Where(it => it.OrbitalPrivateTransfer == 0).Sum(it => ((it.PayMoney * it.DayRate) / 100) * it.PayPercentage); //公转
|
|
|
_DailyFeePaymentResult.sz = _paymentDatas.Where(it => it.OrbitalPrivateTransfer == 1).Sum(it => ((it.PayMoney * it.DayRate) / 100) * it.PayPercentage); ; //私转
|
|
|
List<int> groupIds = _paymentDatas.Select(it => it.DIId).Distinct().ToList();
|
|
|
- List<int> teamDids = new List<int> { 300, 302, 248 }; //团组类型 不含
|
|
|
- var _groupDatas = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Id) && !teamDids.Contains(it.TeamDid)).ToList();
|
|
|
+
|
|
|
+ var _groupDatas = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Id)).ToList();
|
|
|
+ //_groupDatas = (List<Grp_DelegationInfo>)_groupDatas.GroupBy(it => it.TeamDid);
|
|
|
|
|
|
#region 相关基础数据源
|
|
|
var userDatas = _sqlSugar.Queryable<Sys_Users>().ToList();
|
|
@@ -1830,7 +1908,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
var refundPaymentDatas = _sqlSugar.Queryable<Fin_PaymentRefundAndOtherMoney>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
|
|
|
var ExtraCostDatas = _sqlSugar.Queryable<Fin_GroupExtraCost>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
|
|
|
#endregion
|
|
|
-
|
|
|
+ //Expense company
|
|
|
foreach ( var groupInfo in _groupDatas)
|
|
|
{
|
|
|
List<Group_DailyFeePaymentContentInfolView> childList = new List<Group_DailyFeePaymentContentInfolView>();
|
|
@@ -1852,11 +1930,11 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
{
|
|
|
if (payInfo.OrbitalPrivateTransfer == 0) //公转
|
|
|
{
|
|
|
- priName = "【四川泛美交流有限公司】" + "【公转】" + "【导游:" + opData.ServiceGuide + "】" + opData.Area;
|
|
|
+ priName = $"【公转】【导游: {opData.ServiceGuide} 】{opData.Area}" ;
|
|
|
}
|
|
|
else if (payInfo.OrbitalPrivateTransfer == 1) //私转
|
|
|
{
|
|
|
- priName = "【四川泛美交流有限公司】" + "【私转】" + "【导游:" + opData.ServiceGuide + "】" + opData.Area;
|
|
|
+ priName = $"【私转】【导游:{opData.ServiceGuide}】{opData.Area}";
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
@@ -1888,9 +1966,15 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ bool status1 = false;
|
|
|
+ if (_groupIds != null)
|
|
|
+ {
|
|
|
+ status1 = _groupIds.Contains(payInfo.Id);
|
|
|
+ }
|
|
|
+
|
|
|
childList.Add(new Group_DailyFeePaymentContentInfolView()
|
|
|
{
|
|
|
- IsChecked = _groupIds.Contains(payInfo.Id),
|
|
|
+ IsChecked = status1,
|
|
|
Id = payInfo.Id,
|
|
|
Payee = payInfo.Payee,
|
|
|
RowNumber = rouNumber,
|
|
@@ -1902,15 +1986,20 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
PayCurrCode = setDatas.Find(it => it.Id == payInfo.PaymentCurrency)?.Name ?? "",
|
|
|
PaymentAmount = payInfo.PayMoney,
|
|
|
PayRate = payInfo.DayRate,
|
|
|
- CNYSubTotalAmount = ((payInfo.DayRate * payInfo.PayMoney) / 100) * payInfo.PayPercentage //此次付款金额
|
|
|
+ CNYTotalAmount = ((payInfo.DayRate * payInfo.PayMoney) / 100) * payInfo.PayPercentage //此次付款金额
|
|
|
});
|
|
|
rouNumber++;
|
|
|
}
|
|
|
|
|
|
+ CompanyInfo companyInfo = new CompanyInfo();
|
|
|
+ companyInfo = ExpenseCompanyByTeamId(groupInfo.TeamDid);
|
|
|
dataList.Add(new tree_Group_DailyFeePaymentPageListView()
|
|
|
{
|
|
|
+ Id = Guid.NewGuid().ToString("N"),
|
|
|
GroupName = groupInfo.TeamName,
|
|
|
- CNYTotalAmount = childList.Sum(it => it.CNYSubTotalAmount),
|
|
|
+ CompanyId = companyInfo.Id,
|
|
|
+ ConpanyName = companyInfo.ConpanyName,
|
|
|
+ CNYTotalAmount = childList.Sum(it => it.CNYTotalAmount),
|
|
|
ChildList = childList,
|
|
|
});
|
|
|
}
|
|
@@ -1919,7 +2008,6 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
return _DailyFeePaymentResult;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 付款申请(日付申请相关)
|
|
|
/// 查询 根据日期范围
|
|
@@ -1930,6 +2018,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
/// <returns></returns>
|
|
|
private tree_Fin_DailyFeePaymentResult PayRequest_DailyByDateRange(int status, List<int> _dailyIds, string beginDt, string endDt)
|
|
|
{
|
|
|
+
|
|
|
#region sql条件处理
|
|
|
string sqlWhere = string.Format(@" And dfp.CreateTime between '{0} 00:00:00' And '{1} 23:59:59' ", beginDt, endDt);
|
|
|
|
|
@@ -1961,8 +2050,11 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
|
|
|
foreach (var item in DailyFeePaymentData)
|
|
|
{
|
|
|
- item.IsChecked = _dailyIds.Contains(item.Id);
|
|
|
-
|
|
|
+ if (_dailyIds != null)
|
|
|
+ {
|
|
|
+ item.IsChecked = _dailyIds.Contains(item.Id);
|
|
|
+ }
|
|
|
+
|
|
|
if (dic_setData.ContainsKey(item.PriceTypeId))
|
|
|
{
|
|
|
item.priceTypeStr = dic_setData[item.PriceTypeId];
|
|
@@ -2013,10 +2105,9 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 付款申请
|
|
|
- /// 团组相关费用 选中状态变更
|
|
|
+ /// <summary>
|
|
|
+ /// 付款申请 (PageId=51)
|
|
|
+ /// 团组,日付相关费用 选中状态变更
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
@@ -2068,7 +2159,8 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
requestCheckedView.DailyPaymentIds = dailyPaymentIds;
|
|
|
if (dto.Type == 1)
|
|
|
{
|
|
|
- var status = await RedisRepository.RedisFactory.CreateRedisRepository().StringSetAsync<string>("paymentRequestCheckedData", JsonConvert.SerializeObject(requestCheckedView));
|
|
|
+ TimeSpan ts = DateTime.Now.AddDays(180) - DateTime.Now; //设置redis 过期时间 半年(180)
|
|
|
+ var status = await RedisRepository.RedisFactory.CreateRedisRepository().StringSetAsync<string>("paymentRequestCheckedData", JsonConvert.SerializeObject(requestCheckedView),ts);
|
|
|
if (status)
|
|
|
{
|
|
|
return Ok(JsonView(true, "操作成功!"));
|
|
@@ -2092,8 +2184,8 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 付款申请
|
|
|
- /// 团组相关费用 汇率变更
|
|
|
+ /// 付款申请 (PageId=51)
|
|
|
+ /// 团组,日付相关费用 汇率变更
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
@@ -2161,7 +2253,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 付款申请
|
|
|
+ /// 付款申请 (PageId=51)
|
|
|
/// 团组,日付相关费用 付款状态变更
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
@@ -2257,6 +2349,104 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
|
|
|
return Ok(JsonView(false, ex.Message));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 付款申请 (PageId=51)
|
|
|
+ /// 文件下载
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostPayRequestFileDownload(PayRequestFileDownloadDto dto)
|
|
|
+ {
|
|
|
+
|
|
|
+ #region 参数,权限 验证
|
|
|
+ if (dto.PortType < 1)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "请传入有效的PortType参数!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dto.UserId < 1)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "请传入有效的UserId参数!"));
|
|
|
+ }
|
|
|
+ if (dto.PageId < 1)
|
|
|
+ {
|
|
|
+ dto.PageId = 51;
|
|
|
+ return Ok(JsonView(false, "请传入有效的PageId参数!"));
|
|
|
+ }
|
|
|
+ if (dto.ConpanyId < 1 || dto.ConpanyId > 4)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "请传入有效的ConpanyId参数!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+
|
|
|
+ #region 页面操作权限验证
|
|
|
+ pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
|
|
|
+
|
|
|
+ if (pageFunAuthView.FilesDownloadAuth == 0) return Ok(JsonView(false, "您没有文件下载权限!"));
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ PaymentRequestCheckedView checkedView = new PaymentRequestCheckedView();
|
|
|
+ var checkedStr = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>("paymentRequestCheckedData");
|
|
|
+ if (checkedStr != null)
|
|
|
+ {
|
|
|
+ checkedView = JsonConvert.DeserializeObject<PaymentRequestCheckedView>(checkedStr.ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (checkedView == null )
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "没有选中的数据!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (checkedView.GroupIds == null && checkedView.DailyPaymentIds == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "没有选中的数据!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ tree_Fin_DailyFeePaymentResult dailyResult = PayRequest_DailyByDateRange(2, checkedView.DailyPaymentIds, dto.beginDt, dto.endDt);
|
|
|
+ tree_Group_DailyFeePaymentResult groupResult = PayRequest_GroupPaymentByDateRange(2, checkedView.GroupIds, dto.beginDt, dto.endDt);
|
|
|
+
|
|
|
+ string _requestPayment = DateTime.Now.ToString("yyyy-MM-dd");//申请付款日期
|
|
|
+
|
|
|
+ //1 成都泛美商务有限公司
|
|
|
+ if (dto.ConpanyId == 1)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ //2 四川泛美交流有限公司
|
|
|
+ else if (dto.ConpanyId == 2)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ //3 成都纽茵教育科技有限公司
|
|
|
+ else if (dto.ConpanyId == 3)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ //4 成都鸿企中元科技有限公司
|
|
|
+ else if (dto.ConpanyId == 4)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "参数ConpanyId不可使用!"));
|
|
|
+ }
|
|
|
+ return Ok(JsonView(false, "操作失败!"));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, ex.Message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 超支费用
|