示例#1
0
 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);
 }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }