From 78fa879f6d89c90e7762519c37af3506eb5ed4f3 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Sat, 25 Jan 2025 02:44:31 -0700 Subject: [PATCH 01/10] -vacacionesrep[orte --- App_Code/ClsNominas.vb | 24 ++++++++++++++++++++++++ Nomina/Nomina.aspx.cs | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index b72b6e8a7..370e1c2b5 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -2726,6 +2726,30 @@ Public Class ClsNominas End Try Return retorno End Function + Public Function ReporteVacacionesCalendario(CveProyecto As Integer, CveSubProyecto As Integer, cveEmpresa As Integer, fechaInicio As String, fechaFin As String) As Boolean + Dim retorno As Boolean = False + Try + DTSet = New DataSet() + DataAdapter("PA_Nom_ReporteVacacionesCalendario", CommandType.StoredProcedure) + SqlAdapter.SelectCommand.CommandTimeout = 2400 + With SqlAdapter.SelectCommand.Parameters + .Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + .Add("@FechaInicio", SqlDbType.Date).Value = fechaInicio + .Add("@FechaFin", SqlDbType.Date).Value = fechaFin + End With + SqlAdapter.Fill(DTSet) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al realizar el reporte de vacaciones.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al realizar el reporte de vacaciones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function Public Function GetNominasSinTimbrar(CvePeriodo As Integer, CveEmpresa As Integer) As Boolean Dim retorno As Boolean = False Try diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 4168b74b8..c3c08723e 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -415,7 +415,7 @@ public partial class Nomina_Nomina2 : ClsPaginas } DmodalCancelartimbre.Visible = (UsuarioActual.CveUsuario == 100); //LnkOpenCancelarTimbre.Visible = (UsuarioActual.CveUsuario == 100); - LnkVerCalculoISR.Visible = (UsuarioActual.CveUsuario == 100 || UsuarioActual.CveEmpresa == 119); + LnkVerCalculoISR.Visible = true;// (UsuarioActual.CveUsuario == 100 || UsuarioActual.CveEmpresa == 119); TxtPeriodo.Text = $"{NowADS():yyyyMM}"; CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyeccto); CargarCentrosDeCosto(DdlPRProyecto, DdlPRSubProyecto, LblPRProyecto, LblPRSubProyeccto); From 90a00c01862d46110cd36869f4f56435c8027fe5 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 31 Jan 2025 12:36:00 -0700 Subject: [PATCH 02/10] -- mejoras, para considerar las devoluciones de caja --- Bancos/DepositosCaja.aspx | 14 ++++++------ Bancos/DepositosCaja.aspx.vb | 41 ++++++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/Bancos/DepositosCaja.aspx b/Bancos/DepositosCaja.aspx index 13f8514aa..284d687c1 100644 --- a/Bancos/DepositosCaja.aspx +++ b/Bancos/DepositosCaja.aspx @@ -225,7 +225,7 @@ -
- f +
diff --git a/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index f3795d546..d0b7b970b 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -77,7 +77,14 @@ Partial Class Bancos_DepositosCaja If UsuarioActual.Empresa.Funcionalidad(531) = "1" _ OrElse UsuarioActual.Empresa.Funcionalidad(109) = "1" _ OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1" Then - DivRowCuenta.Visible = True + 'solo + If UsuarioActual.TienePermisoProceso(383) Then + DivRowCuenta.Visible = True + DivDescuentocheck.Visible = True + Else + DivRowCuenta.Visible = False + DivDescuentocheck.Visible = False + End If End If If UsuarioActual.CveEmpresa.Contiene(140, 141) Then divTipoPago.Visible = False : divTipoPago1.Visible = False From bd453a837e2209d16785fa1d78065536d6c55a27 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 1 Feb 2025 12:28:32 -0700 Subject: [PATCH 06/10] =?UTF-8?q?--=20devoluciones,=20para=20que=20se=20re?= =?UTF-8?q?gistre=20la=20factura=20=20y=20la=20dev=20almacen.=20y=20que=20?= =?UTF-8?q?se=20muestre=20la=20liga=20de=20impresi=C3=B3n=20de=20la=20sali?= =?UTF-8?q?da?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx | 21 ++++--- Compras/Compras.aspx.vb | 123 ++++++++++++---------------------------- 2 files changed, 45 insertions(+), 99 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 6bedf75e9..8a318b45f 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -1488,7 +1488,7 @@
- Factura de la nota de Credito + Facturas para devolución
@@ -1526,23 +1526,22 @@
- + - + - - - + + - + - + @@ -1552,7 +1551,7 @@ - + @@ -1564,7 +1563,7 @@
- +
@@ -2094,7 +2093,7 @@
- +
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 3d52235d8..6ca7dc467 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1268,6 +1268,7 @@ Partial Class Compras_Compras EsGrupoDiaz = If(UsuarioActual.Empresa.Funcionalidad(382) = "1", True, False) TienePermisoKardex = If(UsuarioActual.TienePermisoPagina(224), True, False) LbTotalOC1.Attributes.Add(“readonly”, “readonly”) + PermisoVinculacionImporteDiferente = True CargaDatosAgregarPS() TieneAnticiposXML = False @@ -1438,15 +1439,17 @@ Partial Class Compras_Compras End If If DdlTipoComprobante.SelectedValue = "NC" Then - paneldevolucion.Visible = True + 'paneldevolucion.Visible = True Pnlalmaceninventarios.Visible = False - cargaddldevoluciones(CveProveedor, TxtSubTotal2.Text.ToDouble) + 'cargaddldevoluciones(CveProveedor, TxtSubTotal2.Text.ToDouble) InicializaAplicaNCFact() DivReembolso.Visible = False RBLPago.Items(2).Enabled = False End If If DdlTipoComprobante.SelectedValue = "DEV" Then + paneldevolucion.Visible = True + cargaddldevoluciones(CveProveedor, TxtSubTotal2.Text.ToDouble) InicializaAplicaNCFact() End If @@ -2176,9 +2179,9 @@ Partial Class Compras_Compras If TxtFolio.Text.Trim = "" Then TxtFolio.Enabled = True : TxtSerie.Enabled = True - If UsuarioActual.TienePermisoProceso(242) Then - PermisoVinculacionImporteDiferente = True - End If + 'If UsuarioActual.TienePermisoProceso(242) Then + ' PermisoVinculacionImporteDiferente = True + 'End If If UsuarioActual.TienePermisoProceso(112) Then PermisoEdicionManual = True @@ -4374,7 +4377,6 @@ Partial Class Compras_Compras Protected Sub BtnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click - '------------------ INICIA VALIDACIONES ------------------ If UsuarioActual.CveEmpresa.Contiene(13, 83) AndAlso UsuarioActual.CveUsuario <> 1803 Then @@ -4571,7 +4573,7 @@ Partial Class Compras_Compras Alert("Favor de seleccionar un producto en la pestaña de almacen", TipoMensaje.MsgAdvertencia) Exit Sub End If - ValidaFechaDeAlamacen() + ValidaFechaDeAlmacen() Else 'GvInv.Rows(x).FCDropDownList("ddlEAlmacen").SelectedValue.ToEntero 'Charlie 'pestaña de almacen, si hay especificado una entrada por partida dealmacen, debe de existir el almacen. @@ -5120,7 +5122,7 @@ Partial Class Compras_Compras Devolucion = guardardevolucion(ObjInventario, ObjCompras.CveCompra, TxtSubTotal2.Text.ToDecimal, TxtFecha.Text.Trim.ToDate) TotalRealDevolucion = Devolucion.Total - + CveMovimientoInventario = Devolucion.CveMovimiento TieneError = Devolucion.TieneError End If Dim ErrorDetalles As Boolean = False @@ -7950,69 +7952,31 @@ Partial Class Compras_Compras End If End Sub - Private Function ValidaFechaDeAlamacen() As Boolean + Private Function ValidaFechaDeAlmacen() As Boolean Dim respuesta As Boolean = False - - - - Dim objInventario As New ClsInventarios Dim MovimientosError As Boolean = False - - 'Dim SB As New StringBuilder - 'Dim FechaCompra As DateTime = TxtFecha.Text.ToDate - 'FechaCompra Dim FechaMinima As DateTime = TxtFecha.Text.ToDate - - - Dim CveAlmacenMov As Integer = ddlAlmacenAdd.SelectedValue.ToEntero + Dim CveAlmacenMov As Integer = DdlAlmacenDevolucion.SelectedValue.ToEntero Dim DTAlamcen As New DataTable - - If DDLDevolucion.SelectedValue.ToEntero > 0 Then - Dim objcompras As New ClsCompras() - If objcompras.GetCompraDetalleAlmacen(UsuarioActual.CveEmpresa, DDLDevolucion.SelectedValue.ToEntero) Then - GVDevolucion.DataSource = objcompras.DtResultados - End If - objcompras.Dispose() - GVDevolucion.DataBind() - - For Each GvRow As GridViewRow In GVDevolucion.Rows - If GvRow.RowType = DataControlRowType.DataRow Then - CveAlmacenMov = GvRow.DataKey("CveAlmacen").ToString.ToEntero - End If - Next - - End If - - - - + Dim objInventario As New ClsInventarios If DtInv IsNot Nothing Then - For Each Dr As DataRow In TmpDT.Rows - - Dim CveTipoPS As Integer = Dr("CveTipoPS").ToString.ToEntero - - If CveTipoPS = 2 Then - If objInventario.GetValidaFechaAlmacen(CveEmpresa:=UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacenMov, CvePS:=Dr("CvePS").ToString.ToEntero) Then - - If objInventario.DtResultados IsNot Nothing AndAlso objInventario.DtResultados.Rows.Count > 0 Then - Dim FechamoMovimiento As DateTime = objInventario.DtResultados(0)("FechaMovto").ToString.ToDate - If FechamoMovimiento > FechaMinima Then - FechaMinima = FechamoMovimiento - End If + For Each Dr As DataRow In TmpDT.FiltraParametros("CveTipoPS = 2").Rows + If objInventario.GetValidaFechaAlmacen(CveEmpresa:=UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacenMov, CvePS:=Dr("CvePS").ToString.ToEntero) Then + If objInventario.DtResultados IsNot Nothing AndAlso objInventario.DtResultados.Rows.Count > 0 Then + Dim tFechaMovimiento As DateTime = objInventario.DtResultados(0)("FechaMovto").ToString.ToDate + If tFechaMovimiento > FechaMinima Then + FechaMinima = tFechaMovimiento End If - End If End If - Next End If - objInventario.Dispose() If FechaMinima > TxtFecha.Text.ToDate Then - Alert($"Los productos tienen movientos, la fecha minima que se cambio la fecha de compra as {FechaMinima.ToString("dd/MM/yyyy HH:mm")}", TipoMensaje.MsgAdvertencia) + Alert($"Los productos tienen movimientos, la fecha minima que se cambio la fecha de compra es {FechaMinima.ToString("dd/MM/yyyy HH:mm")}", TipoMensaje.MsgAdvertencia) 'respuesta = False TxtFecha.Text = FechaMinima.ToString("dd/MM/yyyy") Else @@ -8020,7 +7984,6 @@ Partial Class Compras_Compras End If Return respuesta - End Function Private Function GeneraStrinDoctosRelacionados() As String @@ -13869,6 +13832,7 @@ Partial Class Compras_Compras Dim subtotaldevolucion As Decimal = 0 Dim realizadevolucion As Boolean = False Dim CveMovimientoEntrada As Integer = -1 + Dim CantidadRenglones As Integer = 0 'Calculo los subtotales para comparar con la NC Dim Cantidad As Decimal @@ -13877,6 +13841,7 @@ Partial Class Compras_Compras Cantidad = Dr.FCTextBox("TxtCantidad").Text.ToDecimal If Cantidad > 0 Then realizadevolucion = True + CantidadRenglones += 1 Dim PU As Decimal = If(DdlMoneda.SelectedValue.ToEntero <> 1, Dr.DataKey("PUExtranjero").ToString.ToDecimal, Dr.DataKey("PU").ToString.ToDecimal) subtotaldevolucion += PU * Cantidad End If @@ -13894,13 +13859,7 @@ Partial Class Compras_Compras Dim Acumulado As Decimal = 0 Dim PU As Decimal Dim PUExtranjero As Decimal - Dim CantidadRenglones As Integer = 0 Dim ii As Integer = 0 - For Each Dr As GridViewRow In GVDevolucion.Rows - If Dr.FCTextBox("TxtCantidad").Text.ToDouble > 0 Then - CantidadRenglones += 1 - End If - Next For Each Dr As GridViewRow In GVDevolucion.Rows If Dr.FCTextBox("TxtCantidad").Text.ToDouble > 0 Then @@ -13912,8 +13871,6 @@ Partial Class Compras_Compras Dim dif As Decimal = subtotal - Acumulado PU = (((Dr.FCTextBox("TxtCantidad").Text.ToDecimal * Dr.DataKey("PU").ToString.ToDecimal)) + dif) / Dr.FCTextBox("TxtCantidad").Text.ToDecimal End If - - If ObjInventario.GetExistenciasProducto(Dr.DataKey("CvePS").ToString.ToEntero, Dr.DataKey("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, CveAlmacen, FechaMovto:=TxtFecha.Text.ToDateTime.AddHours(NowADS().Hour).AddMinutes(NowADS().Minute).AddSeconds(NowADS().Second).ToString("yyyy/MM/dd HH:mm")) Then @@ -13924,21 +13881,16 @@ Partial Class Compras_Compras ErrorMovInv = True Exit For End If - Else ErrorMovInv = True Exit For End If - - - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr.FCTextBox("TxtCantidad").Text.ToDecimal, Dr.DataKey("CveUM").ToString.ToEntero, Dr.DataKey("CvePS").ToString.ToEntero, PU, -1, CveMovimientoDetalleEntrada:=Dr.DataKey("CveMovimientoDetalle").ToString.ToEntero, PUTC:=PUExtranjero) Then ErrorMovInv = True Exit For End If End If Next - End If Else ErrorMovInv = True @@ -13949,12 +13901,8 @@ Partial Class Compras_Compras If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa, -1) Then For Each drow As DataRow In ObjInventario.DtResultados.Rows - - TotalSumaPU = TotalSumaPU + drow("Total").ToString.ToDecimal - Next - End If Return New MMensajeDevolucion() With @@ -13964,7 +13912,6 @@ Partial Class Compras_Compras .TieneError = ErrorMovInv, .Total = TotalSumaPU } - End Function Private Sub cargaddldevoluciones(CveProveedor As Integer, SubTotal As Double) @@ -14076,13 +14023,14 @@ Partial Class Compras_Compras Contador += 1 End If Next - + Dim CveSubProyectoContrato As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenDevolucion.SelectedValue.ToEntero).FiltroPrimeroValor("CveSubProyecto") + Dim SubProyecto As String = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyectoContrato.ToEntero).FiltroPrimeroValor("SubProyecto") 'Iteramos el GridView de la OC For Each gvr As GridViewRow In GVDevolucion.Rows If gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then Dim CvePS As Integer = gvr.DataKey("CvePS").ToString.ToEntero - Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).Rows(0) + 'Dim DrPS As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") Dim Cantidad As Decimal = gvr.FCTextBox("TxtCantidad").Text.ToDecimal Dim CveUM As Integer = gvr.DataKey("CveUM").ToString.ToEntero @@ -14091,9 +14039,9 @@ Partial Class Compras_Compras Dim Clasificacion As String = gvr.DataKey("Clasificacion").ToString Dim PS As String = gvr.DataKey("PS").ToString Dim CveTipoPS As Integer = gvr.DataKey("CveTipoPS").ToString.ToEntero - Dim CveSubProyectoContrato As String = "-1" + Dim CveProyecto As String = "-1" - Dim SubProyecto As String = "Seleccione" + Dim Proyecto As String = "Seleccione" Dim Obs As String = "" Dim PU As Decimal = gvr.DataKey("PU").ToString.ToDecimal @@ -14111,11 +14059,8 @@ Partial Class Compras_Compras PU = ((PU * Cantidad) + dif) / Cantidad Total = Cantidad * PU End If - End If - AddPS(Cantidad, CveUM, UM, CveClasificacion, Clasificacion, CvePS, PS, CveTipoPS, CveSubProyectoContrato, SubProyecto, Proyecto, CveProyecto, Obs, PU, Total, IVA, 0, 0, 0, 0, Descuento, -1, False) - End If Next @@ -14136,11 +14081,11 @@ Partial Class Compras_Compras LbAgregar.Visible = False UpPSS.Update() - CargaGvInv() + 'CargaGvInv() - GvPS.DataSource = TmpDT - GvPS.DataBind() - UpPS.Update() + 'GvPS.DataSource = TmpDT + 'GvPS.DataBind() + 'UpPS.Update() CargaGVsAF() @@ -16714,12 +16659,14 @@ Partial Class Compras_Compras End If ImgAnticiposPendientes.Visible = False If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then - paneldevolucion.Visible = True + Pnlalmaceninventarios.Visible = False If DdlTipoComprobante.SelectedValue.Contiene("DEV") Then DivAlmacenDev.Visible = True + paneldevolucion.Visible = True + cargaddldevoluciones(CveProveedor, TxtSubTotal2.Text.ToDouble) End If - cargaddldevoluciones(CveProveedor, TxtSubTotal2.Text.ToDouble) + InicializaAplicaNCFact() DivReembolso.Visible = False RBLPago.Items(2).Enabled = False From d5c45f2a59a18b35a8c5c7551b9c60a5993b3a13 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Tue, 4 Feb 2025 00:47:01 -0700 Subject: [PATCH 07/10] vacacciones --- Nomina/ReporteVacaciones.aspx | 216 ++++++++++++++++++++++++-- Nomina/ReporteVacaciones.aspx.cs | 255 +++++++++++++++++++++++++------ 2 files changed, 409 insertions(+), 62 deletions(-) diff --git a/Nomina/ReporteVacaciones.aspx b/Nomina/ReporteVacaciones.aspx index 0e31011b4..f23a2f071 100644 --- a/Nomina/ReporteVacaciones.aspx +++ b/Nomina/ReporteVacaciones.aspx @@ -1,5 +1,6 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="ReporteVacaciones.aspx.cs" Inherits="Nomina_ReporteVacaciones" %> +<%@ Import Namespace="Extensiones" %> @@ -7,8 +8,112 @@ /*.text-right { text-align:right }*/ - td.borderleft,th.borderleft{ - border-left:1px solid black !important; + td.borderleft, th.borderleft { + border-left: 1px solid black !important; + } + + .hiddentth, .hiddentth th { + background-color: #fff !important; + } + + .showMesDia { + display: none; + } + table tr th.diac { + font-size: 4px; + padding-left: 1px !important; + padding-right: 1px !important; + } + + table tr th.mesc{ + font-size: 12px; + } + + .mes1 { + background-color: #ffcccc; + border-color: #ffcccc; + } + /* Enero - Rojo claro */ + .mes2 { + background-color: #ffebcc; + border-color: #ffcccc; + } + /* Febrero - Naranja claro */ + .mes3 { + background-color: #ffffcc; + border-color: #ffcccc; + } + /* Marzo - Amarillo claro */ + .mes4 { + background-color: #ccffcc; + border-color: #ffcccc; + } + /* Abril - Verde claro */ + .mes5 { + background-color: #ccffff; + border-color: #ffcccc; + } + /* Mayo - Azul cielo */ + .mes6 { + background-color: #ccccff; + border-color: #ffcccc; + } + /* Junio - Azul suave */ + .mes7 { + background-color: #e6ccff; + border-color: #ffcccc; + } + /* Julio - Morado claro */ + .mes8 { + background-color: #ffccff; + border-color: #ffcccc; + } + /* Agosto - Rosa claro */ + .mes9 { + background-color: #ffb3b3; + border-color: #ffcccc; + } + /* Septiembre - Rojo pastel */ + .mes10 { + background-color: #ff9966; + border-color: #ffcccc; + } + /* Octubre - Naranja pastel */ + .mes11 { + background-color: #cccc99; + border-color: #ffcccc; + } + /* Noviembre - Verde oliva */ + .mes12 { + background-color: #e6e6e6; + border-color: #ffcccc; + } + /* Diciembre - Gris claro */ + + .TContainer { + width:100%; + height: calc(100vh - 200px); + overflow:scroll; + } + .VacClass{ + background-color:darkslateblue; + } + .borderyear{ + border-left: 1px solid #FFF !important; + + } + .yearclass{ + background-color:#444; + color:#FFF;text-align: center; + font-size: 6px; + } + .yearclassB{ + background-color:#999; + color:#FFF;text-align: center; + font-size: 6px; + } + tr.aniorow td{ + height:8px; } @@ -29,7 +134,7 @@
- +
<%----%> @@ -85,9 +190,94 @@
+
+ + -
-
+ + + + + <%-- Encabezados dinámicos para los ejercicios --%> + + + + <%----%> + + + + + + + + + + <%-- Encabezados dinámicos para los ejercicios --%> + + + + + + + + + + + + <%-- Encabezados dinámicos para los ejercicios --%> +<%-- data-toggle="tooltip" + title='<%# new System.Globalization.CultureInfo("es-ES").DateTimeFormat.GetMonthName(Eval("Mes").ToString().ToEntero()).ToUpper() %>'--%> + + + + + + + + + + + + <%-- Encabezados dinámicos para los ejercicios --%> + + + + + + + + + + + + + + <%----%> + + + + <%-- Subrepeater para los ejercicios --%> + + + + + <%-- + + + + --%> + + + + + + + +
<%# Eval("Anio") %>
+ <%# new System.Globalization.CultureInfo("es-ES").DateTimeFormat.GetMonthName(Eval("Mes").ToString().ToEntero()).ToUpper() %>
CódigoNombre CompletoFecha Inicio<%# Eval("Dia") %>
<%# Eval("CvePersonal") %><%# Eval("FechaInicio", "{0:yyyy-MM-dd}") %>
+
+