private void LoadTransactionItems(ExpenseTransaction transaction)
        {
            rdVoidTransaction.Checked = false;
            rdVoidItems.Checked       = false;

            try
            {
                var transactionItems = ServiceProvider.Instance().GetTransactionItemServices().GetTransactionItemsByExpenseTransaction(transaction.ExpenseTransactionId);

                if (transactionItems == null || !transactionItems.Any())
                {
                    ConfirmAlertBox1.ShowMessage("Transaction Items could not be retrieved.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                var dSource = transactionItems.ElementAt(0).Key.ToList();

                lblTransactionTitle.Text         = transaction.ExpenseTitle;
                lblRequestedAmmount.InnerText    = "N" + NumberMap.GroupToDigits(transaction.TotalTransactionAmount.ToString(CultureInfo.InvariantCulture));
                lblApprovedTotalAmount.InnerText = "N" + NumberMap.GroupToDigits(transaction.TotalApprovedAmount.ToString(CultureInfo.InvariantCulture));
                dgExpenseItem.DataSource         = dSource;
                dgExpenseItem.DataBind();
                LoadTransactionsFooter();
                Session["_transaction"]      = transaction;
                Session["_transactionItems"] = dSource;
                dvTransactionItems.Visible   = true;
                dvUserEntries.Visible        = false;
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
Ejemplo n.º 2
0
        private bool GetAccountsHeadsCostsByDateRange()
        {
            try
            {
                dgCostItems.DataSource = new List <ExpenseTransaction>();
                dgCostItems.DataBind();
                var accountHeadId = int.Parse(ddlAccountsHeads.SelectedValue);
                if (accountHeadId < 1)
                {
                    ErrorDisplay1.ShowError("Please select an Expense Item.");
                    return(false);
                }

                var startDateString = DateMap.ReverseToServerDate(txtStart.Text.Trim());
                var startDate       = DateTime.Parse(startDateString);
                var endDateString   = DateMap.ReverseToServerDate(txtEndDate.Text.Trim());
                var endDate         = DateTime.Parse(endDateString);
                if (endDate < startDate || startDate > endDate)
                {
                    ErrorDisplay1.ShowError("The 'From' date must not be LATER than the 'To' date.");
                    return(false);
                }

                var transactionItems =
                    ServiceProvider.Instance()
                    .GetTransactionItemServices()
                    .GetAccountsHeadsCostsByDateRange(accountHeadId, startDateString, endDateString);

                if (!transactionItems.Any())
                {
                    ErrorDisplay1.ShowError("No Record found!");
                    return(false);
                }

                //dgCostItems.DataSource = transactionItems;
                //dgCostItems.DataBind();

                Session["_accountsHeadeadCosts"] = null;
                Session["_accountsHeadeadCosts"] = transactionItems;
                lblGrandTotal.InnerText          = "N" + NumberMap.GroupToDigits(transactionItems[0].GrandTotalApprovedPrice.ToString(CultureInfo.InvariantCulture));
                headTitle.InnerText = ddlAccountsHeads.SelectedItem.Text;
                Limit = int.Parse(ddlLimit.SelectedValue);
                FillRepeater <TransactionItem>(dgCostItems, "_accountsHeadeadCosts", Navigation.None, Limit, LoadMethod);
                return(true);
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(false);
            }
        }
        private void LoadTransactionItems(ExpenseTransaction transaction)
        {
            try
            {
                ClearItemsControls();

                var transactionItems = ServiceProvider.Instance().GetTransactionItemServices().GetTransactionItemsByExpenseTransaction(transaction.ExpenseTransactionId);

                if (transactionItems == null || !transactionItems.Any())
                {
                    ConfirmAlertBox1.ShowMessage("Transaction Items could not be retrieved.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                if (string.IsNullOrEmpty(lblRequestedAmmount.InnerText))
                {
                    lblRequestedAmmount.InnerText = "N" + NumberMap.GroupToDigits(transaction.TotalTransactionAmount.ToString(CultureInfo.InvariantCulture));
                }

                if (transaction.TotalApprovedAmount > 0)
                {
                    lblApprovedTotalAmount.InnerText = "N" + NumberMap.GroupToDigits(transaction.TotalApprovedAmount.ToString(CultureInfo.InvariantCulture));
                }
                else
                {
                    lblApprovedTotalAmount.InnerText = NumberMap.GroupToDigits(0.ToString(CultureInfo.InvariantCulture));
                }

                lblTransactionTitle.Text = transaction.ExpenseTitle;
                dgExpenseItem.DataSource = transactionItems.ElementAtOrDefault(0).Key.ToList();
                dgExpenseItem.DataBind();
                SetTransactionsStyle();
                LoadTransactionsFooter();
                hTitle.InnerText           = "Requested Transaction Items";
                dvTransactionItems.Visible = true;
                dvUserEntries.Visible      = false;
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
        private void LoadTransactionsFooter()
        {
            try
            {
                if (dgExpenseItem.Items.Count > 0)
                {
                    //int subTotalQuantity = 0;
                    //int subTotalApprovedQuantity = 0;
                    double subTotalUnitPrice     = 0;
                    double subTotalApprovedPrice = 0;

                    for (var i = 0; i < dgExpenseItem.Items.Count; i++)
                    {
                        //subTotalQuantity += DataCheck.IsNumeric(((Label)dgExpenseItem.Items[i].FindControl("lblQuantity")).Text)
                        //              ? int.Parse(((Label)dgExpenseItem.Items[i].FindControl("lblQuantity")).Text) : 0;
                        //subTotalApprovedQuantity += DataCheck.IsNumeric(((Label)dgExpenseItem.Items[i].FindControl("lblApprovedQuantity")).Text)
                        //              ? int.Parse(((Label)dgExpenseItem.Items[i].FindControl("lblApprovedQuantity")).Text) : 0;
                        subTotalUnitPrice += DataCheck.IsNumeric(((Label)dgExpenseItem.Items[i].FindControl("lblUnitPrice")).Text)
                                      ? float.Parse(((Label)dgExpenseItem.Items[i].FindControl("lblUnitPrice")).Text) : 0;
                        subTotalApprovedPrice += DataCheck.IsNumeric(((Label)dgExpenseItem.Items[i].FindControl("lblApprovedUnitPrice")).Text)
                                      ? float.Parse(((Label)dgExpenseItem.Items[i].FindControl("lblApprovedUnitPrice")).Text) : 0;
                    }

                    foreach (var item in dgExpenseItem.Controls[0].Controls)
                    {
                        if (item.GetType() == typeof(DataGridItem))
                        {
                            var itmType = ((DataGridItem)item).ItemType;
                            if (itmType == ListItemType.Footer)
                            {
                                //if (((DataGridItem)item).FindControl("lblTotalQuantity") != null)
                                //{
                                //    ((Label)((DataGridItem)item).FindControl("lblTotalQuantity")).Text = subTotalQuantity.ToString(CultureInfo.InvariantCulture);
                                //}

                                //if (((DataGridItem)item).FindControl("lblTotalApprovedQuantity") != null)
                                //{
                                //    ((Label)((DataGridItem)item).FindControl("lblTotalApprovedQuantity")).Text = subTotalApprovedQuantity.ToString(CultureInfo.InvariantCulture);
                                //}

                                if (((DataGridItem)item).FindControl("lblTotalUnitPrice") != null)
                                {
                                    ((Label)((DataGridItem)item).FindControl("lblTotalUnitPrice")).Text = "N" + NumberMap.GroupToDigits(subTotalUnitPrice.ToString(CultureInfo.InvariantCulture));
                                }

                                if (((DataGridItem)item).FindControl("lblTotalApprovedUnitPrice") != null)
                                {
                                    ((Label)((DataGridItem)item).FindControl("lblTotalApprovedUnitPrice")).Text = "N" + NumberMap.GroupToDigits(subTotalApprovedPrice.ToString(CultureInfo.InvariantCulture));
                                }
                            }
                        }
                    }
                }
            }
            catch
            {
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
Ejemplo n.º 5
0
        private void LoadTransactionItems(ExpenseTransaction transaction)
        {
            try
            {
                radApprove.Checked      = false;
                radReject.Checked       = false;
                radVoid.Checked         = false;
                txtApproverComment.Text = string.Empty;
                var dictCollection = ServiceProvider.Instance().GetTransactionItemServices().GetTransactionItemsByExpenseTransaction(transaction.ExpenseTransactionId);

                if (dictCollection == null || !dictCollection.Any())
                {
                    ConfirmAlertBox1.ShowMessage("Transaction Items could not be retrieved.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                var transactionItems = dictCollection.ElementAtOrDefault(0).Key.ToList();
                if (!transactionItems.Any())
                {
                    dgExpenseItem.DataSource = new List <TransactionItem>();
                    ddlExpenseItem.DataBind();
                    ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again or contact the Administrator.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                var expenseItems = dictCollection.ElementAtOrDefault(0).Value.ToList();

                if (!expenseItems.Any())
                {
                    ddlExpenseItem.DataSource = new List <ExpenseItem>();
                    ddlExpenseItem.DataBind();
                    ddlExpenseItem.Items.Insert(0, new ListItem("--List is empty--", "0"));
                    ddlExpenseItem.SelectedIndex = 0;
                    ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again or contact the Administrator.", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                ddlExpenseItem.DataSource     = expenseItems;
                ddlExpenseItem.DataTextField  = "Title";
                ddlExpenseItem.DataValueField = "ExpenseItemId";
                ddlExpenseItem.DataBind();
                ddlExpenseItem.Items.Insert(0, new ListItem("--Select Expense Item--", "0"));
                ddlExpenseItem.SelectedIndex = 0;

                if (ddlExpenseType.Items.Count == 1 || ddlExpenseType.Items.Count == 0)
                {
                    LoadTransactionTypes();
                }

                lblTransactionTitle.Text           = transaction.ExpenseTitle;
                lblRequestedAmmount.InnerText      = "N" + NumberMap.GroupToDigits(transaction.TotalTransactionAmount.ToString(CultureInfo.InvariantCulture));
                lblTransactionRquestDate.InnerText = transaction.TransactionDate;
                dgExpenseItem.DataSource           = transactionItems;
                dgExpenseItem.DataBind();
                //SetTransactionsStyle();
                LoadTransactionsFooter();
                Session["_transactionItems"] = transactionItems;
                Session["_transaction"]      = transaction;
                dvTransactionItems.Visible   = true;
                dvUserEntries.Visible        = false;
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
        public bool GenerateReport(List <DictObject> dictObjList)
        {
            try
            {
                const XplugDepartments lrGlobal = XplugDepartments.LrGlobal;
                var z = Enum.GetName(typeof(XplugDepartments), lrGlobal);
                var y = 0;
                if (z != null)
                {
                    y = (int)Enum.Parse(typeof(XplugDepartments), z);
                }

                const XplugDepartments xPlug = XplugDepartments.XPlug;
                var s = Enum.GetName(typeof(XplugDepartments), xPlug);
                var x = 0;
                if (s != null)
                {
                    x = (int)Enum.Parse(typeof(XplugDepartments), s);
                }

                var repFilePath = "";

                if (dictObjList.ElementAt(0).DepartmentId == x)
                {
                    repFilePath = Server.MapPath("~/ExpenseMgt/Reports/ReportFiles/XplugMultiVoucher.rpt");
                }

                if (dictObjList.ElementAt(0).DepartmentId == y)
                {
                    repFilePath = Server.MapPath("~/ExpenseMgt/Reports/ReportFiles/LRMultiVoucher.rpt");
                }

                if (dictObjList.ElementAt(0).DepartmentId != x && dictObjList.ElementAt(0).DepartmentId != y)
                {
                    repFilePath = Server.MapPath("~/ExpenseMgt/Reports/ReportFiles/XplugMultiVoucher.rpt");
                }

                var voucherItemList = new List <VoucherItem>();

                foreach (var dictObj in dictObjList)
                {
                    foreach (var dictItem in dictObj.TransactionItems)
                    {
                        var newVoucherItem = new VoucherItem
                        {
                            AmountInWords       = dictObj.WordValue,
                            AmountPaid          = string.Format("{0}{1}", "N", NumberMap.GroupToDigits(dictObj.AmmountPaid.ToString(CultureInfo.InvariantCulture))),
                            Approver            = dictObj.Approver,
                            DatePaid            = dictObj.DatePaid,
                            ChequeNo            = dictObj.ChequeNo,
                            PcvNo               = dictObj.PcvNo,
                            TransactionId       = dictObj.TransactionpaymentHistoryId,
                            RequestedBy         = dictObj.RequestedBy,
                            ReceivedBy          = dictObj.ReceivedBy,
                            TotalApprovedAmount = string.Format("{0}{1}", "N", NumberMap.GroupToDigits(dictObj.TotalApprovedAmmount.ToString(CultureInfo.InvariantCulture))),
                            ApprovedQuantity    = dictItem.ApprovedQuantity.ToString(CultureInfo.InvariantCulture),
                            ApprovedUnitPrice   = NumberMap.GroupToDigits(dictItem.ApprovedUnitPrice.ToString(CultureInfo.InvariantCulture)),
                            ApprovedTotalPrice  = NumberMap.GroupToDigits(dictItem.ApprovedTotalPrice.ToString(CultureInfo.InvariantCulture)),
                            ItemName            = dictItem.ExpenseItem.Title,
                            ItemCode            = dictItem.ExpenseItem.Code,
                            DetailDesription    = dictItem.Description
                        };

                        if (newVoucherItem.TransactionId > 0 && !string.IsNullOrEmpty(newVoucherItem.ItemName) && !string.IsNullOrEmpty(newVoucherItem.ItemCode))
                        {
                            voucherItemList.Add(newVoucherItem);
                        }
                    }
                }

                var pdfPath = Session.SessionID + DateTime.Now.Millisecond.ToString(CultureInfo.InvariantCulture) + Environment.TickCount.ToString(CultureInfo.InvariantCulture) + ".pdf";
                var path    = Server.MapPath("~/GeneratedDocuments/");
                pdfPath = path + pdfPath;

                var repDoc = new ReportDocument();
                repDoc.Load(repFilePath);

                repDoc.SetDataSource(voucherItemList);

                var crDiskFileDestinationOptions = new DiskFileDestinationOptions();
                var crFormatTypeOptions          = new PdfRtfWordFormatOptions();
                crDiskFileDestinationOptions.DiskFileName = pdfPath;
                var crExportOptions = repDoc.ExportOptions;
                {
                    crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
                    crExportOptions.ExportFormatType      = ExportFormatType.PortableDocFormat;
                    crExportOptions.DestinationOptions    = crDiskFileDestinationOptions;
                    crExportOptions.FormatOptions         = crFormatTypeOptions;
                }
                repDoc.Export();
                Session["myPDF.InvoicePath"] = pdfPath;

                Context.Response.Buffer = false;
                var buffer = new byte[1024];
                var inStr  = File.OpenRead(pdfPath);
                while ((inStr.Read(buffer, 0, buffer.Length)) > 0)
                {
                    if (Context.Response.IsClientConnected)
                    {
                        Response.Clear();
                        Response.ContentType = "application/pdf";
                        Context.Response.OutputStream.Write(buffer, 0, buffer.Length);
                        Context.Response.Flush();
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(false);
            }
        }
Ejemplo n.º 7
0
        protected void DgPaymentHistoryCommand(object source, DataGridCommandEventArgs e)
        {
            try
            {
                dgPaymentHistory.SelectedIndex = e.Item.ItemIndex;

                long id = (DataCheck.IsNumeric(dgPaymentHistory.DataKeys[e.Item.ItemIndex].ToString())) ? long.Parse(dgPaymentHistory.DataKeys[e.Item.ItemIndex].ToString()) : 0;

                if (id < 1)
                {
                    ConfirmAlertBox1.ShowMessage("Invalid Record Selection!", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                var transactionHistory = ServiceProvider.Instance().GetExpenseTransactionPaymentHistoryServices().GetExpenseTransactionPaymentHistory(id);

                if (transactionHistory == null || transactionHistory.ExpenseTransactionPaymentHistoryId < 1)
                {
                    ConfirmAlertBox1.ShowMessage("Invalid selection", ConfirmAlertBox.PopupMessageType.Error);
                    return;
                }

                if (transactionHistory.PaymentModeId == 1)
                {
                    trCashPayment.Visible   = true;
                    trChequePayment.Visible = false;
                    var user = new PortalServiceManager().GetPortalUserById(transactionHistory.PaidById);
                    lblCashPaidBy.InnerText   = user.FirstName + " " + user.LastName;
                    lblCashAmount.InnerText   = "N" + NumberMap.GroupToDigits(transactionHistory.AmountPaid.ToString(CultureInfo.InvariantCulture));
                    lblCashDatePaid.InnerText = transactionHistory.PaymentDate;
                    lblCashTimePaid.InnerText = transactionHistory.PaymentTime;
                }

                if (transactionHistory.PaymentModeId == 2)
                {
                    trCashPayment.Visible   = false;
                    trChequePayment.Visible = true;
                    var user = new PortalServiceManager().GetPortalUserById(transactionHistory.PaidById);
                    lblChequePaidBy.InnerText   = user.FirstName + " " + user.LastName;
                    lblChequeAmount.InnerText   = "N" + NumberMap.GroupToDigits(transactionHistory.AmountPaid.ToString(CultureInfo.InvariantCulture));
                    lblChequeTimePaid.InnerText = transactionHistory.PaymentTime;
                    lblChequeDatePaid.InnerText = transactionHistory.PaymentDate;
                    var cheque = ServiceProvider.Instance().GetChequeServices().GetChequesByExpenseTransactionPaymentHistoryId(transactionHistory.ExpenseTransactionPaymentHistoryId);
                    if (cheque != null)
                    {
                        var defaultElement = cheque.ElementAtOrDefault(0);

                        if (defaultElement != null)
                        {
                            lblChequeNumber.InnerText = defaultElement.ChequeNo;
                            lblBank.InnerText         = defaultElement.Bank.BankName;
                        }
                    }
                }

                lgTransactionTitle.InnerHtml           = transactionHistory.ExpenseTransaction.ExpenseTitle;
                txttHistoryComment.Value               = transactionHistory.Comment;
                mpePaymentCommentPopup.PopupControlID  = "dvTransactionComment";
                mpePaymentCommentPopup.CancelControlID = "btnCloseDetails";
                mpePaymentCommentPopup.Show();
            }
            catch
            {
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
Ejemplo n.º 8
0
        private void LoadTransactionsFooter()
        {
            try
            {
                if (dgAllTransactionPayments.Items.Count > 0)
                {
                    double totalBalance       = 0;
                    double totalAmountPaid    = 0;
                    double totalAmountPayable = 0;
                    // lblTotalAmountPaid lblAmountPaid  lblBalance  lblTotalAmountPaidFooter lblAmountPaidFooter lblBalanceFooter
                    for (var i = 0; i < dgAllTransactionPayments.Items.Count; i++)
                    {
                        totalBalance += DataCheck.IsNumeric(((Label)dgAllTransactionPayments.Items[i].FindControl("lblBalance")).Text)
                                      ? double.Parse(((Label)dgAllTransactionPayments.Items[i].FindControl("lblBalance")).Text.Replace(",", string.Empty)) : 0;
                        totalAmountPaid += DataCheck.IsNumeric(((Label)dgAllTransactionPayments.Items[i].FindControl("lblAmountPaid")).Text)
                                      ? double.Parse(((Label)dgAllTransactionPayments.Items[i].FindControl("lblAmountPaid")).Text.Replace(",", string.Empty)) : 0;
                        totalAmountPayable += DataCheck.IsNumeric(((Label)dgAllTransactionPayments.Items[i].FindControl("lblTotalAmountPaid")).Text)
                                      ? double.Parse(((Label)dgAllTransactionPayments.Items[i].FindControl("lblTotalAmountPaid")).Text.Replace(",", string.Empty)) : 0;
                    }

                    foreach (var item in dgAllTransactionPayments.Controls[0].Controls)
                    {
                        if (item.GetType() == typeof(DataGridItem))
                        {
                            var itmType = ((DataGridItem)item).ItemType;
                            if (itmType == ListItemType.Footer)
                            {
                                if (((DataGridItem)item).FindControl("lblBalanceFooter") != null)
                                {
                                    ((Label)((DataGridItem)item).FindControl("lblBalanceFooter")).Text = "N" + NumberMap.GroupToDigits(totalBalance.ToString(CultureInfo.InvariantCulture));
                                }

                                if (((DataGridItem)item).FindControl("lblAmountPaidFooter") != null)
                                {
                                    ((Label)((DataGridItem)item).FindControl("lblAmountPaidFooter")).Text = "N" + NumberMap.GroupToDigits(totalAmountPaid.ToString(CultureInfo.InvariantCulture));
                                }

                                if (((DataGridItem)item).FindControl("lblTotalAmountPaidFooter") != null)
                                {
                                    ((Label)((DataGridItem)item).FindControl("lblTotalAmountPaidFooter")).Text = "N" + NumberMap.GroupToDigits(totalAmountPayable.ToString(CultureInfo.InvariantCulture));
                                }
                            }
                        }
                    }
                }
            }
            catch
            {
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
Ejemplo n.º 9
0
        private void LoadTransactionPaymentHistoryFooter()
        {
            try
            {
                if (dgPaymentHistory.Items.Count > 0)
                {
                    double expAmountPayableTotal = 0;
                    for (var i = 0; i < dgPaymentHistory.Items.Count; i++)
                    {
                        expAmountPayableTotal += DataCheck.IsNumeric(((Label)dgPaymentHistory.Items[i].FindControl("lblHistoryAmountPaid")).Text)
                                      ? double.Parse(((Label)dgPaymentHistory.Items[i].FindControl("lblHistoryAmountPaid")).Text)
                                      : 0;
                    }

                    foreach (var item in dgPaymentHistory.Controls[0].Controls)
                    {
                        if (item.GetType() == typeof(DataGridItem))
                        {
                            var itmType = ((DataGridItem)item).ItemType;
                            if (itmType == ListItemType.Footer)
                            {
                                if (((DataGridItem)item).FindControl("lblHistoryAmountPaidFooter") != null)
                                {
                                    ((Label)((DataGridItem)item).FindControl("lblHistoryAmountPaidFooter")).Text = "N" + NumberMap.GroupToDigits(expAmountPayableTotal.ToString(CultureInfo.InvariantCulture));
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                ConfirmAlertBox1.ShowMessage("An unknown error was encountered. Please try again soon or contact the Admin.", ConfirmAlertBox.PopupMessageType.Error);
            }
        }
        public bool GenerateReport(DictObject dictObject)
        {
            try
            {
                string wordValue;
                if (Session["_wordString"] == null)
                {
                    wordValue = "N/A";
                }

                wordValue = (string)Session["_wordString"];

                if (string.IsNullOrEmpty(wordValue))
                {
                    wordValue = "N/A";
                }

                var dataTable = new DataTable("TransactionPayment");
                dataTable.Columns.Add(new DataColumn("TransactionTitle", typeof(string)));
                dataTable.Columns.Add(new DataColumn("PaidBy", typeof(string)));
                dataTable.Columns.Add(new DataColumn("RequestedBy", typeof(string)));
                dataTable.Columns.Add(new DataColumn("ChequeNo", typeof(string)));
                dataTable.Columns.Add(new DataColumn("ReceivedBy", typeof(string)));
                dataTable.Columns.Add(new DataColumn("AmountPaid", typeof(string)));
                dataTable.Columns.Add(new DataColumn("TotalApprovedAmount", typeof(string)));
                dataTable.Columns.Add(new DataColumn("Approver", typeof(string)));
                dataTable.Columns.Add(new DataColumn("DatePaid", typeof(string)));
                dataTable.Columns.Add(new DataColumn("PaymentMode", typeof(string)));
                dataTable.Columns.Add(new DataColumn("PcvNo", typeof(string)));
                dataTable.Columns.Add(new DataColumn("AmountInWords", typeof(string)));

                DataRow dr = dataTable.NewRow();
                dr["TransactionTitle"]    = dictObject.TransactionTitle;
                dr["PaidBy"]              = dictObject.PaidBy;
                dr["RequestedBy"]         = dictObject.RequestedBy;
                dr["ChequeNo"]            = dictObject.ChequeNo;
                dr["ReceivedBy"]          = dictObject.ReceivedBy;
                dr["AmountPaid"]          = string.Format("{0}{1}", "N", NumberMap.GroupToDigits(dictObject.AmmountPaid.ToString(CultureInfo.InvariantCulture)));
                dr["TotalApprovedAmount"] = string.Format("{0}{1}", "N", NumberMap.GroupToDigits(dictObject.TotalApprovedAmmount.ToString(CultureInfo.InvariantCulture)));
                dr["Approver"]            = dictObject.Approver;
                dr["DatePaid"]            = dictObject.DatePaid;
                dr["PcvNo"]         = dictObject.PcvNo;
                dr["AmountInWords"] = wordValue;
                dataTable.Rows.Add(dr);

                //NumbersToWord(double s, string naira, string kobo)

                var dataTable2 = new DataTable("TransactionItem");
                dataTable2.Columns.Add(new DataColumn("ItemCode", typeof(string)));
                dataTable2.Columns.Add(new DataColumn("ItemName", typeof(string)));
                dataTable2.Columns.Add(new DataColumn("DetailDesription", typeof(string)));
                dataTable2.Columns.Add(new DataColumn("ApprovedQuantity", typeof(string)));
                dataTable2.Columns.Add(new DataColumn("ApprovedUnitPrice", typeof(string)));
                dataTable2.Columns.Add(new DataColumn("ApprovedTotalPrice", typeof(string)));

                foreach (var transactionItem in dictObject.TransactionItems)
                {
                    var dr2 = dataTable2.NewRow();
                    dr2["ItemCode"]           = transactionItem.ExpenseItem.Code;
                    dr2["ItemName"]           = transactionItem.ExpenseItem.Title;
                    dr2["DetailDesription"]   = transactionItem.Description;
                    dr2["ApprovedQuantity"]   = transactionItem.ApprovedQuantity;
                    dr2["ApprovedUnitPrice"]  = NumberMap.GroupToDigits(transactionItem.ApprovedUnitPrice.ToString(CultureInfo.InvariantCulture));
                    dr2["ApprovedTotalPrice"] = NumberMap.GroupToDigits(transactionItem.ApprovedTotalPrice.ToString(CultureInfo.InvariantCulture));
                    dataTable2.Rows.Add(dr2);
                }

                const XplugDepartments lrGlobal = XplugDepartments.LrGlobal;
                var y = (int)Enum.Parse(typeof(XplugDepartments), Enum.GetName(typeof(XplugDepartments), lrGlobal));

                const XplugDepartments xPlug = XplugDepartments.XPlug;
                var x = (int)Enum.Parse(typeof(XplugDepartments), Enum.GetName(typeof(XplugDepartments), xPlug));

                var repFilePath = "";
                if (dictObject.DepartmentId == x)
                {
                    repFilePath = Server.MapPath("~/ExpenseMgt/Reports/ReportFiles/xPlugVoucher.rpt");
                }

                if (dictObject.DepartmentId == y)
                {
                    repFilePath = Server.MapPath("~/ExpenseMgt/Reports/ReportFiles/LRVoucher.rpt");
                }

                if (dictObject.DepartmentId != x && dictObject.DepartmentId != y)
                {
                    repFilePath = Server.MapPath("~/ExpenseMgt/Reports/ReportFiles/xPlugVoucher.rpt");
                }

                var pdfPath = Session.SessionID + DateTime.Now.Millisecond.ToString(CultureInfo.InvariantCulture) + Environment.TickCount.ToString(CultureInfo.InvariantCulture) + ".pdf";
                var path    = Server.MapPath("~/GeneratedDocuments/");
                pdfPath = path + pdfPath;

                var repDoc = new ReportDocument();
                repDoc.Load(repFilePath);

                repDoc.Database.Tables[0].SetDataSource(dataTable2);
                repDoc.Database.Tables[1].SetDataSource(dataTable);

                var crDiskFileDestinationOptions = new DiskFileDestinationOptions();
                var crFormatTypeOptions          = new PdfRtfWordFormatOptions();
                crDiskFileDestinationOptions.DiskFileName = pdfPath;
                var crExportOptions = repDoc.ExportOptions;
                {
                    crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
                    crExportOptions.ExportFormatType      = ExportFormatType.PortableDocFormat;
                    crExportOptions.DestinationOptions    = crDiskFileDestinationOptions;
                    crExportOptions.FormatOptions         = crFormatTypeOptions;
                }
                repDoc.Export();
                Session["myPDF.InvoicePath"] = pdfPath;

                Context.Response.Buffer = false;
                var        buffer = new byte[1024];
                FileStream inStr  = File.OpenRead(pdfPath);
                while ((inStr.Read(buffer, 0, buffer.Length)) > 0)
                {
                    if (Context.Response.IsClientConnected)
                    {
                        Response.Clear();
                        //Response.AddHeader("Accept-Header", buffer.Length.ToString());
                        Response.ContentType = "application/pdf";
                        Context.Response.OutputStream.Write(buffer, 0, buffer.Length);
                        Context.Response.Flush();
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                ErrorManager.LogApplicationError(ex.StackTrace, ex.Source, ex.Message);
                return(false);
            }
        }