339 lines
15 KiB
VB.net
339 lines
15 KiB
VB.net
Option Strict On
|
|
Option Explicit On
|
|
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
Imports Microsoft.Reporting.WebForms
|
|
|
|
Partial Class AC_CatPresupuestoIngresos
|
|
Inherits ClsPaginas
|
|
|
|
#Region " PROPIEDADES "
|
|
Private Property DtPresupuestoIngresos As DataTable
|
|
Get
|
|
Return CType(ViewState("DtPresupuestoIngresos"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtPresupuestoIngresos") = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Property pTotal As String
|
|
Get
|
|
Return CType(ViewState("pTotal"), String)
|
|
End Get
|
|
Set(value As String)
|
|
ViewState("pTotal") = 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
|
|
SetValues()
|
|
CargaDatos()
|
|
End If
|
|
End Sub
|
|
|
|
|
|
#Region " VALORES INICIALES "
|
|
Private Sub SetValues()
|
|
CargaEjercicios()
|
|
End Sub
|
|
Private Sub CargaEjercicios()
|
|
Dim ClsConta As New ClsContPAQi(UsuarioActual.Empresa)
|
|
If ClsConta.GetEjercicios() Then
|
|
DdlEjercicio.DataSource = ClsConta.DtResultados
|
|
Else
|
|
DdlEjercicio.DataSource = Nothing
|
|
End If
|
|
ClsConta.Dispose()
|
|
DdlEjercicio.DataBind()
|
|
|
|
DdlEjercicio.SelectedValueExist(UsuarioActual.Empresa.EjercicioActual.ToString)
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
#Region " CARGA DATOS "
|
|
|
|
Protected Sub consultar_Click(sender As Object, e As EventArgs)
|
|
BtnCongelarPrespuesto.Visible = False
|
|
BtnPresupuesto.Visible = False
|
|
CargaDatos()
|
|
End Sub
|
|
Private Sub CargaDatos()
|
|
Dim AC As New ClsAC
|
|
Dim Ejercicio As Integer = DdlEjercicio.SelectedValue.ToString.ToEntero
|
|
Dim EsProyecto As Boolean = CBool(DdlProyecto.SelectedValue.ToString)
|
|
Gv.DataBind()
|
|
|
|
|
|
If AC.GetPresupuestoIngresos(-1, Ejercicio, EsProyecto, UsuarioActual.CveEmpresa) Then
|
|
|
|
DtPresupuestoIngresos = AC.DtResultados
|
|
Gv.DataSource = AC.DtResultados
|
|
Gv.DataBind()
|
|
|
|
'debe de haber datos para habilitar los botones
|
|
If AC.DtResultados.Rows.Count > 0 Then
|
|
If EsProyecto Then
|
|
If AC.DtResultados.Rows(0)("Bloqueado").ToString = "0" Then
|
|
'Ejercicio = UsuarioActual.Empresa.EjercicioActual AndAlso
|
|
BtnCongelarPrespuesto.Visible = True
|
|
End If
|
|
Else
|
|
'si es anteproyecto
|
|
If AC.DtResultados.Rows(0)("Bloqueado").ToString = "0" Then
|
|
'AndAlso Ejercicio >= UsuarioActual.Empresa.EjercicioActual
|
|
BtnPresupuesto.Visible = True
|
|
End If
|
|
' If Ejercicio = UsuarioActual.Empresa.EjercicioActual Then
|
|
End If
|
|
Dim Total As Double = Gv.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.DataKey("Total").ToDouble)
|
|
LbTotales.Text = Total.ToString.FormatoNumero
|
|
pTotal = Total.ToString.FormatoNumero
|
|
End If
|
|
End If
|
|
|
|
UpTotales.Update()
|
|
UPDatos.Update()
|
|
|
|
AC.Dispose()
|
|
End Sub
|
|
Private Sub CargaGrid(Orden As String)
|
|
If Orden <> String.Empty Then
|
|
Dim DV As New DataView(CType(ViewState("DT_AC_PresupuestosIngresos"), DataTable), "", Orden, DataViewRowState.CurrentRows)
|
|
Gv.DataSource = DV.ToTable()
|
|
DV.Dispose()
|
|
Else
|
|
Gv.DataSource = CType(ViewState("DT_AC_PresupuestosIngresos"), DataTable)
|
|
End If
|
|
Gv.DataBind()
|
|
UPDatos.Update()
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region " FUNCIONES "
|
|
Private Function FNCIDCuenta(dt As DataTable, codigo As String) As Integer
|
|
Dim Retorno As Integer = 0
|
|
Dim dr As DataRow
|
|
dr = dt.FiltroPrimero(String.Format("Codigo ='{0}'", codigo))
|
|
If dr IsNot Nothing Then
|
|
|
|
Retorno = dr("Id").ToString.ToEntero
|
|
End If
|
|
|
|
Return Retorno
|
|
End Function
|
|
Private Function FNCAddCuenta(dt As DataTable, id As Integer, codigo As String) As Integer
|
|
' se crea una coleccion para grabar las claves y las cuentas que se van insertando, por si se comparten, no marque error de que ya esta registrada y esta en la transaccion todavia
|
|
Dim Retorno As Integer = 0
|
|
Dim dr As DataRow = dt.NewRow
|
|
|
|
dr("Codigo") = codigo
|
|
dr("Id") = id
|
|
|
|
dt.Rows.Add(dr)
|
|
dt.AcceptChanges()
|
|
Return Retorno
|
|
End Function
|
|
#End Region
|
|
|
|
|
|
Protected Sub BtnCongelarPrespuesto_Click(sender As Object, e As EventArgs)
|
|
Dim Conta As New ClsContPAQi(UsuarioActual.Empresa)
|
|
Conta.IniciaTransacSQL()
|
|
Dim AC As New ClsAC
|
|
AC.IniciaTransacSQL()
|
|
'registro las cuentas prespuestales por cada movimiento, si existe la ignoro
|
|
Dim dtCuentas As DataTable = Nothing
|
|
Dim IDPoliza As Integer
|
|
Dim IdCuentaEstimado, IdCuentaPorEjecutar, IdCuentaModificado, IdCuentaDevengado, IdCuentaRecaudado, IdCuentaMatriz As Integer
|
|
Dim Codigo As String
|
|
Dim TieneError As Boolean = False
|
|
Dim IdCuentaEstimadoPadre, IdCuentaPorEjecutarPadre, IdCuentaModificadoPadre, IdCuentaDevengadoPadre, IdCuentaRecaudadoPadre, IdCuentaMatrizPadre As Integer
|
|
|
|
'hay que registrar una poliza de cargo en 821, aprobado contra Ley de egresos, luego registrar o de por ejercer
|
|
|
|
If Conta.GetCuentas(-1, "-1", -1) Then
|
|
dtCuentas = Conta.DtResultados
|
|
End If
|
|
|
|
Dim drPadre As DataRow
|
|
drPadre = dtCuentas.FiltroPrimero("Nombre = 'LEY DE INGRESOS ESTIMADA'")
|
|
IdCuentaEstimadoPadre = If(drPadre IsNot Nothing, drPadre("Id").ToString.ToEntero, 0)
|
|
|
|
drPadre = dtCuentas.FiltroPrimero("Nombre = 'LEY DE INGRESOS POR EJECUTAR'")
|
|
IdCuentaPorEjecutarPadre = If(drPadre IsNot Nothing, drPadre("Id").ToString.ToEntero, 0)
|
|
|
|
drPadre = dtCuentas.FiltroPrimero("Nombre = 'MODIFICACIONES A LA LEY DE INGRESOS ESTIMADA'")
|
|
IdCuentaModificadoPadre = If(drPadre IsNot Nothing, drPadre("Id").ToString.ToEntero, 0)
|
|
|
|
drPadre = dtCuentas.FiltroPrimero("Nombre = 'LEY DE INGRESOS DEVENGADA'")
|
|
IdCuentaDevengadoPadre = If(drPadre IsNot Nothing, drPadre("Id").ToString.ToEntero, 0)
|
|
|
|
drPadre = dtCuentas.FiltroPrimero("Nombre = 'LEY DE INGRESOS RECAUDADA'")
|
|
IdCuentaRecaudadoPadre = If(drPadre IsNot Nothing, drPadre("Id").ToString.ToEntero, 0)
|
|
|
|
Dim Total As Double = Gv.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.DataKey("Total").ToDouble)
|
|
|
|
IDPoliza = Conta.AddPoliza(4, String.Format("POLIZA INICIAL - PRESUPUESTO DE INGRESOS ESTIMADO {0}", DdlEjercicio.SelectedValue), Total, Total, UsuarioActual.CveUsuario, String.Format("01/01/{0}", DdlEjercicio.SelectedValue).ToDate)
|
|
If IDPoliza > 0 Then
|
|
|
|
For Each gvr As GridViewRow In Gv.Rows
|
|
|
|
'Codigo = String.Format("{0}-{1}", gvr.DataKey("CvePresupuestoIngreso"), gvr.DataKey("CodigoRubroIngreso"))
|
|
Codigo = String.Format("{0}{1}00000", gvr.DataKey("CodigoRubroIngreso").PadLeft(4, "0"c), gvr.DataKey("CveFuenteRecaudacion").PadLeft(4, "0"c)).PadLeft(5, "0"c)
|
|
'Registro las cuentas afectables
|
|
IdCuentaEstimado = FNCIDCuenta(dtCuentas, String.Format("00811{0}", Codigo))
|
|
If IdCuentaEstimado = 0 Then IdCuentaEstimado = Conta.AddCuenta(String.Format("00811{0}", Codigo), gvr.DataKey("FuenteRecaudacion"), "K", 2, 0, 1, 0, "", 1, IdCuentaEstimadoPadre) : FNCAddCuenta(dtCuentas, IdCuentaEstimado, String.Format("00811{0}", Codigo))
|
|
|
|
IdCuentaPorEjecutar = FNCIDCuenta(dtCuentas, String.Format("00812{0}", Codigo))
|
|
If IdCuentaPorEjecutar = 0 Then IdCuentaPorEjecutar = Conta.AddCuenta(String.Format("00812{0}", Codigo), gvr.DataKey("FuenteRecaudacion"), "K", 2, 0, 1, 0, "", 1, IdCuentaPorEjecutarPadre) : FNCAddCuenta(dtCuentas, IdCuentaPorEjecutar, String.Format("00812{0}", Codigo))
|
|
|
|
IdCuentaModificado = FNCIDCuenta(dtCuentas, String.Format("00813{0}", Codigo))
|
|
If IdCuentaModificado = 0 Then IdCuentaModificado = Conta.AddCuenta(String.Format("00813{0}", Codigo), gvr.DataKey("FuenteRecaudacion"), "K", 2, 0, 1, 0, "", 1, IdCuentaModificadoPadre) : FNCAddCuenta(dtCuentas, IdCuentaModificado, String.Format("00813{0}", Codigo))
|
|
|
|
IdCuentaDevengado = FNCIDCuenta(dtCuentas, String.Format("00814{0}", Codigo))
|
|
If IdCuentaDevengado = 0 Then IdCuentaDevengado = Conta.AddCuenta(String.Format("00814{0}", Codigo), gvr.DataKey("FuenteRecaudacion"), "K", 2, 0, 1, 0, "", 1, IdCuentaDevengadoPadre) : FNCAddCuenta(dtCuentas, IdCuentaDevengado, String.Format("00814{0}", Codigo))
|
|
|
|
IdCuentaRecaudado = FNCIDCuenta(dtCuentas, String.Format("00815{0}", Codigo))
|
|
If IdCuentaRecaudado = 0 Then IdCuentaRecaudado = Conta.AddCuenta(String.Format("00815{0}", Codigo), gvr.DataKey("FuenteRecaudacion"), "K", 2, 0, 1, 0, "", 1, IdCuentaRecaudadoPadre) : FNCAddCuenta(dtCuentas, IdCuentaRecaudado, String.Format("00815{0}", Codigo))
|
|
|
|
'falta generar y gaurdar la cuenta contable y vincularla
|
|
Dim filtro As New StringBuilder
|
|
filtro.AppendFormat("CodigoRubroIngreso = {0} and Caracteristicas = 1", gvr.DataKey("CodigoRubroIngreso"))
|
|
|
|
Dim RegistroMatriz As DataRow = GlobalDTAC_MatrizIngresos.FiltroPrimero(filtro.ToString)
|
|
filtro.Clear()
|
|
If RegistroMatriz Is Nothing Then
|
|
RegistroMatriz = GlobalDTAC_MatrizIngresos.FiltroPrimero(String.Format("(CodigoRubroIngreso = {0} and Caracteristicas = 1) OR (CodigoRubroIngreso = {0})", gvr.DataKey("CodigoRubroIngreso")), "Caracteristicas")
|
|
|
|
If RegistroMatriz Is Nothing Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
If RegistroMatriz IsNot Nothing AndAlso RegistroMatriz("CuentaCargo").ToString.ToEntero > 0 Then
|
|
IdCuentaMatrizPadre = RegistroMatriz("CuentaAbono").ToString.ToEntero
|
|
|
|
Dim CuentaAbono As Integer = dtCuentas.FiltroPrimero(String.Format("Codigo = '{0}'", String.Format("0{0}0000000000000", IdCuentaMatrizPadre)))("Id").ToString.ToEntero
|
|
|
|
IdCuentaMatriz = FNCIDCuenta(dtCuentas, String.Format("0{0}{1}", IdCuentaMatrizPadre, Codigo))
|
|
If IdCuentaMatriz = 0 Then IdCuentaMatriz = Conta.AddCuenta(String.Format("0{0}{1}", IdCuentaMatrizPadre, Codigo), gvr.DataKey("FuenteRecaudacion").ToUpper, "H", 2, 0, 1, 0, "", 1, CuentaAbono) : FNCAddCuenta(dtCuentas, IdCuentaMatriz, String.Format("0{0}{1}", IdCuentaMatrizPadre, Codigo))
|
|
|
|
End If
|
|
|
|
Total = gvr.DataKey("Total").ToDouble
|
|
If Conta.AddMovimiento(IDPoliza, IdCuentaEstimado, False, Total, "", "", 0, String.Format("01/01/{0}", DdlEjercicio.SelectedValue).ToDate, "") Then
|
|
'actualizo el idcuenta del presupuesto
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaPorEjecutar, True, Total, "", "", 0, String.Format("01/01/{0}", DdlEjercicio.SelectedValue).ToDate, "") Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
If Not AC.UpdateCuentasPresupuestoIngresos(IdCuentaEstimado, IdCuentaPorEjecutar, IdCuentaModificado, IdCuentaDevengado, IdCuentaRecaudado, IdCuentaMatriz, gvr.DataKey("CvePresupuestoIngreso").ToEntero) Then
|
|
TieneError = True
|
|
Exit For
|
|
|
|
End If
|
|
Else
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
|
|
Next
|
|
|
|
Else
|
|
TieneError = True
|
|
End If
|
|
|
|
If Not TieneError Then
|
|
'actualizo las cuentas de cadapresupuesto
|
|
AC.Commit()
|
|
Conta.Commit()
|
|
Alert("Presupuesto se ha aprobado con exito", TipoMensaje.MsgInformacion)
|
|
BtnCongelarPrespuesto.Visible = False
|
|
Else
|
|
Conta.RollBack()
|
|
AC.RollBack()
|
|
Alert("Ocurrió un error al aprobar el Presupuesto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
|
|
End If
|
|
|
|
Conta.Dispose()
|
|
AC.Dispose()
|
|
|
|
CargaDatos()
|
|
End Sub
|
|
|
|
Protected Sub BtnPresupuesto_Click(sender As Object, e As EventArgs)
|
|
Dim AC As New ClsAC
|
|
AC.IniciaTransacSQL()
|
|
Dim TieneError As Boolean = False
|
|
|
|
For Each gvr As GridViewRow In Gv.Rows
|
|
|
|
Dim Total As Double = gvr.DataKey("Total").ToDouble
|
|
Dim Enero As Double = gvr.DataKey("Enero").ToDouble
|
|
Dim Febrero As Double = gvr.DataKey("Febrero").ToDouble
|
|
Dim Marzo As Double = gvr.DataKey("Marzo").ToDouble
|
|
Dim Abril As Double = gvr.DataKey("Abril").ToDouble
|
|
Dim Mayo As Double = gvr.DataKey("Mayo").ToDouble
|
|
Dim Junio As Double = gvr.DataKey("Junio").ToDouble
|
|
Dim Julio As Double = gvr.DataKey("Julio").ToDouble
|
|
Dim Agosto As Double = gvr.DataKey("Agosto").ToDouble
|
|
Dim Septiembre As Double = gvr.DataKey("Septiembre").ToDouble
|
|
Dim Octubre As Double = gvr.DataKey("Octubre").ToDouble
|
|
Dim Noviembre As Double = gvr.DataKey("Noviembre").ToDouble
|
|
Dim Diciembre As Double = gvr.DataKey("Diciembre").ToDouble
|
|
|
|
Dim Ejercicio As Integer = 2015
|
|
Dim CveFuenteRecaudacion As Integer = gvr.DataKey("CveFuenteRecaudacion").ToEntero
|
|
Dim CveRubroIngreso As Integer = gvr.DataKey("CveRubroIngreso").ToEntero
|
|
Dim CvePresupuestoIngresos As Integer = gvr.DataKey("CvePresupuestoIngreso").ToEntero
|
|
|
|
If Not AC.ProyectoPresupuestoIngresos(Ejercicio, CveFuenteRecaudacion, CveRubroIngreso, Total, Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CvePresupuestoIngresos) Then
|
|
TieneError = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Not TieneError Then
|
|
AC.Commit()
|
|
Alert("Movimientos Guardados", TipoMensaje.MsgInformacion)
|
|
BtnPresupuesto.Visible = False
|
|
Else
|
|
AC.RollBack()
|
|
End If
|
|
|
|
AC.Dispose()
|
|
End Sub
|
|
|
|
|
|
|
|
#Region " EXCEL "
|
|
Protected Sub LBPdf_Click(sender As Object, e As EventArgs)
|
|
ImprimirReporte()
|
|
End Sub
|
|
Protected Sub LBExcel_Click(sender As Object, e As EventArgs)
|
|
ImprimirReporte("Excel")
|
|
End Sub
|
|
Private Sub ImprimirReporte(Optional Formato As String = "PDF")
|
|
'parametros a enviar al reporte
|
|
Dim params As New List(Of ReportParameter)
|
|
params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa))
|
|
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
|
|
params.Add(New ReportParameter("pImg", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
|
|
params.Add(New ReportParameter("pEjercicio", DdlEjercicio.SelectedValue.ToString))
|
|
'params.Add(New ReportParameter("pTotal", pTotal))
|
|
ImprimirPDF("AC/Reportes/RepCatPresupuestoIngresos.rdlc", DtPresupuestoIngresos, params, "PresupuestoIngresos", Formato)
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
End Class
|