|
@@ -1707,21 +1707,12 @@ namespace OASystem.API.Controllers
|
|
|
//2.已收
|
|
|
string sql_pr = string.Format(@" Select * From Fin_ProceedsReceived Where IsDel=0 And Diid={0} ", diId);
|
|
|
List<Fin_ProceedsReceived> list_pr = _sqlSugar.SqlQueryable<Fin_ProceedsReceived>(sql_pr).ToList();
|
|
|
- List<ProceedsReceivedInfoView> prDatas = new List<ProceedsReceivedInfoView>();
|
|
|
foreach (var item_pr in list_pr)
|
|
|
{
|
|
|
sum_pr += item_pr.Price;
|
|
|
str_client += string.Format(@"{0};", item_pr.Client);
|
|
|
str_schedule += string.Format(@"{0};", item_pr.Remark);
|
|
|
|
|
|
- prDatas.Add(new ProceedsReceivedInfoView
|
|
|
- {
|
|
|
- time = item_pr.SectionTime,
|
|
|
- client = item_pr.Client,
|
|
|
- money = item_pr.Price.ToString("#0.00"),
|
|
|
- currency = setData.Find(it => it.Id == item_pr.Currency)?.Name ?? "",
|
|
|
- receivablesType = setData.Find(it => it.Id == item_pr.ReceivablesType)?.Name ?? ""
|
|
|
- });
|
|
|
}
|
|
|
if (str_schedule.Length > 0)
|
|
|
{
|
|
@@ -1755,7 +1746,6 @@ namespace OASystem.API.Controllers
|
|
|
item_rst.balPrice = ((sum_fr + sum_extra) - (sum_pr - sum_refund)).ToString("#0.00");
|
|
|
item_rst.prClient = str_client;
|
|
|
item_rst.schedule = str_schedule;
|
|
|
- item_rst.prItem = prDatas;
|
|
|
|
|
|
string tempVisitDate = Convert.ToDateTime(item_rst.visitDate).ToString("yyyy-MM-dd");
|
|
|
|
|
@@ -1763,6 +1753,58 @@ namespace OASystem.API.Controllers
|
|
|
sumAll_pr += (sum_pr - sum_refund);
|
|
|
sumAll_balance += ((sum_fr + sum_extra) - (sum_pr - sum_refund));
|
|
|
|
|
|
+ #region 单位应收已收细项(以应收费用名称为主去(已收费用)匹配) 新增 雷怡 2024-35-08 16:35:28
|
|
|
+
|
|
|
+ List<ClientFeeInfoView> feeDatas = new List<ClientFeeInfoView>();
|
|
|
+
|
|
|
+ //匹配上的数据
|
|
|
+ foreach (var item in list_fr)
|
|
|
+ {
|
|
|
+ var prInfo = list_pr.Find(it => item.PriceName.Contains(it.Client) || item.PriceName.Equals(it.Client));
|
|
|
+
|
|
|
+ decimal _balancePayment = 0.00M;
|
|
|
+ if (item.Currency == prInfo?.Currency)
|
|
|
+ {
|
|
|
+ _balancePayment = item.ItemSumPrice - prInfo?.Price ?? 0.00M;
|
|
|
+ }
|
|
|
+
|
|
|
+ feeDatas.Add(new ClientFeeInfoView
|
|
|
+ {
|
|
|
+ client = item.PriceName,
|
|
|
+ frMoney = item.ItemSumPrice.ToString("#0.00"),
|
|
|
+ frCurrency = setData.Find(it => it.Id == item.Currency)?.Name ?? "-",
|
|
|
+ frRate = item.Rate.ToString("#0.0000"),
|
|
|
+ prReceivablesType = setData.Find(it => it.Id == prInfo?.ReceivablesType)?.Name ?? "",
|
|
|
+ prTime = prInfo?.SectionTime ?? "-",
|
|
|
+ prMoney = prInfo?.Price.ToString("#0.00") ?? "-",
|
|
|
+ prCurrency = setData.Find(it => it.Id == prInfo?.Currency)?.Name ?? "",
|
|
|
+ balPayment = _balancePayment.ToString("#0.00")
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //未匹配上的数据
|
|
|
+ foreach (var item in list_pr)
|
|
|
+ {
|
|
|
+ var frInfo = list_fr.Find(it => it.PriceName.Contains(item.Client) || it.PriceName.Equals(item.Client));
|
|
|
+ if (frInfo == null)
|
|
|
+ {
|
|
|
+ feeDatas.Add(new ClientFeeInfoView
|
|
|
+ {
|
|
|
+ client = item.Client+ "[未匹配上的已收数据(应收已收公司名称不一致)]",
|
|
|
+ frMoney = "0.00",
|
|
|
+ frCurrency = "-",
|
|
|
+ frRate ="0.0000",
|
|
|
+ prReceivablesType = setData.Find(it => it.Id == item?.ReceivablesType)?.Name ?? "",
|
|
|
+ prTime = item?.SectionTime ?? "-",
|
|
|
+ prMoney = item?.Price.ToString("#0.00") ?? "0.00",
|
|
|
+ prCurrency = setData.Find(it => it.Id == item?.Currency)?.Name ?? "",
|
|
|
+ balPayment = "0.00"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ item_rst.feeItem = feeDatas;
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
PostSyntheticalReceivableByDateRangeResultView result = new PostSyntheticalReceivableByDateRangeResultView();
|
|
@@ -2002,21 +2044,24 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
#region 相关基础数据源
|
|
|
var userDatas = _sqlSugar.Queryable<Sys_Users>().ToList();
|
|
|
- var setDatas = _sqlSugar.Queryable<Sys_SetData>().ToList();
|
|
|
-
|
|
|
+ var setDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0).ToList();
|
|
|
+ var countryFeeDatas = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(it => it.IsDel == 0).ToList();
|
|
|
+
|
|
|
var hotelDatas = _sqlSugar.Queryable<Grp_HotelReservations>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
|
|
|
var opDatas = _sqlSugar.Queryable<Grp_CarTouristGuideGroundReservations>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
|
|
|
var visaDatas = _sqlSugar.Queryable<Grp_VisaInfo>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DIId)).ToList();
|
|
|
var ioaDatas = _sqlSugar.Queryable<Grp_InvitationOfficialActivities>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
|
|
|
var insureDatas = _sqlSugar.Queryable<Grp_Customers>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
|
|
|
var airDatas = _sqlSugar.Queryable<Grp_AirTicketReservations>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DIId)).ToList();
|
|
|
- var otherMoneyDatas = _sqlSugar.Queryable<Fin_OtherPrice>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Diid)).ToList();
|
|
|
+ //var otherMoneyDatas = _sqlSugar.Queryable<Fin_OtherPrice>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Diid)).ToList();
|
|
|
+ var otherMoneyDatas = _sqlSugar.Queryable<Grp_DecreasePayments>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
|
|
|
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>();
|
|
|
|
|
|
var groupPaymentDatas = _paymentDatas.Where(it => groupInfo.Id == it.DIId).ToList();
|
|
@@ -2029,30 +2074,79 @@ namespace OASystem.API.Controllers
|
|
|
switch (payInfo.CTable)
|
|
|
{
|
|
|
case 76: //76 酒店预订
|
|
|
- priName = hotelDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.HotelName ?? "";
|
|
|
+ priName = $"[费用名称:{hotelDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.HotelName ?? ""}]";
|
|
|
break;
|
|
|
case 79: //79 车/导游地接
|
|
|
var opData = opDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id);
|
|
|
if (opData != null)
|
|
|
{
|
|
|
+ string area = "";
|
|
|
+ bool b = int.TryParse(opData.Area, out int areaId);
|
|
|
+ if (b)
|
|
|
+ {
|
|
|
+ string area1 = countryFeeDatas.Find(it => it.Id == areaId)?.Country ?? "-";
|
|
|
+ area = $"{area1}({setDatas.Find(it => it.Id == opData.PriceType)?.Name ?? "-"})";
|
|
|
+ }
|
|
|
+ else area = opData.Area;
|
|
|
+
|
|
|
+ string opPriName = "-";
|
|
|
+ if (!string.IsNullOrEmpty(opData.PriceName)) opPriName = opData.PriceName;
|
|
|
+
|
|
|
+ area += $"({opPriName})";
|
|
|
+
|
|
|
if (payInfo.OrbitalPrivateTransfer == 0) //公转
|
|
|
{
|
|
|
- priName = $"【{orbitalPrivateTransfer}】【导游: {opData.ServiceGuide} 】{opData.Area}";
|
|
|
+ priName = $"【{orbitalPrivateTransfer}】【导游: {opData.ServiceGuide} 】[费用名称:{area}]";
|
|
|
}
|
|
|
else if (payInfo.OrbitalPrivateTransfer == 1) //私转
|
|
|
{
|
|
|
- priName = $"【{orbitalPrivateTransfer}】【导游:{opData.ServiceGuide}】{opData.Area}";
|
|
|
+ priName = $"【{orbitalPrivateTransfer}】【导游:{opData.ServiceGuide}】[费用名称:{area}]";
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
case 80: // 80 签证
|
|
|
- priName = visaDatas.Find(it => payInfo.DIId == it.DIId && payInfo.CId == it.Id)?.VisaClient ?? "-";
|
|
|
+
|
|
|
+ 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}", groupInfo.Id);
|
|
|
+ List<SimplClientInfo> arr = _sqlSugar.SqlQueryable<SimplClientInfo>(sql).ToList();
|
|
|
+
|
|
|
+ string visaClientName = visaDatas.Find(it => payInfo.DIId == it.DIId && payInfo.CId == it.Id)?.VisaClient ?? "";
|
|
|
+ string clientName = "-";
|
|
|
+ if (Regex.Match(visaClientName, @"\d+,?").Value.Length > 0)
|
|
|
+ {
|
|
|
+ string[] temparr = visaClientName.Split(',');
|
|
|
+ string fistrStr = temparr[0];
|
|
|
+ int count = temparr.Count();
|
|
|
+
|
|
|
+ int tempId;
|
|
|
+ bool success = int.TryParse(fistrStr, out tempId);
|
|
|
+ if (success)
|
|
|
+ {
|
|
|
+ SimplClientInfo tempInfo = arr.FirstOrDefault(s => s.Id == tempId);
|
|
|
+ if (tempInfo != null)
|
|
|
+ {
|
|
|
+ if (count > 1)
|
|
|
+ {
|
|
|
+ clientName = string.Format(@"{0}{1}等{2}人", tempInfo.LastName, tempInfo.FirstName, count);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ clientName = string.Format(@"{0}{1}", tempInfo.LastName, tempInfo.FirstName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ clientName = fistrStr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ priName = $"[费用名称:{clientName}]";
|
|
|
break;
|
|
|
case 81: // 81 邀请/公务活动
|
|
|
- priName = ioaDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.Inviter ?? "-";
|
|
|
+ priName = $"[费用名称:{ioaDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.Inviter ?? " -"}]";
|
|
|
break;
|
|
|
case 82: // 82 团组客户保险
|
|
|
- priName = insureDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.ClientName ?? "-";
|
|
|
+ priName = $"[费用名称:{insureDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.ClientName ?? " -"}]";
|
|
|
break;
|
|
|
case 85: // 85 机票预订
|
|
|
string flightsCode = airDatas.Find(it => payInfo.DIId == it.DIId && payInfo.CId == it.Id)?.FlightsCode ?? "-";
|
|
@@ -2060,19 +2154,20 @@ namespace OASystem.API.Controllers
|
|
|
priName = $"{flightsCode}【{airPayType}】";
|
|
|
break;
|
|
|
case 98: // 98 其他款项
|
|
|
- priName = otherMoneyDatas.Find(it => payInfo.DIId == it.Diid && payInfo.CId == it.Id)?.PriceName ?? "-";
|
|
|
+ priName = $"[费用名称:{otherMoneyDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? " -"}]";
|
|
|
break;
|
|
|
case 285: // 285 收款退还
|
|
|
- priName = refundPaymentDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? "-";
|
|
|
+ priName = $"[费用名称:{refundPaymentDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? " -"}]";
|
|
|
break;
|
|
|
case 1015: // 1015 超支费用
|
|
|
- priName = ExtraCostDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? "-";
|
|
|
+ priName = $"[费用名称:{ExtraCostDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? " -"}]";
|
|
|
break;
|
|
|
default:
|
|
|
priName = "";
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ //
|
|
|
bool status1 = false;
|
|
|
if (_groupIds != null)
|
|
|
{
|
|
@@ -2083,6 +2178,10 @@ namespace OASystem.API.Controllers
|
|
|
string.IsNullOrEmpty(payInfo.OtherBankName) ? "-" : payInfo.OtherBankName,
|
|
|
string.IsNullOrEmpty(payInfo.OtherSideNo) ? "-" : payInfo.OtherSideNo);
|
|
|
|
|
|
+
|
|
|
+ decimal _PaymentAmount = (payInfo.PayMoney / 100) * payInfo.PayPercentage;//此次付款金额
|
|
|
+ decimal _CNYSubTotalAmount = _PaymentAmount * payInfo.DayRate;//此次付款金额
|
|
|
+ _CNYSubTotalAmount = Convert.ToDecimal(_CNYSubTotalAmount.ToString("#0.00"));
|
|
|
var childInfo = new Group_DailyFeePaymentContentInfolView()
|
|
|
{
|
|
|
IsChecked = status1,
|
|
@@ -2096,12 +2195,14 @@ namespace OASystem.API.Controllers
|
|
|
PriceName = priName,
|
|
|
ModuleName = setDatas.Find(it => it.Id == payInfo.CTable)?.Name ?? "",
|
|
|
PayCurrCode = setDatas.Find(it => it.Id == payInfo.PaymentCurrency)?.Name ?? "",
|
|
|
- PaymentAmount = payInfo.PayMoney,
|
|
|
+ PaymentAmount = _PaymentAmount,
|
|
|
PayRate = payInfo.DayRate,
|
|
|
- CNYSubTotalAmount = ((payInfo.DayRate * payInfo.PayMoney) / 100) * payInfo.PayPercentage //此次付款金额
|
|
|
+ CNYSubTotalAmount = _CNYSubTotalAmount
|
|
|
};
|
|
|
|
|
|
- string remaksDescription = $"【{childInfo.PayType}】【{childInfo.ModuleName}】{rouNumber}、[申请人:{childInfo.Applicant}][收款方:{childInfo.Payee}]{priName},{payInfo.OtherBankName},{payInfo.OtherSideNo}[{payInfo.ConsumptionPatterns}] {childInfo.PayCurrCode} {payInfo.PayMoney.ToString("#0.00")}、CNY:{childInfo.CNYSubTotalAmount.ToString("#0.00")}";
|
|
|
+ //string remaksDescription = $"【{childInfo.PayType}】【{childInfo.ModuleName}】{rouNumber}、[申请人:{childInfo.Applicant}][收款方:{childInfo.Payee}]{priName},{payInfo.OtherBankName},{payInfo.OtherSideNo}[{payInfo.ConsumptionPatterns}] {childInfo.PayCurrCode} {payInfo.PayMoney.ToString("#0.00")}、CNY:{childInfo.CNYSubTotalAmount.ToString("#0.00")}(团组:{groupInfo.TeamName})";
|
|
|
+
|
|
|
+ string remaksDescription = $"【{childInfo.PayType}】【{childInfo.ModuleName}】{rouNumber}、[申请人:{childInfo.Applicant}]{priName}[收款方:{childInfo.Payee}] {childInfo.PayCurrCode} {_PaymentAmount.ToString("#0.00")}、CNY:{childInfo.CNYSubTotalAmount.ToString("#0.00")}(团组:{groupInfo.TeamName})";
|
|
|
|
|
|
childInfo.RemaksDescription = remaksDescription;
|
|
|
childList.Add(childInfo);
|
|
@@ -2611,8 +2712,10 @@ namespace OASystem.API.Controllers
|
|
|
//groupGZSubStr += $"\t";
|
|
|
}
|
|
|
|
|
|
- if (!string.IsNullOrEmpty(groupGZSubStr)) groupGZStr += $"团组:{item.GroupName}\r\n{groupGZSubStr}\r\n";
|
|
|
- if (!string.IsNullOrEmpty(groupSZSubStr)) groupSZStr += $"团组:{item.GroupName}\r\n{groupSZSubStr}\r\n";
|
|
|
+ //if (!string.IsNullOrEmpty(groupGZSubStr)) groupGZStr += $"团组:{item.GroupName}\r\n{groupGZSubStr}\r\n";
|
|
|
+ //if (!string.IsNullOrEmpty(groupSZSubStr)) groupSZStr += $"团组:{item.GroupName}\r\n{groupSZSubStr}\r\n";
|
|
|
+ if (!string.IsNullOrEmpty(groupGZSubStr)) groupGZStr += $"{groupGZSubStr}\r\n";
|
|
|
+ if (!string.IsNullOrEmpty(groupSZSubStr)) groupSZStr += $"{groupSZSubStr}\r\n";
|
|
|
|
|
|
}
|
|
|
|