|
@@ -15,6 +15,7 @@ using OASystem.API.OAMethodLib.JuHeAPI;
|
|
|
using OASystem.Domain.AesEncryption;
|
|
|
using OASystem.Domain.Dtos.Statistics;
|
|
|
using OASystem.Domain.Entities.Customer;
|
|
|
+using OASystem.Domain.Entities.Financial;
|
|
|
using OASystem.Domain.Entities.Groups;
|
|
|
using OASystem.Domain.ViewModels.Financial;
|
|
|
using OASystem.Domain.ViewModels.JuHeExchangeRate;
|
|
@@ -23,6 +24,7 @@ using OASystem.Domain.ViewModels.Statistics;
|
|
|
using OASystem.Infrastructure.Repositories.Groups;
|
|
|
using System;
|
|
|
using System.Data;
|
|
|
+using TencentCloud.Ocr.V20181119.Models;
|
|
|
using static OASystem.API.OAMethodLib.GeneralMethod;
|
|
|
using TypeInfo = OASystem.Domain.ViewModels.Statistics.TypeInfo;
|
|
|
|
|
@@ -1296,6 +1298,33 @@ ORDER BY
|
|
|
_geView.GroupDecreaseFeeStr = string.Format(@"人民币总费用:{0} CNY", DecreaseCNYTotalPrice.ToString("#0.00"));
|
|
|
#endregion
|
|
|
|
|
|
+ #region 公司内部操作人员提成
|
|
|
+
|
|
|
+ var royaltyDatas = await _sqlSugar
|
|
|
+ .Queryable<Fin_RoyaltyConfirm, Sys_Users, Sys_Users>((rc, u1, u2) =>
|
|
|
+ new JoinQueryInfos(
|
|
|
+ JoinType.Left, rc.UserId == u1.Id,
|
|
|
+ JoinType.Left, rc.CreateUserId == u2.Id
|
|
|
+ ))
|
|
|
+ .Where((rc, u1, u2) => rc.IsDel == 0 && rc.TeamId == _dto.DiId && rc.IsConfirm == 1)
|
|
|
+ .Select((rc, u1, u2) => new GroupRoyaltyFeeInfo()
|
|
|
+ {
|
|
|
+ GroupId = rc.TeamId,
|
|
|
+ OverviewInfo = rc.Temp,
|
|
|
+ DetailedInfo = rc.ChiArr,
|
|
|
+ Amount = rc.Price,
|
|
|
+ IsConfirm = rc.IsConfirm ,
|
|
|
+ IsSeed = rc.IsSeed ,
|
|
|
+ RoyaltyUserName = u1.CnName,
|
|
|
+ CreateUserName = u2.CnName,
|
|
|
+ CreateTime = rc.CreateTime
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
+ decimal royaltyCNYTotalPrice = royaltyDatas.Sum(x => x.Amount);
|
|
|
+ _geView.GroupRoyaltyFeeViews = _mapper.Map<List<GroupRoyaltyFeeView>>(royaltyDatas);
|
|
|
+ _geView.GroupRoyaltyFeeStr = string.Format(@"人民币总费用:{0} CNY", royaltyCNYTotalPrice.ToString("#0.00"));
|
|
|
+ #endregion
|
|
|
+
|
|
|
_view.GroupExpenditure = _geView;
|
|
|
#endregion
|
|
|
|
|
@@ -1314,7 +1343,7 @@ ORDER BY
|
|
|
decimal _receivableProfit = 0.00M; //应收利润
|
|
|
decimal _receivedProfit = 0.00M; //已收利润
|
|
|
_totalExpenditure = HotelCNYTotalPrice + CTGGRCNYTotalPrice + AirCNYTotalPrice + VisaCNYTotalPirce + InvitationalCNYTotalPrice +
|
|
|
- InsuranceCNYTotalPrice + DecreaseCNYTotalPrice + exTotalAmount;
|
|
|
+ InsuranceCNYTotalPrice + DecreaseCNYTotalPrice + exTotalAmount + royaltyCNYTotalPrice;
|
|
|
_amountReceivable = frTotalAmount;
|
|
|
_amountReceived = prTotalAmount;
|
|
|
_receivableProfit = _amountReceivable - promTotalAmount - _totalExpenditure;
|
|
@@ -1423,6 +1452,12 @@ ORDER BY
|
|
|
var SKTHFeeDt = new DataTable($"SKTHFeeView");
|
|
|
decimal SKTHCNYTotalCost = 0.00M;
|
|
|
|
|
|
+ //操作提成
|
|
|
+ var royaltyFeeSheet = worksheets["操作提成"];
|
|
|
+ var royaltyFeeDt = new DataTable($"royaltyFeeView");
|
|
|
+ decimal royaltyCNYTotalCost = 0.00M;
|
|
|
+
|
|
|
+
|
|
|
var totalAmount = 0.00M; //支出成本合计
|
|
|
var accountsAmount = 0.00M; //应收金额合计
|
|
|
var receivedAmount = 0.00M; //已收金额合计
|
|
@@ -2027,6 +2062,46 @@ ORDER BY
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
+ #region 操作提成
|
|
|
+
|
|
|
+ if (SKTHFeeSheet != null)
|
|
|
+ {
|
|
|
+ var _royaltyDatas = await _sqlSugar
|
|
|
+ .Queryable<Fin_RoyaltyConfirm, Sys_Users, Sys_Users>((rc, u1, u2) =>
|
|
|
+ new JoinQueryInfos(
|
|
|
+ JoinType.Left, rc.UserId == u1.Id,
|
|
|
+ JoinType.Left, rc.CreateUserId == u2.Id
|
|
|
+ ))
|
|
|
+ .Where((rc, u1, u2) => rc.IsDel == 0 && rc.TeamId == _dto.DiId && rc.IsConfirm == 1)
|
|
|
+ .Select((rc, u1, u2) => new GroupRoyaltyFeeInfo()
|
|
|
+ {
|
|
|
+ GroupId = rc.TeamId,
|
|
|
+ OverviewInfo = rc.Temp,
|
|
|
+ DetailedInfo = rc.ChiArr,
|
|
|
+ Amount = rc.Price,
|
|
|
+ IsConfirm = rc.IsConfirm,
|
|
|
+ IsSeed = rc.IsSeed,
|
|
|
+ RoyaltyUserName = u1.CnName,
|
|
|
+ CreateUserName = u2.CnName,
|
|
|
+ CreateTime = rc.CreateTime
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
+
|
|
|
+ if (_royaltyDatas.Any())
|
|
|
+ {
|
|
|
+
|
|
|
+ decimal royaltyCNYTotalPrice = _royaltyDatas.Sum(x => x.Amount);
|
|
|
+ var _royaltyFeeViews = _mapper.Map<List<GroupRoyaltyFeeExcelView>>(_royaltyDatas);
|
|
|
+
|
|
|
+ royaltyCNYTotalCost = _royaltyFeeViews.Sum(x => x.Amount);
|
|
|
+ royaltyFeeDt = CommonFun.ToDataTableArray(_royaltyFeeViews);
|
|
|
+ royaltyFeeDt.TableName = $"RoyaltyFeeView";
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
#region 应收金额(增加方式=实际报价时 费用必须审核才能进入团组报表)
|
|
|
decimal frTotalAmount = 0.00M;//应收总金额
|
|
|
string _frSql = string.Format(@" Select fr.Id,fr.AddingWay,fr.Status,u.CnName As Auditor,fr.AuditTime,fr.Diid,fr.PriceName,fr.Price,fr.Count,fr.Unit,fr.Currency,
|
|
@@ -2091,6 +2166,7 @@ ORDER BY
|
|
|
new object[] { $"保险费用", insureCNYTotalCost, $"CNY" },
|
|
|
new object[] { $"其他费用", otherCNYTotalCost, $"CNY" },
|
|
|
new object[] { $"收款退还费用", SKTHCNYTotalCost, $"CNY" },
|
|
|
+ new object[] { $"操作提成费用", royaltyCNYTotalCost, $"CNY" },
|
|
|
};
|
|
|
|
|
|
// 批量添加
|
|
@@ -2137,7 +2213,11 @@ ORDER BY
|
|
|
|
|
|
//收款退还
|
|
|
designer.SetDataSource(SKTHFeeDt);
|
|
|
- designer.SetDataSource("SKTHCNYTotalCost", $"{SKTHCNYTotalCost.ToString("#0.00")}");
|
|
|
+ designer.SetDataSource("SKTHCNYTotalCost", $"{SKTHCNYTotalCost.ToString("#0.00")} CNY");
|
|
|
+
|
|
|
+ //操作提成
|
|
|
+ designer.SetDataSource(royaltyFeeDt);
|
|
|
+ designer.SetDataSource("RoyaltyCNYTotalCost", $"{royaltyCNYTotalCost.ToString("#0.00")} CNY");
|
|
|
|
|
|
//已收金额
|
|
|
designer.SetDataSource(receivedFeeDt);
|
|
@@ -2164,7 +2244,7 @@ ORDER BY
|
|
|
* 利润差 = 应收利润 - 已收利润
|
|
|
*/
|
|
|
|
|
|
- totalAmount = visaCNYTotalCost + hotelCNYTotalCost + OPCNYTotalCost + OACNYTotalCost + airTicketCNYTotalCost + insureCNYTotalCost + otherCNYTotalCost;//合计金额
|
|
|
+ totalAmount = visaCNYTotalCost + hotelCNYTotalCost + OPCNYTotalCost + OACNYTotalCost + airTicketCNYTotalCost + insureCNYTotalCost + otherCNYTotalCost + royaltyCNYTotalCost;//合计金额
|
|
|
accountsProfit = accountsAmount - totalAmount - SKTHCNYTotalCost; //应收利润
|
|
|
receiveProfit = receivedAmount - totalAmount - SKTHCNYTotalCost; //已收利润
|
|
|
profitMargin = accountsProfit - receiveProfit; //利润差
|