Commit 652646ec authored by 吴春's avatar 吴春

批量生成财务单据

parent 2275c1bf
...@@ -2,10 +2,12 @@ ...@@ -2,10 +2,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Edu.Cache.User; using Edu.Cache.User;
using Edu.Common;
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Enum.Course; using Edu.Common.Enum.Course;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Finance;
using Edu.Model.ViewModel.Log; using Edu.Model.ViewModel.Log;
using Edu.Model.ViewModel.Sell; using Edu.Model.ViewModel.Sell;
using Edu.Module.Course; using Edu.Module.Course;
...@@ -27,6 +29,12 @@ namespace Edu.WebApi.Controllers.Course ...@@ -27,6 +29,12 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
private readonly CustomerCommissionModule customerCommissionModule = new CustomerCommissionModule(); private readonly CustomerCommissionModule customerCommissionModule = new CustomerCommissionModule();
/// <summary>
/// 财务配置
/// </summary>
private readonly EducationContractModule educationContractModule = new EducationContractModule();
#region 获取首页返佣 #region 获取首页返佣
/// <summary> /// <summary>
/// 获取首页返佣统计 /// 获取首页返佣统计
...@@ -280,5 +288,141 @@ namespace Edu.WebApi.Controllers.Course ...@@ -280,5 +288,141 @@ namespace Edu.WebApi.Controllers.Course
} }
#endregion #endregion
#region 批量生成返佣金额财务单据
[HttpPost]
public ApiResult SetBatchFinance()
{
var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Order_ReturnComission_ViewModel>(RequestParm.Msg.ToString());
dmodel.GroupId = userInfo.Group_Id;
if (dmodel.BatchId <= 0)
{
return ApiResult.ParamIsNull("请传递期数id");
}
var financeConfig = educationContractModule.GetFinanceConfigList(new RB_Finance_Config_ViewModel { Group_Id = userInfo.Group_Id, Type = Common.Enum.Course.FinanceConfigTypeEnum.SellCommission }).FirstOrDefault();
if (financeConfig == null)
{
financeConfig = new RB_Finance_Config_ViewModel();
}
var list = customerCommissionModule.GetCommissionUserList(dmodel);
if (list == null || !list.Any(x => x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.EmployeeInput))
{
return ApiResult.Failed("暂无个人直客数据");
}
List<object> financeList = new List<object>();
foreach (var item in list.Where(x => x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.EmployeeInput).GroupBy(x => x.SchoolId))//先区分出校区
{
foreach (var deptItem in list.Where(x => x.SchoolId == item.Key && x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.EmployeeInput).GroupBy(x => x.UserDept))//区分出同一个校区不同部门
{
var tempList = list.Where(x => x.SchoolId == item.Key && x.UserDept == deptItem.Key);
if (tempList != null && tempList.Any())
{
List<object> deptList = new List<object>();
foreach (var itemDept in tempList)
{
if (itemDept.CommissionMoeny > 0 && itemDept.UserDept > 0)
{
var deptObj = new
{
ID = 0,
UnitPrice = Math.Round((itemDept.CommissionMoeny / itemDept.StudentCount), 2, MidpointRounding.AwayFromZero),
UnitPriceTo = "",
Number = itemDept.StudentCount,
Rate = 1,
CostTypeId = financeConfig.CostTypeId,//配置信息
CurrencyId = financeConfig.CurrencyId,
Remark = itemDept.UserName + "的提成,学生数:" + itemDept.StudentCount + ",总提成:" + itemDept.CommissionMoeny,
CostTypeName = "",//费用名称
yTotalPrice = itemDept.CommissionMoeny,
yTotalPriceTo = itemDept.CommissionMoeny,
bTotalPrice = itemDept.CommissionMoeny,
bTotalPriceTo = itemDept.CommissionMoeny,
show = true,
currenName = "人民币"
};
deptList.Add(deptObj);
}
}
var financeModel = new
{
FrID = 0,
OrderID = 0,
TemplateId = financeConfig.TempleteId,//配置信息
financeConfig.ClientID,//配置信息
ClientType = 10,//配置信息
RemitterName = "工资或提成(工资或提成)",//配置信息
AccountNumber = "虚拟-公账-公账",//配置信息
Type = 2,
RB_Branch_Id = item.Key,
RB_Depart_Id = deptItem.Key,
Money = 0,
PayMoney = 0,
Status = 1,
Fee = 0,
IsPublic = 1,//配置信息
IsUploadPic = 0,
OriginalFee = 0,
TradeDate = "",
PayDate = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
FinanceName = "",//配置信息
CreateDate = "",
EmName = userInfo.AccountName,
CompanyName = userInfo.SchoolName,
Description = "自动生成财务单据",
IsLeader = 1,
InvoiceType = 0,
InvoiceMoney = 0,
InvoiceRemark = "",
detailList = deptList,
RB_DepartName = tempList.FirstOrDefault()?.UserDeptName,
RB_BranchName = tempList.FirstOrDefault()?.SchoolName,
RelevanceFrId = "",
CreateBy = userInfo.Id,
OrderSource = 17,
RB_Group_Id = userInfo.Group_Id,
RB_CreateByName = userInfo.AccountName,
RB_GroupName = userInfo.GroupName,
};
financeList.Add(financeModel);
}
}
}
string sign = EncryptionHelper.AesEncrypt(JsonHelper.Serialize(financeList), Config.FinanceKey);
var resultInfo = new
{
msg = sign,
};
string apiResult = Common.Plugin.HttpHelper.HttpPost(Config.ReadConfigKey("SellFinanceApi"), JsonHelper.Serialize(resultInfo), "");
JObject parmsJob = JObject.Parse(apiResult);
string resultCode = parmsJob.GetStringValue("resultCode");
string message = parmsJob.GetStringValue("message");
string frid = parmsJob.GetStringValue("data");
if (resultCode == "1" && !string.IsNullOrWhiteSpace(frid))//新增记录
{
bool result = customerCommissionModule.UdateReturnMoneyModule(frid.Trim('"'), dmodel.BatchId);
if (result)
{
return ApiResult.Success("生成财务单据成功");
}
else
{
return ApiResult.Failed("保存财务单据失败,财务单据:" + frid);
}
}
else
{
return ApiResult.Failed(message);
}
}
#endregion
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment