From 4555f2edf688199fef695a1cee4fbca3eadc9d06 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Sat, 19 Aug 2023 23:28:52 -0700 Subject: [PATCH 1/5] PDFEBASUA --- Nomina/Nomina.aspx | 44 +++ Nomina/Nomina.aspx.cs | 833 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 849 insertions(+), 28 deletions(-) diff --git a/Nomina/Nomina.aspx b/Nomina/Nomina.aspx index a5794bbb0..2e9214876 100644 --- a/Nomina/Nomina.aspx +++ b/Nomina/Nomina.aspx @@ -295,6 +295,9 @@
  • Recibos timbrados
  • +
  • + Procesar archivo SUA EBA PDF +
  • <%-- CancelarTimbre--%>
  • @@ -3305,6 +3308,47 @@ + + + + + @@ -3406,77 +3407,75 @@
    -
    -
    - - Paso 1: Descargar plantilla Conceptos -
    -
    - -
    -
    +
    +
    + + Paso 1: Descargar plantilla Conceptos +
    +
    + +
    +
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm font-bold yellow-gold"> -
    -
    -
    -
    - - - - - - - - -
    - -
    -
    -
    -
    -
    -
    - - +
    +
    + + + + + + + + +
    + +
    +
    +
    +
    +
    +
    +
    -
    -
    -
    -
    - - Paso 2: cargar plantilla -
    -
    - -
    + +
    +
    +
    +
    +
    + + Paso 2: cargar plantilla
    -
    - +
    +
    -
    - +
    +
    -
    +
    +
    + +
    +
    - + <%-- -recuerda Solo editar de las tercer fila en adelante.
    -No se debe editar el nombre de la hoja 'Nómina'.
    -la columna para referenciar al emplado es la primer columna 'Codigo', la columna empleado es solo es informativa.
    -si desea agregar un empleado que no se encuentre en la lista solo debe de ingresar fila y el codigo del empleado.
    -si no desea insertar un concepto puede borrar la columna.
    -no se debe borrar la columna código.
    --%> - -
    diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 15a085477..a950ca010 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -10161,7 +10161,7 @@ public partial class Nomina_Nomina2 : ClsPaginas } protected void LnkProcesaPDFSUAEBA_Click(object sender, EventArgs e) { - List Filesgral = TxtAsistenciaTabular.getfiles().Archivos; + List Filesgral = TxtArchivoPDFSUAEBA.getfiles().Archivos; if (Filesgral.Count > 0) { @@ -10289,18 +10289,18 @@ public partial class Nomina_Nomina2 : ClsPaginas libro.Cell(row, column++).Value = string.Format("{0}", data.ORIGEN); libro.Cell(row, column++).Value = string.Format("'{0}", data.CLAVE); libro.Cell(row, column++).Value = string.Format("'{0}", data.FECHA); - libro.Cell(row, column++).Value = string.Format("{0}", data.DIAS.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.SALARIO.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.RETIRO.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.CESANTIAPAT.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.CESANTIAOBR.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.SUMARCV.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.APORTACION.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.CUOTAFIJAOFDSTR.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.CUOTAFIJAOFD.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.AMORTIZA.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.SUMAINFONAVIT.Trim().Replace(",", "").Replace("$", "").ToDecimal()); - libro.Cell(row, column++).Value = string.Format("{0}", data.SUMA.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.DIAS);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.SALARIO);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.RETIRO);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.CESANTIAPAT);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.CESANTIAOBR);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.SUMARCV);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.APORTACION);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.CUOTAFIJAOFDSTR);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.CUOTAFIJAOFD);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.AMORTIZA);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.SUMAINFONAVIT);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); + libro.Cell(row, column++).Value = string.Format("{0}", data.SUMA);//.Trim().Replace(",", "").Replace("$", "").ToDecimal()); } row++; } @@ -10583,6 +10583,10 @@ public partial class Nomina_Nomina2 : ClsPaginas libro.Cell(row, column++).Value = "DIAS"; libro.Cell(row, column++).Value = "SALARIO"; + if (dataEBAPDF.ContieneLic) + { + libro.Cell(row, column++).Value = "LIC"; + } libro.Cell(row, column++).Value = "INCAPACIDAD"; libro.Cell(row, column++).Value = "AUSENTISMO"; libro.Cell(row, column++).Value = "RETIRO"; @@ -10626,6 +10630,10 @@ public partial class Nomina_Nomina2 : ClsPaginas libro.Cell(row, column++).Value = string.Format("'{0}", data.Fecha); libro.Cell(row, column++).Value = string.Format("{0}", data.Dias); libro.Cell(row, column++).Value = string.Format("{0}", data.SDI); + if (dataEBAPDF.ContieneLic) + { + libro.Cell(row, column++).Value = string.Format("{0}", data.Lic); + } libro.Cell(row, column++).Value = string.Format("{0}", data.Inc); libro.Cell(row, column++).Value = string.Format("{0}", data.Aus); libro.Cell(row, column++).Value = string.Format("{0}", data.Retiro); @@ -10656,8 +10664,8 @@ public partial class Nomina_Nomina2 : ClsPaginas } } - libro.Range(2, 7, row, 15).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Right; - libro.Range(2, 17, row, 20).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Right; + libro.Range(2, 7, row, dataEBAPDF.ContieneLic ?15:16).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Right; + libro.Range(2, dataEBAPDF.ContieneLic ? 17:18, row, dataEBAPDF.ContieneLic ? 20:21).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Right; //libro.Range(2, 7, row, 15).Style.NumberFormat.Format = "$ #,##0.00"; //libro.Range(2, 17, row, 20).Style.NumberFormat.Format = "$ #,##0.00"; libro.Columns().AdjustToContents(); @@ -10682,8 +10690,7 @@ public partial class Nomina_Nomina2 : ClsPaginas if (!isTitulo) { text = text.Replace(strtitulo.ToString(), ""); - } - + } cedulaSUAEmpleados cempleado = null; string[] lines = text.Split('\n'); int pasoCaptura = 0; @@ -10694,14 +10701,14 @@ public partial class Nomina_Nomina2 : ClsPaginas if (!espaso1 && pasoCaptura == 4) { - procesapaso4(line, cempleado); + procesapaso4(line, cempleado, objSUA.ContieneLic); } if (!espaso1 && pasoCaptura == 3) { if (Regex.IsMatch(line, ValidateFechaptt) || Regex.IsMatch(line, Validatedigitptt)) { - procesapaso4(line, cempleado); + procesapaso4(line, cempleado, objSUA.ContieneLic); pasoCaptura = 4; } else @@ -10716,7 +10723,7 @@ public partial class Nomina_Nomina2 : ClsPaginas { if (Regex.IsMatch(line, ValidateFechaptt) || Regex.IsMatch(line, Validatedigitptt)) { - procesapaso4(line, cempleado); + procesapaso4(line, cempleado, objSUA.ContieneLic); pasoCaptura = 4; } else @@ -10774,7 +10781,11 @@ public partial class Nomina_Nomina2 : ClsPaginas } if (isTitulo) { - strtitulo.AppendLine(); + if (line.Contains("Clave Fecha Días SDI ") && line.Contains(" Lic. ")) + { + objSUA.ContieneLic = true; + } + strtitulo.AppendLine(line); } //Console.WriteLine(line); } @@ -10787,10 +10798,11 @@ public partial class Nomina_Nomina2 : ClsPaginas strb.AppendLine("/*NEWPAGE*/"); } } + objSUA.txtTodo = strb.ToString(); return objSUA; } - public cedulaSUAEmpleados procesapaso4(string line, cedulaSUAEmpleados empleado) + public cedulaSUAEmpleados procesapaso4(string line, cedulaSUAEmpleados empleado,bool ContieneLic) { if (line.ToUpper().Contains("Página".ToUpper())) { @@ -10852,6 +10864,8 @@ public partial class Nomina_Nomina2 : ClsPaginas } if (col < l && !ismsfsd) { dtos.SDI = splitedline[col++]; } if (col < l && splitedline[col] == "") { col++; } + if(ContieneLic && col < l && !ismsfsd) { dtos.Lic = splitedline[col++]; } + if (col < l && splitedline[col] == "") { col++; } if (col < l && !ismsfsd) { dtos.Inc = splitedline[col++]; } if (col < l && splitedline[col] == "") { col++; } if (col < l && !ismsfsd) { dtos.Aus = splitedline[col++]; } @@ -10893,6 +10907,7 @@ public partial class Nomina_Nomina2 : ClsPaginas } public string txtTitulo { get; set; } public string txtTodo { get; set; } + public bool ContieneLic { get; set; } public List empleados { get; set; } } public class cedulaSUAEmpleados @@ -10915,6 +10930,7 @@ public partial class Nomina_Nomina2 : ClsPaginas public string Fecha { get; set; } public string Dias { get; set; } public string SDI { get; set; } + public string Lic { get; set; } public string Inc { get; set; } public string Aus { get; set; } public string Retiro { get; set; } From 122f17b03465af23df3076c02630fb9c9a703119 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Fri, 8 Sep 2023 07:59:45 -0700 Subject: [PATCH 3/5] timbrado finiquito --- App_Code/LogicNominas.vb | 30 ++++++++++++++++-------------- Nomina/Nomina.aspx.cs | 2 +- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/App_Code/LogicNominas.vb b/App_Code/LogicNominas.vb index a6dcf91e0..1bc6491c8 100644 --- a/App_Code/LogicNominas.vb +++ b/App_Code/LogicNominas.vb @@ -240,7 +240,7 @@ Public Class LogicNominas End If Next - hasfiniquito = False 'objNomina.DtResultados.COUNT("SATCveConcepto", "(Tipo = 'P' AND SATCveConcepto IN ('022', '023','025')) ") > 0 'OR (Tipo = 'D' AND SATCveConcepto = '101') + hasfiniquito = objNomina.DtResultados.COUNT("SATCveConcepto", "(Tipo = 'P' AND SATCveConcepto IN ('022', '023','025')) ") > 0 'OR (Tipo = 'D' AND SATCveConcepto = '101') TotalPercepciones = DtPercepciones.SUM("Importe").ToString().ToDecimal() @@ -251,15 +251,15 @@ Public Class LogicNominas If continuar Then GetError = "No se pudo obtener el detalle de la nomina" 'si continuar= true el error se origino en este nodo y le asigno el error continuar = False End If - If Not TimbreIndemnizacion Then - 'If continuar AndAlso objNomina.GetHorasExtras(CvePersonal, CvePeriodo, UsuarioActual.CveEmpresa) Then - ' DtHorasExtras = objNomina.DtResultados - 'Else - ' continuar = False - 'End If - Else - 'DtHorasExtras = New DataTable() - End If + 'If Not TimbreIndemnizacion Then + ' 'If continuar AndAlso objNomina.GetHorasExtras(CvePersonal, CvePeriodo, UsuarioActual.CveEmpresa) Then + ' ' DtHorasExtras = objNomina.DtResultados + ' 'Else + ' ' continuar = False + ' 'End If + 'Else + ' 'DtHorasExtras = New DataTable() + 'End If If continuar AndAlso objNomina.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, CvePeriodo) AndAlso objNomina.DtResultados.Rows().Count > 0 Then Dim DrPeriodo As DataRow = objNomina.DtResultados.Rows(0) @@ -446,7 +446,7 @@ Public Class LogicNominas Next End If - If CveRegimenContratacion.ToEntero() = 2 AndAlso ((ObjOtrosPagos.FirstOrDefault(Function(m) m.TipoOtroPago.ToEntero().Contiene(2, 7, 8))) Is Nothing) Then + If Not hasfiniquito AndAlso CveRegimenContratacion.ToEntero() = 2 AndAlso ((ObjOtrosPagos.FirstOrDefault(Function(m) m.TipoOtroPago.ToEntero().Contiene(2, 7, 8))) Is Nothing) Then ObjOtrosPagos.Add(New CFDINominaOtrosPagos With {.TipoOtroPago = "002", ' codigo fijo, por ser referente a subsidio al empleo .Clave = "D051", .Concepto = "Subs al Empleo acreditado", .Importe = 0D, .Subsidiocausado = 0D}) @@ -464,6 +464,7 @@ Public Class LogicNominas cfdi.Comprobante.Serie = Serie cfdi.Comprobante.Folio = Folio cfdi.Comprobante.Fecha = Now + cfdi.Comprobante.SubTotal = subTotalDb 'cfdi.Nomina.TotalPercepciones.ToString().ToDecimal() + cfdi.Nomina.TotalOtrosPagos.ToString().ToDecimal() cfdi.Comprobante.Descuentos = cfdi.Nomina.TotalDeducciones.ToString().ToDecimal() cfdi.Comprobante.Total = totalDb 'cfdi.Comprobante.SubTotal - cfdi.Comprobante.Descuentos 'cfdi.Nomina.TotalPercepciones + cfdi.Nomina.TotalOtrosPagos - cfdi.Nomina.TotalDeducciones @@ -479,15 +480,15 @@ Public Class LogicNominas '4.0 cfdi.Receptor.DomicilioFiscalReceptor = CodigoPostal cfdi.Receptor.RegimenFiscalReceptor = "605" - + cfdi.IStimbreFiniquito = hasfiniquito cfdi.Nomina.Receptor.CURP = CURP cfdi.Nomina.Receptor.NSS = NumeroSS cfdi.Nomina.Receptor.FechaInicioContrato = FechaInicioContrato cfdi.Nomina.Receptor.Antiguedad = AntiguedadSemanas '$"P{AntiguedadSemanas}W" - cfdi.Nomina.Receptor.TipoContrato = If(TimbreIndemnizacion, "99", CodigoTipoContrato) + cfdi.Nomina.Receptor.TipoContrato = If(hasfiniquito, "99", CodigoTipoContrato) cfdi.Nomina.Receptor.CodigoTipoJornada = ClaveTipoJornada - cfdi.Nomina.Receptor.CodigoRegimenContratacion = If(TimbreIndemnizacion, "13", CveRegimenContratacion) + cfdi.Nomina.Receptor.CodigoRegimenContratacion = If(hasfiniquito, "13", CveRegimenContratacion) cfdi.Nomina.Receptor.CodigoEmpleado = Codigo cfdi.Nomina.Receptor.Departamento = Departamento cfdi.Nomina.Receptor.Puesto = Puesto @@ -502,6 +503,7 @@ Public Class LogicNominas cfdi.Conceptos.Add(New CFDIConceptos With {.Cantidad = 1, .ClaveUnidad = "ACT", .ClaveProdServ = "84111505", .Descripcion = "Pago de nómina", .ValorUnitario = cfdi.Comprobante.SubTotal, .Importe = cfdi.Comprobante.SubTotal, .Descuento = cfdi.Nomina.TotalDeducciones.ToString().ToDecimal(), .ObjetoImpuesto = "01"}) + hasfiniquito = False If continuar Then Return cfdi diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 9d69c7dfd..555657ea7 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -1176,7 +1176,7 @@ public partial class Nomina_Nomina2 : ClsPaginas int CvePeriodo = e.Row.DataKey("CvePeriodo").ToEntero(); int CveNomina = e.Row.DataKey("CveNomina").ToEntero(); string SeTimbro = e.Row.DataKey("SeTimbro").ToString(); - string SeTimbroFiniquito = e.Row.DataKey("SeTimbroFiniquito").ToString(); + string SeTimbroFiniquito = SeTimbro;//e.Row.DataKey("SeTimbroFiniquito").ToString(); string EsRenuncia = e.Row.DataKey("EsRenuncia").ToString(); string NomAutorizado = e.Row.DataKey("NomAutorizado").ToString(); string Nombre = e.Row.DataKey("Nombre").ToString(); From 12f330f229a05e62e98cd80e80c0c1fcfa755ca3 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Fri, 8 Sep 2023 10:51:35 -0700 Subject: [PATCH 4/5] RH Gafetes acciones --- Bancos/CuentasBancariasDetalle.aspx | 24 +++- Bancos/CuentasBancariasDetalle.aspx.vb | 188 +++++++++++++------------ Bancos/Transferencias.aspx | 2 + Bancos/Transferencias.aspx.vb | 1 - RH/Personal.aspx | 19 ++- RH/Personal.aspx.vb | 105 ++++++++++---- 6 files changed, 212 insertions(+), 127 deletions(-) diff --git a/Bancos/CuentasBancariasDetalle.aspx b/Bancos/CuentasBancariasDetalle.aspx index a046b1e1a..68474870f 100644 --- a/Bancos/CuentasBancariasDetalle.aspx +++ b/Bancos/CuentasBancariasDetalle.aspx @@ -197,7 +197,9 @@
    -
    + + +<%--
    Número de Tarjeta:
    @@ -222,9 +224,7 @@ - - <%-- - --%> +
    @@ -242,13 +242,21 @@ Agregar
    - + --%>
    - + + + + + + + + + <%-- @@ -317,7 +325,9 @@ - + --%> + +
    diff --git a/Bancos/CuentasBancariasDetalle.aspx.vb b/Bancos/CuentasBancariasDetalle.aspx.vb index 490c0b79c..3d5b641a6 100644 --- a/Bancos/CuentasBancariasDetalle.aspx.vb +++ b/Bancos/CuentasBancariasDetalle.aspx.vb @@ -682,112 +682,124 @@ Partial Class Bancos_CuentasBancariasDetalle Else DivTarjeta.Visible = False End If - End Sub - - + End Sub + + #End Region - + #Region "D A T O S T A R J E TA - C R E D I T O" - Private Sub LkbAgregarTarjera_Click(sender As Object, e As EventArgs) Handles LkbAgregarTarjera.Click - Dim ObjTarjeta As New ClsBancos() - Dim TieneError = False - - If Not ObjTarjeta.AddTarjetaCredito(CveCuenta, TxtNumTarjeta.Text, TxtNombreResponsable.Text, TxtFechaVencimiento.Text.ToDate, UsuarioActual.CveUsuario) Then - TieneError = True - End If - - If Not TieneError Then - Alert("Se guardo la tarjeta de credito correctamente", TipoMensaje.MsgInformacion) - TxtNumTarjeta.Text = "" - TxtNombreResponsable.Text = "" - TxtFechaVencimiento.Text = "" - CargaDatosTarjeta() - Else - Alert("Ocurrio un Error al Guardar la tarjeta de credito", TipoMensaje.MsgError) - End If - - ObjTarjeta.Dispose() - UpDatos.Update() - End Sub - + 'Private Sub LkbAgregarTarjera_Click(sender As Object, e As EventArgs) Handles LkbAgregarTarjera.Click + ' Dim ObjTarjeta As New ClsBancos() + ' Dim TieneError = False + + ' If Not ObjTarjeta.AddTarjetaCredito(CveCuenta, TxtNumTarjeta.Text, TxtNombreResponsable.Text, TxtFechaVencimiento.Text.ToDate, UsuarioActual.CveUsuario) Then + ' TieneError = True + ' End If + + ' If Not TieneError Then + ' Alert("Se guardo la tarjeta de credito correctamente", TipoMensaje.MsgInformacion) + ' TxtNumTarjeta.Text = "" + ' TxtNombreResponsable.Text = "" + ' TxtFechaVencimiento.Text = "" + ' CargaDatosTarjeta() + ' Else + ' Alert("Ocurrio un Error al Guardar la tarjeta de credito", TipoMensaje.MsgError) + ' End If + + ' ObjTarjeta.Dispose() + ' UpDatos.Update() + 'End Sub + Private Sub CargaDatosTarjeta() - Dim ObjTarjeta As New ClsBancos() + 'Dim ObjTarjeta As New ClsBancos() + + 'If ObjTarjeta.GetTarjetaCredito(-1, CveCuenta, -1) Then + ' GvTarjetas.DataSource = ObjTarjeta.DtResultados() + 'Else + ' GvTarjetas.DataSource = Nothing + 'End If + 'GvTarjetas.DataBind() + 'ObjTarjeta.Dispose() + + Dim ObjCreditos As New ClsBancos + If ObjCreditos.GetTarjetasCreditos(CveCuenta) Then + If ObjCreditos.DtResultados.Rows.Count > 0 Then + GvTC.DataSource = ObjCreditos.DtResultados + End If + GvTC.Visible = True + End If + ObjCreditos.Dispose() + + GvTC.DataBind() - If ObjTarjeta.GetTarjetaCredito(-1, CveCuenta, -1) Then - GvTarjetas.DataSource = ObjTarjeta.DtResultados() - Else - GvTarjetas.DataSource = Nothing - End If - GvTarjetas.DataBind() - ObjTarjeta.Dispose() UpDatos.Update() End Sub - Private Sub GvTarjetas_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvTarjetas.RowEditing - GvTarjetas.EditIndex = e.NewEditIndex - CargaDatosTarjeta() - End Sub + 'Private Sub GvTarjetas_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvTarjetas.RowEditing + ' GvTarjetas.EditIndex = e.NewEditIndex + ' CargaDatosTarjeta() + 'End Sub - Private Sub GvTarjetas_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvTarjetas.RowCancelingEdit - GvTarjetas.EditIndex = -1 - CargaDatosTarjeta() - End Sub + 'Private Sub GvTarjetas_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvTarjetas.RowCancelingEdit + ' GvTarjetas.EditIndex = -1 + ' CargaDatosTarjeta() + 'End Sub - Private Sub GvTarjetas_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvTarjetas.RowUpdating - Dim ObjTarjeta As New ClsBancos() - Dim TieneError = False + 'Private Sub GvTarjetas_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvTarjetas.RowUpdating + ' Dim ObjTarjeta As New ClsBancos() + ' Dim TieneError = False - Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero - Dim CveCuenta As Integer = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuenta").ToEntero - Dim Numero = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtNumeroEdit"), TextBox).Text.Trim - Dim Responsable = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtResponsableEdit"), TextBox).Text.Trim - Dim Vencimiento = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtFechaVencimientoEdit"), TextBox).Text.ToDate + ' Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero + ' Dim CveCuenta As Integer = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuenta").ToEntero + ' Dim Numero = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtNumeroEdit"), TextBox).Text.Trim + ' Dim Responsable = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtResponsableEdit"), TextBox).Text.Trim + ' Dim Vencimiento = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtFechaVencimientoEdit"), TextBox).Text.ToDate - If Not ObjTarjeta.UpdateTarjetaCredito(CveCuentaTarjeta, CveCuenta, Numero, Responsable, Vencimiento, UsuarioActual.CveUsuario) Then - TieneError = True - Else - GvTarjetas.EditIndex = -1 - End If + ' If Not ObjTarjeta.UpdateTarjetaCredito(CveCuentaTarjeta, CveCuenta, Numero, Responsable, Vencimiento, UsuarioActual.CveUsuario) Then + ' TieneError = True + ' Else + ' GvTarjetas.EditIndex = -1 + ' End If - If Not TieneError Then - Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) - CargaDatosTarjeta() - Else - Alert("Error al actualizar los cambios.", TipoMensaje.MsgError) - End If + ' If Not TieneError Then + ' Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) + ' CargaDatosTarjeta() + ' Else + ' Alert("Error al actualizar los cambios.", TipoMensaje.MsgError) + ' End If - ObjTarjeta.Dispose() - UpDatos.Update() - End Sub + ' ObjTarjeta.Dispose() + ' UpDatos.Update() + 'End Sub - Private Sub GvTarjetas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvTarjetas.RowDeleting - Dim ObjTarjeta As New ClsBancos() - Dim TieneError = False + 'Private Sub GvTarjetas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvTarjetas.RowDeleting + ' Dim ObjTarjeta As New ClsBancos() + ' Dim TieneError = False - Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero + ' Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero - If ObjTarjeta.RemoveTarjetaCredito(CveCuentaTarjeta, UsuarioActual.CveUsuario) Then - CargaDatosTarjeta() - Alert("Se eliminaron datos correctamente", TipoMensaje.MsgInformacion) - Else - Alert("Error al eliminar", TipoMensaje.MsgError) - End If + ' If ObjTarjeta.RemoveTarjetaCredito(CveCuentaTarjeta, UsuarioActual.CveUsuario) Then + ' CargaDatosTarjeta() + ' Alert("Se eliminaron datos correctamente", TipoMensaje.MsgInformacion) + ' Else + ' Alert("Error al eliminar", TipoMensaje.MsgError) + ' End If - ObjTarjeta.Dispose() - UpDatos.Update() - End Sub + ' ObjTarjeta.Dispose() + ' UpDatos.Update() + 'End Sub - Private Sub GvTarjetas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvTarjetas.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(100) - e.Row.Cells(1).Width = Unit.Pixel(100) - e.Row.Cells(2).Width = Unit.Pixel(200) - e.Row.Cells(3).Width = Unit.Pixel(20) - e.Row.Cells(4).Width = Unit.Pixel(20) - End If - End If - End Sub + 'Private Sub GvTarjetas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvTarjetas.RowDataBound + ' If e.Row.RowType = DataControlRowType.DataRow Then + ' If e.Row.RowIndex = 0 Then + ' e.Row.Cells(0).Width = Unit.Pixel(100) + ' e.Row.Cells(1).Width = Unit.Pixel(100) + ' e.Row.Cells(2).Width = Unit.Pixel(200) + ' e.Row.Cells(3).Width = Unit.Pixel(20) + ' e.Row.Cells(4).Width = Unit.Pixel(20) + ' End If + ' End If + 'End Sub Private Function CargarDdlUsuarios(UsuariosGlobal As DataTable) As DataTable Dim tablaUsuariosFormateada As DataTable = New DataTable("Usuarios") diff --git a/Bancos/Transferencias.aspx b/Bancos/Transferencias.aspx index d48cdc4c6..d95f297b0 100644 --- a/Bancos/Transferencias.aspx +++ b/Bancos/Transferencias.aspx @@ -181,6 +181,7 @@
    + @@ -202,6 +203,7 @@ +
    diff --git a/Bancos/Transferencias.aspx.vb b/Bancos/Transferencias.aspx.vb index 3c9cabdea..d05024d07 100644 --- a/Bancos/Transferencias.aspx.vb +++ b/Bancos/Transferencias.aspx.vb @@ -380,7 +380,6 @@ Partial Class Bancos_Transferencias Exit For Else AlertaGlobal.AppendFormat("{1}
    ", CveIEDestino, FolioDestino) - 'FolioDestino = (FolioDestino.ToLong + 1).ToString End If Next diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 394ab0825..29e7defd5 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -49,10 +49,19 @@
  • Expediente de personal
  • -
  • - Gafete - -
  • + + + +
  • + Gafete +
  • +
    + + + +
    + +
  • Agregar cuenta bancaria
  • @@ -80,7 +89,7 @@
  • - PDF consumo + PDF consumo
  • diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index d0dd4ae70..1c99f6da9 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -3898,38 +3898,91 @@ Partial Class RH_Personal ObjPersonal.Dispose() End Sub Private Sub LbGafete_Click(sender As Object, e As EventArgs) Handles LbGafete.Click - Dim params As New List(Of ReportParameter) - Dim ObjPersonal As New ClsRH() - If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then - If ObjPersonal.DtResultados.Rows.Count > 0 Then + Dim PathSource As String = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + If File.Exists(PathSource) Then - params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) - params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) - params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) - params.Add(New ReportParameter("CURP", TxtCURP.Text)) - params.Add(New ReportParameter("NoRegistro", "")) - params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) - params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) - params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) - params.Add(New ReportParameter("Emergencia", "")) - params.Add(New ReportParameter("CUIP", "")) - params.Add(New ReportParameter("TipoSangre", "")) - params.Add(New ReportParameter("RFC", TxtRFC.Text)) - params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) + Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory + Dim pathDesti As String + PathSource = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + pathDesti = PathRoot & "Temp\" & CvePersonal & "Gafete.docx" - - If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then - params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) - Else - params.Add(New ReportParameter("LogoUri", "")) - End If - - ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") + If File.Exists(pathDesti) Then + File.Delete(pathDesti) End If + + File.Copy(PathSource, pathDesti) + + Dim objDoc As New clsGemBoxDocument(pathDesti) + Dim objRH As New ClsRH + Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString() & " del " & Now.Year.ToString() + + + objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) + objRH.Dispose() + + + + objDoc.Guardar(pathDesti) + + Dim fileinfo As New FileInfo(pathDesti) + + + If fileinfo.Exists Then + + Response.ContentType = "application/docx" + Response.AppendHeader("Content-Disposition", $"attachment; filename=Gafete_{CvePersonal}.docx") + Response.TransmitFile(pathDesti) + Response.End() + + End If + + 'Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) + 'baseUrl = baseUrl & "/temp/" & fileinfo.Name + + 'RegistraDescargaJavaScript(baseUrl) + + + Else + + Dim params As New List(Of ReportParameter) + Dim ObjPersonal As New ClsRH() + + If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then + + If ObjPersonal.DtResultados.Rows.Count > 0 Then + + params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) + params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) + params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) + params.Add(New ReportParameter("CURP", TxtCURP.Text)) + params.Add(New ReportParameter("NoRegistro", "")) + params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) + params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) + params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) + params.Add(New ReportParameter("Emergencia", TxtTelefonoEmergencia.Text)) + params.Add(New ReportParameter("CUIP", "")) + params.Add(New ReportParameter("TipoSangre", DdlTipoSangre.SelectedItem.Text)) + params.Add(New ReportParameter("RFC", TxtRFC.Text)) + params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) + + If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then + params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) + Else + params.Add(New ReportParameter("LogoUri", "")) + End If + + ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") + + End If + End If + ObjPersonal.Dispose() + End If - ObjPersonal.Dispose() + + + End Sub Private Sub GenerarPDFGastosXComp(Optional Formato As String = "PDF") If CvePersonal > 0 Then From 9de393c478197039d7a1aef7a24d780d608e202f Mon Sep 17 00:00:00 2001 From: rakcsle Date: Sat, 9 Sep 2023 10:40:47 -0700 Subject: [PATCH 5/5] RH Gafete 7 --- Empresas/7/Formatos/27_Gafette.docx | Bin 80154 -> 81909 bytes Imagenes/SinImagenB.jpg | Bin 0 -> 2025 bytes RH/Personal.aspx | 4 +- RH/Personal.aspx.vb | 204 ++++++++++++++++++++-------- 4 files changed, 148 insertions(+), 60 deletions(-) create mode 100644 Imagenes/SinImagenB.jpg diff --git a/Empresas/7/Formatos/27_Gafette.docx b/Empresas/7/Formatos/27_Gafette.docx index 2be6d47482fee3a4b83b1e7c03a7047edacc0979..890a13d2dd78bb38cc512deb24f7d7ea12f34148 100644 GIT binary patch delta 10668 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 delta 8953 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 SEt>|%>WdD4G&7k0-vj_jus$jP literal 0 HcmV?d00001 diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 29e7defd5..1458c87e2 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -50,7 +50,7 @@ Expediente de personal - + <%--
  • Gafete @@ -59,7 +59,7 @@ - + --%>
  • diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 1c99f6da9..fa5cad21e 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -10,6 +10,8 @@ Imports Microsoft.Reporting.WebForms Imports System.Globalization Imports System.Xml Imports System.Web.Script.Services +Imports System.Linq + Partial Class RH_Personal Inherits ClsPaginas @@ -3897,93 +3899,95 @@ Partial Class RH_Personal End If ObjPersonal.Dispose() End Sub - Private Sub LbGafete_Click(sender As Object, e As EventArgs) Handles LbGafete.Click - Dim PathSource As String = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" - If File.Exists(PathSource) Then + 'Eliminar hasta 15 de septiembre 2023 + 'Private Sub LbGafete_Click(sender As Object, e As EventArgs) Handles LbGafete.Click - Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory - Dim pathDesti As String + ' Dim PathSource As String = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + ' If File.Exists(PathSource) Then - PathSource = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" - pathDesti = PathRoot & "Temp\" & CvePersonal & "Gafete.docx" + ' Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory + ' Dim pathDesti As String - If File.Exists(pathDesti) Then - File.Delete(pathDesti) - End If + ' PathSource = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + ' pathDesti = PathRoot & "Temp\" & CvePersonal & "Gafete.docx" - File.Copy(PathSource, pathDesti) + ' If File.Exists(pathDesti) Then + ' File.Delete(pathDesti) + ' End If - Dim objDoc As New clsGemBoxDocument(pathDesti) - Dim objRH As New ClsRH - Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString() & " del " & Now.Year.ToString() + ' File.Copy(PathSource, pathDesti) + + ' Dim objDoc As New clsGemBoxDocument(pathDesti) + ' Dim objRH As New ClsRH + ' Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString() & " del " & Now.Year.ToString() - objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) - objRH.Dispose() + ' objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) + ' objRH.Dispose() - objDoc.Guardar(pathDesti) + ' objDoc.Guardar(pathDesti) - Dim fileinfo As New FileInfo(pathDesti) + ' Dim fileinfo As New FileInfo(pathDesti) - If fileinfo.Exists Then + ' If fileinfo.Exists Then - Response.ContentType = "application/docx" - Response.AppendHeader("Content-Disposition", $"attachment; filename=Gafete_{CvePersonal}.docx") - Response.TransmitFile(pathDesti) - Response.End() + ' Response.ContentType = "application/docx" + ' Response.AppendHeader("Content-Disposition", $"attachment; filename=Gafete_{CvePersonal}.docx") + ' Response.TransmitFile(pathDesti) + ' Response.End() - End If + ' End If - 'Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) - 'baseUrl = baseUrl & "/temp/" & fileinfo.Name + ' 'Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) + ' 'baseUrl = baseUrl & "/temp/" & fileinfo.Name - 'RegistraDescargaJavaScript(baseUrl) + ' 'RegistraDescargaJavaScript(baseUrl) - Else + ' Else - Dim params As New List(Of ReportParameter) - Dim ObjPersonal As New ClsRH() + ' Dim params As New List(Of ReportParameter) + ' Dim ObjPersonal As New ClsRH() - If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then + ' If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then - If ObjPersonal.DtResultados.Rows.Count > 0 Then + ' If ObjPersonal.DtResultados.Rows.Count > 0 Then - params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) - params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) - params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) - params.Add(New ReportParameter("CURP", TxtCURP.Text)) - params.Add(New ReportParameter("NoRegistro", "")) - params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) - params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) - params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) - params.Add(New ReportParameter("Emergencia", TxtTelefonoEmergencia.Text)) - params.Add(New ReportParameter("CUIP", "")) - params.Add(New ReportParameter("TipoSangre", DdlTipoSangre.SelectedItem.Text)) - params.Add(New ReportParameter("RFC", TxtRFC.Text)) - params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) + ' params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) + ' params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) + ' params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) + ' params.Add(New ReportParameter("CURP", TxtCURP.Text)) + ' params.Add(New ReportParameter("NoRegistro", "")) + ' params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) + ' params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) + ' params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) + ' params.Add(New ReportParameter("Emergencia", TxtTelefonoEmergencia.Text)) + ' params.Add(New ReportParameter("CUIP", "")) + ' params.Add(New ReportParameter("TipoSangre", DdlTipoSangre.SelectedItem.Text)) + ' params.Add(New ReportParameter("RFC", TxtRFC.Text)) + ' params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) - If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then - params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) - Else - params.Add(New ReportParameter("LogoUri", "")) - End If + ' If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then + ' params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) + ' Else + ' params.Add(New ReportParameter("LogoUri", "")) + ' End If - ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") + ' ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") - End If - End If - ObjPersonal.Dispose() + ' End If + ' End If + ' ObjPersonal.Dispose() - End If + ' End If - End Sub + 'End Sub Private Sub GenerarPDFGastosXComp(Optional Formato As String = "PDF") If CvePersonal > 0 Then If RBLTipoGastos.SelectedValue = "1" Then @@ -4420,10 +4424,94 @@ Partial Class RH_Personal objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) objRH.Dispose() - - objDoc.Guardar(pathDesti) + If pathDesti.ToUpper.Contains("GAFETTE") Or pathDesti.ToUpper.Contains("GAFETE") Then + + GemBox.Document.ComponentInfo.SetLicense(SerialGemBoxDocument) + + Dim document = GemBox.Document.DocumentModel.Load(pathDesti) + + + + + Dim imgPersonalURL As String = "" + If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpg") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpg" + ElseIf File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".png") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".png" + ElseIf File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".bmp") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".bmp" + ElseIf File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpeg") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpeg" + End If + + 'imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".png" + + If imgPersonalURL.Trim.Length = 0 Then + imgPersonalURL = ModExtensiones.DirectorioBaseEmpresas & "\wwwSIG\Imagenes\SinImagenB.jpg" + End If + + 'Dim document As New GemBox.Document.DocumentModel() + 'Dim section As New GemBox.Document.Section(document) + 'Dim paragraph As New GemBox.Document.Paragraph(document) + 'section.Blocks.Add(paragraph) + + 'Dim picture1 As New GemBox.Document.Picture(document, imgPersonalURL, 61, 53, GemBox.Document.LengthUnit.Pixel) + + 'paragraph.Inlines.Add(picture1) + + 'Dim Zahnrad As String = UsuarioActual.Empresa.Ruta & "RH\Personal\Zahnrad.gif" + 'Dim Dices As String = UsuarioActual.Empresa.Ruta & "RH\Personal\Dices.png" + 'Dim Graphics1 As String = UsuarioActual.Empresa.Ruta & "RH\Personal\Graphics1.svg" + + 'Dim section As New GemBox.Document.Section(document) + 'document.Sections.Add(section) + + 'Dim paragraph As New GemBox.Document.Paragraph(document) + 'section.Blocks.Add(paragraph) + + + 'Dim picture1 As New GemBox.Document.Picture(document, imgPersonalURL, 61, 53, GemBox.Document.LengthUnit.Pixel) + 'paragraph.Inlines.Add(picture1) + + ' Get the first section and the first paragraph (or create them if necessary) + + '************************************************************** + + Dim firstSection As GemBox.Document.Section = document.Sections.FirstOrDefault() + If firstSection Is Nothing Then + firstSection = New GemBox.Document.Section(document) + document.Sections.Add(firstSection) + End If + + Dim firstParagraph As GemBox.Document.Paragraph = firstSection.Blocks.OfType(Of GemBox.Document.Paragraph)().FirstOrDefault() + If firstParagraph Is Nothing Then + firstParagraph = New GemBox.Document.Paragraph(document) + firstSection.Blocks.Add(firstParagraph) + End If + + Dim imageParagraph As New GemBox.Document.Paragraph(document) + Dim picture1 As New GemBox.Document.Picture(document, imgPersonalURL, 83, 100, GemBox.Document.LengthUnit.Pixel) + + Dim layout3 As New GemBox.Document.FloatingLayout( + New GemBox.Document.HorizontalPosition(1.79, GemBox.Document.LengthUnit.Inch, GemBox.Document.HorizontalPositionAnchor.LeftMargin), + New GemBox.Document.VerticalPosition(2.55, GemBox.Document.LengthUnit.Inch, GemBox.Document.VerticalPositionAnchor.TopMargin), + picture1.Layout.Size) + 'layout3.WrappingStyle = GemBox.Document.TextWrappingStyle.Through + + picture1.Layout = layout3 + + imageParagraph.Inlines.Add(picture1) + firstSection.Blocks.Insert(0, imageParagraph) + + document.Sections(0).Blocks.RemoveAt(9) + + document.Save(pathDesti) + + End If + + Dim fileinfo As New FileInfo(pathDesti) Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority)