Пример #1
0
        public CompanyCateLimitDTO GetCompanyLimit(int companyId, int cateId, int year)
        {
            DateTime sDate, eDate;

            year.GetDateByYear(out sDate, out eDate);
            var sm = new CompanyCateLimitSM()
            {
                CompanyId = companyId,
                CateId    = cateId,
                SDate     = sDate,
                EDate     = eDate,
            };
            var costList = GetCostList(companyId, cateId, sDate, eDate);
            //根据每个日期合计金额,下方报表用
            var datelyCostList = from cost in costList
                                 group cost by new { cost.OccurDate } into m
                select new CompanyCateLimitDateDTO()
            {
                OccurDate = m.First().OccurDate,
                Money     = m.Sum(o => o.Money)
            };


            //根据每个日期预计合计金额,下方报表用
            var dateExpectCostList = DapperHelper.SqlQuery <CompanyCateLimitDateDTO>(@"select case when SUM(Money) is null then 0 else SUM(Money) end  as Money  ,a.OccurDate 
from EM_ExpenseAccount_Detail a
join EM_ExpenseAccount b on a.ExpenseAccountId=b.Id
where a.CompanyId=@CompanyId and a.ExpenseAccountId<>0 and a.CateId in ( select * from dbo.FC_GetChildCateIds(@CateId) )
and a.OccurDate >@SDate and a.OccurDate<@EDate
and b.ApproveStatus<>4
and( b.IsNotAccount is null or b.IsNotAccount =0)
group by a.OccurDate", sm).ToList();
            //获取公司类型,获取绩效额度的时候不一样


            var totalCost       = datelyCostList.Sum(o => o.Money);
            var expectTotalCost = dateExpectCostList.Sum(o => o.Money);


            //获取大类的额度类型和名称
            var mainCate = DapperHelper.SqlQuery <EM_Charge_Cate>(@"select * from dbo.FC_GetParentCateInfo(@CateId)", sm).FirstOrDefault();

            //获取额度
            var totalLimit = GetLimit(companyId, cateId, year);



            var result = new CompanyCateLimitDTO()
            {
                CateId            = cateId,
                CateName          = mainCate.CateName,
                TotalCost         = totalCost,
                TotalLimit        = totalLimit,
                ExpectTotalCost   = expectTotalCost,
                DateDetails       = datelyCostList.ToList(),
                ExpectDateDetails = dateExpectCostList,
            };

            return(result);
        }
Пример #2
0
        public CompanyCateLimitDTO GetCompanysLimit(string companyIds, int cateId, int year)
        {
            var result = new CompanyCateLimitDTO();

            foreach (var companyId in companyIds.ToInts())
            {
                var tempLimit = GetCompanyLimit(companyId, cateId, year);
                result.CateName          = tempLimit.CateName;
                result.TotalCost        += tempLimit.TotalCost;
                result.ExpectTotalCost  += tempLimit.ExpectTotalCost;
                result.TotalLimit       += tempLimit.TotalLimit == 0 ? 1 : tempLimit.TotalLimit;
                result.DateDetails       = tempLimit.DateDetails;
                result.ExpectDateDetails = tempLimit.ExpectDateDetails;
            }
            return(result);
        }