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

298 lines
12 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports System.Activities.Statements
Imports Microsoft.Reporting.WebForms
Partial Class AC_RegIngresosModificaciones
Inherits ClsPaginas
#Region "PROPIEDADES"
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 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 pSaldo As String
Get
Return CType(ViewState("pSaldo"), String)
End Get
Set(value As String)
ViewState("pSaldo") = value
End Set
End Property
Private Property pAmpliacion As String
Get
Return CType(ViewState("pAmpliacion"), String)
End Get
Set(value As String)
ViewState("pAmpliacion") = value
End Set
End Property
Private Property pSaldoFinal As String
Get
Return CType(ViewState("pSaldoFinal"), String)
End Get
Set(value As String)
ViewState("pSaldoFinal") = 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
GvD.Columns(5).Visible = False
CreaDTDetalles()
CargaPresupuestos()
TxtFecha.Text = NowADS().ToShortDateString
LtEjercicio.Text = UsuarioActual.Empresa.EjercicioActual.ToString
End If
End Sub
Private Sub CargaPresupuestos()
Dim AC As New ClsAC
If AC.GetPresupuestoIngresos(-1, UsuarioActual.Empresa.EjercicioActual, True, UsuarioActual.CveEmpresa) Then
DtPresupuestos = AC.DtResultados.Copy
Else
Alert("Ocurrió un error al cargar los Presupuestos. Por favor vuelva a cargar la pagina", TipoMensaje.MsgError)
End If
AC.Dispose()
LlenaDtDetalles()
End Sub
Private Sub CreaDTDetalles()
DtDetalle = New DataTable
DtDetalle.Columns.Add("FuenteRecaudacion", GetType(String))
DtDetalle.Columns.Add("CodigoRubroIngreso", GetType(String))
DtDetalle.Columns.Add("RubroIngreso", GetType(String))
DtDetalle.Columns.Add("Saldo", GetType(Double))
DtDetalle.Columns.Add("IdCuentaPorEjecutar", GetType(Integer))
DtDetalle.Columns.Add("IdCuentaModificado", GetType(Integer))
End Sub
Private Sub LlenaDtDetalles()
Dim ContPaq As New ClsContPAQi(UsuarioActual.Empresa)
DtDetalle.Rows.Clear()
Dim totalsaldo As Double
For Each drp As DataRow In DtPresupuestos.Rows
Dim drt As DataRow = DtDetalle.NewRow
drt("FuenteRecaudacion") = drp("FuenteRecaudacion")
drt("CodigoRubroIngreso") = drp("CodigoRubroIngreso")
drt("RubroIngreso") = drp("RubroIngreso")
drt("Saldo") = ContPaq.GetSaldoCuenta(drp("IdCuentaPorEjecutar").ToString.ToEntero, 1, UsuarioActual.Empresa.EjercicioActual)
drt("IdCuentaPorEjecutar") = drp("IdCuentaPorEjecutar")
drt("IdCuentaModificado") = drp("IdCuentaModificado")
totalsaldo += drt("saldo").ToString.ToDouble
DtDetalle.Rows.Add(drt)
Next
LbTotalSaldo.Text = totalsaldo.ToString.FormatoNumero
pSaldo = totalsaldo.ToString.FormatoNumero
ContPaq.Dispose()
CargaDatosDetalles()
End Sub
Protected Sub CargaDatosDetalles()
GvD.DataSource = DtDetalle.FiltraParametros("", "", {"FuenteRecaudacion", "CodigoRubroIngreso", "RubroIngreso", "Saldo", "IdCuentaPorEjecutar", "IdCuentaModificado"})
GvD.DataBind()
UPPDetalle.Update()
End Sub
Protected Sub BtnGuardar_click(sender As Object, e As EventArgs)
Dim Total As Double = 0
Dim Accion As Integer = DdlAccion.SelectedValue.ToString.ToEntero
Dim IDPoliza As Integer
Dim Conta As New ClsContPAQi(UsuarioActual.Empresa)
Dim TieneError As Boolean = False
Dim NoHaceNada As Boolean = False
Dim TransferenciaError As Boolean = False
'Dim Concepto As String
Dim ampliacion As Double
Dim reduccion As Double
Conta.IniciaTransacSQL()
Dim Fecha As Date = NowADS()
If Accion = 0 Then
For Each gvr As GridViewRow In GvD.Rows
If Accion = -1 Then Total += gvr.FCTextBox("TxtReduccion").Text.ToDouble Else Total += gvr.FCTextBox("TxtAmpliacion").Text.ToDouble
ampliacion += gvr.FCTextBox("TxtAmpliacion").Text.ToDouble
reduccion += gvr.FCTextBox("TxtReduccion").Text.ToDouble
Next
pAmpliacion = ampliacion.ToString
If ampliacion <> reduccion Then Total = -1
Else
For Each gvr As GridViewRow In GvD.Rows
If Accion = -1 Then Total += gvr.FCTextBox("TxtReduccion").Text.ToDouble Else Total += gvr.FCTextBox("TxtAmpliacion").Text.ToDouble
Next
End If
If Total > 0 Then
'Select Case Accion
' Case 1
' Concepto = "Modificado - Ampliación"
' Case -1
' Concepto = "Modificado - Reduccción" : Total = 0
' Case Else
' Concepto = "Modificado - Transferencia"
'End Select
Total = If(Accion = -1, 0, Total)
Fecha = TxtFecha.Text.ToDate
IDPoliza = Conta.AddPoliza(4, TxtConcepto.Text, Total, Total, UsuarioActual.CveUsuario, Fecha)
Dim Importe As Double
If IDPoliza > 0 Then
For Each gvr As GridViewRow In GvD.Rows
If DdlAccion.SelectedValue = "0" Then
If gvr.FCTextBox("TxtReduccion").Text.ToDouble > 0 Then
Importe = gvr.FCTextBox("TxtReduccion").Text.ToDouble
Accion = -1
Else
Importe = gvr.FCTextBox("TxtAmpliacion").Text.ToDouble
Accion = 1
End If
Else
If Accion = -1 Then Importe = gvr.FCTextBox("TxtReduccion").Text.ToDouble() Else Importe = gvr.FCTextBox("TxtAmpliacion").Text.ToDouble()
End If
If Importe > 0 Then
If Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCuentaPorEjecutar").ToString.ToEntero, True, Importe * Accion, "", "", 0, Fecha, "") Then
'actualizo el idcuenta del presupuesto
If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCuentaModificado").ToString.ToEntero, False, Importe * Accion, "", "", 0, Fecha, "") Then
TieneError = True
Exit For
End If
Else
TieneError = True
Exit For
End If
End If
Next
Else
TieneError = True
End If
Else
TieneError = True
NoHaceNada = True
End If
If Not TieneError Then
Conta.AjustaPoliza(IDPoliza)
Conta.Commit()
LbTotalAmpliacion.Text = "0.00"
LbTotalReduccion.Text = "0.00"
LbTotalSaldoFinal.Text = "0.00"
TxtConcepto.Text = ""
TxtFecha.Text = "__/__/____"
GvD.DataBind()
CargaPresupuestos()
UPPDetalle.Update()
UPTotales.Update()
Alert(String.Format("Registros agregados con exito<br/><br/><a href='/Contabilidad/RegPoliza.aspx?IdPoliza={0}'>Ver Poliza</a>", IDPoliza), TipoMensaje.MsgInformacion)
Else
Conta.RollBack()
If Total = -1 Then
Alert("El total de ampliaciones y reducciones debe ser igual.", TipoMensaje.MsgAdvertencia)
Else
Alert(If(NoHaceNada, "No se encontraron registros", "Error poliza"), TipoMensaje.MsgError)
End If
End If
Conta.Dispose()
End Sub
Protected Sub TipoModificacion(sender As Object, e As EventArgs)
If DdlAccion.SelectedValue = "0" Then 'TRANSFERENCIA
GvD.Columns(4).Visible = True 'TxtAmpliacion
GvD.Columns(5).Visible = True 'TxtReduccion
TdAmpliacion.Visible = True
LbTotalAmpliacion.Visible = True
TdReduccion.Visible = True
LbTotalReduccion.Visible = True
ElseIf DdlAccion.SelectedValue = "-1" Then 'REDUCCION
GvD.Columns(4).Visible = False 'TxtAmpliacion
GvD.Columns(5).Visible = True 'TxtReduccion
TdAmpliacion.Visible = False
LbTotalAmpliacion.Visible = False
TdReduccion.Visible = True
LbTotalReduccion.Visible = True
Else 'AMPLIACION
GvD.Columns(4).Visible = True 'TxtAmpliacion
GvD.Columns(5).Visible = False 'TxtReduccion
TdAmpliacion.Visible = True
LbTotalAmpliacion.Visible = True
TdReduccion.Visible = False
LbTotalReduccion.Visible = False
End If
CargaPresupuestos()
UPFiltros.Update()
UPPDetalle.Update()
UPTotales.Update()
End Sub
Protected Sub GvD_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvD.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Select Case DdlAccion.SelectedValue
Case "1"
e.Row.FCTextBox("TxtAmpliacion").Attributes.Add("onkeyup", String.Format("CalculaSaldo({0},this,'{1}','A','');", e.Row.DBCampo("Saldo"), e.Row.FCLabel("LBSF").ClientID))
Case "-1"
e.Row.FCTextBox("TxtReduccion").Attributes.Add("onkeyup", String.Format("CalculaSaldo({0},this,'{1}','R','');", e.Row.DBCampo("Saldo"), e.Row.FCLabel("LBSF").ClientID))
Case "0"
e.Row.FCTextBox("TxtAmpliacion").Attributes.Add("onkeyup", String.Format("CalculaSaldo({0},this,'{1}','A','{2}');", e.Row.DBCampo("Saldo"), e.Row.FCLabel("LBSF").ClientID, e.Row.FCTextBox("TxtReduccion").ClientID))
e.Row.FCTextBox("TxtReduccion").Attributes.Add("onkeyup", String.Format("CalculaSaldo({0},this,'{1}','R','{2}');", e.Row.DBCampo("Saldo"), e.Row.FCLabel("LBSF").ClientID, e.Row.FCTextBox("TxtAmpliacion").ClientID))
'e.Row.FCRangeValidator("RV").MaximumValue = e.Row.DBCampo("Saldo").ToDouble.ToString
e.Row.FCRangeValidator("RV").Enabled = True
'rv
'MaximumValue='<%# Eval("Saldo") %>'
End Select
End If
End Sub
#Region "I M P R I M I R "
Protected Sub BtnImprimir_Click(sender As Object, e As ImageClickEventArgs)
ImprimirReporte()
End Sub
Protected Sub ImprimirReporte()
'nombre del archivo a generar
Dim fileName As String = "ReporteModificacionesPresupuestosIngresos"
'ubicacion del rdlc
Dim reportpath As String = "AC/Reportes/RepModificacionesPresupuestosIngresos.rdlc"
'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", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("pSaldo", pSaldo))
params.Add(New ReportParameter("pAmpliacion", pAmpliacion))
params.Add(New ReportParameter("pSaldoFinal", pSaldoFinal))
ImprimirPDF(reportpath, DtPresupuestos, params, fileName)
End Sub
#End Region
End Class