From 0570bde1ba37ebe8a9dea328920939cb0760fd01 Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Tue, 20 Jun 2023 16:22:13 -0700 Subject: [PATCH] Rep Personal DIM ajuestecolumnas --- Nomina/RepPersonalDIM.aspx | 444 +++++++++++++++++----------------- Nomina/RepPersonalDIM.aspx.vb | 255 ++++++++++++++++++- 2 files changed, 469 insertions(+), 230 deletions(-) diff --git a/Nomina/RepPersonalDIM.aspx b/Nomina/RepPersonalDIM.aspx index 6fbc9d46c..b16f700cb 100644 --- a/Nomina/RepPersonalDIM.aspx +++ b/Nomina/RepPersonalDIM.aspx @@ -101,7 +101,7 @@ Style="margin-top: -10px; text-align: center;" GridLines="None"> - + Mes inicial @@ -109,7 +109,7 @@ - + Mes final @@ -117,7 +117,7 @@ - + RFC @@ -125,7 +125,7 @@ - + CURP @@ -133,7 +133,7 @@ - + Apellido
paterno @@ -142,7 +142,7 @@
- + Apellido
materno @@ -151,7 +151,7 @@
- + Nombre @@ -159,7 +159,7 @@ - + Área
geográfica @@ -168,7 +168,7 @@
- + Si el patrón
realizó
@@ -178,7 +178,7 @@
- + Tarifa
utilizada del
@@ -188,7 +188,7 @@
- + Tarifa 1991 @@ -196,7 +196,7 @@ - + Proporción
del subsidio @@ -205,7 +205,7 @@
- + Sindicalizado @@ -213,7 +213,7 @@ - + Si es
asimilado a
@@ -223,7 +223,7 @@
- + Entidad
Federativa @@ -232,7 +232,7 @@
- + RFC otros
patrones1 @@ -241,7 +241,7 @@
- + RFC otros
patrones2 @@ -250,7 +250,7 @@
- + RFC otros
patrones3 @@ -259,7 +259,7 @@
- + RFC otros
patrones4 @@ -268,7 +268,7 @@
- + RFC otros
patrones5 @@ -277,7 +277,7 @@
- + RFC otros
patrones6 @@ -286,7 +286,7 @@
- + RFC otros
patrones7 @@ -295,7 +295,7 @@
- + RFC otros
patrones8 @@ -304,7 +304,7 @@
- + RFC otros
patrones9 @@ -313,7 +313,7 @@
- + RFC otros
patrones10 @@ -322,25 +322,25 @@
- + Pagos por
separación
- +
- + Asimilados a
salarios
- +
- + Pagos del
patrón @@ -349,17 +349,17 @@ a sus trab
- +
- <%-- + <%-- CvePersonal --%> - + Ingresos
totales por
@@ -367,10 +367,10 @@ parcialidades
- +
- + Monto
diario
@@ -378,10 +378,10 @@ por jubilaciones
- +
- + Cantidad
que se
@@ -389,10 +389,10 @@ percibido
- +
- + Monto total
del pago en
@@ -400,10 +400,10 @@ exhibición
- +
- + Días @@ -411,123 +411,123 @@ - + Ingresos
exentos
- +
- + Ingresos
gravables
- +
- + Ingresos
acumulables
- +
- + Ingresos no
acumulables
- +
- + Impuesto
retenido
- +
- + Monto total
pagado de
otros pagos
- +
- + Número de
años de
servicio
- +
- + Ingresos
exentos
- +
- + Ingresos
gravados
- +
- + Ingresos
acumulables (mes)
- +
- + Impuesto
correspondiente(mes)
- +
- + Ingresos no
acumulables
- +
- + Impuesto
retenido
- +
@@ -535,7 +535,7 @@ - + Sueldos,
salarios,
@@ -543,10 +543,10 @@ jornales (Gravado)
- +
- + Sueldos,
salarios,
@@ -554,125 +554,125 @@ jornales (Exento)
- +
- + Gratificación anual (Gravado) - + - + Gratificación
anual (Exento)
- +
- + Viáticos y
gastos de
viaje (Gravado)
- +
- + Viáticos y
gastos de
viaje (Exento)
- +
- + Tiempo
extraordinario
(Gravado)
- +
- + Tiempo
extraordinario
(Exento)
- +
- + Prima
vacacional
(Gravado)
- +
- + Prima
vacacional
(Exento)
- +
- + Prima
dominical
(Gravado)
- +
- + Prima
dominical
(Exento)
- +
- + PTU
(Gravado)
- +
- + PTU
(Exento)
- +
- + Reembolso
de gastos
@@ -680,10 +680,10 @@ (Gravado)
- +
- + Reembolso
de gastos
@@ -691,70 +691,70 @@ (Exento)
- +
- + Fondo de
ahorro
(Gravado)
- +
- + Fondo de
ahorro
(Exento)
- +
- + Caja de
ahorro
(Gravado)
- +
- + Caja de
ahorro
(Exento)
- +
- + Vales para
despensa
(Gravado)
- +
- + Vales para
despensa
(Exento)
- +
- + Ayuda para
gastos de
@@ -762,10 +762,10 @@ (Gravado)
- +
- + Ayuda para
gastos de
@@ -773,100 +773,100 @@ (Exento)
- +
- + Contribuciones
a cargo del
trab(Gravado)
- +
- + Contribuciones
a cargo del
trab(Exento)
- +
- + Premios por
puntualidad
(Gravado)
- +
- + Premios por
puntualidad
(Exento)
- +
- + Prima de
seguro de
vida (Gravado)
- +
- + Prima de
seguro de
vida (Exento)
- +
- + Seguro de
gastos médicos
mayores (Gravado)
- +
- + Seguro de
gastos médicos
mayores (Exento)
- +
- + Vales para
restaurante
(Gravado)
- +
- + Vales para
restaurante @@ -874,66 +874,66 @@ (Exento)
- +
- + Vales para
gasolina
(Gravado)
- +
- + Vales para
gasolina
(Exento)
- +
- + Vales para
ropa (Gravado)
- +
- + Vales para
ropa (Exento)
- +
- + Ayuda para
renta(Gravado)
- +
- + Ayuda para
renta(Exento)
- +
- + Ayuda para
artículos @@ -941,115 +941,115 @@ escolares (Gravado)
- +
- + Ayuda para
artículos
escolares (Exento)
- +
- + Dotación o
ayuda para
anteojos (Gravado)
- +
- + Dotación o
ayuda para
anteojos (Exento)
- +
- + Ayuda para
transporte (Gravado)
- +
- + Ayuda par
a transporte (Exento)
- +
- + Cuotas sindicales
pagadas patron(Gravado)
- +
- + Cuotas sindicales
pagadas patron(Exento)
- +
- + Subsidios por
incapacidad (Gravado)
- +
- + Subsidios por
incapacidad (Exento)
- +
- + Becas para
trabajadores
(Gravado)
- +
- + Becas para
trabajadores
(Exento)
- +
- + Pagos
efectuados
@@ -1058,10 +1058,10 @@ (Gravado)
- +
- + Pagos
efectuados
@@ -1070,10 +1070,10 @@ (Exento)
- +
- + Otros
ingresos por
@@ -1081,10 +1081,10 @@ (Gravado)
- +
- + Otros
ingresos por
@@ -1092,33 +1092,33 @@ (Exento)
- +
- + Suma del
ingreso
GRAVADO
- +
- + Suma del
ingreso
EXENTO
- +
- + Impuesto
retenido
@@ -1126,10 +1126,10 @@ ejercicio
- +
- + Impuesto
retenido por
@@ -1137,10 +1137,10 @@ patrón(es)
- +
- + Saldo a favor
en el ejercicio
@@ -1153,10 +1153,10 @@ ejercicio
- +
- + Saldo a favor
del ejercicio anterior
@@ -1167,10 +1167,10 @@ +
- +
- + Suma de las
cantidades @@ -1185,10 +1185,10 @@ al trabajador
- +
- + Crédito al
salario
@@ -1196,10 +1196,10 @@ en efectivo
- +
- + Monto total
de ingresos
@@ -1208,10 +1208,10 @@ Prev Social
- +
- + Exentos
@@ -1219,18 +1219,18 @@ social
- +
- + - Suma de ingresos por sueldos y salarios + Suma de
ingresos
por sueldos
y salarios
- +
- + Monto del
impuesto local
@@ -1239,10 +1239,10 @@ y salarios
- +
- + Monto del
subsidio para
@@ -1251,10 +1251,10 @@ el ejercicio
- +
- + Total de
las aportaciones
@@ -1262,20 +1262,20 @@ deducibles
- +
- + Impuesto
conforme a la
tarifa anual
- +
- + Monto del
subsidio @@ -1285,10 +1285,10 @@ (No aplica)
- +
- + Monto del
subsidio no
@@ -1297,30 +1297,30 @@ (No aplica)
- +
- + Impuesto sobre
ingresos
acumulables
- +
- + Impuesto sobre
ingresos
no acumulables
- +
- + Impuesto local
a los ingresos
@@ -1330,10 +1330,10 @@ y en general
- +
- + Monto del
subsidio para
@@ -1347,7 +1347,7 @@ el ejercicio
- +
diff --git a/Nomina/RepPersonalDIM.aspx.vb b/Nomina/RepPersonalDIM.aspx.vb index dcb0cdc1f..d264bf3ac 100644 --- a/Nomina/RepPersonalDIM.aspx.vb +++ b/Nomina/RepPersonalDIM.aspx.vb @@ -100,10 +100,8 @@ Partial Class Nomina_RepPersonalDIM End Sub Private Sub Imprimir(Optional reporte As String = "PDF") - GvDatos.ExportToExcelGembox("RepPersonalDIM", UsuarioActual, "Reporte Personal ", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}") - + ExportToExcelGembox(GvDatos, "RepPersonalDIM", UsuarioActual, "Reporte Personal DIM", "", DatosFiltros:=$"Ejercicio {DdlEjercicio.SelectedItem.Text}") End Sub - Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) End Sub @@ -179,11 +177,11 @@ Partial Class Nomina_RepPersonalDIM row.Controls.Add(cell) - 'cell = New TableHeaderCell() - 'cell.ColumnSpan = 2 - 'cell.Text = " ANEXO 1 ASIM SAL-> " - 'cell.HorizontalAlign = HorizontalAlign.Left - 'row.Controls.Add(cell) + cell = New TableHeaderCell() + cell.ColumnSpan = 2 + cell.Text = " ANEXO 1 ASIM SAL-> " + cell.HorizontalAlign = HorizontalAlign.Left + row.Controls.Add(cell) cell = New TableHeaderCell() @@ -202,5 +200,246 @@ Partial Class Nomina_RepPersonalDIM GvDatos.HeaderRow.Parent.Controls.AddAt(0, row) End Sub + + + + + Public Sub ExportToExcelGembox(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100, Optional DTExtra As DataTable = Nothing) + + Dim sw1 As New StringWriter() + Dim htw1 As New HtmlTextWriter(sw1) + GridView.RenderControl(htw1) + + Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault + + Dim htmlStream1 = New MemoryStream(options.Encoding.GetBytes(sw1.ToString())) + + htmlStream1.Position = 0 + Dim sr1 As New StreamReader(htmlStream1) + Dim myStr1 = sr1.ReadToEnd() + sr1.Dispose() + htmlStream1.Dispose() + sw1.Dispose() + + Dim HtmlCompleto As String = myStr1 + + HtmlCompleto = Regex.Replace(HtmlCompleto, "\<[\/]*a[^\>]*\>", "") + + Dim htmlStream5 = New MemoryStream(options.Encoding.GetBytes(HtmlCompleto)) + + GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet) + + Dim excel As GemBox.Spreadsheet.ExcelFile + + excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream5, options) + + If Usuario IsNot Nothing Then + + Dim TotalRowHeader As Integer = 6 + Dim TotalRowFooter As Integer = 2 + + + Dim worksheet = excel.Worksheets(0) + worksheet.Rows.InsertEmpty(0, TotalRowHeader) + Dim celdasConTexto = worksheet.GetUsedCellRange(True) + If celdasConTexto Is Nothing Then Exit Sub 'No se recuperaron datos, salir de sin guardar porque soltará error + 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 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 + + If DatoTituloExtra.Length > 0 Then + Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex) + RangoDatoTituloExtra.Merged = True + RangoDatoTituloExtra.Value = DatoTituloExtra + RangoDatoTituloExtra.Style.Font.Size = 20 * 20 + RangoDatoTituloExtra.Style.Font.Name = "Calibri Light" + RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left + RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + End If + + If DatosFiltros.Length > 0 Then + + Dim Arreglo As String() = DatosFiltros.Split("|"c) + worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count) + For Each TextoFiltro As String In Arreglo + Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex) + RangoDatoTituloExtra.Merged = True + RangoDatoTituloExtra.Value = TextoFiltro + RangoDatoTituloExtra.Style.Font.Size = 12 * 20 + RangoDatoTituloExtra.Style.Font.Name = "Calibri Light" + RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left + RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + TotalRowHeader += 1 + + Next + End If + + ' TotalRowHeader += 2 + + For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex + + worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20 + worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center + worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center + + worksheet.Rows(TotalRowHeader).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(TotalRowHeader).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 = GridView.Rows.Count + TotalRowHeader + TotalRowFooter + + worksheet.Rows(IndexEndTable).Cells(1).Value = "Usuario Imprimió" + worksheet.Rows(IndexEndTable + 1).Cells(1).Value = Usuario.Nombre + + worksheet.Rows(IndexEndTable).Cells(3).Value = "Fecha Impresión" + worksheet.Rows(IndexEndTable + 1).Cells(3).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 + + + For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex + + If I > 0 Then + + If 1 = 1 Then + worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00" + Else + worksheet.Columns(I + 1).Style.NumberFormat = "#,##" + End If + + Try + worksheet.Columns(I).AutoFit(1) + Catch ex As Exception + End Try + + End If + Next + + + + If DTExtra IsNot Nothing Then + + Dim NombreTabla As String = "" + + If DTExtra.TableName IsNot Nothing Then + NombreTabla = DTExtra.TableName + End If + + If NombreTabla.Trim = "" Then + NombreTabla = "hoja2" + End If + + 'excel.Worksheets.Add(NombreTabla) + + Dim workbookDTExtra = New ExcelFile + Dim worksheetDTExtra = workbookDTExtra.Worksheets.Add(NombreTabla) + + + worksheetDTExtra.InsertDataTable(DTExtra, + New InsertDataTableOptions() With + { + .ColumnHeaders = True, + .StartRow = 0 + }) + + + + Dim columnCount = worksheetDTExtra.CalculateMaxUsedColumns() + For i As Integer = 0 To columnCount - 1 + worksheetDTExtra.Columns(i).AutoFit(1, worksheetDTExtra.Rows(1), worksheetDTExtra.Rows(worksheetDTExtra.Rows.Count - 1)) + worksheetDTExtra.Cells(0, i).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#4b77be")) + worksheetDTExtra.Cells(0, i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255) + + Next + + + excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra) + excel.Worksheets(0).Name = Titulo + End If + + + + Dim indexRow As Integer = 8 + Dim indexRowGV As Integer = 0 + Dim cssClassRow As String = "" + + Dim CountRowFiltros As Integer = -1 + If DatosFiltros.Trim.Length > 0 Then + CountRowFiltros = 0 + End If + + For indexRow = 8 To worksheet.Rows.Count - 4 + + Try + cssClassRow = GridView.Rows(indexRowGV).CssClass.Trim() + + Select Case cssClassRow + + Case "Totales" + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#67809f")) + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000 + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#ddd") + Exit Select + Case "SubTotales2" + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#c0c0c0")) + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000 + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#000077") + Exit Select + Case "SubTotales" + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(System.Drawing.ColorTranslator.FromHtml("#dddddd")) + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Weight = 1000 + worksheet.Cells.GetSubrangeRelative(indexRow + CountRowFiltros, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.Font.Color = System.Drawing.ColorTranslator.FromHtml("#67809F") + Exit Select + Case Else + Exit Select + End Select + + Catch ex As Exception + End Try + + indexRowGV += 1 + Next + + + + End If + + excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx") + + + End Sub End Class