Esempio n. 1
0
        private void GroupExpRows(string project, DataRow[] dInfos, DSForecastRprt.Table1Row tblRow)
        {
            tblRow.budget       = 0;
            tblRow.costs        = 0;
            tblRow.ForecastHrs  = 0;
            tblRow.ForecastAmnt = 0;
            tblRow.ftc          = 0;
            foreach (DataRow dRow in dInfos)
            {
                tblRow.Project         = project;
                tblRow.AcctNumber      = "9020";
                tblRow.AcctGroup       = dRow["AcctGroup"].ToString();
                tblRow.AcctNumberGroup = dRow["AcctNumberGroup"].ToString();
                var budget        = Convert.ToDecimal(dRow["budget"]);
                var costs         = Convert.ToDecimal(dRow["costs"]);
                var forecast_hrs  = Convert.ToDecimal(dRow["ForecastHrs"]);
                var forecast_amnt = Convert.ToDecimal(dRow["ForecastAmnt"]);
                var ftc           = Convert.ToDecimal(dRow["ftc"]);

                tblRow.budget       += budget;
                tblRow.costs        += costs;
                tblRow.ftc          += ftc;
                tblRow.ForecastHrs  += Math.Max(forecast_hrs, 0);
                tblRow.ForecastAmnt += Math.Max(Math.Max(costs, forecast_amnt), 0);
            }
        }
Esempio n. 2
0
        public DSForecastRprt LoadReportForProjectRollup(string project, int rprtCase)
        {
            DataSet ds;

            RevSol.RSConnection cnn;
            SqlCommand          cmd;
            SqlParameter        prm;
            SqlDataReader       dr;
            DSForecastRprt      dsFor;

            cnn             = new RevSol.RSConnection("CR");
            cmd             = new SqlCommand("spProject_GetListByMaster", cnn.GetConnection());
            cmd.CommandType = CommandType.StoredProcedure;
            prm             = cmd.Parameters.Add("@MasterNum", SqlDbType.VarChar, 50);
            prm.Value       = project;
            dr = cmd.ExecuteReader();

            dsFor = new DSForecastRprt();

            string sProject, sDescription, sCustomer, sLocation, sManager, sBillType;
            var    project_info = GetProjectInfo(project);

            ds = GetCRForProject(project, rprtCase);

            sProject     = "";
            sDescription = "";
            sCustomer    = "";
            sLocation    = "";
            sManager     = "";
            sBillType    = "";

            foreach (DataRow d in project_info.Rows)
            {
                sProject     = d["Project"].ToString();
                sDescription = d["Description"].ToString();
                sCustomer    = d["Customer"].ToString();
                sLocation    = d["Location"].ToString();
                sManager     = d["Manager"].ToString();
                sBillType    = d["BillType"].ToString();
            }

            while (dr.Read())
            {
                ds = GetCRForProject(dr["Number"].ToString(), rprtCase);


                foreach (DataRow d in ds.Tables[0].Rows)
                {
                    DSForecastRprt.EngrInfoRow eir = dsFor.EngrInfo.NewEngrInfoRow();

                    eir.Project     = sProject;
                    eir.Description = sDescription;
                    eir.Customer    = sCustomer;
                    eir.Location    = sLocation;
                    eir.BudgetGroup = d["BudgetGroup"].ToString();
                    eir.AcctGroup   = d["AcctGroup"].ToString();
                    eir.Manager     = sManager;
                    eir.BillType    = sBillType;
                    try
                    {
                        eir.BudgetDlrs    = Convert.ToDecimal(d["BudgetDlrs"]);
                        eir.BudgetHrs     = Convert.ToDecimal(d["BudgetHrs"]);
                        eir.ActualTime    = Convert.ToDecimal(d["ActualTime"]);
                        eir.ActualAmnt    = Convert.ToDecimal(d["ActualAmnt"]);
                        eir.JSBudgetHrs   = Convert.ToDecimal(d["JSBudgetHrs"]);
                        eir.RemainingHrs  = Convert.ToDecimal(d["RemainingHrs"]);
                        eir.JSLastUpdated = Convert.ToDateTime(d["JSLastUpdated"]);
                        eir.EarnedHrs     = Convert.ToDecimal(d["EarnedHrs"]);
                        eir.ProjectedHrs  = Convert.ToDecimal(d["ProjectedHrs"]);
                        eir.ForecastHrs   = Convert.ToDecimal(d["ForecastHrs"]);
                        eir.FTCHrs        = Convert.ToDecimal(d["FTCHrs"]);
                        eir.FTCAmnt       = Convert.ToDecimal(d["FTCAmnt"]);
                        eir.FTCUpdate     = Convert.ToDateTime(d["FTCUpdate"]);
                    }
                    catch { }

                    dsFor.EngrInfo.AddEngrInfoRow(eir);
                }

                foreach (DataRow d in ds.Tables[1].Rows)
                {
                    DSForecastRprt.Table1Row t1r = dsFor.Table1.NewTable1Row();

                    t1r.Project         = sProject;
                    t1r.AcctNumber      = d["AcctNumber"].ToString();
                    t1r.AcctGroup       = d["AcctGroup"].ToString();
                    t1r.AcctNumberGroup = d["AcctNumberGroup"].ToString();
                    t1r.budget          = Convert.ToDecimal(d["budget"]);
                    t1r.costs           = Convert.ToDecimal(d["costs"]);
                    t1r.ForecastHrs     = Convert.ToDecimal(d["ForecastHrs"]);
                    t1r.ForecastAmnt    = Convert.ToDecimal(d["ForecastAmnt"]);
                    t1r.ftc             = Convert.ToDecimal(d["ftc"]);

                    dsFor.Table1.AddTable1Row(t1r);
                }
            }

            dr.Close();

            DSForecastRprt rprtDs = new DSForecastRprt();


            var groups = new List <string>();

            foreach (DataRow row in dsFor.EngrInfo.Rows)
            {
                groups.Add(row["BudgetGroup"].ToString());
            }
            groups = groups.Distinct().OrderBy(x => x).ToList();

            foreach (var group in groups)
            {
                DSForecastRprt.EngrInfoRow eRow = rprtDs.EngrInfo.NewEngrInfoRow();
                DataRow[] dInfos = dsFor.EngrInfo.Select("BudgetGroup = '" + group + "'");
                this.GroupRows(dInfos, eRow);
                rprtDs.EngrInfo.AddEngrInfoRow(eRow);
            }


            var exp_groups = new List <string>();

            foreach (DataRow row in dsFor.Table1.Rows)
            {
                exp_groups.Add(row["AcctNumber"].ToString());
            }
            exp_groups = exp_groups.Distinct().OrderBy(x => x).ToList();

            foreach (var exp_group in exp_groups)
            {
                DSForecastRprt.Table1Row tblRow = rprtDs.Table1.NewTable1Row();
                DataRow[] dInfos = dsFor.Table1.Select("AcctNumber = '" + exp_group + "'");
                this.GroupExpRows(sProject, dInfos, tblRow);
                rprtDs.Table1.AddTable1Row(tblRow);
            }


            return(rprtDs);
        }