Files
SIG/AC/RegComprometido.aspx.vb
2023-10-09 11:55:07 -07:00

655 lines
30 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class AC_RegComprometido
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtDetalle As DataTable
Get
DtDetalle = DirectCast(ViewState("DtDetalle"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtDetalle") = value
End Set
End Property
Private Property DtDetallePagar As DataTable
Get
DtDetallePagar = DirectCast(ViewState("DtDetallePagar"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtDetallePagar") = value
End Set
End Property
Private Property DtPresupuestos As DataTable
Get
DtPresupuestos = DirectCast(ViewState("DtPresupuestos"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtPresupuestos") = value
End Set
End Property
Private Property Opc As String
Get
Opc = ViewState("Opc").ToString
End Get
Set(value As String)
ViewState("Opc") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Opc = IfNull(Request("Opc"), "Otro").ToString
ViewState("Orden") = ""
ViewState("OrdenPagar") = ""
If Opc.ToUpper = "NOM" Then
LbTitulo.Text = "Comprometido Nómina"
Else
LbTitulo.Text = "Comprometido Otros"
End If
Dim FechaI = $"01/01/{UsuarioActual.Empresa.EjercicioActual.ToString}"
Dim FechaF = $"31/12/{UsuarioActual.Empresa.EjercicioActual.ToString}"
TxtFechaComprometido.Text = FechaI
RVFechaComprometido.MinimumValue = FechaI
RVFechaComprometido.MaximumValue = FechaF
CEFechaComprometido.StartDate = FechaI.ToDate
CEFechaComprometido.EndDate = FechaF.ToDate
CargaPresupuestos()
CargaMeta()
TxtImporte.Enabled = False
CreaDTDetalles()
BtnAgregar.Enabled = False
'CargaMetaPagar()
'TxtImportePagar.Enabled = False
'CreaDTDetallesPagar()
'BtnAgregarPagar.Enabled = False
LtEjercicio.Text = UsuarioActual.Empresa.EjercicioActual.ToString
End If
End Sub
Private Sub CargaPresupuestos()
Dim AC As New ClsAC
If AC.GetPresupuestoEgresos(-1, True, UsuarioActual.Empresa.EjercicioActual, UsuarioActual.CveEmpresa) Then
DtPresupuestos = AC.DtResultados.Copy
Else
Alert("Ocurrio un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError)
End If
AC.Dispose()
If Opc.ToUpper = "NOM" Then
DtPresupuestos = DtPresupuestos.FiltraParametros("CodigoCOG like '1%'")
Else
DtPresupuestos = DtPresupuestos.FiltraParametros("NOT CodigoCOG like '1%'")
End If
End Sub
#Region "C O M P R O M E T E R"
#Region "CARGA COMBOS EN CASCADA"
Private Sub CargaMeta()
DdlMeta.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"})
DdlMeta.DataBind()
DdlMeta.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End Sub
Protected Sub CargaUnidadAdministrativa(sender As Object, e As EventArgs)
DdlUnidadAdministrativa.Items.Clear()
DdlFuenteFinanciamiento.Items.Clear()
DdlClasificacionOG.Items.Clear()
DdlTipoGasto.Items.Clear()
LtDisponible.Text = "$"
TxtImporte.Enabled = False
If DdlMeta.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0}", DdlMeta.SelectedValue.ToString)
DdlUnidadAdministrativa.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"})
DdlUnidadAdministrativa.DataBind()
DdlUnidadAdministrativa.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaFuenteFinanciamiento(sender As Object, e As EventArgs)
DdlFuenteFinanciamiento.Items.Clear()
DdlClasificacionOG.Items.Clear()
DdlTipoGasto.Items.Clear()
LtDisponible.Text = "$"
TxtImporte.Enabled = False
If DdlUnidadAdministrativa.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1}", DdlMeta.SelectedValue.ToString, DdlUnidadAdministrativa.SelectedValue.ToString)
DdlFuenteFinanciamiento.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"})
DdlFuenteFinanciamiento.DataBind()
DdlFuenteFinanciamiento.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaClasificacionOG(sender As Object, e As EventArgs)
DdlClasificacionOG.Items.Clear()
DdlTipoGasto.Items.Clear()
LtDisponible.Text = "$"
TxtImporte.Enabled = False
If DdlFuenteFinanciamiento.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1} and CveFuenteFinanciamiento= {2}", DdlMeta.SelectedValue.ToString, DdlUnidadAdministrativa.SelectedValue.ToString, DdlFuenteFinanciamiento.SelectedValue.ToString)
DdlClasificacionOG.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", "CodigoClasificacion", {"CveClasificacion", "CodigoClasificacion"})
DdlClasificacionOG.DataBind()
DdlClasificacionOG.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaTipoGasto(sender As Object, e As EventArgs)
DdlTipoGasto.Items.Clear()
LtDisponible.Text = "$"
TxtImporte.Enabled = False
If DdlClasificacionOG.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1} and CveFuenteFinanciamiento= {2} and CveClasificacion= {3}", DdlMeta.SelectedValue.ToString, DdlUnidadAdministrativa.SelectedValue.ToString, DdlFuenteFinanciamiento.SelectedValue.ToString, DdlClasificacionOG.SelectedValue.ToString)
DdlTipoGasto.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"})
DdlTipoGasto.DataBind()
DdlTipoGasto.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaDisponible(sender As Object, e As EventArgs)
CargaDisponible()
End Sub
Protected Sub CargaDisponible()
Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa)
Dim Filtro As New StringBuilder
Dim disponible As Double
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1} and CveFuenteFinanciamiento= {2} and CveClasificacion= {3} and CveTipoGasto= {4}", DdlMeta.SelectedValue.ToString, DdlUnidadAdministrativa.SelectedValue.ToString, DdlFuenteFinanciamiento.SelectedValue.ToString, DdlClasificacionOG.SelectedValue.ToString, DdlTipoGasto.SelectedValue.ToString)
For Each dr As DataRow In DtPresupuestos.FiltraParametros(Filtro.ToString).Rows
disponible = ContPaq.GetSaldoCuenta(dr("IdCuentaPorEjercer").ToString.ToEntero, 0, UsuarioActual.Empresa.EjercicioActual)
HdnCuentaPorEjercer.Value = dr("IdCuentaPorEjercer").ToString
HdnCuentaComprometido.Value = dr("IdCuentaComprometido").ToString
Next
Filtro.Clear()
Filtro.AppendFormat("IdCuentaPorEjercer= {0}", HdnCuentaPorEjercer.Value)
For Each dr As DataRow In DtDetalle.FiltraParametros(Filtro.ToString).Rows
disponible -= dr("Importe").ToString.ToDouble
Next
If disponible <> 0 Then
TxtImporte.Enabled = True
BtnAgregar.Enabled = True
End If
LtDisponible.Text = disponible.FormatoNumero()
'UpAddComprometer.Update()
ContPaq.Dispose()
End Sub
#End Region
Protected Sub BtnAgregar_click(sender As Object, e As EventArgs)
If DtDetalle IsNot Nothing Then
If LtDisponible.Text.ToDouble >= TxtImporte.Text.ToDouble Then
Dim dr As DataRow = DtDetalle.NewRow
dr("Meta") = DdlMeta.SelectedItem.ToString
dr("UnidadAdministrativa") = DdlUnidadAdministrativa.SelectedItem.ToString
dr("FuenteFinanciamiento") = DdlFuenteFinanciamiento.SelectedItem.ToString
dr("ClasificadorOG") = DdlClasificacionOG.SelectedItem.ToString
dr("TipoGasto") = DdlTipoGasto.SelectedItem.ToString
dr("Disponible") = LtDisponible.Text.ToDouble
dr("Importe") = TxtImporte.Text.ToDouble
dr("IdCuentaPorEjercer") = HdnCuentaPorEjercer.Value
dr("IdCuentaComprometido") = HdnCuentaComprometido.Value
DtDetalle.Rows.Add(dr)
CargaDatosComprometer()
Dim total As Double = LbTotal.Text.ToDouble
LbTotal.Text = (total + dr("Importe").ToString.ToDouble).ToString.FormatoNumero
DdlMeta.SelectedIndex = -1
DdlUnidadAdministrativa.Items.Clear()
DdlFuenteFinanciamiento.Items.Clear()
DdlClasificacionOG.Items.Clear()
DdlTipoGasto.Items.Clear()
LtDisponible.Text = "$"
TxtImporte.Text = ""
TxtImporte.Enabled = False
BtnAgregar.Enabled = False
'UpAddComprometer.Update()
Else
Alert("El importe supera el capital disponible. Por favor de revisar y modificar", TipoMensaje.MsgAdvertencia)
End If
End If
End Sub
Protected Sub BtnGuardar_click(sender As Object, e As EventArgs)
If DtDetalle.Rows.Count > 0 Then
Dim TieneError As Boolean = False
Dim IDPoliza As Integer
Dim Conta As New ClsContPAQi(UsuarioActual.Empresa)
Conta.IniciaTransacSQL()
Dim Total As Double = LbTotal.Text.ToDouble
IDPoliza = Conta.AddPoliza(4, TxtConcepto.Text.Trim, Total, Total, UsuarioActual.CveUsuario, TxtFechaComprometido.Text.ToDate)
If IDPoliza > 0 Then
For Each dr As DataRow In DtDetalle.Rows
Dim Importe = dr("Importe").ToString.ToDouble
If Conta.AddMovimiento(IDPoliza, dr("IdCuentaPorEjercer").ToString.ToEntero, True, Importe, TxtConcepto.Text.Trim, TxtConcepto.Text.Trim, 0, TxtFechaComprometido.Text.ToDate, "") Then
'actualizo el idcuenta del presupuesto
If Not Conta.AddMovimiento(IDPoliza, dr("IdCuentaComprometido").ToString.ToEntero, False, Importe, TxtConcepto.Text.Trim, TxtConcepto.Text.Trim, 0, TxtFechaComprometido.Text.ToDate, "") Then
TieneError = True
Exit For
End If
Else
TieneError = True
Exit For
End If
Next
Else
TieneError = True
End If
If Not TieneError Then
Conta.Commit()
GvD.DataBind()
UpComprometer.Update()
DdlMetaPagar.SelectedValue = "-1"
CargaUnidadAdministrativaPagar(DdlMetaPagar, EventArgs.Empty)
UpPagar.Update()
DtDetalle.Rows.Clear()
LbTotal.Text = "0.00"
Dim Descargas As New StringBuilder
If IDPoliza > 0 Then Descargas.AppendFormat("<a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}""> Poliza</a>", IDPoliza)
Dim Msg As String = String.Format("<br />La poliza se comprometio correctamente.<br /><br /><br />Descargar: {0}", Descargas.ToString) 'TipoMensaje.MsgInformacion
Msg.Alert(Msg, TipoMensaje.MsgInformacion)
Else
Conta.RollBack()
End If
Conta.Dispose()
Else
Alert("No hay registros que guardar", TipoMensaje.MsgInformacion)
End If
End Sub
Protected Sub GvD_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvD.RowDeleting
Dim Filtro As New StringBuilder
Filtro.AppendFormat("IdCuentaPorEjercer= {0} and Importe= {1}", GvD.Rows(e.RowIndex).DataKey("IdCuentaPorEjercer").ToString.ToEntero, GvD.Rows(e.RowIndex).DataKey("Importe").ToString.ToDouble)
Dim dr As DataRow() = DtDetalle.Select(Filtro.ToString)
Dim total As Double = LbTotal.Text.ToDouble
LbTotal.Text = (total - dr(0).Item("Importe").ToString.ToDouble).ToString.FormatoNumero
dr(0).Delete()
If Not LtDisponible.Text = "$" Then
CargaDisponible()
End If
CargaDatosComprometer()
End Sub
Private Sub CreaDTDetalles()
DtDetalle = New DataTable
DtDetalle.Columns.Add("Meta", GetType(String))
DtDetalle.Columns.Add("UnidadAdministrativa", GetType(String))
DtDetalle.Columns.Add("FuenteFinanciamiento", GetType(String))
DtDetalle.Columns.Add("ClasificadorOG", GetType(String))
DtDetalle.Columns.Add("CodigoClasificacion", GetType(String))
DtDetalle.Columns.Add("TipoGasto", GetType(String))
DtDetalle.Columns.Add("Disponible", GetType(Double))
DtDetalle.Columns.Add("Importe", GetType(Double))
DtDetalle.Columns.Add("IdCuentaPorEjercer", GetType(Integer))
DtDetalle.Columns.Add("IdCuentaComprometido", GetType(Integer))
End Sub
#Region "O R D E N A M I E N T O C O M P R O M E T E R"
Private Sub CargaGridComprometer(Orden As String)
If Orden <> String.Empty Then
Dim DV As New DataView(CType(ViewState("DTComprometer"), DataTable), "", Orden, DataViewRowState.CurrentRows)
GvD.DataSource = DV.ToTable()
DV.Dispose()
Else
GvD.DataSource = CType(ViewState("DTComprometer"), DataTable)
End If
GvD.DataBind()
End Sub
Protected Sub CargaDatosComprometer()
ViewState("DTComprometer") = DtDetalle
If ViewState("Orden").ToString() <> String.Empty Then
CargaGridComprometer(ViewState("Orden").ToString())
Else
CargaGridComprometer("")
End If
UpComprometer.Update()
End Sub
Public Sub BtnAgregarComprometer_Click(sender As Object, e As EventArgs)
DdlMeta.SelectedIndex = -1
DdlUnidadAdministrativa.Items.Clear()
DdlFuenteFinanciamiento.Items.Clear()
DdlClasificacionOG.Items.Clear()
DdlTipoGasto.Items.Clear()
LtDisponible.Text = "$"
TxtImporte.Text = ""
TxtImporte.Enabled = False
BtnAgregar.Enabled = False
'UpAddComprometer.Update()
RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarComprometer"))
End Sub
#End Region
#End Region
#Region "P A G A R"
#Region "CARGA COMBOS EN CASCADA"
Private Sub CargaMetaPagar()
DdlMetaPagar.DataSource = DtPresupuestos.FiltraParametros("", DistinctColumns:={"CveProgramaOperativo", "ProgramaOperativo"})
DdlMetaPagar.DataBind()
DdlMetaPagar.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End Sub
Protected Sub CargaUnidadAdministrativaPagar(sender As Object, e As EventArgs)
DdlUnidadAdministrativaPagar.Items.Clear()
DdlFuenteFinanciamientoPagar.Items.Clear()
DdlClasificacionOGPagar.Items.Clear()
DdlTipoGastoPagar.Items.Clear()
LtDisponiblePagar.Text = "$"
TxtImportePagar.Enabled = False
If DdlMetaPagar.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0}", DdlMetaPagar.SelectedValue.ToString)
DdlUnidadAdministrativaPagar.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", DistinctColumns:={"CveUnidadAdministrativa", "UnidadAdministrativa"})
DdlUnidadAdministrativaPagar.DataBind()
DdlUnidadAdministrativaPagar.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaFuenteFinanciamientoPagar(sender As Object, e As EventArgs)
DdlFuenteFinanciamientoPagar.Items.Clear()
DdlClasificacionOGPagar.Items.Clear()
DdlTipoGastoPagar.Items.Clear()
LtDisponiblePagar.Text = "$"
TxtImportePagar.Enabled = False
If DdlUnidadAdministrativaPagar.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1}", DdlMetaPagar.SelectedValue.ToString, DdlUnidadAdministrativaPagar.SelectedValue.ToString)
DdlFuenteFinanciamientoPagar.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", DistinctColumns:={"CveFuenteFinanciamiento", "FuenteFinanciamiento"})
DdlFuenteFinanciamientoPagar.DataBind()
DdlFuenteFinanciamientoPagar.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaClasificacionOGPagar(sender As Object, e As EventArgs)
DdlClasificacionOGPagar.Items.Clear()
DdlTipoGastoPagar.Items.Clear()
LtDisponiblePagar.Text = "$"
TxtImportePagar.Enabled = False
If DdlFuenteFinanciamientoPagar.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1} and CveFuenteFinanciamiento= {2}", DdlMetaPagar.SelectedValue.ToString, DdlUnidadAdministrativaPagar.SelectedValue.ToString, DdlFuenteFinanciamientoPagar.SelectedValue.ToString)
DdlClasificacionOGPagar.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", "CodigoClasificacion", {"CveClasificacion", "CodigoClasificacion"})
DdlClasificacionOGPagar.DataBind()
DdlClasificacionOGPagar.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaTipoGastoPagar(sender As Object, e As EventArgs)
DdlTipoGastoPagar.Items.Clear()
LtDisponiblePagar.Text = "$"
TxtImportePagar.Enabled = False
If DdlClasificacionOGPagar.SelectedValue.ToEntero > 0 Then
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1} and CveFuenteFinanciamiento= {2} and CveClasificacion= {3}", DdlMetaPagar.SelectedValue.ToString, DdlUnidadAdministrativaPagar.SelectedValue.ToString, DdlFuenteFinanciamientoPagar.SelectedValue.ToString, DdlClasificacionOGPagar.SelectedValue.ToString)
DdlTipoGastoPagar.DataSource = (DtPresupuestos.FiltraParametros(Filtro.ToString)).FiltraParametros("", DistinctColumns:={"CveTipoGasto", "TipoGasto"})
DdlTipoGastoPagar.DataBind()
DdlTipoGastoPagar.Items.Insert(0, New ListItem("Seleccionar", "-1"))
End If
End Sub
Protected Sub CargaDisponiblePagar(sender As Object, e As EventArgs)
CargaDisponiblePagar()
End Sub
Protected Sub CargaDisponiblePagar()
Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa)
Dim Filtro As New StringBuilder
Dim disponible As Double
Filtro.AppendFormat("CveProgramaOperativo= {0} and CveUnidadAdministrativa= {1} and CveFuenteFinanciamiento= {2} and CveClasificacion= {3} and CveTipoGasto= {4}", DdlMetaPagar.SelectedValue.ToString, DdlUnidadAdministrativaPagar.SelectedValue.ToString, DdlFuenteFinanciamientoPagar.SelectedValue.ToString, DdlClasificacionOGPagar.SelectedValue.ToString, DdlTipoGastoPagar.SelectedValue.ToString)
For Each dr As DataRow In DtPresupuestos.FiltraParametros(Filtro.ToString).Rows
disponible = ContPaq.GetSaldoCuenta(dr("IdCuentaComprometido").ToString.ToEntero, 0, UsuarioActual.Empresa.EjercicioActual)
HdnCuentaComprometidoPagar.Value = dr("IdCuentaComprometido").ToString
HdnCuentaDevengadoPagar.Value = dr("IdCuentaDevengado").ToString
HdnCuentaEjercidoPagar.Value = dr("IdCuentaEjercido").ToString
HdnCuentaPagadoPagar.Value = dr("IdCuentaPagado").ToString
Next
Filtro.Clear()
Filtro.AppendFormat("IdCuentaComprometido = {0}", HdnCuentaComprometidoPagar.Value)
For Each dr As DataRow In DtDetallePagar.FiltraParametros(Filtro.ToString).Rows
disponible -= dr("Importe").ToString.ToDouble
Next
If disponible <> 0 Then
TxtImportePagar.Enabled = True
BtnAgregarPagar.Enabled = True
End If
LtDisponiblePagar.Text = disponible.FormatoNumero()
ContPaq.Dispose()
End Sub
#End Region
Protected Sub BtnAgregarPagar_click(sender As Object, e As EventArgs)
If DtDetallePagar IsNot Nothing Then
If LtDisponiblePagar.Text.ToDouble >= TxtImportePagar.Text.ToDouble Then
Dim dr As DataRow = DtDetallePagar.NewRow
dr("Meta") = DdlMetaPagar.SelectedItem.ToString
dr("UnidadAdministrativa") = DdlUnidadAdministrativaPagar.SelectedItem.ToString
dr("FuenteFinanciamiento") = DdlFuenteFinanciamientoPagar.SelectedItem.ToString
dr("ClasificadorOG") = DdlClasificacionOGPagar.SelectedItem.ToString
dr("TipoGasto") = DdlTipoGastoPagar.SelectedItem.ToString
dr("Disponible") = LtDisponiblePagar.Text.ToDouble
dr("Importe") = TxtImportePagar.Text.ToDouble
dr("IdCuentaComprometido") = HdnCuentaComprometidoPagar.Value
dr("IdCuentaDevengado") = HdnCuentaDevengadoPagar.Value
dr("IdCuentaEjercido") = HdnCuentaEjercidoPagar.Value
dr("IdCuentaPagado") = HdnCuentaPagadoPagar.Value
DtDetallePagar.Rows.Add(dr)
CargaDatosPagar()
Dim total As Double = LbTotalPagar.Text.ToDouble
LbTotalPagar.Text = (total + dr("Importe").ToString.ToDouble).ToString.FormatoNumero
DdlMetaPagar.SelectedIndex = -1
DdlUnidadAdministrativaPagar.Items.Clear()
DdlFuenteFinanciamientoPagar.Items.Clear()
DdlClasificacionOGPagar.Items.Clear()
DdlTipoGastoPagar.Items.Clear()
LtDisponiblePagar.Text = "$"
TxtImportePagar.Text = ""
TxtImportePagar.Enabled = False
BtnAgregarPagar.Enabled = False
Else
Alert("El importe supera el capital disponible. Por favor de revisar y modificar", TipoMensaje.MsgAdvertencia)
End If
End If
End Sub
Protected Sub BtnGuardarPagar_click(sender As Object, e As EventArgs)
If DtDetallePagar.Rows.Count > 0 Then
Dim TieneError As Boolean = False
Dim IDPoliza As Integer
Dim Conta As New ClsContPAQi(UsuarioActual.Empresa)
Conta.IniciaTransacSQL()
Dim Total As Double = LbTotalPagar.Text.ToDouble
IDPoliza = Conta.AddPoliza(4, "Devengado-Ejercido-Pagado", Total, Total, UsuarioActual.CveUsuario, NowADS())
If IDPoliza > 0 Then
For Each dr As DataRow In DtDetallePagar.Rows
Dim Importe = dr("Importe").ToString.ToDouble
'Devengado
If Conta.AddMovimiento(IDPoliza, dr("IdCuentaComprometido").ToString.ToEntero, True, Importe, "", "", 0, String.Format("01/01/{0}", NowADS().Year).ToDate, "") Then
If Not Conta.AddMovimiento(IDPoliza, dr("IdCuentaDevengado").ToString.ToEntero, False, Importe, "", "", 0, String.Format("01/01/{0}", NowADS().Year).ToDate, "") Then
TieneError = True
Exit For
End If
Else
TieneError = True
Exit For
End If
'Ejercido
If Conta.AddMovimiento(IDPoliza, dr("IdCuentaDevengado").ToString.ToEntero, True, Importe, "", "", 0, NowADS(), "") Then
If Not Conta.AddMovimiento(IDPoliza, dr("IdCuentaEjercido").ToString.ToEntero, False, Importe, "", "", 0, NowADS(), "") Then
TieneError = True
Exit For
End If
Else
TieneError = True
Exit For
End If
'Pagado
If Conta.AddMovimiento(IDPoliza, dr("IdCuentaEjercido").ToString.ToEntero, True, Importe, "", "", 0, NowADS(), "") Then
If Not Conta.AddMovimiento(IDPoliza, dr("IdCuentaPagado").ToString.ToEntero, False, Importe, "", "", 0, NowADS(), "") Then
TieneError = True
Exit For
End If
Else
TieneError = True
Exit For
End If
Next
Else
TieneError = True
End If
If Not TieneError Then
Conta.Commit()
GvDPagar.DataBind()
UpPagar.Update()
DtDetallePagar.Rows.Clear()
LbTotalPagar.Text = "0.00"
Dim Descargas As New StringBuilder
If IDPoliza > 0 Then Descargas.AppendFormat("<a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}""> Poliza</a>", IDPoliza)
Dim Msg As String = String.Format("<br />La poliza se pago correctamente.<br /><br /><br />Descargar: {0}", Descargas.ToString) 'TipoMensaje.MsgInformacion
Msg.Alert(Msg, TipoMensaje.MsgInformacion)
Else
Conta.RollBack()
End If
Conta.Dispose()
Else
Alert("No hay registros que guardar", TipoMensaje.MsgInformacion)
End If
End Sub
Protected Sub GvDPagar_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvDPagar.RowDeleting
Dim Filtro As New StringBuilder
Filtro.AppendFormat("IdCuentaEjercido= {0} and Importe= {1}", GvDPagar.Rows(e.RowIndex).DataKey("IdCuentaEjercido").ToString.ToEntero, GvDPagar.Rows(e.RowIndex).DataKey("Importe").ToString.ToDouble)
Dim dr As DataRow() = DtDetallePagar.Select(Filtro.ToString)
Dim total As Double = LbTotalPagar.Text.ToDouble
LbTotalPagar.Text = (total - dr(0).Item("Importe").ToString.ToDouble).ToString.FormatoNumero
dr(0).Delete()
If Not LtDisponiblePagar.Text = "$" Then
CargaDisponiblePagar()
End If
CargaDatosPagar()
End Sub
Private Sub CreaDTDetallesPagar()
DtDetallePagar = New DataTable
DtDetallePagar.Columns.Add("Meta", GetType(String))
DtDetallePagar.Columns.Add("UnidadAdministrativa", GetType(String))
DtDetallePagar.Columns.Add("FuenteFinanciamiento", GetType(String))
DtDetallePagar.Columns.Add("ClasificadorOG", GetType(String))
DtDetallePagar.Columns.Add("CodigoClasificacion", GetType(String))
DtDetallePagar.Columns.Add("TipoGasto", GetType(String))
DtDetallePagar.Columns.Add("Disponible", GetType(Double))
DtDetallePagar.Columns.Add("Importe", GetType(Double))
DtDetallePagar.Columns.Add("IdCuentaComprometido", GetType(Integer)) '8
DtDetallePagar.Columns.Add("IdCuentaDevengado", GetType(Integer)) '9
DtDetallePagar.Columns.Add("IdCuentaEjercido", GetType(Integer)) '10
DtDetallePagar.Columns.Add("IdCuentaPagado", GetType(Integer)) '11
End Sub
Protected Sub CargaGridPagar()
GvDPagar.DataSource = DtDetallePagar
GvDPagar.DataBind()
UpPagar.Update()
End Sub
#Region "O R D E N A M I E N T O P A G A R"
Private Sub CargaGridPagar(Orden As String)
If Orden <> String.Empty Then
Dim DV As New DataView(CType(ViewState("DTPagar"), DataTable), "", Orden, DataViewRowState.CurrentRows)
GvDPagar.DataSource = DV.ToTable()
DV.Dispose()
Else
GvDPagar.DataSource = CType(ViewState("DTPagar"), DataTable)
End If
GvDPagar.DataBind()
End Sub
Protected Sub CargaDatosPagar()
ViewState("DTPagar") = DtDetallePagar
If ViewState("OrdenPagar").ToString() <> String.Empty Then
CargaGridPagar(ViewState("OrdenPagar").ToString())
Else
CargaGridPagar("")
End If
UpPagar.Update()
End Sub
Public Sub BtnAddPagar_Click(sender As Object, e As EventArgs)
DdlMetaPagar.SelectedIndex = -1
DdlUnidadAdministrativaPagar.Items.Clear()
DdlFuenteFinanciamientoPagar.Items.Clear()
DdlClasificacionOGPagar.Items.Clear()
DdlTipoGastoPagar.Items.Clear()
LtDisponiblePagar.Text = "$"
TxtImportePagar.Text = ""
TxtImportePagar.Enabled = False
BtnAgregarPagar.Enabled = False
RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarPagar"))
End Sub
#End Region
#End Region
End Class