Esempio n. 1
0
        private void InitializeGridViewExpensesPerIndex(DataTable dt, int esexId)
        {
            var apartments = ApartmentsManager.GetForIndividual(Association.Id, esexId);

            AssociationExpenses ee = AssociationExpensesManager.GetById(esexId);

            foreach (var apartment in apartments)
            {
                ApartmentExpensesManager.ConfigureIndividual(ee, apartment);

                string query = @"
                    Select 
                    TE.Id as Id,
                    A.Number as Apartament,
                    TE.Value as 'Valoare'
                    from ApartmentExpenses TE
                    Inner join Apartments A
                    ON TE.Id_Tenant = A.Id
                    where Id_EstateExpense = " + esexId + " and Id_Tenant = " + apartment.Id +
                               " and A.Id_Estate = " + Association.Id;

                SqlConnection  cnn = new SqlConnection("data source=HOME\\SQLEXPRESS;initial catalog=Administratoro;integrated security=True;MultipleActiveResultSets=True;");
                SqlCommand     cmd = new SqlCommand(query, cnn);
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                adp.Fill(dt);
            }

            ViewState["dtIndividual"]     = dt;
            gvExpensesPerIndex.DataSource = dt;
            gvExpensesPerIndex.DataBind();
        }
Esempio n. 2
0
        protected void Page_Init(object sender, EventArgs e)
        {
            AssociationExpensesManager.ConfigurePerIndex(Association, year(), month());

            mainHeader.InnerText = "Facturi pentru luna " + CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month()) + " " + year();
            InitializeInvoice();
        }
Esempio n. 3
0
        protected void GridView1_DataBinding(object sender, EventArgs e)
        {
            GridViewRow headerGridRow = new GridViewRow(0, 0, DataControlRowType.Header,
                                                        DataControlRowState.Insert); //creating new Header Type
            TableCell headerCell = new TableCell();                                  //creating HeaderCell

            headerCell.ColumnSpan = 4;
            headerGridRow.Cells.Add(headerCell);//Adding HeaderCell to header.

            var expenses = AssociationExpensesManager.GetByMonthAndYearNotDisabled(Association.Id, Year, Month).GroupBy(ee => ee.Id_ExpenseType).OrderBy(er => er.Key).ToList();

            foreach (var expense in expenses)
            {
                var headerCell2 = new TableCell();
                headerCell2.Text       = expense.FirstOrDefault().ExpenseTypes.Name;
                headerCell2.ColumnSpan = expense.ToList().Count;
                headerGridRow.Cells.Add(headerCell2);//Adding HeaderCell to header.
            }

            TableCell HeaderCell3 = new TableCell(); //creating HeaderCell

            HeaderCell3.ColumnSpan = GridView1.Rows[0].Cells.Count - 4 - expenses.Select(c => c.ToList()).Count();
            headerGridRow.Cells.Add(HeaderCell3);//Adding HeaderCell to header.

            GridView1.Controls[0].Controls.AddAt(0, headerGridRow);
        }
Esempio n. 4
0
        private void ConfigureRedistributeMessages(int associationExpenseId)
        {
            string redistributeValue = RedistributionManager.CalculateRedistributeValueAsString(associationExpenseId);

            invoiceRedistributeMessage.Text = "<br>Cheltuială de redistribuit:" + redistributeValue + "<br>";

            decimal redistributeVal;

            if (decimal.TryParse(redistributeValue, out redistributeVal))
            {
                IEnumerable <Apartments> apartmentsForRedistribute = AssociationExpensesManager.GetApartmentsNrThatShouldRedistributeTo(associationExpenseId);

                txtInvoiceRedistributeEqualApartment.Text = apartmentsForRedistribute.Count() + " apartamente, alocă <b>" +
                                                            Math.Round(redistributeVal / apartmentsForRedistribute.Count(), 2) + "</b> la fiecare apartament";

                var allApartmentDependents = apartmentsForRedistribute.Sum(t => t.Dependents);
                var valuePerApartment      = "0";
                if (allApartmentDependents != 0)
                {
                    valuePerApartment = Math.Round(redistributeVal / allApartmentDependents, 2).ToString();
                }

                txtInvoiceRedistributeEqualTenants.Text = allApartmentDependents + " persoane în bloc, alocă <b>" + valuePerApartment + "</b> per fiecare locatar";

                invoiceRedistributeEqualApartment.CommandArgument = associationExpenseId.ToString();
                invoiceRedistributeEqualTenants.CommandArgument   = associationExpenseId.ToString();
                invoiceRedistributeConsumption.CommandArgument    = associationExpenseId.ToString();
            }
        }
Esempio n. 5
0
        protected void btnCloseMonth_Click(object sender, EventArgs e)
        {
            var expenses = AssociationExpensesManager.CheckCloseMonth(Association.Id, year(), month());

            if (expenses.Any())
            {
                pnlMessage.Visible = true;

                StringBuilder sb = new StringBuilder();
                sb.Append("Luna nu poate fi închisă. <br> Cheltuielile care nu sunt complete: ");

                foreach (var expense in expenses)
                {
                    sb.Append(expense.ToString() + ", ");
                }

                string result = sb.ToString().Substring(0, sb.ToString().Length - 2);

                Label lbMessage = new Label();
                lbMessage.Attributes.CssStyle.Add("color", "red");
                lbMessage.Text = result;
                pnlMessage.Controls.Add(lbMessage);
            }
            else
            {
                var shouldMonthClose = btnCloseMonth.CommandArgument != "0";
                AssociationExpensesManager.ConfigureOpenCloseMonth(Association.Id, year(), month(), shouldMonthClose);
                Response.Redirect(Request.RawUrl);
            }
        }
Esempio n. 6
0
        protected void lblExpenseMeessageDownload_Click(object sender, EventArgs e)
        {
            DataTable dt;
            int       stairCase;

            if (int.TryParse(drpDisplayMode.SelectedValue, out stairCase))
            {
                dt = ApartmentExpensesManager.GetMonthlyRaportAsDataTable(Association.Id, Year, Month, stairCase);
                dt.Rows.Add(new TableCell());
            }
            else
            {
                dt = ApartmentExpensesManager.GetMonthlyRaportAsDataTable(Association.Id, Year, Month, null);
            }

            MemoryStream stream;

            using (XLWorkbook wb = new XLWorkbook())
            {
                var ws = wb.Worksheets.Add(dt, "Cheltuieli");
                ws.Row(1).InsertRowsAbove(1);

                ws.Cells("A1").Value = ws.Cell(2, 1).Value;
                ws.Range("A1:A2").Merge();

                ws.Cells("B1").Value = ws.Cell(2, 2).Value;
                ws.Range("B1:B2").Merge();

                ws.Cells("C1").Value = ws.Cell(3, 2).Value;
                ws.Range("C1:C2").Merge();

                ws.Cells("D1").Value = ws.Cell(4, 2).Value;
                ws.Range("D1:D2").Merge();

                var  expenses = AssociationExpensesManager.GetByMonthAndYearNotDisabled(Association.Id, Year, Month).GroupBy(ee => ee.Id_ExpenseType).OrderBy(er => er.Key);
                char position = 'E';
                foreach (var expense in expenses)
                {
                    var tempPosition = position;
                    position = (char)(position + expense.ToList().Count - 1);
                    var range = string.Format("{0}1:{1}1", tempPosition.ToString(), position.ToString());
                    ws.Cells(tempPosition + "1").Value = expense.FirstOrDefault().ExpenseTypes.Name;
                    ws.Range(range).Merge();
                    position = (char)(position + 1);
                }

                stream = GetStream(wb);
            }

            string myName = Server.UrlEncode("Cheltuieli" + "_" + DateTime.Now.ToShortDateString() + ".xlsx");

            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment; filename=" + myName);
            Response.ContentType = "application/vnd.ms-excel";
            Response.BinaryWrite(stream.ToArray());
            Response.Flush();
            Response.SuppressContent = true;
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var defaultEe = AssociationExpensesManager.GetFromLastestOpenedMonth(Association.Id);

            if (!Page.IsPostBack)
            {
                InitializeYearsAndMonths(defaultEe);
            }
            InitializeExpenses();
        }
Esempio n. 8
0
        protected void invoiceRedistributeEqualApartment_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            int    associationExpenseId;

            if (int.TryParse(btn.CommandArgument, out associationExpenseId))
            {
                AssociationExpensesManager.UpdateRedistributeMethod(associationExpenseId, 1);
                Response.Redirect(Request.RawUrl);
            }
        }
Esempio n. 9
0
        protected void btnSave2_Click(object sender, EventArgs e)
        {
            var association = Session[SessionConstants.SelectedAssociation] as Administratoro.DAL.Associations;
            Dictionary <int, int> dictionary = GetSelectdExpenses();

            AssociationExpensesManager.AddAssociationExpensesByApartmentAndMonth(association.Id, dictionary);
            association = AssociationsManager.GetById(association.Id);

            Session[SessionConstants.SelectedAssociation] = association;
            ConfigureStep3();
        }
Esempio n. 10
0
        private void AddBodyPanels(int associationId, int yearNr, int monthNr)
        {
            string mainRowCssFormat = "col-md-12 col-sm-12 xs-12 cashBokItemsRow {0}";
            bool   even             = false;

            IEnumerable <Administratoro.DAL.Expenses> allExpenses = ExpensesManager.GetAllExpenses();
            var associationExpenses = AssociationExpensesManager.GetByMonthAndYearNotDisabled(associationId, yearNr, monthNr).OrderBy(ee => ee.Id_ExpenseType);

            // add expense panels
            foreach (Expenses expense in allExpenses)
            {
                var associationExpense = associationExpenses.FirstOrDefault(ea => ea.Id_Expense == expense.Id);
                if (associationExpense != null)
                {
                    var mainCol = new Panel();

                    if (even)
                    {
                        even             = false;
                        mainCol.CssClass = string.Format(mainRowCssFormat, "evenRow");
                    }
                    else
                    {
                        even             = true;
                        mainCol.CssClass = string.Format(mainRowCssFormat, "oddRow");
                    }

                    bool isExpensePerIndex = associationExpense.ExpenseTypes.Id == (int)ExpenseType.PerIndex;

                    var col0 = AddBodyPanelCol0(associationExpense, isExpensePerIndex);
                    var col1 = AddBodyPanelCol1(expense, associationExpense);

                    TextBox tb2;
                    var     col2 = AddBodyPanelCol2(associationExpense, out tb2);

                    TextBox tb3;
                    var     col3 = AddBodyPanelCol3(associationExpense, tb2, out tb3);

                    var col6 = AddBodyPanelCol6(associationExpense);
                    var col4 = AddBodyPanelCol4(associationExpense, tb2);
                    var col5 = AddBodyPanelCol5(associationExpense, isExpensePerIndex);

                    mainCol.Controls.Add(col0);
                    mainCol.Controls.Add(col1);
                    mainCol.Controls.Add(col2);
                    mainCol.Controls.Add(col3);
                    mainCol.Controls.Add(col6);
                    mainCol.Controls.Add(col4);
                    mainCol.Controls.Add(col5);

                    invoiceMain.Controls.Add(mainCol);
                }
            }
        }
Esempio n. 11
0
        protected void btnOpening_Click(object sender, EventArgs e)
        {
            lblMessage.Attributes.Add("style", "");
            var year  = drpOpeningYear.SelectedValue.ToNullableInt().Value;
            var month = drpOpeningMonth.SelectedValue.ToNullableInt().Value;

            var ee = AssociationExpensesManager.GetAllAssociationExpensesByMonthAndYearIncludingDisabled(Association.Id, year, month);

            if (ee.Count() != 0)
            {
                lblMessage.Text = "Luna deschisa deja, selecteaza alta luna-an";
                lblMessage.Attributes.Add("style", "color: red");
                return;
            }
            IEnumerable <AssociationExpenses> oldEe = AssociationExpensesManager.GetFromLastestOpenedMonth(Association.Id);

            foreach (TableRow row in tblMonthlyExpenses.Rows)
            {
                if (row.Cells.Count > 2)
                {
                    TableCell cellIsSelected  = row.Cells[0];
                    TableCell cellExpenseType = row.Cells[2];

                    if (cellIsSelected.Controls.Count == 1 && cellIsSelected.Controls[0] is CheckBox &&
                        cellExpenseType.Controls.Count == 1 && cellExpenseType.Controls[0] is DropDownList)
                    {
                        CheckBox     cbIsSelected               = (CheckBox)cellIsSelected.Controls[0];
                        DropDownList drpExpenseType             = (DropDownList)cellExpenseType.Controls[0];
                        bool         cbIsStairCaseSplitSelected = false;

                        if (row.Cells.Count > 3)
                        {
                            TableCell cellIsStairCaseSplit = row.Cells[3];
                            cbIsStairCaseSplitSelected = ((CheckBox)cellIsStairCaseSplit.Controls[0]).Checked;
                        }

                        if (cbIsSelected.Checked)
                        {
                            string cbId = cbIsSelected.ID.Replace("expense", "");
                            int    expenseId;
                            if (int.TryParse(cbId, out expenseId))
                            {
                                AssociationExpenses newEe = AssociationExpensesManager.Add(Association.Id, expenseId,
                                                                                           month, year, drpExpenseType.SelectedValue, cbIsStairCaseSplitSelected);
                                AssociationExpensesManager.UpdatePricePerUnitDefaultPreviousMonth(newEe, oldEe);
                            }
                        }
                    }
                }
            }

            Response.Redirect("~/Expenses/Invoices.aspx?year=" + year + "&month=" + month);
        }
Esempio n. 12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            InitializeStairCases();
            var idExes = Request.QueryString["id_exes"];
            int idExpenseEstate;

            if (int.TryParse(idExes, out idExpenseEstate))
            {
                AssociationExpenses ee = AssociationExpensesManager.GetById(idExpenseEstate);
                if (ee != null)
                {
                    btnRedirect.PostBackUrl = "Invoices.aspx?year=" + ee.Year + "&month=" + ee.Month;
                    btnRedirect.Visible     = true;

                    lblExpenseMeessage.Text = "Modifică <b>" + ee.Expenses.Name + "</b> pe luna <b>"
                                              + CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(ee.Month) + "</b> (cheltuială " + ee.ExpenseTypes.Name + ")";

                    if (ee.ExpenseTypes.Id == (int)ExpenseType.PerIndex)
                    {
                        DataTable dt = new DataTable();
                        if (!Page.IsPostBack)
                        {
                            //todo1 - work around counters and staircase
                            //txtExpensesPerIndexValue.Text = ee.AssociationExpensesUnitPrices.FirstOrDefault().PricePerExpenseUnit.ToString();
                        }

                        if (ViewState["dtPerIndex"] == null)
                        {
                            InitializeGridViewExpensesPerIndex(dt, ee.Id);
                        }
                        else
                        {
                            dt = (DataTable)ViewState["dtPerIndex"];
                            ViewState["dtPerIndex"]       = dt;
                            gvExpensesPerIndex.DataSource = dt;
                        }
                    }
                    else
                    {
                        throw new ArgumentException("Expense type not per index");
                    }
                }
                else
                {
                    throw new ArgumentException("AddEditExpenseRequest parameter does not exist");
                }
            }
            else
            {
                throw new ArgumentException("AddEditExpenseRequest parameter not correct");
            }
        }
Esempio n. 13
0
        private static Panel AddBodyPanelCol0(AssociationExpenses associationExpense, bool isExpensePerIndex)
        {
            // column 0
            var     col0     = new Panel();
            Literal literal0 = new Literal
            {
                Text = AssociationExpensesManager.StatusOfInvoices(associationExpense, isExpensePerIndex)
            };

            col0.Controls.Add(literal0);
            col0.CssClass = "col-md-1 col-sm-2 col-xs-6";
            return(col0);
        }
Esempio n. 14
0
        private void InitializeYearMonth()
        {
            drpAvailableMonths.Items.Clear();
            var yearMonths = AssociationExpensesManager.GetAllMonthsAndYearsAvailableByAssociationId(Association.Id);

            for (int i = 0; i < yearMonths.Count; i++)
            {
                var yearMonth = yearMonths[i];
                drpAvailableMonths.Items.Add(new System.Web.UI.WebControls.ListItem
                {
                    Value = yearMonth.Year + "-" + yearMonth.Month,
                    Text  = "Anul:" + yearMonth.Year + " Luna:" + yearMonth.Month,
                });
            }
        }
Esempio n. 15
0
        public void ClickablePanel1_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            int    associationExpenseId;

            if (int.TryParse(btn.CommandArgument, out associationExpenseId))
            {
                var associationExpense = AssociationExpensesManager.GetById(associationExpenseId);

                if (associationExpense == null)
                {
                    return;
                }

                Response.Redirect("~/Invoices/Add.aspx?year=" + year() + "&month=" + month() + "&expense=" + associationExpense.Id_Expense);
            }
        }
Esempio n. 16
0
        private void InitializeGridViewExpensesPerIndex(DataTable dt, int esexId)
        {
            AssociationExpenses ee = AssociationExpensesManager.GetById(esexId);

            int stairCase;
            List <Administratoro.DAL.Apartments> apartments;

            if (Association.HasStaircase && !string.IsNullOrEmpty(drpStairCases.SelectedValue) && int.TryParse(drpStairCases.SelectedValue, out stairCase))
            {
                apartments = ApartmentsManager.GetAllThatAreRegisteredWithSpecificCounters(Association.Id, esexId, stairCase);
            }
            else
            {
                apartments = ApartmentsManager.GetAllThatAreRegisteredWithSpecificCounters(Association.Id, esexId);
            }


            ApartmentExpensesManager.ConfigurePerIndex(ee, apartments);

            foreach (var apartment in apartments)
            {
                string query = @"
                    Select 
                    AE.Id as Id,
                    A.Number as Apartament,
                    cast(AE.IndexOld as float) as 'Index vechi',
                    cast(AE.IndexNew as float) as 'Index nou',
                    (AE.IndexNew - AE.IndexOld ) as 'Consum',
                    AE.Value as 'Valoare'
                    from ApartmentExpenses AE
                    Inner join Apartments A
                    ON AE.Id_Tenant = A.Id
                    where Id_EstateExpense = " + esexId + " and Id_Tenant = " + apartment.Id +
                               " and A.Id_Estate = " + Association.Id;

                SqlConnection  cnn = new SqlConnection("data source=HOME\\SQLEXPRESS;initial catalog=Administratoro;integrated security=True;MultipleActiveResultSets=True;");
                SqlCommand     cmd = new SqlCommand(query, cnn);
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                adp.Fill(dt);
            }

            ViewState["dtPerIndex"]       = dt;
            gvExpensesPerIndex.DataSource = dt;
            gvExpensesPerIndex.DataBind();
        }
Esempio n. 17
0
        private void InitializeMonths(int?year, int?month)
        {
            drpExpenseMonth.Items.Clear();
            var estate = (Associations)Session[SessionConstants.SelectedAssociation];

            if (estate != null)
            {
                var yearMonths = AssociationExpensesManager.GetAllMonthsAndYearsAvailableByAssociationId(estate.Id);
                foreach (var ym in yearMonths)
                {
                    drpExpenseMonth.Items.Add(new ListItem
                    {
                        Text     = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(ym.Month) + " " + ym.Year,
                        Value    = ym.Month.ToString(),
                        Selected = (year != null && ym.Month == month.Value)
                    });
                }
            }
        }
Esempio n. 18
0
        private void InitializeMonths(int month)
        {
            var availableYearMonths = AssociationExpensesManager.GetAllMonthsAndYearsAvailableByAssociationId(Association.Id);

            drpOpeningMonth.Items.Clear();

            drpOpeningMonth.Items.Add(new ListItem {
                Value = "1", Text = "Ianuarie", Selected = IsMonthSelected(1, month), Enabled = IsMonthEnabled(1, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "2", Text = "Februarie", Selected = IsMonthSelected(2, month), Enabled = IsMonthEnabled(2, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "3", Text = "Martie", Selected = IsMonthSelected(3, month), Enabled = IsMonthEnabled(3, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "4", Text = "Aprilie", Selected = IsMonthSelected(4, month), Enabled = IsMonthEnabled(4, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "5", Text = "Mai", Selected = IsMonthSelected(5, month), Enabled = IsMonthEnabled(5, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "6", Text = "Iunie", Selected = IsMonthSelected(6, month), Enabled = IsMonthEnabled(6, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "7", Text = "Iulie", Selected = IsMonthSelected(7, month), Enabled = IsMonthEnabled(7, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "8", Text = "August", Selected = IsMonthSelected(8, month), Enabled = IsMonthEnabled(8, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "9", Text = "Septembrie", Selected = IsMonthSelected(9, month), Enabled = IsMonthEnabled(9, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "10", Text = "Octombrie", Selected = IsMonthSelected(10, month), Enabled = IsMonthEnabled(10, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "11", Text = "Noiembrie", Selected = IsMonthSelected(11, month), Enabled = IsMonthEnabled(11, availableYearMonths)
            });
            drpOpeningMonth.Items.Add(new ListItem {
                Value = "12", Text = "Decembrie", Selected = IsMonthSelected(12, month), Enabled = IsMonthEnabled(12, availableYearMonths)
            });
        }
Esempio n. 19
0
        private static Panel AddBodyPanelCol5(AssociationExpenses associationExpense, bool isExpensePerIndex)
        {
            // column 5
            var col5 = new Panel
            {
                CssClass = "col-md-3 col-sm-2 col-xs-6"
            };

            if (associationExpense.Id_ExpenseType != (int)ExpenseType.Individual)
            {
                if (isExpensePerIndex && associationExpense.Associations.Apartments.Count() > 0)
                {
                    var message     = AssociationExpensesManager.ExpensePercentageFilledInMessage(associationExpense);
                    var col5Literal = new Literal {
                        Text = message
                    };
                    col5.Controls.Add(col5Literal);
                    if (!message.Contains("<b>0</b> citiri adăugate din <b>0</b"))
                    {
                        Button btnAddExpense = new Button
                        {
                            PostBackUrl = "AddEditExpense.aspx?id_exes=" + associationExpense.Id,
                            Text        = "Adaugă/Modifică",
                            Visible     = isExpensePerIndex
                        };
                        col5.Controls.Add(btnAddExpense);
                    }
                }
            }
            else
            {
                Button btnAddHeatHelp = new Button
                {
                    PostBackUrl = "AddEditIndividual.aspx?id_exes=" + associationExpense.Id,
                    Text        = "Adaugă/Modifică"
                };

                col5.Controls.Add(btnAddHeatHelp);
            }

            return(col5);
        }
Esempio n. 20
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var estate                  = (Associations)Session[SessionConstants.SelectedAssociation];
            var defaultCssClass         = "col-md-2 col-sm-3 col-xs-12";
            List <YearMonth> yearMonths = AssociationExpensesManager.GetAllMonthsAndYearsAvailableByAssociationId(estate.Id);

            if (yearMonths.Count != 0)
            {
                foreach (var yearMonth in yearMonths)
                {
                    var month = new Panel
                    {
                        CssClass = defaultCssClass
                    };
                    var link = new LinkButton {
                        Text = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(yearMonth.Month) + " " + yearMonth.Year.ToString()
                    };
                    link.Click          += link_Click;
                    link.CommandArgument = yearMonth.Year.ToString() + yearMonth.Month.ToString();
                    link.CssClass        = "monthsMainItem";
                    month.Controls.Add(link);
                    monthsMain.Controls.Add(month);
                }

                var month0 = new Panel
                {
                    CssClass = defaultCssClass
                };

                monthsMain.Controls.Add(month0);
            }
            else
            {
                var lblMessage = new Label
                {
                    Text = @"<h4>Nici o lună deschisă.</h4> <br> Pentru a vedea rapoarte, mai întâi trebuie să ai cel puțin o lună deschisă. 
                            <a href='/Expenses/Dashboard.aspx'>Click aici pentru a începe<a/>"
                };
                monthsMain.Controls.Add(lblMessage);
            }
        }
Esempio n. 21
0
        private void InitializeInvoice(int associationId, int yearNr, int monthNr)
        {
            bool isMonthClosed = AssociationExpensesManager.IsMonthClosed(associationId, yearNr, monthNr);

            if (!isMonthClosed)
            {
                AddHeaderPanels();
                AddBodyPanels(associationId, yearNr, monthNr);
                btnCloseMonth.CommandArgument = "1";
            }
            else
            {
                Label lbMessage = new Label();
                lbMessage.Attributes.CssStyle.Add("color", "red");
                lbMessage.Text = "Luna este închisă, nu se mai pot face modificări. Pentru a redeschide luna contactează administratorul asociației";
                pnlMessage.Controls.Add(lbMessage);
                pnlMessage.Visible                  = true;
                btnCloseMonth.Text                  = "Deschide Luna";
                btnCloseMonth.CommandArgument       = "0";
                lblExpenseMeessageConfigure.Visible = false;
            }
        }
Esempio n. 22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var estate          = (Administratoro.DAL.Associations)Session[SessionConstants.SelectedAssociation];
            var defaultCssClass = "col-md-2 col-sm-3 col-xs-12";
            var yearMonths      = AssociationExpensesManager.GetAllMonthsAndYearsAvailableByAssociationId(estate.Id);

            foreach (var yearMonth in yearMonths)
            {
                var month = new Panel
                {
                    CssClass = defaultCssClass
                };
                var link = new LinkButton {
                    Text = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(yearMonth.Month) + " " + yearMonth.Year.ToString()
                };
                link.Click          += link_Click;
                link.CommandArgument = yearMonth.Year.ToString() + yearMonth.Month.ToString();
                link.CssClass        = "monthsMainItem";
                month.Controls.Add(link);
                monthsMain.Controls.Add(month);
            }

            var month0 = new Panel
            {
                CssClass = defaultCssClass
            };

            var lnkNewMonthOprning = new LinkButton {
                Text = "Deschide o nouă lună"
            };

            lnkNewMonthOprning.Click          += lnkNewMonthOprning_Click;
            lnkNewMonthOprning.CommandArgument = "-1";
            lnkNewMonthOprning.CssClass        = "monthsMainItem fa fa-plus";

            month0.Controls.Add(lnkNewMonthOprning);
            monthsMain.Controls.Add(month0);
        }
Esempio n. 23
0
        private Panel AddBodyPanelCol6(AssociationExpenses associationExpense)
        {
            // column 6
            var col6 = new Panel
            {
                CssClass = "col-md-2 col-sm-2 col-xs-6"
            };

            if (associationExpense.ExpenseTypes.Id == (int)ExpenseType.PerIndex)
            {
                string percentage = AssociationExpensesManager.GetPercentageAsString(associationExpense);

                Button btnRedistibuteRemainingExpense = new Button
                {
                    CssClass        = "btnRedistibuteRemainingExpense",
                    Visible         = (percentage == "100" || percentage == string.Empty) ? true : false,
                    Text            = (!associationExpense.RedistributeType.HasValue) ? "Redistribuie" : "Redistibuit " + associationExpense.AssociationExpensesRedistributionTypes.Value + ", MODIFICĂ",
                    CommandArgument = associationExpense.Id.ToString()
                };
                btnRedistibuteRemainingExpense.Click += btnRedistibuteRemainingExpense_Click;
                col6.Controls.Add(btnRedistibuteRemainingExpense);
            }
            return(col6);
        }
Esempio n. 24
0
        protected void btnDownload_Click(object sender, EventArgs e)
        {
            BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, false);

            Font times = new Font(bfTimes, 12, Font.ITALIC, BaseColor.BLACK);

            //server folder path which is stored your PDF documents
            string path     = Server.MapPath("");
            string filename = path + "\\Doc1.pdf";


            var  apartments = ApartmentsManager.Get(Association.Id);
            Font boldFont   = new Font(null, 12, Font.BOLD);

            //Create new PDF document
            Document document = new Document(PageSize.A4, 80f, 80f, 20f, 20f);

            using (Document doc = new Document())
            {
                MemoryStream msPDFData = new MemoryStream();
                doc.Open();
                doc.Add(new Paragraph("I'm a pdf!"));
                byte[] pdfData = msPDFData.ToArray();
            }

            var association = Association;

            try
            {
                PdfWriter.GetInstance(document, new FileStream(filename, FileMode.Create));
                document.Open();

                foreach (var apartment in apartments)
                {
                    decimal?  sumToPay  = 0;
                    PdfPTable tblHeader = new PdfPTable(2)
                    {
                        WidthPercentage = 100
                    };
                    tblHeader.AddCell(GetCell("ASOCIATIA DE PROPRIETARI " + association.Name + ", CF " + association.FiscalCode, PdfPCell.ALIGN_LEFT));
                    tblHeader.AddCell(GetCell("CONTUL BANCAR " + association.BanckAccont, PdfPCell.ALIGN_RIGHT));
                    document.Add(tblHeader);
                    document.Add(new Phrase("\n"));

                    PdfPTable tbAp = new PdfPTable(4);
                    tbAp.WidthPercentage = 100;
                    tbAp.AddCell(GetCell("Ap.: " + apartment.Number, PdfPCell.ALIGN_CENTER));
                    tbAp.AddCell(GetCell("Nume: " + apartment.Name, PdfPCell.ALIGN_CENTER));
                    tbAp.AddCell(GetCell("Cota: " + (apartment.CotaIndiviza.HasValue ? apartment.CotaIndiviza.Value.ToString(CultureInfo.InvariantCulture) : string.Empty), PdfPCell.ALIGN_CENTER));
                    tbAp.AddCell(GetCell("Nr. Pers: " + apartment.Dependents, PdfPCell.ALIGN_CENTER));
                    document.Add(tbAp);

                    document.Add(new Phrase("\n"));

                    var associationExpensesGrouped = AssociationExpensesManager.GetByMonthAndYearNotDisabled(association.Id, GetYear(), GetMonth())
                                                     .GroupBy(ee => ee.Id_ExpenseType).OrderBy(er => er.Key);

                    foreach (var assocExpenses in associationExpensesGrouped)
                    {
                        // add header
                        document.Add(new Paragraph("Cheltuielile de tipulîățșț " + assocExpenses.FirstOrDefault().ExpenseTypes.Name, times));

                        if (assocExpenses.FirstOrDefault().Id_ExpenseType == (int)ExpenseType.PerIndex)
                        {
                            foreach (var assocExpense in assocExpenses)
                            {
                                var apExpenses = assocExpense.ApartmentExpenses.Where(w => w.Id_Tenant == apartment.Id).ToList();
                                if (apExpenses.Any())
                                {
                                    sumToPay = sumToPay + AddIndexTable(document, apExpenses, apartment, assocExpense.Id);
                                }
                            }
                        }
                        else if (assocExpenses.FirstOrDefault().Id_ExpenseType == (int)ExpenseType.PerCotaIndiviza)
                        {
                            sumToPay = sumToPay + AddCotaTable(document, assocExpenses.ToList(), apartment.Id);
                        }
                        else if (assocExpenses.FirstOrDefault().Id_ExpenseType == (int)ExpenseType.PerNrTenants)
                        {
                            sumToPay = sumToPay + AddTenantsTable(document, assocExpenses.ToList(), apartment.Id);
                        }
                        // add rows
                        // add subtotal
                    }

                    document.Add(new Paragraph("TOTAL DE PLATA: " + sumToPay, boldFont));


                    document.NewPage();
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                document.Close();
                ShowPdf(filename);
            }
        }
Esempio n. 25
0
        public ActionResult Index()
        {
            var months = AssociationExpensesManager.GetAllMonthsAndYearsAvailableByAssociationId(AssociationId);

            return(View(months));
        }
Esempio n. 26
0
        private void InitializeExpenses()
        {
            //tblMonthlyExpenses.Rows.Clear();
            int month;
            int _year = Year().HasValue ? Year().Value : 2017;

            if (int.TryParse(drpExpenseMonth.SelectedValue, out month))
            {
                var estate = (Associations)Session[SessionConstants.SelectedAssociation];
                if (estate != null)
                {
                    var ee             = AssociationExpensesManager.GetByMonthAndYearNotDisabled(estate.Id, _year, month);
                    var eeAlsoDisabled = AssociationExpensesManager.GetAllAssociationExpensesByMonthAndYearIncludingDisabled(estate.Id, _year, month);

                    IEnumerable <Expenses> expenses = ExpensesManager.GetAllExpenses();

                    foreach (var expense in expenses)
                    {
                        TableRow row = new TableRow();

                        // add expense that were added
                        TableCell expenseExists = new TableCell();
                        CheckBox  esexExists    = new CheckBox();
                        esexExists.AutoPostBack = false;
                        esexExists.ID           = String.Format("esateExpense{0}", expense.Id);
                        esexExists.Checked      = IsExpenseSelected(expense, ee, _year, month);
                        expenseExists.Controls.Add(esexExists);
                        row.Cells.Add(expenseExists);

                        // add expense name
                        TableCell expenseName = new TableCell
                        {
                            Text = expense.Name
                        };
                        row.Cells.Add(expenseName);

                        // add expense type
                        TableCell           expenseType = new TableCell();
                        AssociationExpenses esex        = eeAlsoDisabled.FirstOrDefault(s => s.Id_Expense == expense.Id && s.Month == month && s.Year == _year && s.Id_Estate == estate.Id);

                        DropDownList dp = new DropDownList();
                        if (expense.Id != (int)Expense.AjutorÎncălzire)
                        {
                            var selected1 = IsDplExpenseTypesSelected(esex, ExpenseType.PerIndex);
                            dp.Items.Add(new ListItem
                            {
                                Value    = "1",
                                Text     = "Individuală prin indecși",
                                Selected = selected1
                            });

                            var selected2 = IsDplExpenseTypesSelected(esex, ExpenseType.PerCotaIndiviza);
                            dp.Items.Add(new ListItem
                            {
                                Value    = "2",
                                Text     = "Cotă indiviză de proprietate",
                                Selected = selected2
                            });

                            var selected3 = IsDplExpenseTypesSelected(esex, ExpenseType.PerNrTenants);
                            dp.Items.Add(new ListItem
                            {
                                Value    = "3",
                                Text     = "Per număr persoane imobil",
                                Selected = selected3
                            });

                            var selected4 = IsDplExpenseTypesSelected(esex, ExpenseType.PerApartament);
                            dp.Items.Add(new ListItem
                            {
                                Value    = ((int)ExpenseType.PerApartament).ToString(),
                                Text     = ExpenseType.PerApartament.ToDescription(),
                                Selected = selected4
                            });
                        }

                        dp.Items.Add(new ListItem
                        {
                            Value = "6",
                            Text  = "Individual",
                        });

                        expenseType.Controls.Add(dp);
                        row.Cells.Add(expenseType);

                        if (estate.HasStaircase)
                        {
                            TableCell tcStairCase    = new TableCell();
                            CheckBox  stairCaseSplit = new CheckBox();
                            stairCaseSplit.AutoPostBack = false;
                            stairCaseSplit.Checked      = IsStairCaseSplitSelected(expense, ee, _year, month);
                            tcStairCase.Controls.Add(stairCaseSplit);
                            row.Cells.Add(tcStairCase);
                        }
                        else
                        {
                            tblMonthlyExpensesStairCaseSplit.Visible = false;
                        }

                        tblMonthlyExpenses.Rows.Add(row);
                    }
                }
            }
        }
Esempio n. 27
0
        protected void btnStep2_Click(object sender, EventArgs e)
        {
            step11.Visible = false;
            step22.Visible = false;
            step33.Visible = true;
            expenseListHref1.Attributes["class"]  = "done";
            expenseListHref1.Attributes["isdone"] = "1";
            expenseListHref2.Attributes["class"]  = "done";
            expenseListHref3.Attributes["class"]  = "selected";

            int _month;
            int _year = Year().HasValue ? Year().Value : 2017;

            if (int.TryParse(drpExpenseMonth.SelectedValue, out _month))
            {
                var estate = (Associations)Session[SessionConstants.SelectedAssociation];
                if (estate != null)
                {
                    var existingAssociationExpenses = AssociationExpensesManager.GetByMonthAndYearNotDisabled(estate.Id, _year, _month);
                    var existingAssociationExpensesIncludingDisabled = AssociationExpensesManager.GetAllAssociationExpensesByMonthAndYearIncludingDisabled(estate.Id, _year, _month);

                    foreach (TableRow row in tblMonthlyExpenses.Rows)
                    {
                        if (row != null && row.Cells.Count > 2 &&
                            row.Cells[0] != null && row.Cells[0].Controls.Count > 0 &&
                            row.Cells[0].Controls[0] != null)
                        {
                            if (row.Cells[0].Controls[0] is CheckBox && row.Cells[2].Controls[0] is DropDownList)
                            {
                                bool?cbExpensePerStaircase = null;

                                if (row.Cells.Count > 3 && row.Cells[3].Controls[0] is CheckBox)
                                {
                                    CheckBox cbStairCase = (CheckBox)row.Cells[3].Controls[0];
                                    cbExpensePerStaircase = cbStairCase.Checked;
                                }

                                CheckBox     cbExpenseSelect = (CheckBox)row.Cells[0].Controls[0];
                                DropDownList dpExpenseType   = (DropDownList)row.Cells[2].Controls[0];
                                int          expenseId       = 0;
                                if (int.TryParse(cbExpenseSelect.ID.Replace("esateExpense", ""), out expenseId))
                                {
                                    bool existingAssociationExpensesContainsItem           = existingAssociationExpenses.Select(esex => esex.Id_Expense).Contains(expenseId);
                                    bool existingAssociationExpensesContainsItemAsDisabled = existingAssociationExpensesIncludingDisabled
                                                                                             .Where(es => es.WasDisabled).Select(esex => esex.Id_Expense).Contains(expenseId);
                                    AssociationExpenses ee = null;

                                    // if selected and non existing in the prev. config
                                    if (cbExpenseSelect.Checked && existingAssociationExpensesContainsItemAsDisabled)
                                    {
                                        // enables it
                                        ee = AssociationExpensesManager.GetAssociationExpensesByMonthAndYearAndDisabled(estate.Id, expenseId, _year, _month);
                                        AssociationExpensesManager.MarkAssociationExpensesDisableProperty(ee, false, cbExpensePerStaircase);
                                    }
                                    else if (!cbExpenseSelect.Checked && existingAssociationExpensesContainsItem)
                                    {
                                        // disables it
                                        ee = AssociationExpensesManager.GetAssociationExpensesByMonthAndYearAndDisabled(estate.Id, expenseId, _year, _month, false);
                                        AssociationExpensesManager.MarkAssociationExpensesDisableProperty(ee, true, cbExpensePerStaircase);
                                    }
                                    else if (cbExpenseSelect.Checked && !existingAssociationExpensesContainsItem)
                                    {
                                        ee = AssociationExpensesManager.GetAssociationExpensesByMonthAndYearAndDisabled(expenseId, estate.Id, _year, _month);
                                        if (ee != null)
                                        {
                                            // disables it
                                            AssociationExpensesManager.MarkAssociationExpensesDisableProperty(ee, true, cbExpensePerStaircase);
                                        }
                                        else
                                        {
                                            // adds it
                                            AssociationExpensesManager.Add(estate.Id, expenseId, _month, _year, dpExpenseType.SelectedValue, false);
                                        }
                                    }

                                    ExpenseType selectedExpenseType;
                                    if (Enum.TryParse <ExpenseType>(dpExpenseType.SelectedValue, out selectedExpenseType))
                                    {
                                        if (ee == null)
                                        {
                                            ee = AssociationExpensesManager.GetAssociationExpense(estate.Id, expenseId, _year, _month);
                                        }
                                        if (ee == null)
                                        {
                                            continue;
                                        }

                                        if ((ExpenseType)ee.ExpenseTypes.Id != selectedExpenseType)
                                        {
                                            AssociationExpensesManager.UpdateAssociationExpenseType(ee, selectedExpenseType);
                                        }

                                        if (!ee.SplitPerStairCase.HasValue || ee.SplitPerStairCase.Value != cbExpensePerStaircase)
                                        {
                                            AssociationExpensesManager.MarkAssociationExpensesDisableProperty(ee, !cbExpenseSelect.Checked, cbExpensePerStaircase);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            if (Year() != null && Month() != null && step33.Visible)
            {
                Response.Redirect("~/Expenses/Invoices.aspx?year=" + Year() + "&month=" + Month());
            }
        }
Esempio n. 28
0
        private static Panel AddBodyPanelCol3(AssociationExpenses associationExpense, TextBox tb1, out TextBox tb3)
        {
            // column 3
            var col3 = new Panel
            {
                CssClass = "col-md-1 col-sm-4 col-xs-6"
            };

            tb3 = new TextBox {
                Enabled = false, CssClass = "invoiceItemTextbox"
            };

            if (associationExpense.Id_ExpenseType == (int)ExpenseType.PerIndex)
            {
                if (!associationExpense.RedistributeType.HasValue)
                {
                    var percentage = AssociationExpensesManager.GetPercentageAsString(associationExpense);
                    if (percentage == "100")
                    {
                        var redistributeResult = RedistributionManager.GetRedistributeValuePerIndex(associationExpense);
                        tb3.Text = redistributeResult.HasValue ? redistributeResult.Value.ToString() : string.Empty;
                    }

                    if (tb3.Text == "0,0000000")
                    {
                        tb3.Text = string.Empty;
                    }

                    if (!string.IsNullOrEmpty(tb3.Text))
                    {
                        var col3Literal = new Literal {
                            Text = "<b>" + tb1.Text + " - " + associationExpense.ApartmentExpenses.Sum(ee => ee.Value) + "</b>"
                        };
                        col3.Controls.Add(col3Literal);
                    }
                    col3.Controls.Add(tb3);
                }
                else
                {
                    tb3.Text = "";
                    col3.Controls.Add(tb3);
                }
            }
            //else if (apartmentExpense.Id_ExpenseType == (int)ExpenseType.PerCotaIndiviza)
            //{
            //    //if (!string.IsNullOrEmpty(tb1.Text))
            //    //{
            //    //    var col3Literal = new Literal { Text = "0" };
            //    //    col3.Controls.Add(col3Literal);
            //    //}
            //}
            //else if (apartmentExpense.Id_ExpenseType == (int)ExpenseType.PerTenants && estateapartmentExpenseExpense.TenantExpenses.Count > 0)
            //{
            //    //var col3Literal = new Literal { Text = "0" };

            //    //var col3Literal = new Literal { Text = Estate.Tenants.Sum(s => s.Dependents) + " persoane, <b>" + ApartmentExpensesManager.CalculatePertenantPrice(apartmentExpense) + "</b> alocat fiecăruia " };
            //    //col3.Controls.Add(col3Literal);
            //}

            return(col3);
        }
Esempio n. 29
0
        private void InitializeInvoices()
        {
            var ee = AssociationExpensesManager.GetByMonthAndYearwithDiverse(Association.Id, year(), month());

            Panel pnHeader = new Panel();

            pnHeader.CssClass = "col-md-12 invoicesListHeader";

            Label lbHeaderName = new Label
            {
                Text     = "Cheltuială",
                CssClass = "col-md-6"
            };

            pnHeader.Controls.Add(lbHeaderName);

            Label lbHeaderValue = new Label
            {
                Text     = "Valoare",
                CssClass = "col-md-6"
            };

            pnHeader.Controls.Add(lbHeaderValue);
            invoiceMain.Controls.Add(pnHeader);

            foreach (var associationExpense in ee)
            {
                if (associationExpense.Invoices.Count != 0)
                {
                    foreach (var invoice in associationExpense.Invoices)
                    {
                        Panel pn = new Panel();
                        pn.CssClass = "col-md-12";

                        Label lbName = new Label();
                        lbName.Text     = invoice.Description;
                        lbName.CssClass = "col-md-6";
                        pn.Controls.Add(lbName);

                        Label lbValue = new Label();
                        lbValue.Text     = invoice.Value.HasValue ? invoice.Value.Value.ToString() : string.Empty;
                        lbValue.CssClass = "col-md-6";
                        pn.Controls.Add(lbValue);

                        invoiceMain.Controls.Add(pn);
                    }
                }
                else
                {
                    Panel pn = new Panel();
                    pn.CssClass = "col-md-12";

                    Label lbName = new Label();
                    lbName.Text     = associationExpense.Expenses.Name;
                    lbName.CssClass = "col-md-6";
                    pn.Controls.Add(lbName);

                    Label lbValue = new Label();
                    lbValue.Text     = string.Empty;
                    lbValue.CssClass = "col-md-6";
                    pn.Controls.Add(lbValue);

                    invoiceMain.Controls.Add(pn);
                }
            }
        }
Esempio n. 30
0
        private void InitializeExpenses()
        {
            tblMonthlyExpenses.Rows.Clear();

            int month = 0;
            int year  = 0;

            if (int.TryParse(drpOpeningMonth.SelectedValue, out month) && int.TryParse(drpOpeningYear.SelectedValue, out year))
            {
                var estate = (Associations)Session[SessionConstants.SelectedAssociation];
                if (estate != null)
                {
                    int defaultYear  = 2017;
                    int defaultMonth = 1;

                    var defaultEe = AssociationExpensesManager.GetFromLastestOpenedMonth(estate.Id);
                    if (defaultEe.Any())
                    {
                        defaultYear  = defaultEe.FirstOrDefault().Year;
                        defaultMonth = defaultEe.FirstOrDefault().Month;
                    }
                    var eeAlsoDisabled = AssociationExpensesManager.GetAllAssociationExpensesByMonthAndYearIncludingDisabled(estate.Id, defaultYear, defaultMonth);

                    IEnumerable <Expenses> expenses = ExpensesManager.GetAllExpenses();
                    var ee = AssociationExpensesManager.GetByMonthAndYearNotDisabled(estate.Id, defaultYear, defaultMonth);

                    TableRow defaultRow = new TableRow();

                    // add expense exists
                    TableCell defaultExpenseSelected = new TableCell
                    {
                        Text = "Activează pentru noua lună"
                    };
                    defaultRow.Cells.Add(defaultExpenseSelected);

                    // add expense name
                    TableCell defaultExpenseName = new TableCell
                    {
                        Text = "Cheltuială"
                    };
                    defaultRow.Cells.Add(defaultExpenseName);

                    // add expense type
                    TableCell defaultExpenseType = new TableCell()
                    {
                        Text = "Tip calcul cheltuială"
                    };
                    defaultRow.Cells.Add(defaultExpenseType);

                    if (estate.HasStaircase)
                    {
                        TableCell tcStairCaseDefaule = new TableCell()
                        {
                            Text = "Contor individual per scară"
                        };

                        defaultRow.Cells.Add(tcStairCaseDefaule);
                    }

                    tblMonthlyExpenses.Rows.Add(defaultRow);

                    foreach (var expense in expenses)
                    {
                        TableRow row = new TableRow();

                        // add expense exists
                        TableCell expenseExists = new TableCell();
                        CheckBox  esexExists    = new CheckBox();
                        esexExists.AutoPostBack = false;
                        esexExists.ID           = String.Format("expense{0}", expense.Id);
                        esexExists.Checked      = IsExpenseSelected(expense, defaultEe);
                        expenseExists.Controls.Add(esexExists);
                        row.Cells.Add(expenseExists);

                        // add expense name
                        TableCell expenseName = new TableCell
                        {
                            Text = expense.Name
                        };
                        row.Cells.Add(expenseName);

                        // add expense type
                        TableCell    expenseType = new TableCell();
                        DropDownList dp          = new DropDownList();
                        if (expense.Id != (int)Expense.AjutorÎncălzire)
                        {
                            AssociationExpenses esex = eeAlsoDisabled.FirstOrDefault(s => s.Id_Expense == expense.Id);

                            var selected1 = IsDplExpenseTypesSelected(esex, ExpenseType.PerIndex, expense.LegalType);
                            dp.Items.Add(new ListItem
                            {
                                Value    = ((int)ExpenseType.PerIndex).ToString(),
                                Text     = "Individuală prin indecși",
                                Selected = selected1
                            });

                            var selected2 = IsDplExpenseTypesSelected(esex, ExpenseType.PerCotaIndiviza, expense.LegalType);
                            dp.Items.Add(new ListItem
                            {
                                Value    = ((int)ExpenseType.PerCotaIndiviza).ToString(),
                                Text     = "Cotă indiviză de proprietate",
                                Selected = selected2
                            });

                            var selected3 = IsDplExpenseTypesSelected(esex, ExpenseType.PerNrTenants, expense.LegalType);
                            dp.Items.Add(new ListItem
                            {
                                Value    = ((int)ExpenseType.PerNrTenants).ToString(),
                                Text     = "Per număr persoane imobil",
                                Selected = selected3
                            });

                            var selected4 = IsDplExpenseTypesSelected(esex, ExpenseType.PerApartament, expense.LegalType);
                            dp.Items.Add(new ListItem
                            {
                                Value    = ((int)ExpenseType.PerApartament).ToString(),
                                Text     = ExpenseType.PerApartament.ToDescription(),
                                Selected = selected4
                            });
                        }
                        else
                        {
                            dp.Items.Add(new ListItem
                            {
                                Value    = ((int)ExpenseType.Individual).ToString(),
                                Text     = "Individual",
                                Selected = expense.LegalType == (int)ExpenseType.Individual
                            });
                        }

                        expenseType.Controls.Add(dp);
                        row.Cells.Add(expenseType);

                        if (estate.HasStaircase)
                        {
                            TableCell tcStairCase    = new TableCell();
                            CheckBox  stairCaseSplit = new CheckBox();
                            stairCaseSplit.AutoPostBack = false;
                            stairCaseSplit.Checked      = IsStairCaseSplitSelected(expense, ee, defaultYear, defaultMonth);
                            tcStairCase.Controls.Add(stairCaseSplit);
                            row.Cells.Add(tcStairCase);
                        }

                        tblMonthlyExpenses.Rows.Add(row);
                    }
                }
            }
        }