290 lines
12 KiB
VB.net
290 lines
12 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
|
|
Partial Class Contratos_ModificarPresupuesto
|
|
Inherits ClsPaginas
|
|
Enum TipoModificacion
|
|
Ampliacion
|
|
Reduccion
|
|
Transferencia
|
|
End Enum
|
|
#Region "P R O P I E D A D E S"
|
|
Public ReadOnly Property EstatusFinal() As Integer
|
|
Get
|
|
Return 2
|
|
End Get
|
|
End Property
|
|
Public Property CvePresupuesto() As Integer
|
|
Get
|
|
Return ViewState("CvePresupuesto").ToString.ToEntero
|
|
End Get
|
|
Set(ByVal value As Integer)
|
|
ViewState("CvePresupuesto") = value
|
|
End Set
|
|
End Property
|
|
Public Property Tipo() As TipoModificacion
|
|
Get
|
|
Return DirectCast(ViewState("Tipo"), TipoModificacion)
|
|
End Get
|
|
Set(ByVal value As TipoModificacion)
|
|
ViewState("Tipo") = value
|
|
End Set
|
|
End Property
|
|
Public Property DtPresupuestos() As DataTable
|
|
Get
|
|
Return DirectCast(ViewState("DtPresupuestos"), DataTable)
|
|
End Get
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtPresupuestos") = value
|
|
End Set
|
|
End Property
|
|
Public Property DtClasificaciones() As DataTable
|
|
Get
|
|
Return DirectCast(ViewState("DtClasificaciones"), DataTable)
|
|
End Get
|
|
Set(ByVal value As DataTable)
|
|
ViewState("DtClasificaciones") = value
|
|
End Set
|
|
End Property
|
|
|
|
#End Region
|
|
|
|
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
|
If Not IsPostBack Then
|
|
Me.CvePresupuesto = IfNull(Request("CvePresupuesto"), -1).ToString.ToEntero
|
|
InicializaValores()
|
|
CargaDatos()
|
|
|
|
UpDatosG.Update()
|
|
UpGvClasificaciones.Update()
|
|
End If
|
|
End Sub
|
|
|
|
#Region "I N I C I A L I Z A - V A L O R E S"
|
|
Private Sub InicializaValores()
|
|
Dim ObjContrato As New ClsContratos()
|
|
'Dim CvePresupuesto = -1
|
|
Dim Nombre = "-1"
|
|
Dim CveSubProyecto = -1
|
|
Dim CveUsuario = -1
|
|
If ObjContrato.GetPresupuestos(-1, Nombre, CveSubProyecto, EstatusFinal, CveUsuario, UsuarioActual.CveEmpresa) Then
|
|
DtPresupuestos = ObjContrato.DtResultados.Copy
|
|
End If
|
|
ObjContrato.Dispose()
|
|
If DtPresupuestos IsNot Nothing Then
|
|
DdlPresupuesto.DataSource = DtPresupuestos
|
|
|
|
DdlPresupuesto.DataBind()
|
|
DdlPresupuesto.Items.Insert(0, New ListItem("Seleccione un presupuesto", "-1"))
|
|
DdlPresupuesto.SelectedValueExist(CvePresupuesto)
|
|
End If
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "C A R G A - D A T O S"
|
|
Private Sub CargaDatos()
|
|
Dim CvePresupuesto = DdlPresupuesto.SelectedValue.ToEntero
|
|
Dim Nombre = "-1"
|
|
Dim CveSubProyecto = -1
|
|
Dim CveUsuario = -1
|
|
Dim Agrupador = 1 'CLASIFICACION
|
|
If CvePresupuesto > 0 Then
|
|
TxtFecha.Text = Now.ToString("dd/MM/yyyy")
|
|
Dim DrPresupuesto = DtPresupuestos.FiltroPrimero($"CvePresupuesto = {CvePresupuesto}")
|
|
'Dim DrPresupuesto = DtPresupuestos.AsEnumerable.Where(Function(a) a("CvePresupuesto").ToString.ToEntero = CvePresupuesto).FirstOrDefault
|
|
|
|
Dim FechaI As Date = DrPresupuesto("FechaInicio").ToString.ToDate
|
|
Dim FechaF As Date = DrPresupuesto("FechaFin").ToString.ToDate
|
|
|
|
Dim ObjContrato As New ClsContratos()
|
|
If ObjContrato.GetPresupuestosModificacionesDetalle(CvePresupuesto, FechaI, FechaF, UsuarioActual.CveEmpresa) Then
|
|
DtClasificaciones = ObjContrato.DtResultados.FiltraParametros("CveClasificacion > 0")
|
|
End If
|
|
ObjContrato.Dispose()
|
|
|
|
If DtClasificaciones IsNot Nothing Then
|
|
GvPresupuestos.DataSource = DtClasificaciones
|
|
GvPresupuestos.DataBind()
|
|
End If
|
|
|
|
Dim StrTipo = DdlTipo.SelectedValue
|
|
|
|
Select Case StrTipo
|
|
'A M P L I A C I O N
|
|
Case "1"
|
|
Me.Tipo = TipoModificacion.Ampliacion
|
|
GvPresupuestos.Columns(3).Visible = True
|
|
GvPresupuestos.Columns(4).Visible = False
|
|
'R E D U C C I O N
|
|
Case "2"
|
|
Me.Tipo = TipoModificacion.Reduccion
|
|
GvPresupuestos.Columns(3).Visible = False
|
|
GvPresupuestos.Columns(4).Visible = True
|
|
'T R A N S F E R E N C I A'
|
|
Case "1,2"
|
|
Me.Tipo = TipoModificacion.Transferencia
|
|
GvPresupuestos.Columns(3).Visible = True
|
|
GvPresupuestos.Columns(4).Visible = True
|
|
End Select
|
|
|
|
|
|
End If
|
|
End Sub
|
|
Protected Sub GvPresupuestos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPresupuestos.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
Dim StrTipo = DdlTipo.SelectedValue
|
|
Dim Index = e.Row.RowIndex
|
|
Select Case StrTipo
|
|
'A M P L I A C I O N
|
|
Case "1"
|
|
e.Row.FCTextBox("TxtAmpliacion").Attributes.Add("onKeyUp ", $"Ampliacion({Index});")
|
|
'R E D U C C I O N
|
|
Case "2"
|
|
Dim Saldo As Decimal = e.Row.FCLabel("LtlSaldo").Text.Replace("$", "").ToDecimal
|
|
e.Row.FCTextBox("TxtReduccion").Attributes.Add("onKeyUp ", $"this.value = minmax(this.value, 0, {Saldo});Reduccion({Index});")
|
|
'T R A N S F E R E N C I A'
|
|
Case "1,2"
|
|
Dim Saldo As Decimal = e.Row.FCLabel("LtlSaldo").Text.Replace("$", "").ToDecimal
|
|
e.Row.FCTextBox("TxtAmpliacion").Attributes.Add("onKeyUp ", $"Transferencia({Index},'A');")
|
|
e.Row.FCTextBox("TxtReduccion").Attributes.Add("onKeyUp ", $"this.value = minmax(this.value, 0, {Saldo});Transferencia({Index},'R');")
|
|
End Select
|
|
End If
|
|
If e.Row.RowType = DataControlRowType.Footer Then
|
|
e.Row.FCLabel("LblTotalSaldo").Text = String.Format("{0:C}", DtClasificaciones.SUM("PorEjercer"))
|
|
e.Row.FCLabel("LblTotalImporte").Text = String.Format("{0:C}", DtClasificaciones.SUM("Autorizado"))
|
|
End If
|
|
End Sub
|
|
Protected Sub DdlPresupuesto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPresupuesto.SelectedIndexChanged
|
|
CargaDatos()
|
|
UpDatosG.Update()
|
|
UpGvClasificaciones.Update()
|
|
End Sub
|
|
Protected Sub DdlTipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipo.SelectedIndexChanged
|
|
Dim Tipo = DdlTipo.SelectedValue
|
|
|
|
Select Case Tipo
|
|
'A M P L I A C I O N
|
|
Case "1"
|
|
GvPresupuestos.Columns(3).Visible = True
|
|
GvPresupuestos.Columns(4).Visible = False
|
|
'R E D U C C I O N
|
|
Case "2"
|
|
GvPresupuestos.Columns(3).Visible = False
|
|
GvPresupuestos.Columns(4).Visible = True
|
|
'T R A N S F E R E N C I A'
|
|
Case "1,2"
|
|
GvPresupuestos.Columns(3).Visible = True
|
|
GvPresupuestos.Columns(4).Visible = True
|
|
End Select
|
|
|
|
For Each GvRow As GridViewRow In GvPresupuestos.Rows
|
|
If GvRow.RowType = DataControlRowType.DataRow Then
|
|
Dim Index = GvRow.RowIndex
|
|
Select Case Tipo
|
|
'A M P L I A C I O N
|
|
Case "1"
|
|
GvRow.FCTextBox("TxtAmpliacion").Attributes.Add("onKeyUp ", $"Ampliacion({Index});")
|
|
'R E D U C C I O N
|
|
Case "2"
|
|
Dim Saldo As Decimal = GvRow.FCLabel("LtlSaldo").Text.Replace("$", "").ToDecimal
|
|
GvRow.FCTextBox("TxtReduccion").Attributes.Add("onKeyUp ", $"this.value = minmax(this.value, 0, {Saldo});Reduccion({Index});")
|
|
'T R A N S F E R E N C I A'
|
|
Case "1,2"
|
|
Dim Saldo As Decimal = GvRow.FCLabel("LtlSaldo").Text.Replace("$", "").ToDecimal
|
|
GvRow.FCTextBox("TxtAmpliacion").Attributes.Add("onKeyUp ", $"Transferencia({Index},'A');")
|
|
GvRow.FCTextBox("TxtReduccion").Attributes.Add("onKeyUp ", $"this.value = minmax(this.value, 0, {Saldo});Transferencia({Index},'R');")
|
|
End Select
|
|
End If
|
|
Next
|
|
UpGvClasificaciones.Update()
|
|
End Sub
|
|
#End Region
|
|
|
|
Private Function ValidaDatos() As Boolean
|
|
Dim CvePresupuesto = DdlPresupuesto.SelectedValue.ToEntero
|
|
If CvePresupuesto <= 0 Then
|
|
Alert("Seleccione un Presupuesto.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
If String.IsNullOrEmpty(TxtJustificion.Text) Then
|
|
Alert("El campo 'Justificación' no puede estar vacío.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
If String.IsNullOrEmpty(TxtFecha.Text) Then
|
|
Alert("El campo 'Fecha' no puede estar vacío.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
|
|
If ValidaDatos() Then
|
|
Dim CvePresupuesto = DdlPresupuesto.SelectedValue.ToEntero
|
|
Dim Tipo = DdlTipo.SelectedValue
|
|
Dim Justificacion = TxtJustificion.Text
|
|
Dim Fecha = TxtFecha.Text.ToDate
|
|
|
|
Dim TieneError = False
|
|
Dim ObjPresu As New ClsContratos
|
|
ObjPresu.IniciaTransacSQL()
|
|
|
|
For Each GvRow As GridViewRow In GvPresupuestos.Rows
|
|
If GvRow.RowType = DataControlRowType.DataRow Then
|
|
Dim CvePresupuestoDetalle = GvRow.DataKey("CvePresupuestoDetalle").ToEntero
|
|
Dim CveCompra = -1
|
|
If CvePresupuestoDetalle > 0 Then
|
|
|
|
Select Case Tipo
|
|
'A M P L I A C I O N
|
|
Case "1"
|
|
Dim Ampliacion = GvRow.FCTextBox("TxtAmpliacion").Text.ToDecimal
|
|
If Ampliacion > 0 Then
|
|
TieneError = Not ObjPresu.AddPresupuestoMovimiento(CvePresupuestoDetalle, CveCompra, 1, Ampliacion, Fecha, Justificacion)
|
|
End If
|
|
'R E D U C C I O N
|
|
Case "2"
|
|
Dim Reduccion = GvRow.FCTextBox("TxtReduccion").Text.ToDecimal
|
|
If Reduccion > 0 Then
|
|
TieneError = Not ObjPresu.AddPresupuestoMovimiento(CvePresupuestoDetalle, CveCompra, 2, Reduccion, Fecha, Justificacion)
|
|
End If
|
|
'T R A N S F E R E N C I A'
|
|
Case "1,2"
|
|
Dim Ampliacion = GvRow.FCTextBox("TxtAmpliacion").Text.ToDecimal
|
|
If Ampliacion > 0 Then
|
|
TieneError = Not ObjPresu.AddPresupuestoMovimiento(CvePresupuestoDetalle, CveCompra, 1, Ampliacion, Fecha, Justificacion)
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
Dim Reduccion = GvRow.FCTextBox("TxtReduccion").Text.ToDecimal
|
|
If Reduccion > 0 Then
|
|
TieneError = Not ObjPresu.AddPresupuestoMovimiento(CvePresupuestoDetalle, CveCompra, 2, Reduccion, Fecha, Justificacion)
|
|
End If
|
|
End If
|
|
|
|
End Select
|
|
|
|
End If
|
|
If TieneError Then
|
|
Exit For
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
If TieneError Then
|
|
ObjPresu.RollBack()
|
|
Alert("Ocurrió un error al guardar los datos.", TipoMensaje.MsgError)
|
|
Else
|
|
ObjPresu.Commit()
|
|
Alert("Se guardaron los datos correctamente.")
|
|
End If
|
|
ObjPresu.Dispose()
|
|
|
|
End If
|
|
End Sub
|
|
End Class
|