Commit b52eaff6 authored by liudong1993's avatar liudong1993

简易报表调整

parent 2f083632
...@@ -273,5 +273,10 @@ namespace Edu.Model.Entity.Course ...@@ -273,5 +273,10 @@ namespace Edu.Model.Entity.Course
/// 预约单号 /// 预约单号
/// </summary> /// </summary>
public int VisitorReserveId { get; set; } public int VisitorReserveId { get; set; }
/// <summary>
/// 留学确认时间(确认后 才能发提成 才进报表)
/// </summary>
public DateTime? LXConfirmDate { get; set; }
} }
} }
...@@ -21,7 +21,7 @@ namespace Edu.Model.Entity.Finance ...@@ -21,7 +21,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 年份 /// 年份
/// </summary> /// </summary>
public int? Year public int Year
{ {
get; get;
set; set;
...@@ -37,7 +37,7 @@ namespace Edu.Model.Entity.Finance ...@@ -37,7 +37,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 一月 /// 一月
/// </summary> /// </summary>
public decimal? January public decimal January
{ {
get; get;
set; set;
...@@ -45,7 +45,7 @@ namespace Edu.Model.Entity.Finance ...@@ -45,7 +45,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 二月 /// 二月
/// </summary> /// </summary>
public decimal? February public decimal February
{ {
get; get;
set; set;
...@@ -53,7 +53,7 @@ namespace Edu.Model.Entity.Finance ...@@ -53,7 +53,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 三月 /// 三月
/// </summary> /// </summary>
public decimal? March public decimal March
{ {
get; get;
set; set;
...@@ -61,7 +61,7 @@ namespace Edu.Model.Entity.Finance ...@@ -61,7 +61,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 第一季度 /// 第一季度
/// </summary> /// </summary>
public decimal? FirstQuarter public decimal FirstQuarter
{ {
get; get;
set; set;
...@@ -69,7 +69,7 @@ namespace Edu.Model.Entity.Finance ...@@ -69,7 +69,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 四月 /// 四月
/// </summary> /// </summary>
public decimal? April public decimal April
{ {
get; get;
set; set;
...@@ -77,7 +77,7 @@ namespace Edu.Model.Entity.Finance ...@@ -77,7 +77,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 五月 /// 五月
/// </summary> /// </summary>
public decimal? May public decimal May
{ {
get; get;
set; set;
...@@ -85,7 +85,7 @@ namespace Edu.Model.Entity.Finance ...@@ -85,7 +85,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 六月 /// 六月
/// </summary> /// </summary>
public decimal? June public decimal June
{ {
get; get;
set; set;
...@@ -93,7 +93,7 @@ namespace Edu.Model.Entity.Finance ...@@ -93,7 +93,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 第二季度 /// 第二季度
/// </summary> /// </summary>
public decimal? SecondQuarter public decimal SecondQuarter
{ {
get; get;
set; set;
...@@ -101,7 +101,7 @@ namespace Edu.Model.Entity.Finance ...@@ -101,7 +101,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 上半年报 /// 上半年报
/// </summary> /// </summary>
public decimal? HalfReport public decimal HalfReport
{ {
get; get;
set; set;
...@@ -109,7 +109,7 @@ namespace Edu.Model.Entity.Finance ...@@ -109,7 +109,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 七月 /// 七月
/// </summary> /// </summary>
public decimal? July public decimal July
{ {
get; get;
set; set;
...@@ -117,7 +117,7 @@ namespace Edu.Model.Entity.Finance ...@@ -117,7 +117,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 八月 /// 八月
/// </summary> /// </summary>
public decimal? August public decimal August
{ {
get; get;
set; set;
...@@ -125,7 +125,7 @@ namespace Edu.Model.Entity.Finance ...@@ -125,7 +125,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 九月 /// 九月
/// </summary> /// </summary>
public decimal? September public decimal September
{ {
get; get;
set; set;
...@@ -133,7 +133,7 @@ namespace Edu.Model.Entity.Finance ...@@ -133,7 +133,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 第三季度 /// 第三季度
/// </summary> /// </summary>
public decimal? ThirdQuarter public decimal ThirdQuarter
{ {
get; get;
set; set;
...@@ -141,7 +141,7 @@ namespace Edu.Model.Entity.Finance ...@@ -141,7 +141,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 十月 /// 十月
/// </summary> /// </summary>
public decimal? October public decimal October
{ {
get; get;
set; set;
...@@ -149,7 +149,7 @@ namespace Edu.Model.Entity.Finance ...@@ -149,7 +149,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 十一月 /// 十一月
/// </summary> /// </summary>
public decimal? November public decimal November
{ {
get; get;
set; set;
...@@ -157,7 +157,7 @@ namespace Edu.Model.Entity.Finance ...@@ -157,7 +157,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 十二月 /// 十二月
/// </summary> /// </summary>
public decimal? December public decimal December
{ {
get; get;
set; set;
...@@ -165,7 +165,7 @@ namespace Edu.Model.Entity.Finance ...@@ -165,7 +165,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 第四季度 /// 第四季度
/// </summary> /// </summary>
public decimal? FourthQuarter public decimal FourthQuarter
{ {
get; get;
set; set;
...@@ -173,7 +173,7 @@ namespace Edu.Model.Entity.Finance ...@@ -173,7 +173,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 下半年报 /// 下半年报
/// </summary> /// </summary>
public decimal? LastHalfReport public decimal LastHalfReport
{ {
get; get;
set; set;
...@@ -181,7 +181,7 @@ namespace Edu.Model.Entity.Finance ...@@ -181,7 +181,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 总计 /// 总计
/// </summary> /// </summary>
public decimal? Total public decimal Total
{ {
get; get;
set; set;
...@@ -189,7 +189,7 @@ namespace Edu.Model.Entity.Finance ...@@ -189,7 +189,7 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 集团ID /// 集团ID
/// </summary> /// </summary>
public int? Rb_Group_Id public int Rb_Group_Id
{ {
get; get;
set; set;
...@@ -197,16 +197,21 @@ namespace Edu.Model.Entity.Finance ...@@ -197,16 +197,21 @@ namespace Edu.Model.Entity.Finance
/// <summary> /// <summary>
/// 所属公司 /// 所属公司
/// </summary> /// </summary>
public int? BranchId public int BranchId
{ {
get; set; get; set;
} }
/// <summary> /// <summary>
/// 排序 /// 排序
/// </summary> /// </summary>
public int? Sort public int Sort
{ {
get; set; get; set;
} }
/// <summary>
/// 费用类型
/// </summary>
public string CostTypeIds { get; set; }
} }
} }
...@@ -105,12 +105,17 @@ namespace Edu.Model.Entity.Finance ...@@ -105,12 +105,17 @@ namespace Edu.Model.Entity.Finance
set; set;
} }
/// <summary> /// <summary>
/// 是否进入营收报表 /// 是否进入营收报表 1是
/// </summary> /// </summary>
public int? Is_Report { get; set; } public int? Is_Report { get; set; }
/// <summary> /// <summary>
/// 是否是机密费用 1是 0否 /// 是否是机密费用 1是 0否
/// </summary> /// </summary>
public int? IsSecret { get; set; } public int? IsSecret { get; set; }
/// <summary>
/// 费用类型 1费用(计算利润) 2往来 3其他
/// </summary>
public int ReportType { get; set; }
} }
} }
...@@ -137,10 +137,5 @@ namespace Edu.Model.Entity.StudyAbroad ...@@ -137,10 +137,5 @@ namespace Edu.Model.Entity.StudyAbroad
/// </summary> /// </summary>
public string ImgCover { get; set; } public string ImgCover { get; set; }
/// <summary>
/// 确认时间(确认后 才能发提成 才进报表)
/// </summary>
public DateTime? ConfirmDate { get; set; }
} }
} }
...@@ -117,6 +117,16 @@ namespace Edu.Model.ViewModel.Course ...@@ -117,6 +117,16 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public string OPEndTime { get; set; } public string OPEndTime { get; set; }
/// <summary>
/// 确认开始时间
/// </summary>
public string ConfirmSTime { get; set; }
/// <summary>
/// 确认结束时间
/// </summary>
public string ConfirmETime { get; set; }
/// <summary> /// <summary>
/// 未收款 /// 未收款
/// </summary> /// </summary>
......
...@@ -30,5 +30,65 @@ namespace Edu.Model.ViewModel.Finance ...@@ -30,5 +30,65 @@ namespace Edu.Model.ViewModel.Finance
/// 跨年统计 起始月份 /// 跨年统计 起始月份
/// </summary> /// </summary>
public string StartMonth { get; set; } public string StartMonth { get; set; }
/// <summary>
/// 是否更新 1是
/// </summary>
public int IsUpdate { get; set; }
}
/// <summary>
/// 报表分组
/// </summary>
public class ReportGroupModel {
/// <summary>
/// 费用id
/// </summary>
public int CostTypeId { get; set; }
/// <summary>
/// 费用名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 类型 1费用(计算利润) 2往来 3其他
/// </summary>
public int ReportType { get; set; }
/// <summary>
/// 收支 1收 2支
/// </summary>
public int IncomeType { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
/// <summary>
/// 子集
/// </summary>
public List<ReportChildModel> ChildList { get; set; }
}
/// <summary>
/// 子集
/// </summary>
public class ReportChildModel {
/// <summary>
/// 费用id
/// </summary>
public int CostTypeId { get; set; }
/// <summary>
/// 费用名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
} }
} }
...@@ -70,6 +70,10 @@ namespace Edu.Model.ViewModel.Finance ...@@ -70,6 +70,10 @@ namespace Edu.Model.ViewModel.Finance
/// </summary> /// </summary>
public string GuestIdStr { get; set; } public string GuestIdStr { get; set; }
/// <summary>
/// 费用类型id
/// </summary>
public int CostTypeId { get; set; }
/// <summary> /// <summary>
/// 审核开始时间 /// 审核开始时间
......
...@@ -84,15 +84,5 @@ namespace Edu.Model.ViewModel.StudyAbroad ...@@ -84,15 +84,5 @@ namespace Edu.Model.ViewModel.StudyAbroad
/// 结束时间 /// 结束时间
/// </summary> /// </summary>
public string EndTime { get; set; } public string EndTime { get; set; }
/// <summary>
/// 确认开始时间
/// </summary>
public string ConfirmSTime { get; set; }
/// <summary>
/// 确认结束时间
/// </summary>
public string ConfirmETime { get; set; }
} }
} }
...@@ -558,7 +558,7 @@ namespace Edu.Module.Course ...@@ -558,7 +558,7 @@ namespace Edu.Module.Course
decimal TotalMoney = 0; decimal TotalMoney = 0;
foreach (var item in plist) foreach (var item in plist)
{ {
var dateqList = DateList.Where(x => x.TeacherId == item.TeacherId && x.Date == item.ClassDate).ToList(); var dateqList = DateList.Where(x => x.TeacherId == item.TeacherId && x.ClassId == item.ClassId && x.Date == item.ClassDate).ToList();
//查询课时 //查询课时
decimal ksNum = dateqList.Sum(x => x.KSNum); decimal ksNum = dateqList.Sum(x => x.KSNum);
//查询课单价 //查询课单价
......
...@@ -105,6 +105,10 @@ namespace Edu.Module.Finance ...@@ -105,6 +105,10 @@ namespace Edu.Module.Finance
/// </summary> /// </summary>
private readonly RB_OrderRepository orderRepository = new RB_OrderRepository(); private readonly RB_OrderRepository orderRepository = new RB_OrderRepository();
/// <summary> /// <summary>
/// 订单学生
/// </summary>
private readonly RB_Order_GuestRepository order_GuestRepository = new RB_Order_GuestRepository();
/// <summary>
/// 教师奖励明细 /// 教师奖励明细
/// </summary> /// </summary>
private readonly RB_Teaching_BonusDetailRepository teaching_BonusDetailRepository = new RB_Teaching_BonusDetailRepository(); private readonly RB_Teaching_BonusDetailRepository teaching_BonusDetailRepository = new RB_Teaching_BonusDetailRepository();
...@@ -452,7 +456,7 @@ namespace Edu.Module.Finance ...@@ -452,7 +456,7 @@ namespace Edu.Module.Finance
#region 留学就业 #region 留学就业
//查询日期范围内所有的留学就业项目 //查询日期范围内所有的留学就业项目
var saList = studyAbroadRepository.GetStudyAbroadListExtRepository(new Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel() { Group_Id = GroupId, SaleState = Common.Enum.Sale.SaleStateEnum.Sell, StartTime = STime, EndTime = ETime }); var saList = studyAbroadRepository.GetStudyAbroadListExtRepository(new Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel() { Group_Id = GroupId, School_Id = -1, SaleState = Common.Enum.Sale.SaleStateEnum.Sell, StartTime = STime, EndTime = ETime });
if (saList.Any()) { if (saList.Any()) {
string saIds = string.Join(",", saList.Select(x => x.Id)); string saIds = string.Join(",", saList.Select(x => x.Id));
//根据班级查询所有的订单列表 //根据班级查询所有的订单列表
...@@ -1147,31 +1151,31 @@ namespace Edu.Module.Finance ...@@ -1147,31 +1151,31 @@ namespace Edu.Module.Finance
{ {
Year = Year, Year = Year,
Abstract = FYLXitem.ToString(), Abstract = FYLXitem.ToString(),
January = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.January.Value), January = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.January),
February = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.February.Value), February = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.February),
March = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.March.Value), March = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.March),
FirstQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.FirstQuarter.Value), FirstQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.FirstQuarter),
April = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.April.Value), April = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.April),
May = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.May.Value), May = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.May),
June = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.June.Value), June = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.June),
SecondQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.SecondQuarter.Value), SecondQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.SecondQuarter),
HalfReport = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.HalfReport.Value), HalfReport = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.HalfReport),
July = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.July.Value), July = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.July),
August = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.August.Value), August = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.August),
September = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.September.Value), September = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.September),
ThirdQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.ThirdQuarter.Value), ThirdQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.ThirdQuarter),
October = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.October.Value), October = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.October),
November = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.November.Value), November = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.November),
December = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.December.Value), December = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.December),
FourthQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.FourthQuarter.Value), FourthQuarter = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.FourthQuarter),
LastHalfReport = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.LastHalfReport.Value), LastHalfReport = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.LastHalfReport),
Total = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.Total.Value), Total = simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.Total),
Sort = j, Sort = j,
Rb_Group_Id = GroupId, Rb_Group_Id = GroupId,
BranchId = -1 BranchId = -1
}; };
j++; j++;
Console.WriteLine("总计:" + FYLXitem + "金额:" + simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.January.Value)); Console.WriteLine("总计:" + FYLXitem + "金额:" + simpleReportList.Where(x => x.Abstract == FYLXitem.ToString()).Sum(x => x.January));
edu_simpleReportRepository.Insert(simpleReport); edu_simpleReportRepository.Insert(simpleReport);
} }
...@@ -1191,203 +1195,821 @@ namespace Edu.Module.Finance ...@@ -1191,203 +1195,821 @@ namespace Edu.Module.Finance
return true; return true;
} }
/// <summary> /// <summary>
/// 获取简易报表列 /// 新版本更新简易报
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="GroupId"></param>
/// <param name="Year"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_SimpleReport_Extend> GetEasyReportList(RB_SimpleReport_Extend model) public bool InsertBatchSimple_V2(int GroupId, int Year)
{ {
var list = edu_simpleReportRepository.GetList(model); edu_UpdateRecordRepository.Insert(new RB_Report_UpdateRecord()
var clist = costtypeRepository.GetList(new RB_Costtype_Extend() { RB_Group_Id = model.Rb_Group_Id });
foreach (var item in list)
{ {
if (item.Abstract == "工资") Type = 2,
StartDate = DateTime.Now
});
try
{ {
item.CostIds = GetCostIds((int)CostEnum.GZ, clist); string sDate = Year + "-01-01";
} string eDate = DateTime.Now.AddYears(1).AddDays(-1).ToString("yyyy-MM-dd");
else if (item.Abstract == "旅游意外保险") #region 查询费用
var ctList = costtypeRepository.GetList(new RB_Costtype_Extend() { RB_Group_Id = GroupId });
//查询出分组的费用
List<int> groupList = ctList.Where(x => x.ReportType > 0).Select(x => x.ID).ToList();
//再查询出该下面 所有最下级的费用 需是进入报表统计的
List<ReportGroupModel> RGList = new List<ReportGroupModel>();
foreach (var item in groupList)
{
var nmodel = ctList.Where(x => x.ID == item).FirstOrDefault();
ReportGroupModel rgModel = new ReportGroupModel()
{
CostTypeId = item,
Name = nmodel.Name,
ReportType = nmodel.ReportType,
IncomeType = nmodel.Name.Contains("收入") ? 1 : 2,
Sort = nmodel.Sort ?? 0,
ChildList = new List<ReportChildModel>()
};
var qlist = ctList.Where(x => x.Is_Report == 1 && x.ParentId == item).ToList();
foreach (var qitem in qlist)
{ {
item.CostIds = GetCostIds((int)CostEnum.YWX, clist); var qctList = ctList.Where(x => x.Is_Report == 1 && x.ParentId == qitem.ID).ToList();
} if (qctList.Any())
else if (item.Abstract == "员工提成")
{ {
item.CostIds = GetCostIds((int)CostEnum.YGTC, clist); rgModel.ChildList.AddRange(qctList.Select(x => new ReportChildModel()
}
else if (item.Abstract == "社保")
{ {
item.CostIds = GetCostIds(((int)CostEnum.SB), clist); CostTypeId = x.ID,
Name = x.Name,
Sort = x.Sort ?? 0
}));
} }
else if (item.Abstract == "员工福利及竞赛奖金") else
{ {
item.CostIds = GetCostIds(((int)CostEnum.YGFL), clist); rgModel.ChildList.Add(new ReportChildModel()
}
else if (item.Abstract == "办公用品")
{ {
item.CostIds = GetCostIds(((int)CostEnum.BGYP), clist); CostTypeId = qitem.ID,
Name = qitem.Name,
Sort = qitem.Sort ?? 0
});
} }
else if (item.Abstract == "差旅费")
{
item.CostIds = GetCostIds(((int)CostEnum.CLF), clist);
} }
else if (item.Abstract == "电话费(通訊費)") RGList.Add(rgModel);
{
item.CostIds = GetCostIds(((int)CostEnum.DH), clist);
} }
else if (item.Abstract == "快递费") #endregion
//财务单据
var RZFinancelist = RB_FinanceRepository.GetListForReport(new RB_Finance_Extend() { sAduitDate = DateTime.Parse(sDate), eAduitDate = DateTime.Now.AddYears(1).AddDays(-1), RB_Branch_Id = -1, RB_Group_Id = GroupId, Is_TCID = 1, TCID = -1, FinanceType = 2 });
//获取资金调拨单据
var CapitalAllocationFinanceList = RB_FinanceRepository.GetTradeWayForCapitalAllocation(new RB_Finance_Extend() { sAduitDate = DateTime.Parse(sDate), eAduitDate = DateTime.Now.AddYears(1).AddDays(-1), RB_Branch_Id = -1, RB_Group_Id = GroupId, Is_TCID = 1, TCID = -1 });
//查询校区
var schoolList = schoolRepository.GetSchoolListRepository(new Model.ViewModel.User.RB_School_ViewModel() { Group_Id = GroupId });
List<string> shareList = new List<string>() { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" };
List<RB_SimpleReport> AllSchoolReportList = new List<RB_SimpleReport>();
foreach (var branchitem in schoolList)
{ {
item.CostIds = GetCostIds(((int)CostEnum.KDF), clist); Console.WriteLine("校区:" + branchitem.SName);
} List<RB_SimpleReport> SchoolReportList = new List<RB_SimpleReport>();
else if (item.Abstract == "物管水电费")
#region 班级统计
RB_SimpleReport IncomeReport = new RB_SimpleReport() { Year = Year, Abstract = "营业收入", Rb_Group_Id = GroupId, Sort = 1, BranchId = branchitem.SId, CostTypeIds = "" };
RB_SimpleReport OtherIncomeReport = new RB_SimpleReport() { Year = Year, Abstract = "其他收入", Rb_Group_Id = GroupId, Sort = 2, BranchId = branchitem.SId, CostTypeIds = "" };
RB_SimpleReport BonusReport = new RB_SimpleReport() { Year = Year, Abstract = "课时费", Rb_Group_Id = GroupId, Sort = 3, BranchId = branchitem.SId, CostTypeIds = "" };
RB_SimpleReport PerfReport = new RB_SimpleReport() { Year = Year, Abstract = "老师绩效", Rb_Group_Id = GroupId, Sort = 4, BranchId = branchitem.SId, CostTypeIds = "" };
RB_SimpleReport SellReport = new RB_SimpleReport() { Year = Year, Abstract = "销售提成", Rb_Group_Id = GroupId, Sort = 5, BranchId = branchitem.SId, CostTypeIds = "" };
RB_SimpleReport OtherCostReport = new RB_SimpleReport() { Year = Year, Abstract = "其他成本", Rb_Group_Id = GroupId, Sort = 6, BranchId = branchitem.SId, CostTypeIds = "" };
RB_SimpleReport TotalReport = new RB_SimpleReport() { Year = Year, Abstract = "营业总毛利", Rb_Group_Id = GroupId, Sort = 7, BranchId = branchitem.SId, CostTypeIds = "" };
foreach (var month in shareList)
{
string startTime = Year + "-" + month + "-01";
string endTime = Convert.ToDateTime(Year + "-" + month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
#region 班级
//首先根据签到表 查询出所有的班级 并分页
var list = class_CheckRepository.GetAllClassNowMonthStatistics(startTime, endTime, 0, "", branchitem.SId, GroupId);
if (list.Any())
{ {
item.CostIds = GetCostIds(((int)CostEnum.WGSDF), clist); string classIds = string.Join(",", list.Select(x => x.ClassId));
} //查询时间范围内 所有班级的学生上课金额
else if (item.Abstract == "房租") List<RB_Teaching_BonusDetail_ViewModel> StudentHoursList = new List<RB_Teaching_BonusDetail_ViewModel>();
//根据学生签到表 查询
var stulist = class_CheckRepository.GetStudentConsumptionHoursDetialList(0, -1, 0, startTime, endTime, "", 0, "", GroupId, classIds);
if (stulist.Any())
{ {
item.CostIds = GetCostIds(((int)CostEnum.FZ), clist); foreach (var item in stulist)
}
else if (item.Abstract == "广告费")
{ {
item.CostIds = GetCostIds(((int)CostEnum.GGF), clist); decimal UnitPrice = Math.Round(item.UnitPrice, 6, MidpointRounding.AwayFromZero);
} StudentHoursList.Add(new RB_Teaching_BonusDetail_ViewModel
else if (item.Abstract == "业务招待")
{ {
item.CostIds = GetCostIds(((int)CostEnum.YWZDF), clist); Date = item.ClassDate,
TimeBucket = item.StartDate + "~" + item.EndDate,
TeacherId = item.OrderGuestId,
TeacherName = item.GuestName,
ClassId = item.ClassId,
ClassName = item.ClassName,
ClassNo = item.ClassNo,
CouseId = item.CouseId,
CourseName = item.CourseName,
KSNum = item.CurrentDeductionHours,
Hours = 0,
HourMoney = 0,
UnitPrice = UnitPrice,
Money = Math.Round(item.UnitPrice * item.CurrentDeductionHours, 6, MidpointRounding.AwayFromZero)
});
} }
else if (item.Abstract == "累计折扣")
{
item.CostIds = GetCostIds(((int)CostEnum.LJZK), clist);
} }
else if (item.Abstract == "税金") //查询时间范围内 所有班级的销售提成 , 老师课时费 , 老师绩效
string STime = Convert.ToDateTime(startTime).AddMonths(-1).ToString("yyyy-MM-dd");
string ETime = Convert.ToDateTime(endTime).AddMonths(-1).ToString("yyyy-MM-dd");
var teacherBonusList = teaching_BonusDetailRepository.GetTeacherBonusForDate(GroupId, classIds, STime, ETime);
var meritsProfitList = teaching_PerfRepository.GetTeacherPerfForDate(GroupId, classIds, startTime, endTime);
var saleList = sell_Commission_DetailsRepository.GetSellCommissionForDate(GroupId, classIds, STime, ETime);
//查询时间范围内 除订单外 班级下其他订单 的其他收入 + 其他成本支出
var financeList = RB_FinanceRepository.GetListForReport(new RB_Finance_Extend() { RB_Group_Id = GroupId, TCIDStr = classIds, sAduitDate = Convert.ToDateTime(startTime), eAduitDate = Convert.ToDateTime(endTime), FinanceType = 2, OrderSource = OrderResourceEnum.Education });
foreach (var item in list)
{ {
item.CostIds = GetCostIds(((int)CostEnum.SJ), clist); #region 学生课耗
var slist = StudentHoursList.Where(x => x.ClassId == item.ClassId).ToList();
decimal TStuMoney = slist.Sum(x => x.Money);//上课总金额
#endregion
#region 提成
decimal BonusMoney = teacherBonusList.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.Money ?? 0;//老师课时费
decimal PerfMoney = meritsProfitList.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.Money ?? 0;//老师绩效
decimal SellMoney = saleList.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.CurrentPeriodMoney ?? 0;//销售提成
#endregion
#region 单据
decimal OtherIncome = financeList.Where(y => y.Type == WFTempLateClassEnum.IN && y.Is_Cashier == 1 && y.OrderID <= 0).Sum(x => x.Money ?? 0);
decimal Fee = financeList.Where(x => x.Type == WFTempLateClassEnum.IN && x.Is_Cashier == 1 && x.OrderID <= 0 && x.Fee > 0).GroupBy(x => new { x.FrID, x.Fee }).Sum(x => x.Key.Fee ?? 0);
OtherIncome -= Fee;
decimal OtherCost = financeList.Where(y => y.Type == WFTempLateClassEnum.OUT && y.OrderID <= 0).Sum(x => x.Money ?? 0);//支出也要排除订单订单退款
#endregion
UpdateClassReportDate(TotalReport, IncomeReport, OtherIncomeReport, BonusReport, PerfReport, SellReport, OtherCostReport, month, TStuMoney, BonusMoney, PerfMoney, SellMoney, OtherIncome, OtherCost);
} }
else if (item.Abstract == "平台使用费")
{
item.CostIds = GetCostIds(((int)CostEnum.PTSYF), clist);
} }
else if (item.Abstract == "電腦系统费") #endregion
#region 留学
//查询留学的
var lxOrderList = orderRepository.GetListForReport(new RB_Order_ViewModel() { Group_Id = GroupId, School_Id = branchitem.SId, OrderType = Common.Enum.Sale.OrderTypeEnum.StudyabroadOrder, Q_OrderState = 1, ConfirmSTime = startTime, ConfirmETime = endTime });
List<RB_Finance_Extend> lxFinanceList = new List<RB_Finance_Extend>();
List<Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel> saList = new List<Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel>();
if (lxOrderList.Any())
{ {
item.CostIds = GetCostIds(((int)CostEnum.DNXTF), clist); string orderIds = string.Join(",", lxOrderList.Select(x => x.OrderId));
string saIds = string.Join(",", lxOrderList.Select(x => x.SourceId).Distinct());
//查询留学产品
saList = studyAbroadRepository.GetStudyAbroadListExtRepository(new Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel() { Group_Id = GroupId, QIds = saIds });
//查询班级下所有的财务单据
lxFinanceList = RB_FinanceRepository.GetListForReport(new RB_Finance_Extend() { RB_Group_Id = GroupId, TCIDStr = saIds, sAduitDate = Convert.ToDateTime(startTime), eAduitDate = Convert.ToDateTime(endTime), FinanceType = 2, OrderSource = OrderResourceEnum.EducationStudy });
} }
else if (item.Abstract == "市内交通费")
foreach (var item in saList)
{ {
item.CostIds = GetCostIds(((int)CostEnum.SNJTF), clist); #region 订单
var olist = lxOrderList.Where(x => x.SourceId == item.Id).ToList();
decimal ShiShou = olist.Sum(item => item.Income - item.Refund + item.PlatformTax);
#endregion
#region 财务单据
var financeList = lxFinanceList.Where(x => x.TCID == item.Id).ToList();
//排序订单单据
var cfinanceList = financeList.Where(x => x.OrderID == 0 && x.Type == WFTempLateClassEnum.IN).ToList();
decimal QTShouRu = cfinanceList.Where(y => y.Is_Cashier == 1).Sum(x => x.Money ?? 0);
QTShouRu -= cfinanceList.Where(x => x.Is_Cashier == 1 && x.Fee > 0).GroupBy(x => new { x.FrID, x.Fee }).Sum(x => x.Key.Fee ?? 0);
//支出
decimal TiCheng = 0;//销售提成 -留学提成暂定
decimal ClassFee = 0;//老师提成 -留学暂定
decimal JiXiaoMoney = 0;//绩效提成 -留学暂定
var ofinanceList = financeList.Where(x => x.OrderID == 0 && x.Type == WFTempLateClassEnum.OUT).ToList();// 支出包括退款
decimal QTZhiChu = ofinanceList.Sum(x => x.Money ?? 0);
#endregion
UpdateClassReportDate(TotalReport, IncomeReport, OtherIncomeReport, BonusReport, PerfReport, SellReport, OtherCostReport, month, ShiShou, ClassFee, JiXiaoMoney, TiCheng, QTShouRu, QTZhiChu);
} }
else if (item.Abstract == "团队建设费")
{ #endregion
item.CostIds = GetCostIds(((int)CostEnum.TDJSF), clist);
} }
else if (item.Abstract == "会务费") Console.WriteLine("班级OK");
#endregion
#region 费用模块
var FYList = RGList.Where(x => x.ReportType == 1).OrderBy(x => x.Sort).ThenBy(x => x.CostTypeId).ToList();
List<RB_SimpleReport> FYReport = new List<RB_SimpleReport>();
//初始赋值营业总毛利
RB_SimpleReport fTotalReport = new RB_SimpleReport()
{ {
item.CostIds = GetCostIds(((int)CostEnum.HWF), clist); Year = Year,
} Abstract = "营业利润(亏损)",
else if (item.Abstract == "同行返利") Rb_Group_Id = GroupId,
Sort = 0,
BranchId = branchitem.SId,
CostTypeIds = "",
April = TotalReport.April,
August = TotalReport.August,
December = TotalReport.December,
February = TotalReport.February,
FirstQuarter = TotalReport.FourthQuarter,
FourthQuarter = TotalReport.FourthQuarter,
HalfReport = TotalReport.HalfReport,
January = TotalReport.January,
July = TotalReport.July,
June = TotalReport.June,
LastHalfReport = TotalReport.LastHalfReport,
March = TotalReport.March,
May = TotalReport.May,
November = TotalReport.November,
October = TotalReport.October,
SecondQuarter = TotalReport.SecondQuarter,
September = TotalReport.September,
ThirdQuarter = TotalReport.ThirdQuarter,
Total = TotalReport.Total
};//管销费用
int i = 8;
foreach (var gitem in FYList)
{
RB_SimpleReport groupReport = new RB_SimpleReport() { Year = Year, Abstract = gitem.Name + "小计", Rb_Group_Id = GroupId, Sort = 0, BranchId = branchitem.SId, CostTypeIds = string.Join(",", gitem.ChildList.Select(x => x.CostTypeId)) };
foreach (var qitem in gitem.ChildList.OrderBy(x=>x.Sort).ThenBy(x=>x.CostTypeId)) {
//子集具体费用
RB_SimpleReport fReport = new RB_SimpleReport() { Year = Year, Abstract = qitem.Name, Rb_Group_Id = GroupId, Sort = i, BranchId = branchitem.SId, CostTypeIds = qitem.CostTypeId.ToString() };
foreach (var month in shareList)
{
sDate = Convert.ToDateTime(Year + "-" + month + "-01").ToString("yyyy-MM-dd");
eDate = DateTime.Parse((Year + "-" + month + "-01")).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
decimal FYMoney = 0;
#region 日常费用
//当月的财务单据
var Financelist = RZFinancelist.Where(x => x.CostTypeId == qitem.CostTypeId && ((x.Type == WFTempLateClassEnum.OUT && x.CreateDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM")) || (x.Type != WFTempLateClassEnum.OUT && x.TradeDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM"))) && x.RB_Branch_Id == branchitem.SId).ToList();
//获取收入和支出
var cfinanceList = Financelist.Where(x => x.Type == WFTempLateClassEnum.IN).ToList();
decimal ShouRu = cfinanceList.Where(y => y.Is_Cashier == 1).Sum(x => x.Money ?? 0);
ShouRu -= cfinanceList.Where(x => x.Is_Cashier == 1 && x.Fee > 0).GroupBy(x => new { x.FrID, x.Fee }).Sum(x => x.Key.Fee ?? 0);
//支出
var ofinanceList = Financelist.Where(x => x.Type == WFTempLateClassEnum.OUT).ToList();
decimal ZhiChu = ofinanceList.Sum(x => x.Money ?? 0);
if (gitem.IncomeType == 2)
{ {
item.CostIds = GetCostIds(((int)CostEnum.THFL), clist); FYMoney = ZhiChu - ShouRu;
} }
else if (item.Abstract == "工会经费") else {
{ FYMoney = ShouRu - ZhiChu;
item.CostIds = GetCostIds(((int)CostEnum.GFJF), clist);
} }
else if (item.Abstract == "律师费") #endregion
#region 预付款处理
if (qitem.Name.Contains("预付"))
{ {
item.CostIds = GetCostIds(((int)CostEnum.LSF), clist); //预付款 冲抵
} var MatchList = Financelist.Where(x => x.MatchMoney > 0).ToList();
else if (item.Abstract == "服务器管理费") if (MatchList.Any())
{ {
item.CostIds = GetCostIds(((int)CostEnum.FWQGLF), clist); //减去冲抵的金额
} var newFList = MatchList.Select(x => x.FrID).Distinct().ToList();
else if (item.Abstract == "汇款手续费") decimal DelMoney = 0;
foreach (var item in newFList)
{ {
item.CostIds = GetCostIds(((int)CostEnum.HKSXF), clist); DelMoney += MatchList.Where(x => x.FrID == item).FirstOrDefault()?.MatchMoney ?? 0;
} }
else if (item.Abstract == "代收代付(导游佣金)") FYMoney -= DelMoney;
{
item.CostIds = GetCostIds(((int)CostEnum.DYYJ), clist);
} }
else if (item.Abstract == "代收代付(领队佣金)")
{
item.CostIds = GetCostIds(((int)CostEnum.LDYJ), clist);
} }
else if (item.Abstract == "航空公司保证金(会退)") #endregion
#region 资金调拨汇兑损益
if (qitem.Name == "汇兑损益")
{ {
item.CostIds = GetCostIds(((int)CostEnum.HKBZJ), clist); var calist = CapitalAllocationFinanceList.Where(x => x.AllotDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM") && x.BranchId == branchitem.SId).ToList();
//资金调拨的汇兑损益
decimal iMoney = calist.Where(x => x.AllotType == 1)?.Sum(x => x.Money ?? 0) ?? 0;
decimal oMoney = calist.Where(x => x.AllotType == 2)?.Sum(x => x.Money ?? 0) ?? 0;
FYMoney += oMoney - iMoney;
} }
else if (item.Abstract == "航空公司大订金(会抵扣)") #endregion
{
item.CostIds = GetCostIds(((int)CostEnum.HKDDJ), clist); switch (month) {
case "01":
fReport.January = FYMoney; groupReport.January += FYMoney; if (gitem.IncomeType == 2) fTotalReport.January += FYMoney; else fTotalReport.January -= FYMoney;
break;
case "02":
fReport.February = FYMoney; groupReport.February += FYMoney; if (gitem.IncomeType == 2) fTotalReport.February += FYMoney; else fTotalReport.February -= FYMoney;
break;
case "03":
fReport.March = FYMoney; groupReport.March += FYMoney; if (gitem.IncomeType == 2) fTotalReport.March += FYMoney; else fTotalReport.March -= FYMoney;
break;
case "04":
fReport.April = FYMoney; groupReport.April += FYMoney; if (gitem.IncomeType == 2) fTotalReport.April += FYMoney; else fTotalReport.April -= FYMoney;
break;
case "05":
fReport.May = FYMoney; groupReport.May += FYMoney; if (gitem.IncomeType == 2) fTotalReport.May += FYMoney; else fTotalReport.May -= FYMoney;
break;
case "06":
fReport.June = FYMoney; groupReport.June += FYMoney; if (gitem.IncomeType == 2) fTotalReport.June += FYMoney; else fTotalReport.June -= FYMoney;
break;
case "07":
fReport.July = FYMoney; groupReport.July += FYMoney; if (gitem.IncomeType == 2) fTotalReport.July += FYMoney; else fTotalReport.July -= FYMoney;
break;
case "08":
fReport.August = FYMoney; groupReport.August += FYMoney; if (gitem.IncomeType == 2) fTotalReport.August += FYMoney; else fTotalReport.August -= FYMoney;
break;
case "09":
fReport.September = FYMoney; groupReport.September += FYMoney; if (gitem.IncomeType == 2) fTotalReport.September += FYMoney; else fTotalReport.September -= FYMoney;
break;
case "10":
fReport.October = FYMoney; groupReport.October += FYMoney; if (gitem.IncomeType == 2) fTotalReport.October += FYMoney; else fTotalReport.October -= FYMoney;
break;
case "11":
fReport.November = FYMoney; groupReport.November += FYMoney; if (gitem.IncomeType == 2) fTotalReport.November += FYMoney; else fTotalReport.November -= FYMoney;
break;
case "12":
fReport.December = FYMoney; groupReport.December += FYMoney; if (gitem.IncomeType == 2) fTotalReport.December += FYMoney; else fTotalReport.December -= FYMoney;
break;
} }
else if (item.Abstract == "其他")
{
item.CostIds = GetCostIds(((int)CostEnum.JYBBQT), clist);
} }
else if (item.Abstract == "利息收入") i++;
{ FYReport.Add(fReport);
item.CostIds = GetCostIds(((int)CostEnum.LXSR), clist);
} }
else if (item.Abstract == "汇兑损益") groupReport.Sort = i; i++;
{ FYReport.Add(groupReport);
item.CostIds = GetCostIds(((int)CostEnum.HDSY), clist);
} }
else if (item.Abstract == "营业外收入") fTotalReport.Sort = i; i++;
FYReport.Add(fTotalReport);
Console.WriteLine("费用OK");
RB_SimpleReport NotReport = new RB_SimpleReport() { Year = Year, Abstract = "以下项均不计入计算", Rb_Group_Id = GroupId, Sort = 0, BranchId = branchitem.SId, CostTypeIds = "" };
NotReport.Sort = i; i++;
#endregion
#region 往来模块
var WLList = RGList.Where(x => x.ReportType == 2).OrderBy(x => x.Sort).ThenBy(x => x.CostTypeId).ToList();
List<RB_SimpleReport> WLReport = new List<RB_SimpleReport>();
foreach (var gitem in WLList)
{
RB_SimpleReport groupReport = new RB_SimpleReport() { Year = Year, Abstract = gitem.Name + "小计", Rb_Group_Id = GroupId, Sort = 0, BranchId = branchitem.SId, CostTypeIds = string.Join(",", gitem.ChildList.Select(x => x.CostTypeId)) };
foreach (var qitem in gitem.ChildList.OrderBy(x => x.Sort).ThenBy(x => x.CostTypeId))
{
//子集具体费用
RB_SimpleReport fReport = new RB_SimpleReport() { Year = Year, Abstract = qitem.Name, Rb_Group_Id = GroupId, Sort = i, BranchId = branchitem.SId, CostTypeIds = qitem.CostTypeId.ToString() };
foreach (var month in shareList)
{
sDate = Convert.ToDateTime(Year + "-" + month + "-01").ToString("yyyy-MM-dd");
eDate = DateTime.Parse((Year + "-" + month + "-01")).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
decimal FYMoney = 0;
#region 日常费用
//当月的财务单据
var Financelist = RZFinancelist.Where(x => x.CostTypeId == qitem.CostTypeId && ((x.Type == WFTempLateClassEnum.OUT && x.CreateDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM")) || (x.Type != WFTempLateClassEnum.OUT && x.TradeDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM"))) && x.RB_Branch_Id == branchitem.SId).ToList();
//获取收入和支出
var cfinanceList = Financelist.Where(x => x.Type == WFTempLateClassEnum.IN).ToList();
decimal ShouRu = cfinanceList.Where(y => y.Is_Cashier == 1).Sum(x => x.Money ?? 0);
ShouRu -= cfinanceList.Where(x => x.Is_Cashier == 1 && x.Fee > 0).GroupBy(x => new { x.FrID, x.Fee }).Sum(x => x.Key.Fee ?? 0);
//支出
var ofinanceList = Financelist.Where(x => x.Type == WFTempLateClassEnum.OUT).ToList();
decimal ZhiChu = ofinanceList.Sum(x => x.Money ?? 0);
if (gitem.IncomeType == 2)
{ {
item.CostIds = GetCostIds(((int)CostEnum.YYWSR), clist); FYMoney = ZhiChu - ShouRu;
} }
else if (item.Abstract == "其他营业支出") else
{ {
item.CostIds = GetCostIds(48, clist); FYMoney = ShouRu - ZhiChu;
} }
else if (item.Abstract == "居间佣金") #endregion
#region 预付款处理
if (qitem.Name.Contains("预付"))
{ {
item.CostIds = GetCostIds((int)CostEnum.JJYJ, clist); //预付款 冲抵
} var MatchList = Financelist.Where(x => x.MatchMoney > 0).ToList();
else if (item.Abstract == "应收应付款") if (MatchList.Any())
{ {
item.CostIds = GetCostIds(((int)CostEnum.YSYFK), clist); //减去冲抵的金额
} var newFList = MatchList.Select(x => x.FrID).Distinct().ToList();
else if (item.Abstract == "股东权益(投资款)") decimal DelMoney = 0;
foreach (var item in newFList)
{ {
item.CostIds = GetCostIds(((int)CostEnum.YSYFKTZ), clist); DelMoney += MatchList.Where(x => x.FrID == item).FirstOrDefault()?.MatchMoney ?? 0;
}
FYMoney -= DelMoney;
}
} }
else if (item.Abstract == "股东权益(利润分配)") #endregion
#region 资金调拨汇兑损益
if (qitem.Name == "汇兑损益")
{ {
item.CostIds = GetCostIds(((int)CostEnum.GZLRFP), clist); var calist = CapitalAllocationFinanceList.Where(x => x.AllotDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM") && x.BranchId == branchitem.SId).ToList();
//资金调拨的汇兑损益
decimal iMoney = calist.Where(x => x.AllotType == 1)?.Sum(x => x.Money ?? 0) ?? 0;
decimal oMoney = calist.Where(x => x.AllotType == 2)?.Sum(x => x.Money ?? 0) ?? 0;
FYMoney += oMoney - iMoney;
} }
else if (item.Abstract == "股东权益(员工红利)") #endregion
RB_SimpleReport cfReport = new RB_SimpleReport();
switch (month)
{ {
item.CostIds = GetCostIds(((int)CostEnum.GZYGHL), clist); case "01":
fReport.January = FYMoney; groupReport.January += FYMoney;
break;
case "02":
fReport.February = FYMoney; groupReport.February += FYMoney;
break;
case "03":
fReport.March = FYMoney; groupReport.March += FYMoney;
break;
case "04":
fReport.April = FYMoney; groupReport.April += FYMoney;
break;
case "05":
fReport.May = FYMoney; groupReport.May += FYMoney;
break;
case "06":
fReport.June = FYMoney; groupReport.June += FYMoney;
break;
case "07":
fReport.July = FYMoney; groupReport.July += FYMoney;
break;
case "08":
fReport.August = FYMoney; groupReport.August += FYMoney;
break;
case "09":
fReport.September = FYMoney; groupReport.September += FYMoney;
break;
case "10":
fReport.October = FYMoney; groupReport.October += FYMoney;
break;
case "11":
fReport.November = FYMoney; groupReport.November += FYMoney;
break;
case "12":
fReport.December = FYMoney; groupReport.December += FYMoney;
break;
} }
else if (item.Abstract == "预付款(教育)") }
i++;
WLReport.Add(fReport);
}
groupReport.Sort = i; i++;
WLReport.Add(groupReport);
}
Console.WriteLine("往来OK");
#endregion
#region 其他模块
var QTList = RGList.Where(x => x.ReportType == 3).OrderBy(x => x.Sort).ThenBy(x => x.CostTypeId).ToList();
List<RB_SimpleReport> QTReport = new List<RB_SimpleReport>();
foreach (var gitem in QTList)
{
RB_SimpleReport groupReport = new RB_SimpleReport() { Year = Year, Abstract = gitem.Name + "小计", Rb_Group_Id = GroupId, Sort = 0, BranchId = branchitem.SId, CostTypeIds = string.Join(",", gitem.ChildList.Select(x => x.CostTypeId)) };
foreach (var qitem in gitem.ChildList.OrderBy(x => x.Sort).ThenBy(x => x.CostTypeId))
{
//子集具体费用
RB_SimpleReport fReport = new RB_SimpleReport() { Year = Year, Abstract = qitem.Name, Rb_Group_Id = GroupId, Sort = i, BranchId = branchitem.SId, CostTypeIds = qitem.CostTypeId.ToString() };
foreach (var month in shareList)
{
sDate = Convert.ToDateTime(Year + "-" + month + "-01").ToString("yyyy-MM-dd");
eDate = DateTime.Parse((Year + "-" + month + "-01")).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
decimal FYMoney = 0;
#region 日常费用
//当月的财务单据
var Financelist = RZFinancelist.Where(x => x.CostTypeId == qitem.CostTypeId && ((x.Type == WFTempLateClassEnum.OUT && x.CreateDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM")) || (x.Type != WFTempLateClassEnum.OUT && x.TradeDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM"))) && x.RB_Branch_Id == branchitem.SId).ToList();
//获取收入和支出
var cfinanceList = Financelist.Where(x => x.Type == WFTempLateClassEnum.IN).ToList();
decimal ShouRu = cfinanceList.Where(y => y.Is_Cashier == 1).Sum(x => x.Money ?? 0);
ShouRu -= cfinanceList.Where(x => x.Is_Cashier == 1 && x.Fee > 0).GroupBy(x => new { x.FrID, x.Fee }).Sum(x => x.Key.Fee ?? 0);
//支出
var ofinanceList = Financelist.Where(x => x.Type == WFTempLateClassEnum.OUT).ToList();
decimal ZhiChu = ofinanceList.Sum(x => x.Money ?? 0);
if (gitem.IncomeType == 2)
{ {
item.CostIds = GetCostIds(((int)CostEnum.YFKCZ), clist); FYMoney = ZhiChu - ShouRu;
} }
else if (item.Abstract == "预付款(保证金.押金)") else
{ {
item.CostIds = GetCostIds(((int)CostEnum.YFKBZJYJ), clist); FYMoney = ShouRu - ZhiChu;
} }
else if (item.Abstract == "代收代付(领队.导游保证金)") #endregion
#region 预付款处理
if (qitem.Name.Contains("预付"))
{
//预付款 冲抵
var MatchList = Financelist.Where(x => x.MatchMoney > 0).ToList();
if (MatchList.Any())
{
//减去冲抵的金额
var newFList = MatchList.Select(x => x.FrID).Distinct().ToList();
decimal DelMoney = 0;
foreach (var item in newFList)
{ {
item.CostIds = GetCostIds(((int)CostEnum.LDDYBZJ), clist); DelMoney += MatchList.Where(x => x.FrID == item).FirstOrDefault()?.MatchMoney ?? 0;
} }
else if (item.Abstract == "备用金") FYMoney -= DelMoney;
}
}
#endregion
#region 资金调拨汇兑损益
if (qitem.Name == "汇兑损益")
{ {
item.CostIds = GetCostIds(((int)CostEnum.BYJ), clist); var calist = CapitalAllocationFinanceList.Where(x => x.AllotDate.Value.ToString("yyyy-MM") == Convert.ToDateTime(sDate).ToString("yyyy-MM") && x.BranchId == branchitem.SId).ToList();
//资金调拨的汇兑损益
decimal iMoney = calist.Where(x => x.AllotType == 1)?.Sum(x => x.Money ?? 0) ?? 0;
decimal oMoney = calist.Where(x => x.AllotType == 2)?.Sum(x => x.Money ?? 0) ?? 0;
FYMoney += oMoney - iMoney;
} }
else if (item.Abstract == "个人借款") #endregion
switch (month)
{ {
item.CostIds = GetCostIds(((int)CostEnum.GRJD), clist); case "01":
fReport.January = FYMoney; groupReport.January += FYMoney;
break;
case "02":
fReport.February = FYMoney; groupReport.February += FYMoney;
break;
case "03":
fReport.March = FYMoney; groupReport.March += FYMoney;
break;
case "04":
fReport.April = FYMoney; groupReport.April += FYMoney;
break;
case "05":
fReport.May = FYMoney; groupReport.May += FYMoney;
break;
case "06":
fReport.June = FYMoney; groupReport.June += FYMoney;
break;
case "07":
fReport.July = FYMoney; groupReport.July += FYMoney;
break;
case "08":
fReport.August = FYMoney; groupReport.August += FYMoney;
break;
case "09":
fReport.September = FYMoney; groupReport.September += FYMoney;
break;
case "10":
fReport.October = FYMoney; groupReport.October += FYMoney;
break;
case "11":
fReport.November = FYMoney; groupReport.November += FYMoney;
break;
case "12":
fReport.December = FYMoney; groupReport.December += FYMoney;
break;
}
}
i++;
QTReport.Add(fReport);
}
groupReport.Sort = i; i++;
QTReport.Add(groupReport);
}
Console.WriteLine("其他OK");
#endregion
#region 计算统计
SchoolReportList.Add(IncomeReport);
SchoolReportList.Add(OtherIncomeReport);
SchoolReportList.Add(BonusReport);
SchoolReportList.Add(PerfReport);
SchoolReportList.Add(SellReport);
SchoolReportList.Add(OtherCostReport);
SchoolReportList.Add(TotalReport);
SchoolReportList.Add(NotReport);
SchoolReportList.AddRange(FYReport);
SchoolReportList.AddRange(WLReport);
SchoolReportList.AddRange(QTReport);
SchoolReportList.ForEach(x =>
{
x.FirstQuarter = x.January + x.February + x.March;
x.SecondQuarter = x.April + x.May + x.June;
x.ThirdQuarter = x.July + x.August + x.September;
x.FourthQuarter = x.October + x.November + x.December;
x.HalfReport = x.FirstQuarter + x.SecondQuarter;
x.LastHalfReport = x.ThirdQuarter + x.FourthQuarter;
x.Total = x.HalfReport + x.LastHalfReport;
});
AllSchoolReportList.AddRange(SchoolReportList);
#endregion
}
if (AllSchoolReportList.Any()) {
Console.WriteLine("开始汇总插入:" + AllSchoolReportList.Count());
//计算汇总
var HZList = AllSchoolReportList.GroupBy(x => new { x.Year, x.Abstract, x.Rb_Group_Id, x.Sort, x.CostTypeIds }).Select(x => new RB_SimpleReport_Extend()
{
ID = 0,
Rb_Group_Id = x.Key.Rb_Group_Id,
Year = x.Key.Year,
Abstract = x.Key.Abstract,
April = x.Sum(y => y.April),
August = x.Sum(y => y.August),
BranchId = -1,
CostTypeIds = x.Key.CostTypeIds,
December = x.Sum(y => y.December),
February = x.Sum(y => y.February),
FirstQuarter = x.Sum(y => y.FirstQuarter),
FourthQuarter = x.Sum(z => z.FourthQuarter),
HalfReport = x.Sum(z => z.HalfReport),
January = x.Sum(z => z.January),
July = x.Sum(z => z.July),
June = x.Sum(z => z.June),
LastHalfReport = x.Sum(z => z.LastHalfReport),
March = x.Sum(z => z.March),
May = x.Sum(z => z.May),
November = x.Sum(z => z.November),
October = x.Sum(z => z.October),
SecondQuarter = x.Sum(z => z.SecondQuarter),
September = x.Sum(z => z.September),
Sort = x.Key.Sort,
ThirdQuarter = x.Sum(z => z.ThirdQuarter),
Total = x.Sum(z => z.Total)
}).ToList();
AllSchoolReportList.AddRange(HZList);
var OldList = edu_simpleReportRepository.GetList(new RB_SimpleReport_Extend() { Year = Year, Rb_Group_Id = GroupId, BranchId = -2 });//查询所有的
foreach (var item in AllSchoolReportList) {
var oldModel = OldList.Where(x => x.Year == item.Year && x.Abstract == item.Abstract && x.BranchId == item.BranchId).FirstOrDefault();
if (oldModel == null)
{
edu_simpleReportRepository.Insert(item);
}
else {
item.ID = oldModel.ID;
edu_simpleReportRepository.Update(item);
oldModel.IsUpdate = 1;
}
} }
else if (item.Abstract == "其他代垫代收") var delList = OldList.Where(x => x.IsUpdate == 0).ToList();
edu_simpleReportRepository.DeleteBatch(delList);
Console.WriteLine("汇总OK");
}
var fumodel = edu_UpdateRecordRepository.GetList(new RB_Report_UpdateRecord() { Type = 2 }).FirstOrDefault();
if (fumodel != null)
{ {
item.CostIds = GetCostIds(((int)CostEnum.QTDDDF), clist); fumodel.EndDate = DateTime.Now;
edu_UpdateRecordRepository.Update(fumodel);
}
return true;
} }
else if (item.Abstract == "陈芳英款项") catch (Exception ex)
{ {
item.CostIds = GetCostIds(((int)CostEnum.CYFKX), clist); LogHelper.Write(ex, "InsertBatchSimple_V2");
} }
return true;
} }
/// <summary>
/// 更新班级数据
/// </summary>
/// <param name="IncomeReport"></param>
/// <param name="OtherIncomeReport"></param>
/// <param name="BonusReport"></param>
/// <param name="PerfReport"></param>
/// <param name="SellReport"></param>
/// <param name="OtherCostReport"></param>
/// <param name="month"></param>
/// <param name="TStuMoney"></param>
/// <param name="BonusMoney"></param>
/// <param name="PerfMoney"></param>
/// <param name="SellMoney"></param>
/// <param name="OtherIncome"></param>
/// <param name="OtherCost"></param>
private static void UpdateClassReportDate(RB_SimpleReport TotalReport, RB_SimpleReport IncomeReport, RB_SimpleReport OtherIncomeReport, RB_SimpleReport BonusReport, RB_SimpleReport PerfReport, RB_SimpleReport SellReport, RB_SimpleReport OtherCostReport, string month, decimal TStuMoney, decimal BonusMoney, decimal PerfMoney, decimal SellMoney, decimal OtherIncome, decimal OtherCost)
{
switch (month)
{
case "01":
IncomeReport.January += TStuMoney;
OtherIncomeReport.January += OtherIncome;
BonusReport.January += BonusMoney;
PerfReport.January += PerfMoney;
SellReport.January += SellMoney;
OtherCostReport.January += OtherCost;
TotalReport.January += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "02":
IncomeReport.February += TStuMoney;
OtherIncomeReport.February += OtherIncome;
BonusReport.February += BonusMoney;
PerfReport.February += PerfMoney;
SellReport.February += SellMoney;
OtherCostReport.February += OtherCost;
TotalReport.February += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "03":
IncomeReport.March += TStuMoney;
OtherIncomeReport.March += OtherIncome;
BonusReport.March += BonusMoney;
PerfReport.March += PerfMoney;
SellReport.March += SellMoney;
OtherCostReport.March += OtherCost;
TotalReport.March += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "04":
IncomeReport.April += TStuMoney;
OtherIncomeReport.April += OtherIncome;
BonusReport.April += BonusMoney;
PerfReport.April += PerfMoney;
SellReport.April += SellMoney;
OtherCostReport.April += OtherCost;
TotalReport.April += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "05":
IncomeReport.May += TStuMoney;
OtherIncomeReport.May += OtherIncome;
BonusReport.May += BonusMoney;
PerfReport.May += PerfMoney;
SellReport.May += SellMoney;
OtherCostReport.May += OtherCost;
TotalReport.May += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "06":
IncomeReport.June += TStuMoney;
OtherIncomeReport.June += OtherIncome;
BonusReport.June += BonusMoney;
PerfReport.June += PerfMoney;
SellReport.June += SellMoney;
OtherCostReport.June += OtherCost;
TotalReport.June += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "07":
IncomeReport.July += TStuMoney;
OtherIncomeReport.July += OtherIncome;
BonusReport.July += BonusMoney;
PerfReport.July += PerfMoney;
SellReport.July += SellMoney;
OtherCostReport.July += OtherCost;
TotalReport.July += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "08":
IncomeReport.August += TStuMoney;
OtherIncomeReport.August += OtherIncome;
BonusReport.August += BonusMoney;
PerfReport.August += PerfMoney;
SellReport.August += SellMoney;
OtherCostReport.August += OtherCost;
TotalReport.August += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "09":
IncomeReport.September += TStuMoney;
OtherIncomeReport.September += OtherIncome;
BonusReport.September += BonusMoney;
PerfReport.September += PerfMoney;
SellReport.September += SellMoney;
OtherCostReport.September += OtherCost;
TotalReport.September += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "10":
IncomeReport.October += TStuMoney;
OtherIncomeReport.October += OtherIncome;
BonusReport.October += BonusMoney;
PerfReport.October += PerfMoney;
SellReport.October += SellMoney;
OtherCostReport.October += OtherCost;
TotalReport.October += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "11":
IncomeReport.November += TStuMoney;
OtherIncomeReport.November += OtherIncome;
BonusReport.November += BonusMoney;
PerfReport.November += PerfMoney;
SellReport.November += SellMoney;
OtherCostReport.November += OtherCost;
TotalReport.November += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
case "12":
IncomeReport.December += TStuMoney;
OtherIncomeReport.December += OtherIncome;
BonusReport.December += BonusMoney;
PerfReport.December += PerfMoney;
SellReport.December += SellMoney;
OtherCostReport.December += OtherCost;
TotalReport.December += TStuMoney + OtherIncome - BonusMoney - PerfMoney - SellMoney - OtherCost;
break;
}
}
/// <summary>
/// 获取简易报表列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_SimpleReport_Extend> GetEasyReportList(RB_SimpleReport_Extend model)
{
var list = edu_simpleReportRepository.GetList(model);
return list; return list;
} }
...@@ -3427,11 +4049,11 @@ namespace Edu.Module.Finance ...@@ -3427,11 +4049,11 @@ namespace Edu.Module.Finance
/// <param name="endTime"></param> /// <param name="endTime"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <returns></returns> /// <returns></returns>
public object GetAllClassNowMonthStatistics(string startTime, string endTime, int classId, string classNo, UserInfo userInfo) public object GetAllClassNowMonthStatistics(string startTime, string endTime, int classId, string classNo, int schoolId, UserInfo userInfo)
{ {
List<object> RList = new List<object>(); List<object> RList = new List<object>();
//首先根据签到表 查询出所有的班级 并分页 //首先根据签到表 查询出所有的班级 并分页
var list = class_CheckRepository.GetAllClassNowMonthStatistics(startTime, endTime, classId, classNo, userInfo.Group_Id); var list = class_CheckRepository.GetAllClassNowMonthStatistics(startTime, endTime, classId, classNo, schoolId, userInfo.Group_Id);
if (list.Any()) if (list.Any())
{ {
string classIds = string.Join(",", list.Select(x => x.ClassId)); string classIds = string.Join(",", list.Select(x => x.ClassId));
...@@ -3480,8 +4102,8 @@ namespace Edu.Module.Finance ...@@ -3480,8 +4102,8 @@ namespace Edu.Module.Finance
int TStuNum = slist.Select(x => x.TeacherId).Distinct().Count();//上课学生数量 int TStuNum = slist.Select(x => x.TeacherId).Distinct().Count();//上课学生数量
var StuList = slist.GroupBy(x => new { x.TeacherId, x.TeacherName }).Select(g => new var StuList = slist.GroupBy(x => new { x.TeacherId, x.TeacherName }).Select(g => new
{ {
g.Key.TeacherId, StuId = g.Key.TeacherId,
g.Key.TeacherName, StuName = g.Key.TeacherName,
KSNum = g.Sum(t => t.KSNum), KSNum = g.Sum(t => t.KSNum),
Money = g.Sum(t => t.Money) Money = g.Sum(t => t.Money)
}); });
...@@ -3502,6 +4124,7 @@ namespace Edu.Module.Finance ...@@ -3502,6 +4124,7 @@ namespace Edu.Module.Finance
{ {
item.ClassId, item.ClassId,
item.ClassNo, item.ClassNo,
OrderIds = "",
item.ClassName, item.ClassName,
ClassType = 1, ClassType = 1,
THoursNum = item.CurrentDeductionHours, THoursNum = item.CurrentDeductionHours,
...@@ -3519,27 +4142,36 @@ namespace Edu.Module.Finance ...@@ -3519,27 +4142,36 @@ namespace Edu.Module.Finance
} }
//查询留学的 //查询留学的
var saList = studyAbroadRepository.GetStudyAbroadListExtRepository(new Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel() { Group_Id = userInfo.Group_Id, SaleState = Common.Enum.Sale.SaleStateEnum.Sell, ConfirmSTime = startTime, ConfirmETime = endTime }); var lxOrderList = orderRepository.GetListForReport(new RB_Order_ViewModel() { Group_Id = userInfo.Group_Id, OrderType = Common.Enum.Sale.OrderTypeEnum.StudyabroadOrder, Q_OrderState = 1, ConfirmSTime = startTime, ConfirmETime = endTime });
List<RB_Order_ViewModel> orderAllList = new List<RB_Order_ViewModel>(); List<RB_Finance_Extend> lxFinanceList = new List<RB_Finance_Extend>();
List<RB_Finance_Extend> FAllList = new List<RB_Finance_Extend>(); List<RB_Order_Guest_ViewModel> lxGuestList = new List<RB_Order_Guest_ViewModel>();
if (saList.Any()) List<Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel> saList = new List<Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel>();
{ if (lxOrderList.Any())
string saIds = string.Join(",", saList.Select(x => x.Id)); {
//根据班级查询所有的订单列表 string orderIds = string.Join(",", lxOrderList.Select(x => x.OrderId));
orderAllList = orderRepository.GetOrderListRepository(new RB_Order_ViewModel() { Group_Id = userInfo.Group_Id, SourceIds = saIds, OrderType = Common.Enum.Sale.OrderTypeEnum.StudyabroadOrder, Q_OrderState = 1 }); //查询学生
lxGuestList = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { Group_Id = userInfo.Group_Id, OrderIds = orderIds });
string saIds = string.Join(",", lxOrderList.Select(x => x.SourceId).Distinct());
//查询留学产品
saList = studyAbroadRepository.GetStudyAbroadListExtRepository(new Model.ViewModel.StudyAbroad.RB_StudyAbroad_ViewModel() { Group_Id = userInfo.Group_Id, QIds = saIds });
//查询班级下所有的财务单据 //查询班级下所有的财务单据
FAllList = RB_FinanceRepository.GetDataStatisticsListThree(new RB_Finance_Extend() { RB_Group_Id = userInfo.Group_Id, TCIDStr = saIds, OrderSource = OrderResourceEnum.EducationStudy }); lxFinanceList = RB_FinanceRepository.GetListForReport(new RB_Finance_Extend() { RB_Group_Id = userInfo.Group_Id, TCIDStr = saIds, sAduitDate = Convert.ToDateTime(startTime), eAduitDate = Convert.ToDateTime(endTime), FinanceType = 2, OrderSource = OrderResourceEnum.EducationStudy });
} }
foreach (var item in saList) { foreach (var item in saList) {
#region 订单 #region 订单
var orderList = orderAllList.Where(x => x.SourceId == item.Id).ToList(); var olist = lxOrderList.Where(x => x.SourceId == item.Id).ToList();
decimal ShiShou = olist.Sum(item => item.Income - item.Refund + item.PlatformTax);
decimal ShiShou = orderList.Sum(x => x.Income - x.Refund + x.PlatformTax); int GuestNum = olist.Sum(item => item.GuestNum);
int GuestNum = orderList.Sum(x => x.GuestNum); var glist = lxGuestList.Where(x => olist.Select(x => x.OrderId).Contains(x.OrderId)).Select(x => new
{
StuId = x.Id,
StuName = x.GuestName
});
#endregion #endregion
#region 财务单据 #region 财务单据
var financeList = FAllList.Where(x => x.TCID == item.Id).ToList(); var financeList = lxFinanceList.Where(x => x.TCID == item.Id).ToList();
//排序订单单据 //排序订单单据
var cfinanceList = financeList.Where(x => x.OrderID == 0 && x.Type == WFTempLateClassEnum.IN).ToList(); var cfinanceList = financeList.Where(x => x.OrderID == 0 && x.Type == WFTempLateClassEnum.IN).ToList();
decimal QTShouRu = cfinanceList.Where(y => y.Is_Cashier == 1).Sum(x => x.Money ?? 0); decimal QTShouRu = cfinanceList.Where(y => y.Is_Cashier == 1).Sum(x => x.Money ?? 0);
...@@ -3549,7 +4181,7 @@ namespace Edu.Module.Finance ...@@ -3549,7 +4181,7 @@ namespace Edu.Module.Finance
decimal ClassFee = 0;//老师提成 -留学暂定 decimal ClassFee = 0;//老师提成 -留学暂定
decimal JiXiaoMoney = 0;//绩效提成 -留学暂定 decimal JiXiaoMoney = 0;//绩效提成 -留学暂定
var ofinanceList = financeList.Where(x => x.Type == WFTempLateClassEnum.OUT).ToList();// 支出包括退款 var ofinanceList = financeList.Where(x => x.OrderID == 0 && x.Type == WFTempLateClassEnum.OUT).ToList();// 支出包括退款
decimal QTZhiChu = ofinanceList.Sum(x => x.Money ?? 0); decimal QTZhiChu = ofinanceList.Sum(x => x.Money ?? 0);
#endregion #endregion
...@@ -3558,12 +4190,13 @@ namespace Edu.Module.Finance ...@@ -3558,12 +4190,13 @@ namespace Edu.Module.Finance
{ {
ClassId = item.Id, ClassId = item.Id,
ClassNo = "", ClassNo = "",
OrderIds = string.Join(",", olist.Select(x => x.OrderId)),
ClassName = item.Name, ClassName = item.Name,
ClassType = 2, ClassType = 2,
THoursNum = 0, THoursNum = 0,
TStuNum = GuestNum, TStuNum = GuestNum,
TStuMoney = ShiShou, TStuMoney = ShiShou,
StuList=new List<object>(), StuList = glist,
BonusMoney = ClassFee, BonusMoney = ClassFee,
PerfMoney = JiXiaoMoney, PerfMoney = JiXiaoMoney,
SellMoney = TiCheng, SellMoney = TiCheng,
......
...@@ -233,7 +233,8 @@ namespace Edu.Module.StudyAbroad ...@@ -233,7 +233,8 @@ namespace Edu.Module.StudyAbroad
{ {
var model = studyAbroadRepository.GetStudyAbroadListExtRepository(new RB_StudyAbroad_ViewModel() var model = studyAbroadRepository.GetStudyAbroadListExtRepository(new RB_StudyAbroad_ViewModel()
{ {
Id = Id Id = Id,
School_Id = -1
})?.FirstOrDefault(); })?.FirstOrDefault();
if (model != null && IsGetPrice == 1) if (model != null && IsGetPrice == 1)
{ {
......
...@@ -666,12 +666,15 @@ GROUP BY tt.ClassId,tt.OrderGuestId ...@@ -666,12 +666,15 @@ GROUP BY tt.ClassId,tt.OrderGuestId
/// <param name="classNo"></param> /// <param name="classNo"></param>
/// <param name="group_Id"></param> /// <param name="group_Id"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Class_Check_ViewModel> GetAllClassNowMonthStatistics(string startTime, string endTime, int classId, string classNo, int group_Id) public List<RB_Class_Check_ViewModel> GetAllClassNowMonthStatistics(string startTime, string endTime, int classId, string classNo, int schoolId, int group_Id)
{ {
string where = ""; string where = "";
if (classId > 0) { if (classId > 0) {
where += " and cc.ClassId =" + classId; where += " and cc.ClassId =" + classId;
} }
if (schoolId >= 0) {
where += " and c.School_Id =" + schoolId;
}
if (!string.IsNullOrEmpty(classNo)) { if (!string.IsNullOrEmpty(classNo)) {
where += " and c.ClassNo ='" + classNo + "'"; where += " and c.ClassNo ='" + classNo + "'";
} }
......
...@@ -90,6 +90,14 @@ namespace Edu.Repository.Course ...@@ -90,6 +90,14 @@ namespace Edu.Repository.Course
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} =3"; where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} =3";
} }
} }
if (!string.IsNullOrEmpty(demodel.ConfirmSTime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} >='{demodel.ConfirmSTime}'";
}
if (!string.IsNullOrEmpty(demodel.ConfirmETime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} <='{demodel.ConfirmETime} 23:59:59'";
}
if (demodel.IsChaBan ==1 ) if (demodel.IsChaBan ==1 )
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.IsChaBan)} ={demodel.IsChaBan}"; where += $@" and o.{nameof(RB_Order_ViewModel.IsChaBan)} ={demodel.IsChaBan}";
...@@ -810,5 +818,121 @@ where {where} order by {orderBy} ...@@ -810,5 +818,121 @@ where {where} order by {orderBy}
} }
#endregion #endregion
#region 简易报表
/// <summary>
/// 获取列表留学
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Order_ViewModel> GetListForReport(RB_Order_ViewModel demodel)
{
string where = $@" 1=1 ";
if (demodel.Group_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id >= 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.School_Id)} ={demodel.School_Id}";
}
if (demodel.OrderId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (demodel.OrderType > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)demodel.OrderType}";
}
if (demodel.ClassId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (demodel.SourceId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.SourceId)} ={demodel.SourceId}";
}
if (demodel.CourseId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.CourseId)} ={demodel.CourseId}";
}
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} in({demodel.ClassIds})";
}
if (!string.IsNullOrEmpty(demodel.SourceIds))
{
where += $@" and o.{nameof(RB_Order_ViewModel.SourceId)} in({demodel.SourceIds})";
}
if (demodel.OrderState > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} ={(int)demodel.OrderState}";
}
if (demodel.OrderSource > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderSource)} ={(int)demodel.OrderSource}";
}
if (demodel.OrderForm > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}";
}
if (demodel.EnterID > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.EnterID)} ={demodel.EnterID}";
}
if (demodel.Dept_Id > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}";
}
if (demodel.Q_OrderState > 0)
{
if (demodel.Q_OrderState == 1)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} in(1,2)";
}
else if (demodel.Q_OrderState == 2)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} =3";
}
}
if (!string.IsNullOrEmpty(demodel.ConfirmSTime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} >='{demodel.ConfirmSTime}'";
}
if (!string.IsNullOrEmpty(demodel.ConfirmETime))
{
where += $@" and o.{nameof(RB_Order_ViewModel.LXConfirmDate)} <='{demodel.ConfirmETime} 23:59:59'";
}
if (demodel.IsChaBan == 1)
{
where += $@" and o.{nameof(RB_Order_ViewModel.IsChaBan)} ={demodel.IsChaBan}";
}
if (!string.IsNullOrEmpty(demodel.Q_EffectTime))
{
where += string.Format(" and DATE_FORMAT(o.EffectTime,'%y/%m/%d')=DATE_FORMAT('{0}','%y/%m/%d') ", demodel.Q_EffectTime);
}
string orderBy = " o.OrderId asc";
if (demodel.Q_OrderBy == 1)
{
orderBy = " o.OrderId asc";
}
else if (demodel.Q_OrderBy == 2)
{
orderBy = " o.CreateTime desc";
}
string sql = $@"
SELECT o.*,c.ClassName,t.TeacherName,t.TeacherIcon,IFNULL(course.CourseName,'') AS CourseName,c.OpenTime,IFNULL(course.ClassHours,0) AS ClassHours
FROM RB_Order o
LEFT JOIN rb_class c on o.ClassId = c.ClassId
LEFT JOIN rb_teacher t on c.Teacher_Id = t.TId
LEFT JOIN rb_course AS course ON (o.CourseId=course.CourseId AND o.CourseId>0 AND o.OrderType=1)
WHERE {where}
ORDER BY {orderBy}
";
return Get<RB_Order_ViewModel>(sql).ToList();
}
#endregion
} }
} }
...@@ -40,7 +40,7 @@ namespace Edu.Repository.Finance ...@@ -40,7 +40,7 @@ namespace Edu.Repository.Finance
{ {
where += string.Format(" AND A." + nameof(RB_SimpleReport_Extend.BranchId) + " !=-1 "); where += string.Format(" AND A." + nameof(RB_SimpleReport_Extend.BranchId) + " !=-1 ");
} }
string sql = string.Format(@"SELECT * FROM {0} AS A WHERE {1} ", nameof(RB_SimpleReport), where); string sql = string.Format(@"SELECT * FROM {0} AS A WHERE {1} order by Sort asc", nameof(RB_SimpleReport), where);
return Get<RB_SimpleReport_Extend>(sql).ToList(); return Get<RB_SimpleReport_Extend>(sql).ToList();
} }
} }
......
...@@ -244,7 +244,7 @@ WHERE {1} {2} ", TableName, where, " ORDER BY A.FrID DESC"); ...@@ -244,7 +244,7 @@ WHERE {1} {2} ", TableName, where, " ORDER BY A.FrID DESC");
where.Append(" AND b." + nameof(RB_Finance.FinanceType) + "=" + model.FinanceType + ""); where.Append(" AND b." + nameof(RB_Finance.FinanceType) + "=" + model.FinanceType + "");
} }
builder.AppendFormat(@"select distinct b.FrID,IFNULL(b.MatchMoney,0) as MatchMoney,IFNULL(E.TCID,0)TCID,D.Name,b.Status,b.TradeDate,b.CreateDate,b.RB_Branch_Id,a.ID,a.CostTypeId,IFNULL(b.Is_Cashier,0)Is_Cashier,a.Money,b.OrderID,b.OrderSource,b.SourceID,IFNULL(b.PayMoney,0)PayMoney,IFNULL(b.Fee,0)Fee,b.Type builder.AppendFormat(@"select distinct b.FrID,IFNULL(b.MatchMoney,0) as MatchMoney,IFNULL(E.TCID,0)TCID,D.Name,b.Status,b.TradeDate,b.CreateDate,b.RB_Branch_Id,a.ID,a.CostTypeId,IFNULL(b.Is_Cashier,0)Is_Cashier,a.Money,IFNULL(b.OrderID,0) OrderID,b.OrderSource,b.SourceID,IFNULL(b.PayMoney,0)PayMoney,IFNULL(b.Fee,0)Fee,b.Type
from rb_financedetail a INNER JOIN rb_finance as b on a.FinanceId=b.FrID and a.`Status`=0 from rb_financedetail a INNER JOIN rb_finance as b on a.FinanceId=b.FrID and a.`Status`=0
INNER JOIN rb_costtype AS D ON D.ID=a.CostTypeId INNER JOIN rb_costtype AS D ON D.ID=a.CostTypeId
LEFT JOIN rb_tradeway as td ON b.FrID=td.FinanceId LEFT JOIN rb_tradeway as td ON b.FrID=td.FinanceId
......
...@@ -196,6 +196,10 @@ WHERE 1=1 ...@@ -196,6 +196,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Group_Id), query.Group_Id); builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Group_Id), query.Group_Id);
} }
if (query.School_Id >= 0)
{
builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.School_Id), query.School_Id);
}
if (!string.IsNullOrEmpty(query.Name)) if (!string.IsNullOrEmpty(query.Name))
{ {
builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_StudyAbroad_ViewModel.Name)); builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_StudyAbroad_ViewModel.Name));
...@@ -229,14 +233,6 @@ WHERE 1=1 ...@@ -229,14 +233,6 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0} <='{1} 23:59:59'", nameof(RB_StudyAbroad_ViewModel.CreateTime), query.EndTime); builder.AppendFormat(" AND A.{0} <='{1} 23:59:59'", nameof(RB_StudyAbroad_ViewModel.CreateTime), query.EndTime);
} }
if (!string.IsNullOrEmpty(query.ConfirmSTime))
{
builder.AppendFormat(" AND A.{0} >='{1}'", nameof(RB_StudyAbroad_ViewModel.ConfirmDate), query.ConfirmSTime);
}
if (!string.IsNullOrEmpty(query.ConfirmETime))
{
builder.AppendFormat(" AND A.{0} <='{1} 23:59:59'", nameof(RB_StudyAbroad_ViewModel.ConfirmDate), query.ConfirmETime);
}
return Get<RB_StudyAbroad_ViewModel>(builder.ToString(), parameters).ToList(); return Get<RB_StudyAbroad_ViewModel>(builder.ToString(), parameters).ToList();
} }
} }
......
...@@ -884,7 +884,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -884,7 +884,7 @@ namespace Edu.WebApi.Controllers.Finance
} }
} }
var obj = new { Status, UpdateStartTime, UpdateEndTime, list = list?.Select(y => new { y.ID, y.Year, y.BranchId, y.CostIds, y.Sort, ZhaiYao = y.Abstract, YiYue = y.January, ErYue = y.February, SanYue = y.March, DiYiJiDu = y.FirstQuarter, SiYue = y.April, WuYue = y.May, LiuYue = y.June, DiErJiDu = y.SecondQuarter, ShangBanNianBao = y.HalfReport, QiYue = y.July, BaYue = y.August, JiuYue = y.September, DiSanJiDu = y.ThirdQuarter, ShiYue = y.October, ShiYiYue = y.November, ShiErYue = y.December, DiSiJiDu = y.FourthQuarter, XiaBanNianBao = y.LastHalfReport, ZongJi = y.Total }) }; var obj = new { Status, UpdateStartTime, UpdateEndTime, list = list?.Select(y => new { y.ID, y.Year, y.BranchId, y.CostIds, y.CostTypeIds, y.Sort, ZhaiYao = y.Abstract, YiYue = y.January, ErYue = y.February, SanYue = y.March, DiYiJiDu = y.FirstQuarter, SiYue = y.April, WuYue = y.May, LiuYue = y.June, DiErJiDu = y.SecondQuarter, ShangBanNianBao = y.HalfReport, QiYue = y.July, BaYue = y.August, JiuYue = y.September, DiSanJiDu = y.ThirdQuarter, ShiYue = y.October, ShiYiYue = y.November, ShiErYue = y.December, DiSiJiDu = y.FourthQuarter, XiaBanNianBao = y.LastHalfReport, ZongJi = y.Total }) };
return ApiResult.Success("", obj); return ApiResult.Success("", obj);
} }
...@@ -2000,6 +2000,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -2000,6 +2000,7 @@ namespace Edu.WebApi.Controllers.Finance
string EndTime = base.ParmJObj.GetStringValue("EndTime");//结束时间 string EndTime = base.ParmJObj.GetStringValue("EndTime");//结束时间
int ClassId = base.ParmJObj.GetInt("ClassId", 0); int ClassId = base.ParmJObj.GetInt("ClassId", 0);
string ClassNo = base.ParmJObj.GetStringValue("ClassNo");//班号 string ClassNo = base.ParmJObj.GetStringValue("ClassNo");//班号
int SchoolId = base.ParmJObj.GetInt("SchoolId", -1);//校区id
if (string.IsNullOrEmpty(StartTime)) if (string.IsNullOrEmpty(StartTime))
{ {
return ApiResult.ParamIsNull(); return ApiResult.ParamIsNull();
...@@ -2018,7 +2019,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -2018,7 +2019,7 @@ namespace Edu.WebApi.Controllers.Finance
return ApiResult.Failed("日期格式有误,请核实后再试"); return ApiResult.Failed("日期格式有误,请核实后再试");
} }
var Robj = financeModule.GetAllClassNowMonthStatistics(StartTime, EndTime, ClassId, ClassNo, userInfo); var Robj = financeModule.GetAllClassNowMonthStatistics(StartTime, EndTime, ClassId, ClassNo, SchoolId, userInfo);
return ApiResult.Success("", Robj); return ApiResult.Success("", Robj);
} }
......
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