public CWStaffSpendingMapping BeInitialization(CWStaffSpendingMapping Data) { Data.MonthTotal = 0; Data.YearTotal = 0; Data.MonthTarget = 0; Data.YearTarget = 0; Data.MonthReachRate = 0; Data.MonthGrowthRate = 0; Data.YearReachRate = 0; Data.YearGrowthRate = 0; Data.LastMonthTotal = 0; Data.LastYearTotal = 0; return(Data); }
public CWStaffSpendingMapping GetIntegratedManagementData(int year, int month) { //decimal YearTotal = 0; CWStaffSpendingMapping Info = new CWStaffSpendingMapping(); Info.MonthTotal = -GetIntegratedManagementValue(year, month); Info.LastMonthTotal = -GetIntegratedManagementValue(year - 1, month); if (Info.LastMonthTotal != 0) { Info.MonthGrowthRate = (decimal)(Info.MonthTotal - Info.LastMonthTotal) / Info.LastMonthTotal; } else { Info.MonthGrowthRate = 0; } Info.YearStr = year.ToString(); Info.MonthStr = month.ToString(); //var target = GetData(FinancialFieldId, year.ToString(), month.ToString(), -1, 507); //Info.MonthTarget = (decimal)target.MonthTarget; //Info.YearTarget = (decimal)target.YearTarget; //DateTime end = new DateTime(); //if (month == 12) //{ // end = DateTime.Parse((year + 1) + "/" + month.ToString() + "/01"); //} //else //{ // end = DateTime.Parse(year + "/" + (month + 1).ToString() + "/01"); //} //for (int i = 1; i <= 12; i++) //{ // DateTime begin = DateTime.Parse(year + "/" + i + "/01"); // if (begin < end) // { // YearTotal += GetIntegratedManagementValue(year, i); // } // else // { // break; // } //} //Info.YearTotal = YearTotal; return(Info); }
public CWStaffSpendingMapping GetData(int ID, string year, string month, int ProjectId, int DepartmentType) { List <XMProjectCostDetail> exist = new List <XMProjectCostDetail>(); CWStaffSpendingMapping info = new CWStaffSpendingMapping(); info.YearStr = year; info.MonthStr = month; info.MonthTotal = 0; info.YearTotal = 0; info.MonthTarget = 0; info.YearTarget = 0; info.FinancialFieldId = ID; if (DepartmentType != 505) { int departmentID = -1; XMProjectCostDetail other = new XMProjectCostDetail(); other.FinancialFieldID = ID; other.OneMonthCost = 0; other.TwoMonthCost = 0; other.ThreeMonthCost = 0; other.FourMonthCost = 0; other.FiveMonthCost = 0; other.SixMonthCost = 0; other.SevenMonthCost = 0; other.EightMonthCost = 0; other.NineMonthCost = 0; other.TenMonthCost = 0; other.ElevenMonthCost = 0; other.TwelMonthCost = 0; if (DepartmentType == 197) { departmentID = 63; } else if (DepartmentType == 6) { departmentID = 297; } else if (DepartmentType == 507) { departmentID = 507; } var otherTarget = base.XMOtherCostDetailService.GetXMOtherCostDataAudit(ID, departmentID, int.Parse(year)); if (otherTarget.Count > 0) { foreach (XMOtherCostDetail item in otherTarget) { if (FinancialFieldList.IndexOf(item.FinancialFieldID) != -1) { other.OneMonthCost += item.OneMonthCost; other.TwoMonthCost += item.TwoMonthCost; other.ThreeMonthCost += item.ThreeMonthCost; other.FourMonthCost += item.FourMonthCost; other.FiveMonthCost += item.FiveMonthCost; other.SixMonthCost += item.SixMonthCost; other.SevenMonthCost += item.SevenMonthCost; other.EightMonthCost += item.EightMonthCost; other.NineMonthCost += item.NineMonthCost; other.TenMonthCost += item.TenMonthCost; other.ElevenMonthCost += item.ElevenMonthCost; other.TwelMonthCost += item.TwelMonthCost; } } exist.Add(other); info.MonthTarget = GetMonthData(exist, month, false); info.YearTarget = GetMonthData(exist, "-1", true); } } if (DepartmentType == 505 || DepartmentType == -1) { var target = base.XMProjectCostDetailService.GetXMProjectCostByData(ProjectId, int.Parse(year), ID); if (target.Count > 0) { foreach (XMProjectCostDetail item in target) { if (FinancialFieldList.IndexOf(item.FinancialFieldID) != -1) { exist.Add(item); } } info.MonthTarget += GetMonthData(exist, month, false); info.YearTarget += GetMonthData(exist, "-1", true); } } info.ProjectId = ProjectId; return(info); }
public List <CWStaffSpendingMapping> GetBindTableData(List <CWStaffSpendingMapping> data, string DepartmentType) { List <CWStaffSpendingMapping> List = new List <CWStaffSpendingMapping>(); foreach (CWStaffSpendingMapping info in data) { if ((info.ProjectId == -1 && info.FinancialFieldId == 63) || (info.ProjectId != -1 && info.FinancialFieldId == 64)) { CWStaffSpendingMapping Data = new CWStaffSpendingMapping(); Data.YearStr = info.YearStr; Data.MonthStr = info.MonthStr; Data = BeInitialization(Data); Data.FinancialFieldId = 64; Data.TypeName = "收入"; Data.MonthTarget = info.MonthTarget; Data.YearTarget = info.YearTarget; Data.MonthTotal = info.MonthTotal; Data.YearTotal = info.YearTotal; List.Add(Data); } if (info.FinancialFieldId == 66) { CWStaffSpendingMapping Data = new CWStaffSpendingMapping(); Data.YearStr = info.YearStr; Data.MonthStr = info.MonthStr; Data = BeInitialization(Data); Data.FinancialFieldId = 66; Data.TypeName = "成本"; Data.MonthTarget = info.MonthTarget; Data.YearTarget = info.YearTarget; Data.MonthTotal = info.MonthTotal; Data.YearTotal = info.YearTotal; List.Add(Data); } if (info.FinancialFieldId == 68) { CWStaffSpendingMapping Data = new CWStaffSpendingMapping(); Data.YearStr = info.YearStr; Data.MonthStr = info.MonthStr; Data = BeInitialization(Data); Data.FinancialFieldId = 68; Data.TypeName = "毛利"; Data.MonthTarget = info.MonthTarget; Data.YearTarget = info.YearTarget; Data.MonthTotal = info.MonthTotal; Data.YearTotal = info.YearTotal; List.Add(Data); } if (info.FinancialFieldId == 73) { CWStaffSpendingMapping Data = new CWStaffSpendingMapping(); Data.YearStr = info.YearStr; Data.MonthStr = info.MonthStr; Data = BeInitialization(Data); Data.FinancialFieldId = 73; Data.TypeName = "利润"; Data.MonthTarget = info.MonthTarget; Data.YearTarget = info.YearTarget; Data.LastMonthTotal = info.LastMonthTotal; Data.LastYearTotal = info.LastYearTotal; Data.MonthTotal = info.MonthTotal; Data.YearTotal = info.YearTotal; List.Add(Data); } } return(List); }
public List <CWStaffSpendingMapping> GetDataByDateTime(string DepartmentType, string cbXMProject, List <int> nickIdList, string year, string month) { MonthData = new CWProfitModel(); YearData = new CWProfitModel(); int ProjectId = 0; List <int?> NickIdList = new List <int?>(); CWProfitModel monthData = new CWProfitModel(); List <CWStaffSpendingMapping> data = new List <CWStaffSpendingMapping>(); foreach (int nick in nickIdList) { NickIdList.Add(nick); } if (DepartmentType == "197") { GetB2BC(197, NickIdList, year, month, cbXMProject); } else if (DepartmentType == "6") { GetB2BC(6, NickIdList, year, month, cbXMProject); } if (DepartmentType == "505") { ProjectId = int.Parse(cbXMProject); MonthData = GetProjectMonthData(ProjectId, nickIdList, year, month); DateTime end = new DateTime(); if (month == "12") { end = DateTime.Parse((int.Parse(year) + 1) + "/" + month.ToString() + "/01"); } else { end = DateTime.Parse(year + "/" + (int.Parse(month) + 1).ToString() + "/01"); } for (int i = 1; i <= 12; i++) { DateTime begin = DateTime.Parse(year + "/" + i + "/01"); if (begin < end) { CWProfitModel MonthCacheData = GetProjectMonthData(ProjectId, nickIdList, year, i.ToString()); MonthList.AddRange(GetMonthListDataList(MonthCacheData, year, i.ToString(), cbXMProject, NickIdList, nickIdList, int.Parse(DepartmentType))); YearData = tool.AccumulationValue(YearData, MonthCacheData); } else { break; } } } if (DepartmentType != "507") { foreach (int ID in son) { data.Add(GetData(ID, year, month, int.Parse(cbXMProject), int.Parse(DepartmentType))); } foreach (int ID in parent) { data.Add(GetData(ID, year, month, int.Parse(cbXMProject), int.Parse(DepartmentType))); } data = tool.GetCompleteData(data, MonthData, YearData); } else { //综管的数据 List <CWStaffSpendingMapping> FinanceFeeList = new List <CWStaffSpendingMapping>(); if (IntegratedManagementIDList.Count() > 0) { for (int i = 0; i < DateTime.Now.Month; i++) { CWStaffSpendingMapping Item = GetIntegratedManagementData(int.Parse(year), i + 1); Item.FinancialFieldId = 73;//利润 MonthList.Add(Item); if (int.Parse(month) == (i + 1)) { Item.YearTotal = MonthList.Sum(x => x.MonthTotal); Item.LastYearTotal = MonthList.Sum(x => x.LastMonthTotal); if (Item.LastYearTotal != 0) { Item.MonthGrowthRate = (decimal)(Item.YearTotal - Item.LastYearTotal) / Item.LastYearTotal; } else { Item.MonthGrowthRate = 0; } data.Add(Item); } } } } List <CWStaffSpendingMapping> Data = GetBindTableData(data, DepartmentType); return(Data); }
public CWStaffSpendingMapping GetMonthListData(CWProfitModel monthData, string year, string month, string ProjectId, List <int?> NickIdList, List <int> nickIdList, int FinancialFieldId, int DepartmentType) { int projectId = int.Parse(ProjectId); CWStaffSpendingMapping data = new CWStaffSpendingMapping(); CWStaffSpendingMapping LastData = new CWStaffSpendingMapping(); CWProfitModel LastMonthData = new CWProfitModel(); if (DepartmentType != 505) { LastMonthData = GetB2BCMonthData(DepartmentType, NickIdList, (int.Parse(year) - 1).ToString(), month); } else { LastMonthData = GetProjectMonthData(projectId, nickIdList, (int.Parse(year) - 1).ToString(), month); } if (FinancialFieldId == 64) { if (DepartmentType != 505) { data = GetData(63, year, month, projectId, DepartmentType); data.MonthTotal = monthData.OperatingPerformance; data.LastMonthTotal = LastMonthData.OperatingPerformance; } else { data = GetData(64, year, month, projectId, DepartmentType); data.MonthTotal = monthData.BusinessIncome; data.LastMonthTotal = LastMonthData.BusinessIncome; } } else if (FinancialFieldId == 66) { data = GetData(66, year, month, projectId, DepartmentType); data.MonthTotal = monthData.YYCBMoney; data.LastMonthTotal = LastMonthData.YYCBMoney; } else if (FinancialFieldId == 68) { data = GetData(68, year, month, projectId, DepartmentType); data.MonthTotal = monthData.MLMoney; data.LastMonthTotal = LastMonthData.MLMoney; } else if (FinancialFieldId == 73) { data = GetData(73, year, month, projectId, DepartmentType); data.MonthTotal = monthData.SQLRMoney; data.LastMonthTotal = LastMonthData.SQLRMoney; } data.MonthStr = month; data.YearStr = year; data.FinancialFieldId = FinancialFieldId; if (data.MonthTarget != 0)//统计图表中的增长率,达成率的值 { data.MonthReachRate = Math.Round((decimal)data.MonthTotal / data.MonthTarget, 4); } if (data.LastMonthTotal != 0) { data.MonthGrowthRate = Math.Round(((decimal)data.MonthTotal - data.LastMonthTotal) / data.LastMonthTotal, 4); } return(data); }