Esempio n. 1
0
        public ActionResult Quickreport(ReportsDetailModel model)
        {
            Company currentCom = ((EInvoiceContext)FXContext.Current).CurrentCompany;
            IPublishInvoiceService PubInvSrv = IoC.Resolve <IPublishInvoiceService>();
            //if (model == null) model = new ReportsDetailModel();
            IList <string> lstPattern = PubInvSrv.LstByPattern(currentCom.id, 2);

            if (lstPattern.Count == 0)
            {
                Messages.AddErrorFlashMessage("Thông báo phát hành chưa được chấp nhận hoặc chưa có hóa đơn.");
                return(Redirect("/"));
            }
            if (lstPattern.Count > 0)
            {
                if (String.IsNullOrEmpty(model.Pattern))
                {
                    model.Pattern = lstPattern[0];
                }
            }
            List <string> lstSerial = (from p in PubInvSrv.Query where p.ComId == currentCom.id && p.InvPattern == model.Pattern && (p.Status > 1) select p.InvSerial).Distinct().ToList <string>();

            model.lstPattern = new SelectList(lstPattern);
            model.lstSerial  = new SelectList(lstSerial);
            return(View(model));
        }
Esempio n. 2
0
        public ActionResult QuickreportPrince(ReportsDetailModel model, int?Pagesize, int?page)
        {
            Company  currentCom   = ((EInvoiceContext)FXContext.Current).CurrentCompany;
            int      pageSize     = Pagesize.HasValue ? Convert.ToInt32(Pagesize) : 10;
            int      pageIndex    = page.HasValue ? page.Value - 1 : 0;
            int      totalRecords = 0;
            DateTime?DateFrom     = null;
            DateTime?DateTo       = null;

            if (!string.IsNullOrWhiteSpace(model.FromDate))
            {
                DateFrom = DateTime.ParseExact(model.FromDate, "dd/MM/yyyy", null);
            }
            if (!string.IsNullOrWhiteSpace(model.ToDate))
            {
                DateTo = DateTime.ParseExact(model.ToDate, "dd/MM/yyyy", null);
            }
            ReportService repSrv    = new ReportService();
            string        xmlString = repSrv.ReportDetail(currentCom.id, model.Pattern, model.Serial, model.Status, null, DateFrom, DateTo, pageIndex, pageSize, out totalRecords);
            XmlDocument   xmlDoc    = new XmlDocument();

            xmlDoc.LoadXml(xmlString);
            // transform
            StringWriter         sw    = new StringWriter();
            XslCompiledTransform xslCT = new XslCompiledTransform();

            xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKChiTiet.xslt"));
            xslCT.Transform(xmlDoc, null, sw);
            model.Html         = sw.ToString();
            model.pageSize     = pageSize;
            model.pageIndex    = pageIndex;
            model.totalRecords = totalRecords;
            return(View(model));
        }
Esempio n. 3
0
        public ActionResult PrintDetails(ReportsDetailModel model)
        {
            Company  currentCom = ((EInvoiceContext)FXContext.Current).CurrentCompany;
            DateTime?DateFrom   = null;
            DateTime?DateTo     = null;

            if (!string.IsNullOrWhiteSpace(model.FromDate))
            {
                DateFrom = DateTime.ParseExact(model.FromDate, "dd/MM/yyyy", null);
            }
            if (!string.IsNullOrWhiteSpace(model.ToDate))
            {
                DateTo = DateTime.ParseExact(model.ToDate, "dd/MM/yyyy", null);
            }
            ReportService repSrv       = new ReportService();
            int           totalRecords = 0;
            string        xmlString    = repSrv.ReportDetail(currentCom.id, model.Pattern, model.Serial, model.Status, "1", DateFrom, DateTo, 0, 0, out totalRecords);

            if (xmlString == "Error")
            {
                string htmlError = "<p>Dung lượng quá 200,000 bản ghi!</p>";
                return(Json(new
                {
                    htmlError
                }));
            }
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(xmlString);
            // transform
            StringWriter         sw    = new StringWriter();
            XslCompiledTransform xslCT = new XslCompiledTransform();

            xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKChiTiet.xslt"));
            xslCT.Transform(xmlDoc, null, sw);
            string html = sw.ToString();

            return(Json(new
            {
                html
            }));
        }
Esempio n. 4
0
        public void DownloadQuickReportPrint(ReportsDetailModel model, string type)
        {
            if (type != "pdf" && type != "xls" && type != "xlsx")
            {
                Response.Clear();
                Response.Write(String.Format("<script type='text/javascript'>alert('Có lỗi trong quá trình tải dữ liệu! <br /> Lỗi: {0}');</script>", type));
                Response.Redirect("/Home/PotentiallyError");
                Response.End();
                Response.Flush();
            }
            try
            {
                Company  currentCom = ((EInvoiceContext)FXContext.Current).CurrentCompany;
                DateTime?DateFrom   = null;
                DateTime?DateTo     = null;
                if (!string.IsNullOrWhiteSpace(model.FromDate))
                {
                    DateFrom = DateTime.ParseExact(model.FromDate, "dd/MM/yyyy", null);
                }
                if (!string.IsNullOrWhiteSpace(model.ToDate))
                {
                    DateTo = DateTime.ParseExact(model.ToDate, "dd/MM/yyyy", null);
                }
                ReportService repSrv       = new ReportService();
                int           totalRecords = 0;
                string        xmlString    = repSrv.ReportDetail(currentCom.id, model.Pattern, model.Serial, model.Status, "1", DateFrom, DateTo, 0, 0, out totalRecords);
                if (xmlString == "Error")
                {
                    Response.Clear();
                    Response.Write("Danh sách báo cáo quá 200,000 bản ghi!");
                    Response.Redirect("/ExportExcelAndPdf/QuickreportPrince");
                    Response.End();
                    Response.Flush();
                }
                else if (type == "pdf")
                {//export pdf
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(xmlString);
                    // transform
                    StringWriter         sw    = new StringWriter();
                    XslCompiledTransform xslCT = new XslCompiledTransform();
                    xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKChiTiet.xslt"));
                    // add argument
                    XsltArgumentList xslArg = new XsltArgumentList();
                    xslArg.AddParam("Type", "", type);
                    xslCT.Transform(xmlDoc, xslArg, sw);
                    Response.Clear();
                    Response.AddHeader("content-disposition", "attachment;filename=ReportDetails.pdf");
                    Response.ContentType = "application/pdf";

                    StringWriter sw1 = new StringWriter();
                    sw1.WriteLine("<table>");
                    sw1.WriteLine("<tr><td>1</td><td> một</td></tr>");
                    sw1.WriteLine("<tr><td>2</td><td> hai</td></tr>");
                    sw1.WriteLine("</table>");
                    StringReader sr         = new StringReader(sw.ToString());
                    Document     pdfDoc     = new Document();
                    HTMLWorker   htmlparser = new HTMLWorker(pdfDoc);
                    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                    pdfDoc.Open();
                    htmlparser.Parse(sr);
                    pdfDoc.HtmlStyleClass = FX.Utils.UrlUtil.GetSiteUrl() + @"/Content/css/grid.css";
                    pdfDoc.Close();
                    Response.Write(sr.ReadToEnd());
                    Response.End();
                }
                else
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(xmlString);
                    // transform
                    StringWriter         sw    = new StringWriter();
                    XslCompiledTransform xslCT = new XslCompiledTransform();
                    xslCT.Load(System.Web.HttpContext.Current.Server.MapPath("~/Views/ReportsInv/TKChiTiet.xslt"));
                    // add argument
                    XsltArgumentList xslArg = new XsltArgumentList();
                    xslArg.AddParam("Type", "", type);
                    xslCT.Transform(xmlDoc, xslArg, sw);
                    Response.Clear();
                    Response.AddHeader("Content-Disposition", "attachment; filename=ReportDetails.xls");
                    Response.ContentType = "application/vnd.ms-excel";
                    StringReader sr = new StringReader(sw.ToString());
                    Response.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
                    string style = @"<style>.text { mso-number-format:\@;} .datetime {mso-number-format:'mm\/dd\/yyyy'}</style>";
                    Response.ContentType = "application/text";
                    Response.Write(style);
                    Response.Write(sr.ReadToEnd());
                    Response.Flush();
                }
            }
            catch (Exception ex)
            {
                Response.Clear();
                Response.Write(String.Format("<script type='text/javascript'>alert('Có lỗi trong quá trình tải dữ liệu! <br /> Lỗi: {0}');</script>", ex.Message));
                Response.Redirect("/ExportExcelAndPdf/QuickreportPrince");
                Response.End();
                Response.Flush();
            }
        }