601 lines
25 KiB
VB.net
601 lines
25 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
|
|
Partial Class Contratos_Presupuestos
|
|
Inherits ClsPaginas
|
|
|
|
#Region "P R O P I E D A D E S"
|
|
|
|
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 EstatusActual() As Integer
|
|
Get
|
|
Return ViewState("EstatusActual").ToString.ToEntero
|
|
End Get
|
|
Set(ByVal value As Integer)
|
|
ViewState("EstatusActual") = value
|
|
End Set
|
|
End Property
|
|
Public ReadOnly Property EstatusFinal() As Integer
|
|
Get
|
|
Return 2
|
|
End Get
|
|
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
|
|
CvePresupuesto = IfNull(Request("CvePresupuesto"), -1).ToString.ToEntero
|
|
|
|
If CvePresupuesto > 0 Then
|
|
CargaDatos()
|
|
Else
|
|
InicializaValores()
|
|
CargaClasificaciones()
|
|
End If
|
|
UpAcciones.Update()
|
|
UpDatosG.Update()
|
|
UpGvClasificaciones.Update()
|
|
UpIndicadores.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()
|
|
TxtFechaI.Text = $"01/01/{Now.Year}"
|
|
TxtFechaF.Text = Now.ToShortDateString
|
|
CargaProyecto()
|
|
CargaMoneda()
|
|
End Sub
|
|
Private Sub CargaMoneda()
|
|
'DdlMoneda.DataSource = GlobalDTMonedas()
|
|
'DdlMoneda.DataBind()
|
|
End Sub
|
|
Private Sub CargaProyecto()
|
|
DdlProyecto.Items.Clear()
|
|
DdlProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa).FiltraParametros("", "", {"CveProyecto", "Proyecto"})
|
|
DdlProyecto.DataBind()
|
|
DdlProyecto.Items.Insert(0, New ListItem("Seleccione un Proyecto", "-1"))
|
|
End Sub
|
|
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged
|
|
CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero)
|
|
End Sub
|
|
Protected Sub CargaSubProyectoContrato(CveProyecto As Integer)
|
|
DdlSubProyecto.Items.Clear()
|
|
If CveProyecto > 0 Then
|
|
DdlSubProyecto.DataSource = GlobalDTSubProyectos(CveProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubproyecto", "SubProyecto2"})
|
|
DdlSubProyecto.DataBind()
|
|
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione un SubProyecto", "-1"))
|
|
Else
|
|
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione un SubProyecto", "-1"))
|
|
End If
|
|
End Sub
|
|
Private Sub CargaClasificaciones()
|
|
Dim ObjPres As New ClsContratos
|
|
If ObjPres.GetPresupuestosDetalle(-1, -1, UsuarioActual.CveEmpresa) Then
|
|
DtClasificaciones = ObjPres.DtResultados
|
|
End If
|
|
ObjPres.Dispose()
|
|
|
|
GvPresupuestos.DataSource = DtClasificaciones
|
|
GvPresupuestos.DataBind()
|
|
End Sub
|
|
Protected Sub GvPresupuestos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPresupuestos.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
Dim TipoGasto = e.Row.DBCampo("TipoGasto")
|
|
Select Case e.Row.DBCampo("TipoTotal").ToEntero
|
|
Case 1
|
|
e.Row.CssClass = "SubTotales"
|
|
e.Row.FCLabel("LblImporteClasiTotal").Visible = True
|
|
e.Row.FCLabel("LblImporteClasiTotal").CssClass = $"LabelGVTotal{TipoGasto}"
|
|
e.Row.FCLabel("LblImporteClasiTotal").Text = String.Format("$ {0:C}", e.Row.DBCampo("Importe").FormatoNumero)
|
|
e.Row.FCTextBox("TxtImporteClasi").Visible = False
|
|
e.Row.FCTextBox("TxtObservacion").Visible = False
|
|
Case 2
|
|
e.Row.CssClass = "Totales"
|
|
e.Row.FCLabel("LblImporteClasiTotal").Visible = True
|
|
e.Row.FCLabel("LblImporteClasiTotal").CssClass = "LabelGVTotal"
|
|
e.Row.FCLabel("LblImporteClasiTotal").Text = String.Format("$ {0:C}", e.Row.DBCampo("Importe").FormatoNumero)
|
|
e.Row.FCTextBox("TxtImporteClasi").Visible = False
|
|
e.Row.FCTextBox("TxtObservacion").Visible = False
|
|
Case 3
|
|
Dim Importe = e.Row.FCTextBox("TxtImporteClasi").Text.ToDouble
|
|
e.Row.FCTextBox("TxtImporteClasi").Text = Importe.FormatoNumero()
|
|
e.Row.FCTextBox("TxtImporteClasi").CssClass = $"form-control input-sm sumaGV txt{TipoGasto}"
|
|
e.Row.FCTextBox("TxtImporteClasi").Attributes.Add("onKeyUp ", $"calculaTotal();calculaTotalTipoGasto('{TipoGasto}');")
|
|
End Select
|
|
End If
|
|
If e.Row.RowType = DataControlRowType.Footer Then
|
|
Dim Importe = DtClasificaciones.SUM("Importe", "CveAgrupador IS NOT NULL")
|
|
e.Row.FCLabel("LblTotal").Text = String.Format("{0:C}", Importe)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "C A R G A - D A T O S"
|
|
Private Sub CargaDatos()
|
|
CargaMoneda()
|
|
CargaProyecto()
|
|
EstatusActual = -1
|
|
|
|
If CvePresupuesto > 0 Then
|
|
Dim ObjContrato As New ClsContratos()
|
|
If ObjContrato.GetPresupuestos(CvePresupuesto, "-1", -1, -1, -1, UsuarioActual.CveEmpresa) Then
|
|
|
|
If ObjContrato.DtResultados.Rows.Count = 1 Then
|
|
|
|
Dim DrContrato = ObjContrato.DtResultados.Copy(0)
|
|
If DrContrato IsNot Nothing Then
|
|
|
|
Dim ImporteOriginal = DrContrato("Importe").ToString.ToDecimal
|
|
'Dim ImporteVigente = DrContrato("ImporteVigente").ToString.ToDecimal
|
|
'Dim CveMoneda = DrContrato("CveMoneda").ToString.ToEntero
|
|
|
|
'DdlMoneda.SelectedValueExist(CveMoneda)
|
|
|
|
'HdnTotal.Value = ImporteVigente.FormatoNumero
|
|
|
|
|
|
'LblTotal.Text = String.Format("{0:C}", ImporteVigente)
|
|
TxtPresupuesto.Text = DrContrato("Nombre").ToString
|
|
TxtDescripcion.Text = DrContrato("Observacion").ToString
|
|
|
|
EstatusActual = DrContrato("Estatus").ToString.ToEntero
|
|
|
|
Dim CveProyecto = DrContrato("CveProyecto").ToString.ToEntero
|
|
Dim CveSubProyecto = DrContrato("CveSubProyecto").ToString.ToEntero
|
|
|
|
Dim EstatusTexto = DrContrato("EstatusTexto").ToString
|
|
|
|
LtlEstatus.Text = EstatusTexto
|
|
|
|
DdlProyecto.SelectedValueExist(CveProyecto)
|
|
CargaSubProyectoContrato(CveProyecto)
|
|
|
|
DdlSubProyecto.SelectedValueExist(CveSubProyecto)
|
|
TxtFechaI.Text = DrContrato("FechaInicio").ToString.ToDate.ToString("dd/MM/yyyy")
|
|
TxtFechaF.Text = DrContrato("FechaFin").ToString.ToDate.ToString("dd/MM/yyyy")
|
|
DivIndicadores.Visible = True
|
|
End If
|
|
|
|
If ObjContrato.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then
|
|
DtClasificaciones = ObjContrato.DtResultados
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
If ObjContrato.GetPresupuestosRep(CvePresupuesto, -1, 1, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero,
|
|
DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, -1) Then
|
|
If ObjContrato.DtResultados.Rows.Count > 0 Then
|
|
Dim DrRep = ObjContrato.DtResultados.Copy(0)
|
|
Dim Importe = DrRep("Autorizado").ToString.ToDecimal.FormatoNumero
|
|
Dim Ejercido = DrRep("Ejercido").ToString.ToDecimal.FormatoNumero
|
|
Dim PorEjercer = DrRep("PorEjercer").ToString.ToDecimal.FormatoNumero
|
|
|
|
|
|
Dim EjercidoPorcentaje = DrRep("EjercidoPorcentaje").ToString.ToEntero
|
|
Dim PorEjercerPorcentaje = DrRep("PorEjercerPorcentaje").ToString.ToEntero
|
|
|
|
LtlAutorizado.Text = Importe
|
|
LtlEjercido.Text = Ejercido
|
|
LtlPorEjercer.Text = PorEjercer
|
|
|
|
PBEjercido.Style.Remove("width")
|
|
PBEjercido.Style.Add("width", $"{EjercidoPorcentaje.ToString}%")
|
|
|
|
PBPorEjercer.Style.Remove("width")
|
|
PBPorEjercer.Style.Add("width", $"{PorEjercerPorcentaje.ToString}%")
|
|
|
|
End If
|
|
End If
|
|
ObjContrato.Dispose()
|
|
|
|
If DtClasificaciones IsNot Nothing Then
|
|
GvPresupuestos.DataSource = DtClasificaciones
|
|
GvPresupuestos.DataBind()
|
|
End If
|
|
|
|
DeshabilitaControles(EstatusActual)
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub DeshabilitaControles(EstatusActual As Integer)
|
|
If EstatusActual = EstatusFinal Then
|
|
'DdlMoneda.Enabled = False
|
|
GvPresupuestos.Enabled = False
|
|
TxtPresupuesto.Enabled = False
|
|
TxtDescripcion.Enabled = False
|
|
DdlProyecto.Enabled = False
|
|
DdlSubProyecto.Enabled = False
|
|
|
|
TxtFechaI.Enabled = False
|
|
TxtFechaF.Enabled = False
|
|
|
|
CEFechaI.Enabled = False
|
|
CEFecha.Enabled = False
|
|
|
|
ImgFechaI.Visible = False
|
|
ImgFechaF.Visible = False
|
|
|
|
BtnGuardar.Enabled = False
|
|
LnkAutorizar.Visible = False
|
|
|
|
HlModificar.Visible = True
|
|
HlModificar.NavigateUrl = $"/Contratos/ModificarPresupuesto.aspx?CvePresupuesto={CvePresupuesto}"
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "G U A R D A R "
|
|
Private Function ValidaDatos() As Boolean
|
|
If String.IsNullOrEmpty(TxtPresupuesto.Text.Trim) Then
|
|
Alert("Debe escirbir un nombre al presupuesto", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
If String.IsNullOrEmpty(TxtDescripcion.Text.Trim) Then
|
|
Alert("Debe escribir una observación.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
If String.IsNullOrEmpty(TxtFechaI.Text.Trim) Then
|
|
Alert("Debe seleccionar un Fecha Inicio.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
If String.IsNullOrEmpty(TxtFechaF.Text.Trim) Then
|
|
Alert("Debe seleccionar una Fecha Fin.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
If DdlSubProyecto.SelectedValue.ToEntero <= 0 Then
|
|
|
|
Alert("Debe seleccionar un Sub Proyecto.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
Dim FechaI As Date = TxtFechaI.Text.ToDate
|
|
Dim FechaF As Date = TxtFechaF.Text.ToDate
|
|
|
|
If FechaF < FechaI Then
|
|
|
|
Alert("La Fecha Fin no puede ser menor que la Fecha Inicio.", TipoMensaje.MsgAdvertencia)
|
|
Return False
|
|
End If
|
|
|
|
'If HdnTotal.Value.ToDouble() <= 0 Then
|
|
' Alert("El Total no puede ser igual o menor que 0.", TipoMensaje.MsgAdvertencia)
|
|
' Return False
|
|
'End If
|
|
|
|
Return True
|
|
End Function
|
|
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
|
|
If ValidaDatos() Then
|
|
If CvePresupuesto > 0 Then
|
|
If ActualizarPresupuesto() Then
|
|
Dim Liga = $"document.location.href=""/Contratos/CatPresupuestos.aspx"""
|
|
|
|
Alert("El Presupuesto se actualizo correctamente.", TipoMensaje.MsgInformacion, Liga)
|
|
Else
|
|
Alert("Ocurrió un error al actualizar el presupuesto", TipoMensaje.MsgError)
|
|
End If
|
|
Else
|
|
AgregarPresupuesto()
|
|
End If
|
|
End If
|
|
|
|
UpAcciones.Update()
|
|
UpDatosG.Update()
|
|
UpGvClasificaciones.Update()
|
|
UpIndicadores.Update()
|
|
End Sub
|
|
Private Function ActualizarPresupuesto() As Boolean
|
|
Dim Retorno As Boolean = False
|
|
Dim Nombre = TxtPresupuesto.Text.Trim
|
|
Dim Observacion = TxtDescripcion.Text.Trim
|
|
Dim CveProyecto = DdlProyecto.SelectedValue.ToEntero
|
|
Dim FechaI = TxtFechaI.Text.ToDate
|
|
Dim FechaF = TxtFechaF.Text.ToDate
|
|
Dim FechaIng = Now
|
|
Dim CveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero
|
|
Dim Archivo = ""
|
|
Dim Estatus = 1
|
|
Dim TieneError = False
|
|
|
|
Dim ObjCont As New ClsContratos
|
|
ObjCont.IniciaTransacSQL()
|
|
TieneError = Not ObjCont.UpdatePresupuesto(CvePresupuesto, Nombre, Observacion, CveSubProyecto, FechaI, FechaF, Estatus, Archivo, Now, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
If Not TieneError Then
|
|
|
|
For Each GvRow As GridViewRow In GvPresupuestos.Rows
|
|
If GvRow.RowType = DataControlRowType.DataRow Then
|
|
Dim CveAgrupador = GvRow.DataKey("CveAgrupador").ToEntero
|
|
Dim Tipo As Integer = GvRow.DataKey("Tipo").ToEntero
|
|
|
|
Dim CveTipoGasto = -1
|
|
Dim CveClasificacion As Integer = -1
|
|
Dim CveConceptoContableNom As Integer = -1
|
|
|
|
If Tipo = 1 Then
|
|
CveClasificacion = CveAgrupador
|
|
CveTipoGasto = GvRow.DataKey("CveTipoGasto").ToEntero
|
|
End If
|
|
|
|
If Tipo = 2 Then
|
|
CveConceptoContableNom = CveAgrupador
|
|
End If
|
|
|
|
|
|
Dim CvePresupuestoDetalle = GvRow.DataKey("CvePresupuestoDetalle").ToEntero
|
|
Dim Importe = GvRow.FCTextBox("TxtImporteClasi").Text.ToDecimal
|
|
Dim Obs = GvRow.FCTextBox("TxtObservacion").Text.Trim
|
|
|
|
'ACTUALIZA EL REGISTRO EXISTENTE
|
|
If CvePresupuestoDetalle > 0 Then
|
|
|
|
TieneError = Not ObjCont.UpdatePresupuestosDetalle(CvePresupuestoDetalle, CveClasificacion, Importe, Obs, CveConceptoContableNom:=CveConceptoContableNom)
|
|
If TieneError Then
|
|
Exit For
|
|
End If
|
|
|
|
'AGREGA LA CLASIFICACION SI NO EXISTE EN EN EL DT DETALLE
|
|
Else
|
|
If Importe > 0 And CveAgrupador > 0 Then
|
|
TieneError = Not ObjCont.AddPresupuestosDetalle(CvePresupuesto, CveClasificacion, CveTipoGasto, Importe, Obs, CveConceptoContableNom:=CveConceptoContableNom)
|
|
If TieneError Then
|
|
Exit For
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
|
|
If TieneError Then
|
|
ObjCont.RollBack()
|
|
Retorno = False
|
|
Else
|
|
ObjCont.Commit()
|
|
Retorno = True
|
|
End If
|
|
End If
|
|
ObjCont.Dispose()
|
|
Return Retorno
|
|
End Function
|
|
Private Sub AgregarPresupuesto()
|
|
Dim Nombre = TxtPresupuesto.Text.Trim
|
|
Dim Observacion = TxtDescripcion.Text.Trim
|
|
Dim CveProyecto = DdlProyecto.SelectedValue.ToEntero
|
|
Dim FechaI = TxtFechaI.Text.ToDate
|
|
Dim FechaF = TxtFechaF.Text.ToDate
|
|
Dim FechaIng = Now
|
|
Dim CveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero
|
|
Dim Archivo = ""
|
|
Dim TieneError = False
|
|
Dim Estatus = 1
|
|
|
|
Dim ObjCont As New ClsContratos
|
|
ObjCont.IniciaTransacSQL()
|
|
|
|
If ObjCont.GetContratosEstatus(UsuarioActual.CveEmpresa) Then
|
|
|
|
Dim CvePresupuestoNuevo = ObjCont.AddPresupuesto(Nombre, Observacion, CveSubProyecto, FechaI, FechaF, Estatus, Archivo, Now, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
If CvePresupuestoNuevo > 0 Then
|
|
Dim ImporteClasi = 0.0D
|
|
Dim ObsDetalle = ""
|
|
|
|
For Each GvRow As GridViewRow In GvPresupuestos.Rows
|
|
If GvRow.RowType = DataControlRowType.DataRow Then
|
|
ImporteClasi = GvRow.FCTextBox("TxtImporteClasi").Text.ToDecimal
|
|
|
|
ObsDetalle = GvRow.FCTextBox("TxtObservacion").Text.Trim
|
|
|
|
Dim CveAgrupador = GvRow.DataKey("CveAgrupador").ToEntero
|
|
Dim Tipo As Integer = GvRow.DataKey("Tipo").ToEntero
|
|
|
|
Dim CveClasificacion As Integer = -1
|
|
Dim CveConceptoContableNom As Integer = -1
|
|
Dim CveTipoGasto As Integer = -1
|
|
|
|
If Tipo = 1 Then
|
|
CveClasificacion = CveAgrupador
|
|
CveTipoGasto = GvRow.DataKey("CveTipoGasto").ToEntero
|
|
End If
|
|
|
|
If Tipo = 2 Then
|
|
CveConceptoContableNom = CveAgrupador
|
|
End If
|
|
|
|
If CveClasificacion > 0 Then
|
|
If ImporteClasi > 0 Then
|
|
TieneError = Not ObjCont.AddPresupuestosDetalle(CvePresupuestoNuevo, CveClasificacion, CveTipoGasto, ImporteClasi, ObsDetalle, CveConceptoContableNom:=CveConceptoContableNom)
|
|
If TieneError Then
|
|
Exit For
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
Me.CvePresupuesto = CvePresupuestoNuevo
|
|
End If
|
|
|
|
End If
|
|
|
|
If TieneError Then
|
|
ObjCont.RollBack()
|
|
ObjCont.Dispose()
|
|
Alert("Ocurrió un error al agregar el presupuesto.", TipoMensaje.MsgError)
|
|
Else
|
|
ObjCont.Commit()
|
|
ObjCont.Dispose()
|
|
Dim Liga = $"document.location.href=""/Contratos/CatPresupuestos.aspx"""
|
|
|
|
Alert("Se agregó el presupuesto correctamente.", TipoMensaje.MsgInformacion, Liga)
|
|
End If
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
|
|
Protected Sub LnkAutorizar_Click(sender As Object, e As EventArgs) Handles LnkAutorizar.Click
|
|
If ValidaDatos() Then
|
|
If ActualizarPresupuesto() Then
|
|
If EstatusActual <> EstatusFinal Then
|
|
Dim ObjPres As New ClsContratos
|
|
ObjPres.IniciaTransacSQL()
|
|
Dim TieneError As Boolean = False
|
|
|
|
TieneError = Not ObjPres.UpdateEstatusPresupuesto(CvePresupuesto, EstatusFinal)
|
|
'If ObjPres.UpdateEstatusPresupuesto(CvePresupuesto, EstatusFinal) Then
|
|
' If ObjPres.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then
|
|
' DtClasificaciones = ObjPres.DtResultados
|
|
' End If
|
|
|
|
' If DtClasificaciones IsNot Nothing Then
|
|
' Dim DtDetalle = DtClasificaciones.FiltraParametros("CvePresupuestoDetalle > 0", DistinctColumns:={"CvePresupuestoDetalle", "ImporteVigente"})
|
|
' If DtDetalle.Rows.Count > 0 Then
|
|
|
|
' For Each Dr As DataRow In DtDetalle.Rows
|
|
' Dim CvePresupuestoDetalle As Integer = Dr("CvePresupuestoDetalle").ToString.ToEntero
|
|
' Dim Importe As Decimal = Dr("ImporteVigente").ToString.ToDecimal
|
|
' Dim Fecha = Now
|
|
' Dim Tipo = 1
|
|
' Dim CveCompra As Integer = -1
|
|
' Dim Justificacion = "-1"
|
|
' TieneError = Not ObjPres.AddPresupuestoMovimiento(CvePresupuesto, CveCompra, Tipo, Importe, Fecha, Justificacion)
|
|
' If TieneError Then
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' End If
|
|
' End If
|
|
'Else
|
|
' TieneError = True
|
|
'End If
|
|
|
|
If TieneError Then
|
|
ObjPres.RollBack()
|
|
Alert("Ocurrió un error al autorizar el presupuesto.", TipoMensaje.MsgError)
|
|
Else
|
|
ObjPres.Commit()
|
|
Alert("Se autorizó el presupuesto correctamente.")
|
|
CargaDatos()
|
|
DeshabilitaControles(EstatusFinal)
|
|
End If
|
|
ObjPres.Dispose()
|
|
Else
|
|
Alert("El presupuesto ya esta autorizado", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
Else
|
|
Alert("Ocurrió un error al autorizar el presupuesto. No se pudieron guardar los datos", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
Else
|
|
Alert("Faltan campos por corregir", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
UpAcciones.Update()
|
|
UpDatosG.Update()
|
|
UpGvClasificaciones.Update()
|
|
UpIndicadores.Update()
|
|
End Sub
|
|
|
|
Protected Sub LnkCargaPresupuesto_Click(sender As Object, e As EventArgs) Handles LnkCargaPresupuesto.Click
|
|
RegistraScript("$('#ModalCargaPresupuesto').modal();")
|
|
End Sub
|
|
|
|
Protected Sub LnkFormatoPresup_Click(sender As Object, e As EventArgs) Handles LnkFormatoPresup.Click
|
|
GvPresupuestos.ExportToExcelX("Plantilla Presupuesto " + DateTime.Now.ToShortDateString)
|
|
End Sub
|
|
|
|
Protected Sub LnkCargarPresup_Click(sender As Object, e As EventArgs) Handles LnkCargarPresup.Click
|
|
If TxtCargarPresup.getfiles().Archivos.Count > 0 Then
|
|
Dim file As Archivo = TxtCargarPresup.getfiles().Archivos(0)
|
|
|
|
Dim Directorio As String = Server.MapPath("~") & file.path
|
|
|
|
Dim Tipo As String = If(file.Extension.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
|
|
CargarArchivo(Directorio, file.filename, Tipo)
|
|
Else
|
|
Alert("No existe el archivo. Favor de subir un archivo CSV o Excel a la plataforma.", TipoMensaje.MsgError)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
|
|
|
|
Dim DTExcel As New DataTable
|
|
Dim ErrorArchivo = False
|
|
Dim ErrorExcel = False
|
|
|
|
DTExcel = ReadExcelFile(Ruta + FileName, True)
|
|
|
|
If Not ErrorArchivo Then
|
|
If Not DTExcel.Columns(0).ColumnName = "Clasificación" Then
|
|
Alert("El nombre de la primera columna debe ser 'Clasificación'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not DTExcel.Columns(1).ColumnName = "Importe" Then
|
|
Alert("El nombre de la segunda columna debe ser 'Importe'.Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not DTExcel.Columns(2).ColumnName = "Observaciones" Then
|
|
Alert("El nombre de la tercera columna debe ser 'Observaciones'.Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
If Not DTExcel.Columns(3).ColumnName = "Tipo Gasto" Then
|
|
Alert("El nombre de la cuarta columna debe ser 'Tipo Gasto'. Favor de corregirlo", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
End If
|
|
|
|
Try
|
|
Dim txtImporte As TextBox = Nothing
|
|
Dim txtObservacion As TextBox = Nothing
|
|
Dim i As Integer = 0
|
|
For Each row As GridViewRow In GvPresupuestos.Rows
|
|
If (i < DTExcel.Rows.Count) Then
|
|
txtImporte = row.FCTextBox("TxtImporteClasi")
|
|
txtObservacion = row.FCTextBox("TxtObservacion")
|
|
txtImporte.Text = DTExcel.Rows(i).Field(Of String)(1).ToString
|
|
txtObservacion.Text = DTExcel.Rows(i).Field(Of String)(2).ToString
|
|
i += 1
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
GuardaLog($"Ocurrio un error al cargar archivo Excel en Contratos/Presupuestos.aspx - {ex.ToString()}")
|
|
Alert("Se produjo un error al ingresar los datos. Favor de contactar a soporte.", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End Try
|
|
|
|
RegistraScript("$('#ModalCargaPresupuesto').modal('hide');calculaTotal()")
|
|
UpGvClasificaciones.Update()
|
|
End Sub
|
|
|
|
End Class
|