コード例 #1
0
        public ActionResult TrialBalance(sdtoViewReportFilter filter)
        {
            //sdtoLedgerReport sessionUser = UtilityHelper.UserSession.GetSession(UtilityHelper.UserSession.LoggedInUser) as sdtoLedgerReport;
            //long CompanyId = 0;

            //bfReport objReport = new bfReport(null);
            //List<sdtoLedgerReport> lst = new List<sdtoLedgerReport>();
            //lst = objReport.GetRptLedgerReport(CompanyId, 1, DateTime.Now.Date.AddDays(-20), DateTime.Now, "1,2,3,4,5,6,7,8,9,10").ToList();

            //ReportDocument rd = new ReportDocument();
            //rd.Load(Path.Combine(Server.MapPath("~/Report"), "TrailBalance.rpt"));
            ////rd.SetParameterValue("Heading", "Ledger Report");
            //rd.SetDatabaseLogon("sa", "TechnoCrunchLabs", @"DELL-PC\SQLEXPRESS", "LoanManagement");
            //rd.SetDataSource(lst);
            //Response.Buffer = false;
            //Response.ClearContent();
            //Response.ClearHeaders();
            //try
            //{
            //    System.IO.MemoryStream mem = (System.IO.MemoryStream)rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
            //    Response.Clear();
            //    Response.Buffer = true;
            //    Response.ContentType = "application/pdf";
            //    Response.BinaryWrite(mem.ToArray());

            //    Stream str = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
            //    str.Seek(0, SeekOrigin.Begin);
            //    return File(str, "application/pdf", "TrialBalance.pdf");
            //}
            //catch (Exception e)
            //{
            //    throw e.InnerException;
            //}

            var filterModel = GetMutipleSelectionModel(filter.Accounts.PostedItems);

            // ledger report -> account id
            // cash book -> account id (book type cash only)
            // bank book -> account (book type bank only)
            // trial balance

            long CompanyId = 0;
            sdtoUser sessionUser = UtilityHelper.UserSession.GetSession(UtilityHelper.UserSession.LoggedInUser) as sdtoUser;
            if (sessionUser != null)
                CompanyId = sessionUser.CompanyId.Value;

            List<int> l = new List<int>();
            string.Join(",", l.Select(x => x));

            bfReport objReport = new bfReport(null);
            List<sdtoLedgerReport> lst = new List<sdtoLedgerReport>();
            lst = objReport.GetRptLedgerReport(Convert.ToInt64(filter.CompanyId), filter.OperationId, filter.StartDate, filter.EndDate, filter.Accounts != null && filter.Accounts.PostedItems != null && filter.Accounts.PostedItems.Ids != null ? string.Join(",", filter.Accounts.PostedItems.Ids.Select(x => x)) : "");

            //setup properties
            var modelAccountHeads = new MultipleSelectionModel();
            var selectedAccounts = new List<MutipleSelectionItem>();
            //setup a view model
            modelAccountHeads.Items = dbContext.AccountHeads.Select(x => new MutipleSelectionItem() { Value = x.AccountHeadId.ToString(), Text = x.AccountName }).ToList();
            // model.SelectedFruits = selectedFruits;
            filter.Accounts = modelAccountHeads;

            long cCompanyId = 0;
            if (sessionUser != null && sessionUser.CompanyId != null)
                cCompanyId = sessionUser.CompanyId.Value;
            var cmpList = dbContext.Companies.Where(x => x.IsDeleted == false).ToList();
            cmpList.Insert(0, new sdtoCompany() { CompanyId = 0, CompanyName = "Select a company" });
            filter.Companies = new SelectList(cmpList, "CompanyId", "CompanyName", cCompanyId);

            ReportDocument rd = new ReportDocument();
            rd.Load(Path.Combine(Server.MapPath("~/Report"), "TrailBalance.rpt"));
            //rd.SetParameterValue("Heading", "Ledger Report");
            string strConn = ConfigurationManager.ConnectionStrings["LoanDBContext"].ConnectionString;
            System.Data.SqlClient.SqlConnection obj = new System.Data.SqlClient.SqlConnection(strConn);
            string uName = ConfigurationManager.AppSettings["DbUserName"];
            string uPassword = ConfigurationManager.AppSettings["DbPassword"];
            rd.SetDatabaseLogon(uName, uPassword, obj.DataSource, obj.Database);

            rd.SetDataSource(lst);
            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();
            try
            {
                //System.IO.MemoryStream mem = (System.IO.MemoryStream)rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                //Response.Clear();
                //Response.Buffer = true;
                //Response.ContentType = "application/pdf";
                //Response.BinaryWrite(mem.ToArray());

                Stream str = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                str.Seek(0, SeekOrigin.Begin);
                return File(str, "application/pdf", "TrialBalance.pdf");
            }
            catch (Exception e)
            {
                throw e.InnerException;
            }

            return View(filter);
        }