From c57c4f2c46d8bf86adc9bfe1242adb9487925f78 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 16 Apr 2024 18:02:26 -0700 Subject: [PATCH 01/13] GDiaz - Identificar anticipos puntuales --- App_Code/ClsBancos.vb | 5 ++- Bancos/IE.aspx | 89 ++++++++++++++++++++++--------------------- Bancos/IE.aspx.vb | 16 +++++++- Ventas/Ventas.aspx.vb | 5 +++ 4 files changed, 68 insertions(+), 47 deletions(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 77940930c..871e4c4b8 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -1475,7 +1475,8 @@ Public Class ClsBancos NotificarA As String, EsAbonoEnCuenta As Boolean, AplicaImpuestos As Boolean, IDPoliza As Integer, CvePrePoliza As Integer, Comprobante As String, CveUsuario As Integer, CveEmpresa As Integer, Optional CveCuentaDeposito As Integer = -1, Optional PagoElectronico As String = "-1", Optional CveEstatusIE As Integer = 1, Optional CveCuentaTarjeta As Integer = -1, Optional Referencia As String = "-1", Optional CveCorte As Integer = -1, Optional CveProveedorIntermediario As Integer = -1, Optional FueConciliado As Boolean = False, - Optional MesesSinIntereses As Integer = -1, Optional Modulo As String = "", Optional ConceptoCIE As String = "", Optional CveOCAnticipo As Integer = -1, Optional ImporteDeduccionesPago As Decimal = -1) As Integer + Optional MesesSinIntereses As Integer = -1, Optional Modulo As String = "", Optional ConceptoCIE As String = "", Optional CveOCAnticipo As Integer = -1, Optional ImporteDeduccionesPago As Decimal = -1, + Optional AnticipoPuntual As Boolean = False) As Integer Dim Retorno As Integer = -1 DataAdapter("PA_Banc_IEAdd") @@ -1516,7 +1517,7 @@ Public Class ClsBancos .Add("@Modulo", SqlDbType.VarChar).Value = Modulo .Add("@CveOCAnticipo", SqlDbType.Int).Value = CveOCAnticipo .Add("@ImporteDeduccionesPago", SqlDbType.Money).Value = ImporteDeduccionesPago - + .Add("@AnticipoPuntual", SqlDbType.Bit).Value = AnticipoPuntual End With Try diff --git a/Bancos/IE.aspx b/Bancos/IE.aspx index 72d6f420c..198bceedf 100644 --- a/Bancos/IE.aspx +++ b/Bancos/IE.aspx @@ -25,7 +25,7 @@ Complemento Pago - +
  • PrePoliza
  • @@ -151,7 +151,7 @@
    - +
    @@ -225,7 +225,7 @@ Clientes Proveedor Viáticos - Acreedor + Acreedor @@ -245,7 +245,8 @@
    - + +
    @@ -438,23 +439,22 @@
    -
    - -
    - Folio OC: -
    -
    +
    - +
    + Folio OC: +
    +
    + + <%-- --%> - -
    -
    +
    +
    @@ -620,7 +620,7 @@
    -
    +
    @@ -759,7 +759,7 @@ - --%> + --%> Fecha Aplicación @@ -778,7 +778,7 @@ --%> - + @@ -790,11 +790,11 @@ - Deducciones Pago: - + Deducciones Pago: + - +
    @@ -834,7 +834,7 @@
    - +
    Registró: @@ -993,7 +993,7 @@ - +
    @@ -1010,7 +1010,7 @@
    - +
    @@ -1030,13 +1030,14 @@
    -
    - - +
    + + +
    @@ -1220,10 +1221,10 @@
    Cuenta Devolución: - + - - +
    @@ -1231,7 +1232,7 @@
    -
    +
    @@ -1249,10 +1250,10 @@
    - -
    - - + +
    + + @@ -1273,7 +1274,7 @@
    -<%--
    +
    diff --git a/Ventas/RepVentaDetalle.aspx.vb b/Ventas/RepVentaDetalle.aspx.vb index 302599684..2fbaa3077 100644 --- a/Ventas/RepVentaDetalle.aspx.vb +++ b/Ventas/RepVentaDetalle.aspx.vb @@ -109,10 +109,19 @@ Partial Class RepVentaDetalle Set(value As Boolean) ViewState("Primeracontsulta") = value End Set - End Property - + End Property + Private Property ConsultaAlCargar As Boolean + Get + Return CBool((IfNull(ViewState("ConsultaAlCargar"), False, ViewState("ConsultaAlCargar")))) + End Get + Set(value As Boolean) + ViewState("ConsultaAlCargar") = value + End Set + End Property + + #End Region - 'pRivate ReadOnly Property ColumnasVisibles As + 'pRivate ReadOnly Property ColumnasVisibles As Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario.Contiene(77, 21) Then Response.Redirect("/Inicio.aspx") @@ -120,14 +129,16 @@ Partial Class RepVentaDetalle CargaCombos() InicializaValores() ConfiguraEmpresa() - CargaDatos() + If ConsultaAlCargar Then + CargaDatos() + End If + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then - LblServicioDomicilioFiltro.Visible = True DVServicioDomicilio.Visible = True - End If + PrePersonalizacion() CargaPersonalizacion() End If @@ -135,6 +146,8 @@ Partial Class RepVentaDetalle Private Sub InicializaValores() + ConsultaAlCargar = True + Dim Grupo, CveCliente, CveSucursal, CveSubProyectoEjecucion, CveVendedor, CveUsuario, CveEstatusFactura, CveCorte, IVA, TipoDocto, CveClienteClasificacion, CveCondicionesPago, CveTipoRelacion As String Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String Dim AnioEjec, MesEjec, AnioMesEjec, FechaEjec, FechaIEjec, FechaFEjec As String @@ -275,8 +288,12 @@ Partial Class RepVentaDetalle DdlVendedor.Enabled = False End If - End Sub + If Request("Menu") IsNot Nothing AndAlso Request("Menu").ToString() = "1" Then + ConsultaAlCargar = False + End If + End Sub + #Region "CARGA COMBOS" Private Sub CargaGrupo() DdlGrupo.Items.Insert(0, New ListItem("Año", "1")) @@ -536,7 +553,29 @@ Partial Class RepVentaDetalle If e.Row.DBCampo("RetISR").ToDouble < 0 Then e.Row.Cells(10).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Total").ToDouble < 0 Then e.Row.Cells(11).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Total").ToDouble < 0 Then e.Row.Cells(12).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("Total").ToDouble < 0 Then e.Row.Cells(13).ForeColor = Drawing.Color.Red + If e.Row.DBCampo("Total").ToDouble < 0 Then e.Row.Cells(13).ForeColor = Drawing.Color.Red + + Dim Ruta As String = UsuarioActual.Empresa.Ruta + + If IO.File.Exists($"{Ruta}XML\{e.Row.DBCampo("TipoDocto")}\{e.Row.DBCampo("SerieFolio")}.xml") Then + e.Row.FCLiteral("LtlXML").Text = String.Format("", e.Row.DBCampo("TipoDocto"), e.Row.DBCampo("SerieFolio")) + Else + e.Row.FCLiteral("LtlXML").Text = "
    " + End If + + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + If e.Row.DBCampo("TipoDocto") <> "Cot" AndAlso IO.File.Exists($"{Ruta}PDF\{e.Row.DBCampo("TipoDocto")}\{e.Row.DBCampo("SerieFolio")}.pdf") Then + e.Row.FCLiteral("LtlPDF").Text = String.Format("", e.Row.DBCampo("TipoDocto"), e.Row.DBCampo("SerieFolio")) + Else + e.Row.FCLiteral("LtlPDF").Text = "
    " + End If + Else + If IO.File.Exists($"{Ruta}PDF\{e.Row.DBCampo("TipoDocto")}\{e.Row.DBCampo("SerieFolio")}.pdf") Then + e.Row.FCLiteral("LtlPDF").Text = String.Format("", e.Row.DBCampo("TipoDocto"), e.Row.DBCampo("SerieFolio")) + Else + e.Row.FCLiteral("LtlPDF").Text = "
    " + End If + End If 'If e.Row.DBCampo("MAX_SubTotal").ToDouble = 0 Then e.Row.FCLiteral("LtlMaxSubTotal").Text = "" @@ -705,7 +744,11 @@ Partial Class RepVentaDetalle If ChkTC.Checked Then ListPersonalizada.Add("TC") - If ChkDescripcionVenta.Checked Then ListPersonalizada.Add("DescripcionVenta") + If ChkDescripcionVenta.Checked Then ListPersonalizada.Add("DescripcionVenta") + + If ChkDescargarPDF.Checked Then ListPersonalizada.Add("PDF") + + If ChkDescargarXML.Checked Then ListPersonalizada.Add("XML") If objUsuario.AddUsuariosPersonalizaciones(UsuarioActual, "RepVentaDetalles.aspx", String.Join("|", ListPersonalizada)) Then 'Alert("Personalizacion guardada") @@ -764,6 +807,9 @@ Partial Class RepVentaDetalle ChkFormaPago.Checked = False ChkUsoCFDI.Checked = False + ChkDescargarPDF.Checked = False + ChkDescargarXML.Checked = False + Dim Personalizaciones As String() = strBasePersonalizacion.Split("|"c) For Each personalizacion As String In Personalizaciones @@ -893,6 +939,12 @@ Partial Class RepVentaDetalle Exit Select Case "DescripcionVenta" ChkDescripcionVenta.Checked = True + Exit Select + Case "XML" + ChkDescargarXML.Checked = True + Exit Select + Case "PDF" + ChkDescargarPDF.Checked = True Exit Select Case Else Exit Select @@ -952,8 +1004,9 @@ Partial Class RepVentaDetalle GvDatos.Columns(38).Visible = ChkUsoCFDI.Checked GvDatos.Columns(39).Visible = ChkKilometraje.Checked GvDatos.Columns(40).Visible = ChkTC.Checked - GvDatos.Columns(41).Visible = ChkDescripcionVenta.Checked - + GvDatos.Columns(41).Visible = ChkDescripcionVenta.Checked + GvDatos.Columns(42).Visible = ChkDescargarXML.Checked + GvDatos.Columns(43).Visible = ChkDescargarPDF.Checked Personalizo = 1 If Personalizo = 1 Then From 3e2708dd548f2a76cc100bfd63b76176344c37fb Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 16 Apr 2024 23:19:11 -0700 Subject: [PATCH 04/13] --fix error ortografico --- Bancos/IE.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bancos/IE.aspx b/Bancos/IE.aspx index 198bceedf..92e446f0c 100644 --- a/Bancos/IE.aspx +++ b/Bancos/IE.aspx @@ -245,7 +245,7 @@
    - +
    From 55401421939e98135e7f4a99b5c5d49f258633a7 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 16 Apr 2024 18:03:18 -0700 Subject: [PATCH 05/13] Reloj Checador 2024.04.15 --- App_Code/ClsRH.vb | 59 ++ Compras/Compras.aspx.vb | 20 +- Inventarios/EntregaAlmacen.aspx.vb | 2 +- Inventarios/KardexAlmacenHorizontal.aspx.vb | 444 +++++++------- RH/RepChecadorPreAsistencia.aspx | 58 +- RH/RepChecadorPreAsistencia.aspx.vb | 606 +++++++++++++------- 6 files changed, 721 insertions(+), 468 deletions(-) diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index 8197581c5..eeb1d6249 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -2719,6 +2719,27 @@ Public Class ClsRH OnError("Ocurrió un error al consultar las Asistencias del Personal.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) End Try + Return Retorno + End Function + + + Public Function GetPersonalPreAsistenciaRegistros(InicioPeriodo As Date, FinPeriodo As Date, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + SqlDataAdapter("PA_RH_PersonalPreAsistenciaRegistrosGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@InicioPeriodo", SqlDbType.Date).Value = InicioPeriodo + .Add("@FinPeriodo", SqlDbType.Date).Value = FinPeriodo + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As SqlException + OnError("Ocurrió un error al consultar las Asistencias del Personal.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno End Function @@ -2768,6 +2789,44 @@ Public Class ClsRH End Function + Public Function AddPreAsistencia(CvePersonal As Integer, Fecha As Date, CveAsistenciasInasistencias As Integer, PorcentajePago As Double, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + Data = New DataTable + 'SqlAdapter = New SqlDataAdapter("PA_RH_PersonalAsistenciasAddUpd", SqlConexion) + 'SqlAdapter.SelectCommand.CommandType = CommandType.StoredProcedure + SqlDataAdapter("PA_RH_PersonalPreAsistenciasAddUpd") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal + .Add("@Fecha", SqlDbType.Date).Value = Fecha + .Add("@CveAsistenciasInasistencias", SqlDbType.Int).Value = CveAsistenciasInasistencias + .Add("@PorcentajePago", SqlDbType.Float).Value = PorcentajePago + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue + End With + + Try + SqlAdapter.Fill(Data) + CveAsistencia = SqlAdapter.SelectCommand.Parameters("@RETURN_VALUE").Value.ToString.ToEntero + Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("Número: 2627;") Then + Alert("Ya se registró la Asistencia del día " & Fecha & " para el empleado.", TipoMensaje.MsgAdvertencia) + ElseIf Ex1.Message.Contains("x50102;") Then + Alert("No se puede editar o agregar la asistencia ya que se encuentra vinculada a un periodo autorizado.", TipoMensaje.MsgAdvertencia) + GuardaLog(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", "Ocurrió un error al editar o agregar la asistencia ", Ex1.ToString, vbCrLf, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())) + Else + Me.OnError("Ocurrió un error al guardar la Asistencia.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If + Catch ex As Exception + OnError("Ocurrió un error al guardar la Pre Asistencia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpAsistenciaDetalle(CveEmpresa As Integer, CveUsuario As Integer, registros As List(Of RequestUpAsistenciaDetalle)) As Boolean Dim Retorno As Boolean = False Dim xmlProductos As System.Xml.Linq.XDocument = Nothing diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index ba963379c..0b165f698 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -20743,7 +20743,7 @@ Partial Class Compras_Compras Dim Diferencia As Decimal = saldoTotal - TotalAcumuladoTabla - ValImporte If (Diferencia) < 0 Then - Alert($"No hay presupuesto disponible en el subproyecto {ValSubProyecto} con la clasificación {ValClasificacion}, Tipo de gasto {ValTipoGasto}. Se excede por {Math.Abs(Diferencia).FormatoNumero}", TipoMensaje.MsgAdvertencia) + Alert($"No hay presupuesto disponible.
    SubProyecto: {ValSubProyecto}
    Clasificación: {ValClasificacion}
    Tipo de gasto: {ValTipoGasto}. Se excede por {Math.Abs(Diferencia).FormatoNumero}.", TipoMensaje.MsgAdvertencia) respuesta = False Else @@ -20751,7 +20751,7 @@ Partial Class Compras_Compras End If Else - Alert($"No hay presupuesto disponible en el subproyecto {ValSubProyecto} con la clasificación {ValClasificacion}, Tipo de gasto {ValTipoGasto} ", TipoMensaje.MsgAdvertencia) + Alert($"No hay presupuesto disponible.
    SubProyecto: {ValSubProyecto}
    Clasificación: {ValClasificacion}
    Tipo de gasto: {ValTipoGasto}.", TipoMensaje.MsgAdvertencia) respuesta = False End If Else @@ -20808,16 +20808,24 @@ Partial Class Compras_Compras Dim tieneRegistrosConCveSubProyecto As Boolean = resultadosFiltrados.Any(Function(row) CType(row("CveSubProyecto"), Integer) = item.CveSubProyecto) If tieneRegistrosConCveSubProyecto Then - Dim saldoTotal As Decimal = (From row In resultadosFiltrados + 'Dim saldoTotal As Decimal = (From row In resultadosFiltrados + ' Where row.Field(Of Integer)("CveSubProyecto") = item.CveSubProyecto AndAlso + ' row.Field(Of Integer)("CveClasificacion") = item.CveClasificacion + ' Select row.Field(Of Decimal)("Saldo")).Sum() + + Dim saldoTotal As Decimal = (From row In resultadosFiltrados.AsEnumerable() Where row.Field(Of Integer)("CveSubProyecto") = item.CveSubProyecto AndAlso - row.Field(Of Integer)("CveClasificacion") = item.CveClasificacion + If(row.IsNull("CveClasificacion"), + 0, + row.Field(Of Integer?)("CveClasificacion").GetValueOrDefault()) = item.CveClasificacion Select row.Field(Of Decimal)("Saldo")).Sum() + If saldoTotal > 0 Then Dim Diferencia As Decimal = saldoTotal - item.TotalSum If (Diferencia) < 0 Then - Alert($"No hay presupuesto disponible en el subproyecto {item.SubProyecto} con la clasificación {item.Clasificacion}, Tipo de gasto {item.TipoGasto}. Se excede por {Math.Abs(Diferencia).FormatoNumero}", TipoMensaje.MsgAdvertencia) + Alert($"No hay presupuesto disponible.
    SubProyecto: {item.SubProyecto}
    Clasificación: {item.Clasificacion}
    Tipo de gasto: {item.TipoGasto}. Se excede por {Math.Abs(Diferencia).FormatoNumero}.", TipoMensaje.MsgAdvertencia) respuesta = False Exit For Else @@ -20825,7 +20833,7 @@ Partial Class Compras_Compras End If Else - Alert($"No hay presupuesto disponible en el subproyecto {item.SubProyecto} con la clasificación {item.Clasificacion}, Tipo de gasto {item.TipoGasto}", TipoMensaje.MsgAdvertencia) + Alert($"No hay presupuesto disponible.
    SubProyecto: {item.SubProyecto}
    Clasificación: {item.Clasificacion}
    Tipo de gasto: {item.TipoGasto}.", TipoMensaje.MsgAdvertencia) respuesta = False Exit For End If diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index be1f33adf..6e51b4464 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -3252,7 +3252,7 @@ Partial Class Inventarios_EntregaAlmacen Msg.AppendFormat("
    Consola ", Encripta(String.Format("OP=Alm&CveMovimiento={0}&Consola={1}", CveMovimiento, Consola))) End If - If CveMovimientoEntrada > 0 Then + If CveMovimientoEntrada > 0 AndAlso Not UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then Msg.AppendFormat("

    Movimiento Entrada (Traspaso): {1}", CveMovimientoEntrada, FolioEntrada) Msg.AppendFormat("
    Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) End If diff --git a/Inventarios/KardexAlmacenHorizontal.aspx.vb b/Inventarios/KardexAlmacenHorizontal.aspx.vb index 14b886368..27bbfe0af 100644 --- a/Inventarios/KardexAlmacenHorizontal.aspx.vb +++ b/Inventarios/KardexAlmacenHorizontal.aspx.vb @@ -1,18 +1,18 @@ -Imports System.Data -Imports System.IO -Imports ADSNetLibrary.SIGAPI.Models.CGame -Imports Extensiones -Imports GemBox.Spreadsheet -Imports Microsoft.Reporting.WebForms - -Partial Class Inventarios_KardexAlmacenHorizontal - Inherits ClsPaginas - - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load - If Not IsPostBack Then - 'TxtFechaI.Text = NowADS().AddMonths(-1).ToShortDateString +Imports System.Data +Imports System.IO +Imports ADSNetLibrary.SIGAPI.Models.CGame +Imports Extensiones +Imports GemBox.Spreadsheet +Imports Microsoft.Reporting.WebForms + +Partial Class Inventarios_KardexAlmacenHorizontal + Inherits ClsPaginas + + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not IsPostBack Then + 'TxtFechaI.Text = NowADS().AddMonths(-1).ToShortDateString TxtFechaF.Text = NowADS().ToShortDateString - CargaCombos() + CargaCombos() ddlAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) LblOrden.Visible = False DdlOrden.Visible = False @@ -35,18 +35,18 @@ Partial Class Inventarios_KardexAlmacenHorizontal DdlIncluyeTransitorios.Items.RemoveAt(0) 'oculta opción "No" en tránsito End If - If IfNull(Request("CvePS"), "-1").ToString.ToEntero > 0 Then CargarKardex(Request("CvePS").ToString.ToEntero) + If IfNull(Request("CvePS"), "-1").ToString.ToEntero > 0 Then CargarKardex(Request("CvePS").ToString.ToEntero) ddlProducto2.SelectedValue = If(Request("CvePS") IsNot Nothing, Request("CvePS").ToString, "-1") If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 Then DVFiltroCodigo.Visible = True - End If - - End If - End Sub - Private Sub CargaCombos() - - CargaFuncionalidad105() + End If + + End If + End Sub + Private Sub CargaCombos() + + CargaFuncionalidad105() CargaPS() 'Using ObjPS As New ClsProductosServicios @@ -56,25 +56,25 @@ Partial Class Inventarios_KardexAlmacenHorizontal 'End Using DdlMarca.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) DdlMarca.DataBind() - DdlMarca.Items.Insert(0, New ListItem("Todos", "-1")) - - ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) - ddlAlmacen.DataBind() - - Dim ObjInv As New ClsInventarios() - If ObjInv.GetTiposAlmacenes() Then - DdlTipoAlmacen.DataSource = ObjInv.DtResultados - End If - ObjInv.Dispose() - DdlTipoAlmacen.DataBind() - - DdlTipoAlmacen.SelectedValueExist(1) - - If IfNull(Request("CveAlmacen"), "-1").ToString.ToEntero > 0 Then ddlAlmacen.SelectedValue = Request("CveAlmacen").ToString - CargaClasificaciones() - End Sub - - Private Sub CargaClasificaciones() + DdlMarca.Items.Insert(0, New ListItem("Todos", "-1")) + + ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) + ddlAlmacen.DataBind() + + Dim ObjInv As New ClsInventarios() + If ObjInv.GetTiposAlmacenes() Then + DdlTipoAlmacen.DataSource = ObjInv.DtResultados + End If + ObjInv.Dispose() + DdlTipoAlmacen.DataBind() + + DdlTipoAlmacen.SelectedValueExist(1) + + If IfNull(Request("CveAlmacen"), "-1").ToString.ToEntero > 0 Then ddlAlmacen.SelectedValue = Request("CveAlmacen").ToString + CargaClasificaciones() + End Sub + + Private Sub CargaClasificaciones() Dim CveClasificacion As Integer = If(Request("CveClasificacion") IsNot Nothing, Request("CveClasificacion").ToString, "-1").ToEntero Dim ObjClasificaciones As New ClsClasificaciones @@ -89,193 +89,193 @@ Partial Class Inventarios_KardexAlmacenHorizontal DdlClasificacion.DataBind() End If End If - ObjClasificaciones.Dispose() - - DdlClasificacion.DataBind() - DdlClasificacion.SelectedValueExist(CveClasificacion) - - End Sub - Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged - CargaPS() - End Sub - Private Sub CargaPS() - - If Not ddlProducto2.UsaWebService Then - 'Dim Filtro = If(DdlClasificacion.SelectedValue >= 0, String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue), "") - ddlProducto2.ddl.Items.Clear() - ddlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros($"CveTipoPS=2", "PSCodigo") - ddlProducto2.DataBind() - ddlProducto2.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1")) - End If - End Sub - Private Sub CargaFuncionalidad105() - ddlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") - DdlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") - - If ddlProducto2.UsaWebService Then - ddlProducto2.ddlWS.Attributes.Add("data-Estatus", "-1") - ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios") - ddlProducto2.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.ClientID) - DdlClasificacion.AutoPostBack = False - - DdlProveedor.Attributes.Add("data-metodo", "getproveedores") - Else - ddlProducto2.ddl.Items.Add(New ListItem("Seleccione", "-1")) - ddlProducto2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) - - DdlProveedor.ddl.Items.Add(New ListItem("Seleccione", "-1")) - DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) - DdlProveedor.DataBind() - End If - - End Sub - Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto2.selectedindexchange - - DdlUnidadMedida.Items.Clear() - DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(ddlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) - DdlUnidadMedida.DataBind() - DdlUnidadMedida.Items.Insert(0, New ListItem("Todos", "-1")) - - End Sub - Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click - Dim CveProducto As Integer = ddlProducto2.SelectedValue.ToEntero - CargarKardex(CveProducto) - 'If CveProducto > 0 Then - - 'Else - ' Alert("Seleccione un producto.", TipoMensaje.MsgAdvertencia) - 'End If - - End Sub + ObjClasificaciones.Dispose() + + DdlClasificacion.DataBind() + DdlClasificacion.SelectedValueExist(CveClasificacion) + + End Sub + Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged + CargaPS() + End Sub + Private Sub CargaPS() + + If Not ddlProducto2.UsaWebService Then + 'Dim Filtro = If(DdlClasificacion.SelectedValue >= 0, String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue), "") + ddlProducto2.ddl.Items.Clear() + ddlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros($"CveTipoPS=2", "PSCodigo") + ddlProducto2.DataBind() + ddlProducto2.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1")) + End If + End Sub + Private Sub CargaFuncionalidad105() + ddlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + DdlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + If ddlProducto2.UsaWebService Then + ddlProducto2.ddlWS.Attributes.Add("data-Estatus", "-1") + ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios") + ddlProducto2.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.ClientID) + DdlClasificacion.AutoPostBack = False + + DdlProveedor.Attributes.Add("data-metodo", "getproveedores") + Else + ddlProducto2.ddl.Items.Add(New ListItem("Seleccione", "-1")) + ddlProducto2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) + + DdlProveedor.ddl.Items.Add(New ListItem("Seleccione", "-1")) + DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) + DdlProveedor.DataBind() + End If + + End Sub + Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto2.selectedindexchange + + DdlUnidadMedida.Items.Clear() + DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(ddlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) + DdlUnidadMedida.DataBind() + DdlUnidadMedida.Items.Insert(0, New ListItem("Todos", "-1")) + + End Sub + Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click + Dim CveProducto As Integer = ddlProducto2.SelectedValue.ToEntero + CargarKardex(CveProducto) + 'If CveProducto > 0 Then + + 'Else + ' Alert("Seleccione un producto.", TipoMensaje.MsgAdvertencia) + 'End If + + End Sub Private Sub CargarKardex(CvePS As Integer) - Dim dt As DataTable = Nothing - Dim ObjMovimientos As New ClsInventarios - Dim FechaI As String = "-1" ' If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1") - ' Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1") - Dim FechaF As Date = TxtFechaF.Text.ToDate - Dim CveAlmacenes As String = ddlAlmacen.GetSelectedValues() - Dim CveProveedorCompra As Integer = If(DdlProveedor.SelectedValue.ToEntero > 0, DdlProveedor.SelectedValue.ToEntero, -1) - Dim Marcas As String = If(DdlMarca.GetSelectedValuesM = "", "-1", DdlMarca.GetSelectedValuesM) - Dim GPO As Integer = Ddlgrupo.SelectedValue.ToEntero + Dim dt As DataTable = Nothing + Dim ObjMovimientos As New ClsInventarios + Dim FechaI As String = "-1" ' If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1") + ' Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1") + Dim FechaF As Date = TxtFechaF.Text.ToDate + Dim CveAlmacenes As String = ddlAlmacen.GetSelectedValues() + Dim CveProveedorCompra As Integer = If(DdlProveedor.SelectedValue.ToEntero > 0, DdlProveedor.SelectedValue.ToEntero, -1) + Dim Marcas As String = If(DdlMarca.GetSelectedValuesM = "", "-1", DdlMarca.GetSelectedValuesM) + Dim GPO As Integer = Ddlgrupo.SelectedValue.ToEntero Dim IncluyeTransitorios As Integer = DdlIncluyeTransitorios.SelectedValue.ToEntero Dim CodigoInicio As String = If(TxtCodigoInicio.Text.Trim.Length = 0, "-1", TxtCodigoInicio.Text.Trim) - Dim CodigoFin As String = If(TxtCodigoFinal.Text.Trim.Length = 0, "-1", TxtCodigoFinal.Text.Trim) - + Dim CodigoFin As String = If(TxtCodigoFinal.Text.Trim.Length = 0, "-1", TxtCodigoFinal.Text.Trim) + If ObjMovimientos.GetKardexAlmacenHorizontal(CvePS, FechaF, -1, DdlUnidadMedida.SelectedValue.ToEntero, CveProveedorCompra, DdlTipoAlmacen.SelectedValue.ToEntero(), IncluyeTransitorios, DdlClasificacion.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CondicionExistencias:=DdlExistencia.SelectedValue.ToEntero, - Orden:=DdlOrden.SelectedValue.ToEntero(), Marcas:=Marcas, IncluyeProyectado:=DdlProyeccionFiltro.SelectedValue.ToEntero, CveAlmacenes:=CveAlmacenes, GPO:=GPO, CodigoPS:=TxtPS.Text, - CodigoInicio:=CodigoInicio, CodigoFin:=CodigoFin) Then - If ObjMovimientos.DtResultados IsNot Nothing AndAlso ObjMovimientos.DtResultados.Rows.Count > 0 Then - dt = ObjMovimientos.DtResultados - Dim ListaBorrar As New List(Of DataColumn) - For index As Integer = 3 To dt.Columns.Count - 1 - Dim TotColumna As Double = 0 - For Each Dr As DataRow In dt.Rows - TotColumna += Dr.Item(index).ToString.ToDouble + Orden:=DdlOrden.SelectedValue.ToEntero(), Marcas:=Marcas, IncluyeProyectado:=DdlProyeccionFiltro.SelectedValue.ToEntero, CveAlmacenes:=CveAlmacenes, GPO:=GPO, CodigoPS:=TxtPS.Text, + CodigoInicio:=CodigoInicio, CodigoFin:=CodigoFin) Then + If ObjMovimientos.DtResultados IsNot Nothing AndAlso ObjMovimientos.DtResultados.Rows.Count > 0 Then + dt = ObjMovimientos.DtResultados + Dim ListaBorrar As New List(Of DataColumn) + For index As Integer = 3 To dt.Columns.Count - 1 + Dim TotColumna As Double = 0 + For Each Dr As DataRow In dt.Rows + TotColumna += Dr.Item(index).ToString.ToDouble Next If Not TotColumna > 0 Then ListaBorrar.Add(dt.Columns(index)) End If - Next - For Each item As DataColumn In ListaBorrar - dt.Columns().Remove(item) - Next - dt.AcceptChanges() - GvDatos.DataSource = dt - Else - Alert("La búsqueda no contiene resultados.", TipoMensaje.MsgAdvertencia) - GvDatos.Columns.Clear() + Next + For Each item As DataColumn In ListaBorrar + dt.Columns().Remove(item) + Next + dt.AcceptChanges() + GvDatos.DataSource = dt + Else + Alert("La búsqueda no contiene resultados.", TipoMensaje.MsgAdvertencia) + GvDatos.Columns.Clear() dt = Nothing - Exit Sub + Exit Sub End If Else ObjMovimientos.Dispose() Alert("Ocurrió un error al consultar el Kardex.", TipoMensaje.MsgError) - Exit Sub + Exit Sub End If - GvDatos.DataBind() - - For index = 4 To GvDatos.Rows(0).Cells.Count - 1 - GvDatos.HeaderRow.Cells(index).Text = GvDatos.HeaderRow.Cells(index).Text.Split("|"c)(0) - Next - End Sub - - Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound - - If e.Row.RowType = DataControlRowType.DataRow Then - 'Dim Liga As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={e.Row.DataKey("CveAlmacen")}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}") - 'e.Row.FCHyperLink("HplAlmacen").NavigateUrl = Liga - - If e.Row.RowIndex = 0 Then - e.Row.CssClass = "Totales" - End If - - - 'e.Row.Attributes.Add("style", " max-height:31px!important") - + GvDatos.DataBind() + + For index = 4 To GvDatos.Rows(0).Cells.Count - 1 + GvDatos.HeaderRow.Cells(index).Text = GvDatos.HeaderRow.Cells(index).Text.Split("|"c)(0) + Next + End Sub + + Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound + + If e.Row.RowType = DataControlRowType.DataRow Then + 'Dim Liga As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={e.Row.DataKey("CveAlmacen")}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}") + 'e.Row.FCHyperLink("HplAlmacen").NavigateUrl = Liga + + If e.Row.RowIndex = 0 Then + e.Row.CssClass = "Totales" + End If + + + 'e.Row.Attributes.Add("style", " max-height:31px!important") + e.Row.HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left - e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left - e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Left - Dim Index As Integer = 0 - - For Each Cells As TableCell In e.Row.Cells - Dim Celda As String = Cells.Text - If IsNumeric(Celda) Then - Dim CveAlmacen2 As Integer = -1 - If Index >= 5 Then - Dim Array As String() = GvDatos.HeaderRow.Cells(Index).Text.Split("|"c) - If Array.Length > 1 Then - CveAlmacen2 = Array(1).ToEntero - End If - End If - - If Celda.ToDouble = 0 Then - Cells.Text = "" - Else - Dim ce = DirectCast(Cells, System.Web.UI.WebControls.DataControlFieldCell) - - If ce.ContainingField.HeaderText = "CP" Then - Cells.Text = Cells.Text.FormatoNumero(2) - ElseIf ce.ContainingField.HeaderText = "Valor" Then - Cells.Text = Cells.Text.FormatoNumero(2) - 'ElseIf ce.ContainingField.HeaderText = "Total" Then - ' Cells.Text = Cells.Text.FormatoNumero(2) - Else - Cells.Text = String.Format("{0:#,###.##}", Cells.Text.ToDecimal) - End If - End If - e.Row.Cells(e.Row.Cells.GetCellIndex(Cells)).Width = Unit.Pixel(80) - 'Dim Liga2 As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={CveAlmacen2}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}") - 'Cells.Text = String.Format("{0}", Celda.FormatoNumero(), Liga2) - End If - Index = Index + 1 - Next - - End If - End Sub - - - - Private Sub GvDatos_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowCreated - 'Escondo CvePS y CveAlmacén (Se generan por autogeneratecolumns por eso se borran por aqui). - ' e.Row.Cells(0).Width = New Unit("200px") - e.Row.Cells(2).Visible = False - e.Row.Cells(3).Visible = False - If e.Row.RowType = DataControlRowType.Header Then - 'e.Row.Cells(6).ToolTip = "Costo" - End If - End Sub - - Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click - - Imprimir("Excel") - End Sub - Private Sub Imprimir(Optional reporte As String = "PDF") + e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left + e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left + e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Left + Dim Index As Integer = 0 + + For Each Cells As TableCell In e.Row.Cells + Dim Celda As String = Cells.Text + If IsNumeric(Celda) Then + Dim CveAlmacen2 As Integer = -1 + If Index >= 5 Then + Dim Array As String() = GvDatos.HeaderRow.Cells(Index).Text.Split("|"c) + If Array.Length > 1 Then + CveAlmacen2 = Array(1).ToEntero + End If + End If + + If Celda.ToDouble = 0 Then + Cells.Text = "" + Else + Dim ce = DirectCast(Cells, System.Web.UI.WebControls.DataControlFieldCell) + + If ce.ContainingField.HeaderText = "CP" Then + Cells.Text = Cells.Text.FormatoNumero(2) + ElseIf ce.ContainingField.HeaderText = "Valor" Then + Cells.Text = Cells.Text.FormatoNumero(2) + 'ElseIf ce.ContainingField.HeaderText = "Total" Then + ' Cells.Text = Cells.Text.FormatoNumero(2) + Else + Cells.Text = String.Format("{0:#,###.##}", Cells.Text.ToDecimal) + End If + End If + e.Row.Cells(e.Row.Cells.GetCellIndex(Cells)).Width = Unit.Pixel(80) + 'Dim Liga2 As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={CveAlmacen2}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}") + 'Cells.Text = String.Format("{0}", Celda.FormatoNumero(), Liga2) + End If + Index = Index + 1 + Next + + End If + End Sub + + + + Private Sub GvDatos_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowCreated + 'Escondo CvePS y CveAlmacén (Se generan por autogeneratecolumns por eso se borran por aqui). + ' e.Row.Cells(0).Width = New Unit("200px") + e.Row.Cells(2).Visible = False + e.Row.Cells(3).Visible = False + If e.Row.RowType = DataControlRowType.Header Then + 'e.Row.Cells(6).ToolTip = "Costo" + End If + End Sub + + Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click + + Imprimir("Excel") + End Sub + Private Sub Imprimir(Optional reporte As String = "PDF") If GvDatos.Rows.Count > 0 Then Dim StrFiltro As New StringBuilder If DdlProveedor.SelectedValue.ToEntero > 0 Then StrFiltro.AppendFormat("Proveedor: {0},", DdlProveedor.SelectedText) @@ -284,7 +284,7 @@ Partial Class Inventarios_KardexAlmacenHorizontal ExportToExcelG(GvDatos, "ExistenciasHorizontal_" & TxtFechaF.Text, "Existencias Almacen", UsuarioActual, StrFiltro.ToString, 100, 200) Else Alert("Debe consultar para generar un excel", TipoMensaje.MsgAdvertencia) - End If + 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) @@ -371,12 +371,12 @@ Partial Class Inventarios_KardexAlmacenHorizontal excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx") - End Sub - + End Sub + Protected Sub LnkProyectado_Click(sender As Object, e As EventArgs) RegistraScript(String.Format("$('#{0}').modal();", "DivProyeccion")) - End Sub - + End Sub + Protected Sub BtnDescargarFormato_Click(sender As Object, e As EventArgs) Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\KardexProyeccion.xlsx" @@ -392,8 +392,8 @@ Partial Class Inventarios_KardexAlmacenHorizontal Response.TransmitFile(Archivo.FullName) Response.End() End If - End Sub - + End Sub + Protected Sub BtnAgregarProyeccion_Click(sender As Object, e As EventArgs) If TxtProyeccionExcel.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtProyeccionExcel.getfiles().Archivos(0) @@ -418,8 +418,8 @@ Partial Class Inventarios_KardexAlmacenHorizontal End If AgregarProyeccion(dt) - End Sub - + End Sub + Private Sub AgregarProyeccion(dt As DataTable) Dim TieneError As Boolean = False Dim StrCodigo As New StringBuilder @@ -460,8 +460,8 @@ Partial Class Inventarios_KardexAlmacenHorizontal ObjInventarios.Dispose() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivProyeccion")) - End Sub - + End Sub + 'Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable ' SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) ' Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath) @@ -512,8 +512,8 @@ Partial Class Inventarios_KardexAlmacenHorizontal ' Return dataTable - 'End Function - Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) + 'End Function + Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) End Sub Private Sub LnkPOG_Click(sender As Object, e As EventArgs) Handles LnkPOG.Click @@ -599,4 +599,4 @@ Partial Class Inventarios_KardexAlmacenHorizontal End Sub -End Class +End Class diff --git a/RH/RepChecadorPreAsistencia.aspx b/RH/RepChecadorPreAsistencia.aspx index 05d4023ec..b475984ea 100644 --- a/RH/RepChecadorPreAsistencia.aspx +++ b/RH/RepChecadorPreAsistencia.aspx @@ -16,11 +16,15 @@ - +
  • +
  • + +
  • @@ -32,46 +36,28 @@
    -
    +
    + +
      +
    • Ejercicio: + + + +
    • Tipo Periodo:
    • -
    • Periodo: - - +
    • + Período: + + +
    • - <%--
    • Fecha Inicio: -
      - - - - -
      - - - - - - -
    • -
    • Fecha Fin: -
      - - - - -
      - - - - - - - - -
    • --%> +
    • SubProyecto: @@ -340,7 +326,7 @@