Example #1
0
        public static DataTable BuildReport(IEnumerable <ContractPayments> contractsPayments)
        {
            if (contractsPayments == null)
            {
                throw new ArgumentNullException("contractsPayments");
            }
            DataTable reportTable = ReportTable;

            foreach (var cp in contractsPayments)
            {
                bool headerInfo = true;

                int agreedTotal   = cp.DueTotals;// (cp.AgreedRent + cp.AgreedMaintenance + cp.AgreedDeposit);
                int paymentTotals = (cp.PaymentsDetails.Sum(x => x.Rent) + cp.PaymentsDetails.Sum(y => y.Maintenance) + cp.PaymentsDetails.Sum(d => d.Deposit));
                int agreedBalance = agreedTotal - paymentTotals;
                if (cp.PaymentsDetails.Count == 0) //This contract has no payments yet, so just display its contract info.
                {
                    RglReport noPaymentsHeaderRow = new RglReport(
                        cp.StartDate, cp.EndDate, cp.PropertyNo, cp.CustomerName, cp.PropertyLocation,
                        cp.RentDue, cp.DepositDue, cp.MentDue, agreedTotal,
                        0, 0, 0, 0, null, paymentTotals, agreedBalance, true);
                    AddRow(noPaymentsHeaderRow, reportTable);
                    continue;
                }
                foreach (var payment in cp.PaymentsDetails)
                {
                    if (headerInfo)
                    {
                        RglReport headerRow = new RglReport
                                              (
                            cp.StartDate, cp.EndDate, cp.PropertyNo,
                            cp.CustomerName, cp.PropertyLocation,
                            cp.RentDue, cp.DepositDue, cp.MentDue, agreedTotal,
                            payment.Rent, payment.Maintenance, payment.Deposit, payment.PaymentNo,
                            payment.PaymentDate, paymentTotals, agreedBalance, true
                                              );
                        AddRow(headerRow, reportTable);
                        headerInfo = false;
                    }
                    else
                    {
                        RglReport chiledRow = new RglReport(
                            payment.Rent, payment.Maintenance, payment.Deposit, payment.PaymentNo, payment.PaymentDate
                            );
                        AddRow(chiledRow, reportTable);
                    }
                }
            }
            Layout = new ReportLayout(true);
            return(reportTable);
        }
Example #2
0
        private static void AddRow(RglReport rowData, DataTable ownerTable)
        {
            DataRow row = ownerTable.NewRow();

            row.SetField <object>("ContractStart", Helper.ApplyDateMask(rowData.ContratStart));
            row.SetField <object>("ContractEnd", Helper.ApplyDateMask(rowData.ContractEnd));
            row.SetField <object>("PropertyNo", rowData.PropertyNo);
            row.SetField <object>("CustomerName", rowData.CustomerName);
            row.SetField <object>("PropertyDescription", rowData.PropertyDescription);
            row.SetField <object>("AgreedRent", rowData.AgreedRent);
            row.SetField <object>("AgreedMaint", rowData.AgreedMaint);
            row.SetField <object>("AgreedDeposit", rowData.AgreedDeposit);
            row.SetField <object>("AgreedTotal", rowData.AgreedTotal);
            row.SetField <object>("RentPay", rowData.RentPay);
            row.SetField <object>("MaintPay", rowData.MaintPay);
            row.SetField <object>("DepositPay", rowData.DepositPay);
            row.SetField <object>("PaymentNo", rowData.PaymentNo);
            row.SetField <object>("PaymentDate", Helper.ApplyDateMask(rowData.PaymentDate));
            row.SetField <object>("PaymentTotal", rowData.PaymentTotal);
            row.SetField <object>("BalancesTotal", rowData.BalancesTotal);
            row.SetField <bool>("HeaderRow", rowData.HeaderRow);
            ownerTable.Rows.Add(row);
            row.AcceptChanges();
        }