Example #1
0
        private void GetData()
        {
            try
            {
                List <AccountCode> lstAccountCode   = new AccountCodeDAL().GetAccountCodes().Where(x => x.Status == "A").ToList();
                List <AccountCode> AccountCodesData = new List <AccountCode>();

                if (AuthUser.JuncUserRoles.FirstOrDefault().RoleID == 3 || AuthUser.JuncUserRoles.FirstOrDefault().RoleID == 4)
                {
                    AccountCodesData = lstAccountCode;
                }
                else
                {
                    AccountCodesData = AuthUser.UserMengurusWorkflows.Where(x => x.Status == "A").Select(x => x.AccountCode1).ToList();
                    if (AccountCodesData.Count == 0)
                    {
                        lstAccountCode = new List <AccountCode>();
                    }
                    else
                    {
                        List <string> lstprntcodes = AccountCodesData.Select(x => x.ParentAccountCode).Distinct().ToList();
                        while (lstprntcodes.Count > 0)
                        {
                            List <AccountCode> lstprnts = lstAccountCode.Where(x => lstprntcodes.Contains(x.AccountCode1)).ToList();
                            foreach (AccountCode o in lstprnts)
                            {
                                if (AccountCodesData.Where(x => x.AccountCode1 == o.AccountCode1).Count() == 0)
                                {
                                    AccountCodesData.Add(o);
                                }
                            }
                            lstprntcodes = lstprnts.Select(x => x.ParentAccountCode).Distinct().ToList();
                        }
                    }
                }
                Session["AccountCodesData"] = lstAccountCode;

                List <int>           lstperiod  = GetSelectedPeriods();
                List <PeriodMenguru> PeriodData = new PeriodMengurusDAL().GetPeriodMengurus().Where(x => x.Status == "A" && lstperiod.Contains(x.PeriodMengurusID))
                                                  .OrderBy(x => x.MengurusYear).ThenBy(x => x.FieldMenguru.FieldMengurusDesc).ToList();

                List <PeriodMenguru> FixedData = ((List <FieldMenguru>)Session["FixedFieldMengurus"]).Where(x => lstperiod.Contains(x.FieldMengurusID))
                                                 .Select(x => new PeriodMenguru
                {
                    PeriodMengurusID = lstperiod.Contains(x.FieldMengurusID) ? x.FieldMengurusID : 0,
                    MengurusYear     = DateTime.Now.Year,
                    FieldMenguru     = new FieldMenguru
                    {
                        FieldMengurusID   = x.FieldMengurusID,
                        FieldMengurusDesc = x.FieldMengurusDesc,
                        Status            = x.Status
                    }
                }).OrderBy(x => x.MengurusYear).ThenBy(x => x.FieldMenguru.FieldMengurusDesc).ToList();

                FixedData.AddRange(PeriodData);
                Session["PeriodData"] = FixedData;

                bool CanEdit = false;

                List <BudgetMenguru> BudgetData = new BudgetMengurusDAL().GetBudgetMengurusStatus(GetSelectedSegmentDetails(), ref CanEdit)
                                                  .Where(x => x.Status == "A")
                                                  .Select(x => new BudgetMenguru
                {
                    BudgetMengurusID = 0,
                    AccountCode      = x.AccountCode,
                    PeriodMengurusID = x.PeriodMengurusID,
                    Status           = x.Status,
                    Remarks          = string.Empty,
                    Amount           = (AccountCodesData.Where(y => y.ParentAccountCode == x.AccountCode).Count() == 0) ? x.Amount : 0
                })
                                                  .GroupBy(x => new
                {
                    x.AccountCode,
                    x.PeriodMengurusID,
                    x.Status
                })
                                                  .Select(x => new BudgetMenguru
                {
                    AccountCode      = x.Key.AccountCode,
                    PeriodMengurusID = x.Key.PeriodMengurusID,
                    Status           = x.Key.Status,
                    Amount           = x.Sum(y => y.Amount)
                })
                                                  .ToList();

                Session["BudgetData"] = BudgetData;
                Session["CanEdit"]    = CanEdit;

                if (!CanEdit)
                {
                    chkKeterangan.Checked = false;
                    chkPengiraan.Checked  = false;
                }
            }
            catch (Exception ex)
            {
                ((SiteMaster)this.Master).ShowMessage("Error", "An error occurred", ex, true);
            }
        }
Example #2
0
        private DataTable GetMengurusExcel()
        {
            DataTable dt = new DataTable();

            try
            {
                List <BudgetMengurusYearEnd> data = new BudgetMengurusDAL().BudgetMengurusYearEnd(Convert.ToInt32(ddlBudgetYear.SelectedValue));
                List <string> acccodes            = data.Select(x => x.AccountCode).Distinct().OrderBy(x => x).ToList();
                List <string> prefixs             = data.Select(x => x.Prefix).Distinct().OrderBy(x => x).ToList();
                List <string> periods             = data.Select(x => x.PeriodMengurus).Distinct().OrderBy(x => x).ToList();

                //Start Build DataTable
                DataColumn dc = new DataColumn();
                foreach (Segment seg in new SegmentDAL().GetSegments().OrderBy(x => x.SegmentOrder))
                {
                    dc = new DataColumn(seg.SegmentName);
                    dt.Columns.Add(dc);
                }
                dc = new DataColumn("AccountCode");
                dt.Columns.Add(dc);
                dc = new DataColumn("Objeck");
                dt.Columns.Add(dc);
                dc = new DataColumn("Description");
                dt.Columns.Add(dc);
                foreach (string pe in periods)
                {
                    dc = new DataColumn(pe);
                    dt.Columns.Add(dc);
                }
                //End Build DataTable

                //Start pushing data into DataTable
                foreach (string pr in prefixs)
                {
                    foreach (string ac in acccodes)
                    {
                        List <BudgetMengurusYearEnd> subset = data.Where(x => x.AccountCode == ac && x.Prefix == pr).ToList();
                        if (subset.Count > 0)
                        {
                            int     c  = 0;
                            DataRow dr = dt.NewRow();
                            foreach (string sgd in subset[0].ListSegmentDetails)
                            {
                                dr[c] = sgd;
                                c++;
                            }
                            dr[c] = ac;
                            c++;
                            dr[c] = pr + "-" + ac;
                            c++;
                            dr[c] = subset[0].Description;
                            c++;
                            foreach (string pe in periods)
                            {
                                BudgetMengurusYearEnd d = subset.Where(x => x.PeriodMengurus == pe).FirstOrDefault();

                                if (d != null)
                                {
                                    dr[c] = d.Amount.ToString("F");
                                }
                                else
                                {
                                    dr[c] = string.Empty;
                                }

                                c++;
                            }
                            dt.Rows.Add(dr);
                        }
                    }
                }
                //End pushing data into DataTable
            }
            catch (Exception ex)
            {
                ((SiteMaster)this.Master).ShowMessage("Error", "An error occurred", ex, true);
            }

            return(dt);
        }