diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 07b14f13b..87f743432 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5175,7 +5175,7 @@ Public Class ClsPaginas sw.Start() Dim Bytes As Byte() = Nothing - Dim bdir As String = ModExtensiones.DirectorioBaseEmpresas + Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory) RutaReporte.Replace("/", "\") If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then RutaReporte = String.Format("{0}{1}", bdir, RutaReporte) diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index f06c81603..e9e3f36b6 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -140,7 +140,7 @@ Namespace Extensiones Dim MensajeFormato = $"{Chr(13)}{Chr(10)}Log: {Mensaje} | Fecha:{Now.ToString("dd/MM/yyyy HH:mm")}" Try - ArchivoW = New StreamWriter($"{ModExtensiones.DirectorioBaseEmpresas}\Log\{Archivo}.txt", True, System.Text.Encoding.UTF8) + ArchivoW = New StreamWriter($"{AppDomain.CurrentDomain.BaseDirectory}\Log\{Archivo}.txt", True, System.Text.Encoding.UTF8) Catch ex As UnauthorizedAccessException 'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError) Exit Sub @@ -185,7 +185,7 @@ Namespace Extensiones Dim strLineaTMP As String strLineaTMP = String.Format("{0} {1}:{2} {3} {0}", Chr(13), DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString, pTexto) Try - ArchivoW = New StreamWriter(String.Format("{0}\LogMail.txt", ModExtensiones.DirectorioBaseEmpresas), True, System.Text.Encoding.UTF8) + ArchivoW = New StreamWriter(String.Format("{0}\LogMail.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) Catch ex As Exception Exit Sub End Try @@ -205,7 +205,7 @@ Namespace Extensiones ' strLineaTMP = Chr(13) & Chr(10) & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & " " & Hour(Now) & ":" & Minuto & ". " & Str & Chr(13) & Chr(10) strLineaTMP = String.Format("{0}{1} .. PAC: {2} - Modulo: {3} ..{4}:{5}", Chr(13), Chr(10), CvePAC, Modulo, Str, DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString) Try - ArchivoW = New StreamWriter(String.Format("{0}\LogTimbrado.txt", ModExtensiones.DirectorioBaseEmpresas), True, System.Text.Encoding.UTF8) + ArchivoW = New StreamWriter(String.Format("{0}\LogTimbrado.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) Catch ex As UnauthorizedAccessException 'Alert("No hay permisos para guardar en el Log.", Extensiones.TipoMensaje.MsgError) Exit Sub @@ -228,7 +228,7 @@ Namespace Extensiones strLineaTMP = String.Format("{0} {1}:{2} {3} {0}", Chr(13), DateTime.Now.ToShortDateString, DateTime.Now.ToShortTimeString, pTexto) Try - ArchivoW = New StreamWriter(String.Format("{0}\LogCancelacionSAT.txt", ModExtensiones.DirectorioBaseEmpresas), True, System.Text.Encoding.UTF8) + ArchivoW = New StreamWriter(String.Format("{0}\LogCancelacionSAT.txt", AppDomain.CurrentDomain.BaseDirectory), True, System.Text.Encoding.UTF8) Catch ex As Exception Exit Sub End Try @@ -1962,7 +1962,7 @@ Namespace Extensiones RecursivoLimpiaControlesExcel(GridView.Controls) style.Append(" ") page.EnableEventValidation = False @@ -2002,7 +2002,7 @@ Namespace Extensiones Dim Form As HtmlForm = New HtmlForm() style.Append(" ") RecursivoLimpiaControlesExcel(GridView.Controls) @@ -2183,16 +2183,15 @@ Namespace Extensiones worksheet.Rows(IndexEndTable).Cells(6).Value = "Fecha Impresión" worksheet.Rows(IndexEndTable + 1).Cells(6).Value = DateTime.Now.ToString("dd/MM/yyyy") - Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) - - If Imagen.Exists Then - Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, Usuario.CveEmpresa) - Using webClient As New Net.WebClient() - Dim imageBytes = webClient.DownloadData(logouri) - Dim stream As New MemoryStream(imageBytes) - worksheet.Pictures.Add(stream, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) - 'worksheet.Pictures.Add(stream, GemBox.Spreadsheet.ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, GemBox.Document.LengthUnit.Pixel) - End Using + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) + + If Imagen.Exists Then + Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta) + Using sr As New StreamReader(Ruta) + Dim ms As New MemoryStream() + sr.BaseStream.CopyTo(ms) + worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) + End Using End If End If @@ -2210,7 +2209,7 @@ Namespace Extensiones Dim style As StringBuilder = New StringBuilder() style.Append(" ") 'To Export all pages 'Gv.AllowPaging = False @@ -3182,7 +3181,7 @@ Namespace Extensiones Public Property descripcion As String Public ReadOnly Property Extencion As String Get - Return IO.Path.GetExtension(String.Format("{0}{1}{2}", ModExtensiones.DirectorioBaseEmpresas, patch, filename)).Replace(".", "") + Return IO.Path.GetExtension(String.Format("{0}{1}{2}", If(patch.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), patch, filename)).Replace(".", "") End Get End Property Public ReadOnly Property filenameO As String @@ -3192,7 +3191,7 @@ Namespace Extensiones End Property Public ReadOnly Property FileUrl As String Get - Return String.Format("{0}{1}{2}", ModExtensiones.DirectorioBaseEmpresas, patch, filename) + Return String.Format("{0}{1}{2}", If(patch.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory), patch, filename) End Get End Property End Class diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index c787fdd5c..beb0c14e3 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -930,7 +930,7 @@ Partial Class Bancos_IE If ObjIE.Comprobante <> "" Then HplComprobante.Visible = True - HplComprobante.NavigateUrl = String.Format("/Empresas/{0}/IE/{1}", UsuarioActual.CveEmpresa, ObjIE.Comprobante) + HplComprobante.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta($"OP=IEComprobante&Comprobante={ObjIE.Comprobante}")) End If If CveIEDeposito > 0 Then diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 5d0a34f8c..ddb90e086 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -186,9 +186,10 @@ Partial Class PopUpVerFactura If Request("REPORTE") IsNot Nothing Then CType(Session("DTPDF"), HtmlTable).ExportToPDF("Reporte") - End If - - 'OPCIONES + End If + + 'OPCIONES + If Request("P") IsNot Nothing AndAlso Decripta((Request("P").ToString)) <> "" Then Dim UrlParametros As Hashtable = Parametros(Decripta((Request("P").ToString))) If UrlParametros("OP") IsNot Nothing AndAlso UrlParametros("OP").ToString <> "" Then @@ -235,10 +236,16 @@ Partial Class PopUpVerFactura UsuarioToken.Empresa = ObjEmpresa.Empresa End If ObjEmpresa.Dispose() - End Sub + End Sub #End Region + + Private Sub SeleccionaReporte(UrlParametros As Hashtable) + + 'DESCARGA COMPROBANTE + If UrlParametros("OP").ToString = "IEComprobante" Then + DescargaComprobante(UrlParametros) + End If - Private Sub SeleccionaReporte(UrlParametros As Hashtable) 'DESCARGA DOCUMENTO XML O PDF DE LA FACTURA COMPRA If UrlParametros("OP").ToString = "Fact" Then DescargaFactura(UrlParametros) @@ -518,11 +525,30 @@ Partial Class PopUpVerFactura ImprimirPDF("Empresas/Grales/Formatos/RepCortes.rdlc", lrds, params, "ReporteCortes", Formato) End If - End Sub - + End Sub + #End Region - + #Region " OP = FACTURA - IMPRIME COMPRA" + Private Sub DescargaComprobante(Parametros As Hashtable) + If Parametros("COMPROBANTE") IsNot Nothing Then + + Dim Path As String = String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, Parametros("COMPROBANTE")) + Dim Archivo As New System.IO.FileInfo(Path) + + If Archivo.Exists Then + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/octet-stream" + HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name)) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(Path) + 'HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() + End If + Archivo = Nothing + End If + End Sub Private Sub DescargaFactura(Parametros As Hashtable) If Parametros("CVEFACTURA") IsNot Nothing AndAlso Parametros("CVEFACTURA").ToString.ToEntero > 0 Then Dim Exten As String = If(Parametros("EXT").ToString.ToLower = "xml", "xml", "pdf") diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 86b0b4428..60ee8f5b2 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -2603,17 +2603,50 @@ Partial Class Compras_eFacturas End Set End Property + Property DT_ComprasSinIE As DataTable + Get + If ViewState("DT_ComprasSinIE") Is Nothing Then + Return New DataTable + Else + Return DirectCast(ViewState("DT_ComprasSinIE"), DataTable) + End If + End Get + Set(value As DataTable) + ViewState("DT_ComprasSinIE") = value + End Set + End Property + + + + 'Property ComplementoComprasSinIE As String + ' Get + ' If ViewState("ComplementoComprasSinIE") Is Nothing Then + ' Return "" + ' Else + ' Return ViewState("ComplementoComprasSinIE").ToString + ' End If + ' End Get + ' Set(value As String) + ' ViewState("ComplementoComprasSinIE") = value + ' End Set + 'End Property + + #Region "V I N C U L A R P A G O" Protected Sub LnkAgregarPago_Click(sender As Object, e As EventArgs) + Dim sbSinIE As New StringBuilder + HdnCveIE.Value = "" MSGComplemento = "" ViculacionConPUE = False ListaComprasPUE.Clear() ComplementoConPUE = "" + DT_ComprasSinIE = New DataTable + Dim ListaComprasPUEInterna As New List(Of Integer) @@ -2809,6 +2842,26 @@ Partial Class Compras_eFacturas End If Next + + DT_ComprasSinIE.Columns.Add("CveCompra", GetType(Integer)) + DT_ComprasSinIE.Columns.Add("CveFactura", GetType(Integer)) + DT_ComprasSinIE.Columns.Add("SerieFolioPago") + DT_ComprasSinIE.Columns.Add("SerieFolioCompra") + + For Each dRow As DataRow In DTDocumentosRelacionados.Rows + Dim nRow As DataRow = DT_ComprasSinIE.NewRow + nRow("CveCompra") = dRow("CveCompra").ToString.ToEntero + ' nRow("CveFactura") = dRow("CveFactura").ToString.ToEntero + nRow("SerieFolioPago") = $"{SeriePago}-{FolioPago}" + nRow("SerieFolioCompra") = dRow("SerieFolioCompra").ToString + + DT_ComprasSinIE.Rows.Add(nRow) + + + Next + + + Else Alert("Ocurrió un error al cargar los archivos de complementos pago", TipoMensaje.MsgError) End If @@ -2876,6 +2929,12 @@ Partial Class Compras_eFacturas ImporteIES = ObjCompras.DtResultados.FiltraParametros("CveIE > 0").SUM("Importe") + + + + + + DiferenciaImportes = Monto - ImporteIES ObjCompras.Dispose() @@ -2962,19 +3021,25 @@ Partial Class Compras_eFacturas If ViculacionConPUE Then - - - For Each CveCompraVinculada In ListaComprasPUE - objEventos.AddEventoBitacora($"Complemento { ComplementoConPUE } vinculado manualmente (Compra PUE) ", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=CveCompraVinculada) Next + End If + + + If HdnCveIE.Value.ToEntero > 0 Then + + + For Each dRow As DataRow In DT_ComprasSinIE.Rows + objEventos.AddEventoBitacora($"Complemento { dRow("SerieFolioPago").ToString } vinculado manualmente a compra {dRow("SerieFolioCompra").ToString}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=dRow("CveCompra").ToString.ToEntero) + Next End If + ObjCompra.Commit() Alert("El pago fue vinculado correctamente", TipoMensaje.MsgInformacion) diff --git a/Inventarios/KardexAlmacenHorizontal.aspx.vb b/Inventarios/KardexAlmacenHorizontal.aspx.vb index 2b5325e8f..46040fdab 100644 --- a/Inventarios/KardexAlmacenHorizontal.aspx.vb +++ b/Inventarios/KardexAlmacenHorizontal.aspx.vb @@ -246,10 +246,96 @@ Partial Class Inventarios_KardexAlmacen If DdlProveedor.SelectedValue.ToEntero > 0 Then StrFiltro.AppendFormat("Proveedor: {0},", DdlProveedor.SelectedText) If ddlProducto2.SelectedValue.ToEntero > 0 Then StrFiltro.AppendFormat(" Producto/Servicio: {0},", ddlProducto2.SelectedText) If TxtFechaF.Text <> "" Then StrFiltro.AppendFormat(" Fecha Fin: {0}", TxtFechaF.Text) - GvDatos.ExportToExcelG("ExistenciasHorizontal.xlsx", "Existencias Almacen", UsuarioActual, StrFiltro.ToString, 100, 200) + ExportToExcelG(GvDatos, "ExistenciasHorizontal.xlsx", "Existencias Almacen", UsuarioActual, StrFiltro.ToString, 100, 200) Else Alert("Debe consultar para generar un excel", TipoMensaje.MsgAdvertencia) End If + End Sub + + Public Sub ExportToExcelG(Gv As GridView, NombreArchivoXLSx As String, Optional Titulo As String = "Reporte", Optional Usuario As Usuario = Nothing, Optional Filtros As String = "", Optional AlturaImagen As Double = 100, Optional AnchoImagen As Double = 100) + Dim sw As New StringWriter() + Dim htw As New HtmlTextWriter(sw) + Gv.RenderControl(htw) + GemBox.Spreadsheet.SpreadsheetInfo.SetLicense("ESWN-4QFD-26JF-1SZ8") + + Dim excel As GemBox.Spreadsheet.ExcelFile + Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault + Using htmlStream = New MemoryStream(options.Encoding.GetBytes(sw.ToString())) + excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream, options) + If Usuario IsNot Nothing Then + Dim TotalRowHeader As Integer = 8 + Dim TotalRowFooter As Integer = 2 + + Dim worksheet = excel.Worksheets(0) + worksheet.Rows.InsertEmpty(0, TotalRowHeader) + Dim celdasConTexto = worksheet.GetUsedCellRange(True) + celdasConTexto.Style.Font.Name = "Calibri Light" + + Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex) + RangoNombreEmpresa.Merged = True + RangoNombreEmpresa.Value = Usuario.Empresa.Empresa + RangoNombreEmpresa.Style.Font.Size = 18 * 20 + RangoNombreEmpresa.Style.Font.Name = "Calibri Light" + RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + + Dim RangoFiltros = worksheet.Cells.GetSubrangeAbsolute(6, celdasConTexto.FirstColumnIndex, 6, celdasConTexto.LastColumnIndex) + RangoFiltros.Merged = True + RangoFiltros.Value = Filtros + RangoFiltros.Style.Font.Size = 15 * 20 + RangoFiltros.Style.Font.Name = "Calibri Light" + RangoFiltros.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left + RangoFiltros.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + + Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex) + RangoTitulo.Merged = True + RangoTitulo.Value = Titulo + RangoTitulo.Style.Font.Size = 20 * 20 + RangoTitulo.Style.Font.Name = "Calibri Light" + RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex + worksheet.Rows(8).Cells(i).Style.Font.Size = 12 * 20 + worksheet.Rows(8).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + worksheet.Rows(8).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + worksheet.Rows(8).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)) + worksheet.Rows(8).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) + If i > 0 Then + Try + worksheet.Columns(i).AutoFit(1) + Catch ex As Exception + End Try + End If + Next + + Dim IndexEndTable As Integer = Gv.Rows.Count + TotalRowHeader + TotalRowFooter + + worksheet.Rows(IndexEndTable).Cells(2).Value = "Usuario Imprimió" + worksheet.Rows(IndexEndTable + 1).Cells(2).Value = Usuario.Nombre + + worksheet.Rows(IndexEndTable).Cells(6).Value = "Fecha Impresión" + worksheet.Rows(IndexEndTable + 1).Cells(6).Value = DateTime.Now.ToString("dd/MM/yyyy") + + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)) + + If Imagen.Exists Then + Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta) + Using sr As New StreamReader(Ruta) + Dim ms As New MemoryStream() + sr.BaseStream.CopyTo(ms) + worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel) + End Using + End If + End If + + End Using + htw.Dispose() + + excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx") + End Sub Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) End Sub