From 50e09adb17e0f0a1f944240f1feffc5edd0092bd Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Fri, 17 Mar 2023 18:33:23 -0700 Subject: [PATCH] formatos Rep iva generales recorregidos, GlobalDTTipoPeriodo --- App_Code/ClsPaginas.vb | 9 ++ Contabilidad/RepIVA.aspx.cs | 140 +++++++++++++++++- Empresas/Grales/Formatos/RepIVA.rpt | Bin 147456 -> 163840 bytes .../Grales/Formatos/RepIVAAcreditable.rpt | Bin 147456 -> 147456 bytes Global.asax | 2 +- RH/Reclutamiento.aspx.vb | 4 + Sistemas/Empresa.aspx.vb | 55 ++++--- 7 files changed, 186 insertions(+), 24 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 7cd0e04ae..d137c079e 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -1921,10 +1921,19 @@ Public Class ClsPaginas 'TipoPerioso Property GlobalDTTipoPeriodo() As DataTable Get + If HttpContext.Current.Application("GlobalDTTipoPeriodo") Is Nothing Then + Using ObjNom As New ClsNominas() + If ObjNom.GetTiposPeriodos() Then Application("GlobalDTTipoPeriodo") = ObjNom.DtResultados Else Application("GlobalDTTipoPeriodo") = Nothing + End Using + End If + GlobalDTTipoPeriodo = DirectCast(Application("GlobalDTTipoPeriodo"), DataTable) + End Get Set(value As DataTable) + Application("GlobalDTTipoPeriodo") = value + End Set End Property 'Fin TipoPeriodo diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs index 4c8bbe71f..61cdc8e9e 100644 --- a/Contabilidad/RepIVA.aspx.cs +++ b/Contabilidad/RepIVA.aspx.cs @@ -10,6 +10,9 @@ using Microsoft.Reporting.WebForms; using System.Activities.Expressions; using System.Text; using System.IO; +using CrystalDecisions.CrystalReports.Engine; +using CrystalDecisions.Shared; +using System.Diagnostics; public partial class Contabilidad_RepIVA : ClsPaginas { @@ -245,7 +248,11 @@ public partial class Contabilidad_RepIVA : ClsPaginas }else { Ruta = ModExtensiones.DirectorioBaseEmpresas + $@"Empresas\Grales\Formatos\{Formato}"; - ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta,Dt,para, DtIEPSA,DtIVAA,"RepIEPSPorcentaje.rpt","RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + + + ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta, Dt, para, DtIEPSA, DtIVAA, "RepIEPSPorcentaje.rpt", "RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + + } Ruta.GuardaLogAD(); //ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); @@ -398,4 +405,135 @@ public partial class Contabilidad_RepIVA : ClsPaginas } } } + + //public void IImprimirbytesPDF(byte[] bytes, string NombreArchivo = "Reporte", string Formato = "PDF", bool Descarga = false, string Content_Disposition = "attachment", string Extension = "") + //{ + // // limpio ReportViwer + // string mimeType = null; + // // If Descarga Then + // // Try + // // bytes = bytes + // // File.WriteAllBytes(String.Format("{0}PDF/whatever.gif", UsuarioActual.Empresa.Ruta), img) + // // Catch ex As Exception + // // If UsuarioActual.CveRol = 1 Then + // // Alert(ex.Message, TipoMensaje.MsgAdvertencia) + // // Else + // // Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod'IMPDFclspag'", TipoMensaje.MsgAdvertencia) + // // End If + // // End Try + // // End If + // try + // { + // bytes = bytes; + // //Response.Buffer = true; + // //Response.Clear(); + // //if (Formato == "PDF") + // // Response.ContentType = "application/pdf"; + // //else + // // Response.ContentType = mimeType; + // //Response.ClearHeaders(); + // //string fileExtension = ""; + // //if (!string.IsNullOrEmpty(Extension)) + // // fileExtension = Extension; + // //else + // // fileExtension = Formato == "PDF" ? "pdf" : "xls"; + // //Response.AddHeader("content-disposition", string.Format("{0}; filename=\"{1}.{2}\"", Content_Disposition, NombreArchivo, fileExtension)); + // //Response.BinaryWrite(bytes); // create the file + // //Response.Flush(); // send it to the client to download + // //bytes = null; + // //HttpContext.Current.Response.SuppressContent = true; + // //HttpContext.Current.ApplicationInstance.CompleteRequest(); + // Alert("ok"); + // } + // // HttpContext.Current.Response.End() + // catch (Exception ex) + // { + // if (UsuarioActual.CveRol == 1) { + + // } + // else + // Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod:'IMPDFclspag'", TipoMensaje.MsgAdvertencia); + // } + //} + + + //public byte[] IImprimirSubRepPDFCrystal(string RutaReporte, DataTable DataSource, List Parametros, DataTable DataSource1, DataTable DataSource2, string SubRep1, string SubRep2, string NombreArchivo = "Reporte", string Formato = "PDF", ReportDocument MR = null/* TODO Change to default(_) if this is not a reference type */) + //{ + // // limpio ReportViwer + // Stopwatch sw = Stopwatch.StartNew(); + + // if (MR == null) + // MR = new ReportDocument(); + // ReportDocument SR1 = new ReportDocument(); + // ReportDocument SR2 = new ReportDocument(); + // byte[] Bytes = null; + // ExportFormatType formatType = ExportFormatType.NoFormat; + // try + // { + // MR.Load(RutaReporte); + // SR1 = MR.OpenSubreport(SubRep1); + // SR2 = MR.OpenSubreport(SubRep2); + // MR.SetDataSource(DataSource); + // SR1.SetDataSource(DataSource1); + // SR2.SetDataSource(DataSource2); + // foreach (CrystalParametro item in Parametros) + // MR.SetParameterValue(item.Nombre, item.Valor); + // switch (Formato) + // { + // case "PDF": + // { + // formatType = ExportFormatType.PortableDocFormat; + // break; + // } + + // case "EXCEL": + // { + // formatType = ExportFormatType.Excel; + // break; + // } + // } + // System.IO.Stream Stream = MR.ExportToStream(formatType); + // BinaryReader BD = new BinaryReader(MR.ExportToStream(formatType)); + // Bytes = BD.ReadBytes(System.Convert.ToInt32(MR.ExportToStream(formatType).Length)); + // BD.Dispose(); + // Stream.Dispose(); + // } + // // Dim Buffer(CInt(Stream.Length)) As Byte + // // Bytes = Buffer + // // MR.ExportToHttpResponse(formatType, Response, True, NombreArchivo) + // catch (CrystalReportsException ex) + // { + // if(ex.Message != null) + // { + // Alert(ex.Message); + // } + // if (ex.InnerException != null) + // { + // Alert(ex.InnerException.Message); + // } + + // } + // // HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + // // GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + // catch (Exception ex) + // { + // //GuardaLog(ex.InnerException != null && ex.Message != null ? $"Error: {ex.InnerException.Message ?? ex.Message} | Descripcion: {ex.InnerException != null && ex.InnerException.InnerException != null && ex.InnerException.InnerException.Message != null ? ex.InnerException.InnerException.Message : ex.InnerException != null && ex.InnerException.Message != null ? ex.InnerException.Message : "Sin descripcion"} Ruta {RutaReporte}" : $"Sin descripción - Ruta {RutaReporte}"); + // if (ex.Message != null) + // { + // Alert(ex.Message); + // } + // if (ex.InnerException != null) + // { + // Alert(ex.InnerException.Message); + // } + // } + // sw.Stop(); + // if (sw.Elapsed.TotalSeconds > 10) + // // GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} "); + // if (MR != null) + // MR.Dispose(); + // return Bytes; + //} + + } \ No newline at end of file diff --git a/Empresas/Grales/Formatos/RepIVA.rpt b/Empresas/Grales/Formatos/RepIVA.rpt index 213d81132d0c04fe15ff428e940fb3655568dfa4..d89ea9c2ffc338a355c7da153a8e2a659c5cfd4d 100644 GIT binary patch delta 32011 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