383 lines
18 KiB
VB.net
383 lines
18 KiB
VB.net
Imports System.Data
|
|
Imports Extensiones
|
|
|
|
Partial Class Nomina_CatConceptos
|
|
Inherits ClsPaginas
|
|
|
|
Private Property DTCuentas As DataTable
|
|
Get
|
|
Return CType(ViewState("DTCuentas"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DTCuentas") = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
|
If Not Page.IsPostBack Then
|
|
ViewState("Orden") = ""
|
|
CargaDdls()
|
|
CargaDatos()
|
|
CargaPadres()
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub CargaDatos()
|
|
Dim ObjNomina As New ClsNominas
|
|
If ObjNomina.GetConceptos(UsuarioActual.CveEmpresa) Then
|
|
|
|
ViewState("DTNomConceptos") = ObjNomina.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
GlobalDTNomConceptos(-1) = ObjNomina.DtResultados
|
|
Else
|
|
Me.GvDatos.DataSource = Nothing
|
|
End If
|
|
|
|
ObjNomina.Dispose()
|
|
|
|
If ViewState("Orden").ToString() <> String.Empty Then
|
|
CargaGrid(ViewState("Orden").ToString())
|
|
Else
|
|
CargaGrid("")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub CargaDdls()
|
|
Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa)
|
|
If ObjConta.GetCuentas(-1, "-1", 1) Then
|
|
DTCuentas = ObjConta.DtResultados
|
|
End If
|
|
|
|
DdlContaConceptos.DataSource = GlobalDTContaConceptosContables(-1)
|
|
DdlContaConceptos.DataBind()
|
|
DdlContaConceptos.Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
DdlContaConceptos.SelectedValue = "-1"
|
|
|
|
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
|
|
DdlClasificacion.DataBind()
|
|
DdlClasificacion.Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
DdlClasificacion.SelectedValue = "-1"
|
|
|
|
DdlCtaContable.Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
End Sub
|
|
|
|
Public Sub CargaPadres()
|
|
DdlPadre.DataSource = CType(ViewState("DTNomConceptos"), DataTable)
|
|
DdlPadre.DataBind()
|
|
DdlPadre.Items.Insert(0, New ListItem("", "-1"))
|
|
UpDatos.Update()
|
|
End Sub
|
|
|
|
Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click
|
|
Dim ObjNomina As New ClsNominas
|
|
If ObjNomina.AddConcepto(TxtCodigo.Text.Trim, TxtConcepto.Text.Trim, DdlTipo.SelectedValue, TxtFormula.Text.Trim, ChkSistema.Checked, If(DdlTipoCalculo.SelectedValue.ToString = "0", False, True), True, DdlPadre.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlContaConceptos.SelectedValue, ChkRetencion.Checked, DdlClasificacion.SelectedValue.ToEntero, DdlCtaContable.SelectedValue.ToEntero) Then
|
|
TxtCodigo.Text = ""
|
|
TxtConcepto.Text = ""
|
|
DdlTipo.SelectedValue = "-1"
|
|
TxtFormula.Text = ""
|
|
|
|
Alert("El nuevo Concepto de Nómina se guardó correctamente.", TipoMensaje.MsgInformacion)
|
|
'UpTitulos.Update()
|
|
ViewState("DTNomConceptos") = ObjNomina.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
GlobalDTNomConceptos(-1) = ObjNomina.DtResultados
|
|
|
|
If ViewState("Orden").ToString() <> String.Empty Then
|
|
CargaGrid(ViewState("Orden").ToString())
|
|
Else
|
|
CargaGrid("")
|
|
End If
|
|
UpDatos.Update()
|
|
End If
|
|
ObjNomina.Dispose()
|
|
End Sub
|
|
|
|
Private Function ValidaFormula(Formula As String) As String
|
|
Dim Retorno As String = "Error en Fórmula"
|
|
Try
|
|
'tengo que cargar la definición de las variables, vienen del globaldt
|
|
|
|
Dim exp As FormulaEvaluator.Expression
|
|
For Each dr As DataRow In GlobalDTNomConceptosFunciones.Rows
|
|
|
|
exp = New FormulaEvaluator.Expression(String.Format("{0}:=1", dr("Funcion")))
|
|
exp.Eval()
|
|
Next
|
|
|
|
'Dim expr As String = Script.ToString
|
|
|
|
exp = New FormulaEvaluator.Expression(Formula)
|
|
If (exp.Errors.Count > 0) Then
|
|
|
|
Retorno = exp.Errors(0).Message
|
|
|
|
End If
|
|
|
|
Dim val As Object = exp.Eval()
|
|
If (exp.Errors.Count = 0) Then
|
|
Retorno = ""
|
|
Else
|
|
Retorno = exp.Errors(0).Message
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Return Retorno
|
|
|
|
End Function
|
|
|
|
Protected Sub BtnFormula_Click(sender As Object, e As EventArgs) Handles BtnFormula.Click
|
|
Alert(ValidaFormula(TxtFormula.Text), TipoMensaje.MsgInformacion)
|
|
End Sub
|
|
|
|
Protected Sub btnIngresarPredeterminados_Click(sender As Object, e As EventArgs) Handles btnIngresarPredeterminados.Click
|
|
Dim ObjNomina As New ClsNominas
|
|
If ObjNomina.GetConceptos(UsuarioActual.CveEmpresa) Then
|
|
For Each Row As DataRow In ObjNomina.DtResultados.FiltraParametros("CveEmpresa is null").Rows
|
|
Dim Codigo As String = Row("Codigo").ToString
|
|
Dim Concepto As String = Row("Concepto").ToString
|
|
Dim Tipo As String = Row("Tipo").ToString
|
|
Dim Formula As String = Row("Formula").ToString
|
|
Dim CveConceptoPadre As Integer = If(Not Row("Formula") Is Nothing, Row("CveConceptoPadre").ToString.ToEntero, -1)
|
|
Dim Sistema As Boolean = CType(Row("Sistema").ToString, Boolean)
|
|
Dim TipoCalculo As Boolean = CType(Row("TipoCalculo").ToString, Boolean)
|
|
|
|
ObjNomina.AddConcepto(Codigo, Concepto, Tipo, Formula, Sistema, TipoCalculo, True, CveConceptoPadre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, False, -1, -1)
|
|
Next
|
|
End If
|
|
ObjNomina.Dispose()
|
|
CargaDatos()
|
|
End Sub
|
|
|
|
#Region "G V D A T O S"
|
|
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
e.Row.Cells(0).Width = Unit.Pixel(80)
|
|
e.Row.Cells(1).Width = Unit.Pixel(80)
|
|
e.Row.Cells(2).Width = Unit.Pixel(181)
|
|
e.Row.Cells(3).Width = Unit.Pixel(120)
|
|
e.Row.Cells(4).Width = Unit.Pixel(100)
|
|
e.Row.Cells(5).Width = Unit.Pixel(85)
|
|
e.Row.Cells(6).Width = Unit.Pixel(100)
|
|
e.Row.Cells(7).Width = Unit.Pixel(100)
|
|
e.Row.Cells(8).Width = Unit.Pixel(100)
|
|
e.Row.Cells(9).Width = Unit.Pixel(59)
|
|
e.Row.Cells(10).Width = Unit.Pixel(111)
|
|
e.Row.Cells(11).Width = Unit.Pixel(80)
|
|
e.Row.Cells(12).Width = Unit.Pixel(81)
|
|
e.Row.Cells(13).Width = Unit.Pixel(81)
|
|
e.Row.Cells(14).Width = Unit.Pixel(89)
|
|
e.Row.Cells(15).Width = Unit.Pixel(61)
|
|
|
|
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Left
|
|
e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(8).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(9).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(10).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(11).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(12).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(13).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(14).HorizontalAlign = HorizontalAlign.Center
|
|
e.Row.Cells(15).HorizontalAlign = HorizontalAlign.Center
|
|
|
|
If IsNumeric(e.Row.DBCampo("CveConceptoPadre")) Then
|
|
e.Row.BackColor = Drawing.Color.Silver
|
|
End If
|
|
|
|
If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
|
|
e.Row.FCDropDownList("DdlPadreGV").DataSource = CType(ViewState("DTNomConceptos"), DataTable)
|
|
e.Row.FCDropDownList("DdlPadreGV").DataBind()
|
|
e.Row.FCDropDownList("DdlPadreGV").Items.Insert(0, New ListItem("", "-1"))
|
|
e.Row.FCDropDownList("DdlPadreGV").SelectedValue = e.Row.DBCampo("CveConceptoPadre")
|
|
e.Row.FCDropDownList("DdlTipoGV").SelectedValue = e.Row.DBCampo("Tipo")
|
|
e.Row.FCDropDownList("DdlTipoCalculoGV").SelectedValue = e.Row.DBCampo("TipoCalculo")
|
|
|
|
e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
|
|
e.Row.FCDropDownList("DdlClasificacion").DataBind()
|
|
e.Row.FCDropDownList("DdlClasificacion").Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
e.Row.FCDropDownList("DdlClasificacion").SelectedValue = If(e.Row.DataKey("CveClasificacion") = "", "-1", e.Row.DataKey("CveClasificacion"))
|
|
|
|
e.Row.FCDropDownList("DdlConceptoContable").DataSource = GlobalDTContaConceptosContables(-1)
|
|
e.Row.FCDropDownList("DdlConceptoContable").DataBind()
|
|
e.Row.FCDropDownList("DdlConceptoContable").Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
e.Row.FCDropDownList("DdlConceptoContable").SelectedValue = If(e.Row.DataKey("CveConceptoContable") = "", "-1", e.Row.DataKey("CveConceptoContable"))
|
|
|
|
e.Row.FCCheckBox("ChkRetencion").Checked = e.Row.DataKey("EsRetencion")
|
|
|
|
If e.Row.FCCheckBox("ChkRetencion").Checked Then
|
|
e.Row.FCDropDownList("DdlClasificacion").Enabled = False
|
|
e.Row.FCDropDownList("DdlCtaContable").Enabled = True
|
|
e.Row.FCDropDownList("DdlCtaContable").DataSource = DTCuentas
|
|
e.Row.FCDropDownList("DdlCtaContable").DataBind()
|
|
e.Row.FCDropDownList("DdlCtaContable").Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
e.Row.FCDropDownList("DdlCtaContable").SelectedValue = If(e.Row.DataKey("IdCtaContable") = "", "-1", e.Row.DataKey("IdCtaContable"))
|
|
Else
|
|
e.Row.FCDropDownList("DdlClasificacion").Enabled = True
|
|
e.Row.FCDropDownList("DdlCtaContable").Enabled = False
|
|
e.Row.FCDropDownList("DdlCtaContable").Items.Clear()
|
|
e.Row.FCDropDownList("DdlCtaContable").Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
End If
|
|
|
|
Else
|
|
e.Row.FCLiteral("LtlCuentaContable").Text = If(e.Row.DataKey("IdCtaContable") = "", "Sin Asignar", DTCuentas.FiltroPrimeroValor("CtaCodigo", $"Id={e.Row.DataKey("IdCtaContable")}"))
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
|
|
Dim ObjNomina As New ClsNominas
|
|
If ObjNomina.RemoveConcepto(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero, UsuarioActual.CveEmpresa) Then
|
|
GvDatos.EditIndex = -1
|
|
ViewState("DTNomConceptos") = ObjNomina.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
GlobalDTNomConceptos(-1) = ObjNomina.DtResultados
|
|
Alert("El Concepto de Nómina se eliminó correctamente.", TipoMensaje.MsgInformacion)
|
|
|
|
If ViewState("Orden").ToString() <> String.Empty Then
|
|
CargaGrid(ViewState("Orden").ToString())
|
|
Else
|
|
CargaGrid("")
|
|
End If
|
|
UpDatos.Update()
|
|
End If
|
|
|
|
ObjNomina.Dispose()
|
|
End Sub
|
|
|
|
Protected Sub GvDatos_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvDatos.RowCancelingEdit
|
|
GvDatos.EditIndex = -1
|
|
If ViewState("Orden").ToString() <> String.Empty Then
|
|
CargaGrid(ViewState("Orden").ToString())
|
|
Else
|
|
CargaGrid("")
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvDatos_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatos.RowUpdating
|
|
Dim ObjNomina As New ClsNominas
|
|
Dim Codigo As String = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("TxtCodigoGV"), TextBox).Text.Trim
|
|
Dim Concepto As String = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("TxtConceptoGV"), TextBox).Text.Trim
|
|
Dim Tipo As String = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("DdlTipoGV"), DropDownList).SelectedValue
|
|
Dim Formula As String = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("TxtFormulaGV"), TextBox).Text.Trim
|
|
Dim Sistema As Boolean = GvDatos.Rows(e.RowIndex).FCCheckBox("ChkSistemaGV").Checked
|
|
Dim TipoCalculo As Boolean = If(DirectCast(GvDatos.Rows(e.RowIndex).FindControl("DdlTipoCalculoGV"), DropDownList).SelectedValue = "0", False, True)
|
|
Dim Estado As Boolean = GvDatos.Rows(e.RowIndex).FCCheckBox("ChkEstadoGV").Checked
|
|
Dim CveConceptoPadre As Integer = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("DdlPadreGV"), DropDownList).SelectedValue.ToEntero
|
|
Dim CveConcepto As Integer = GvDatos.Rows(e.RowIndex).DataKey("CveConcepto").ToEntero
|
|
Dim CveConceptoContable As Integer = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("DdlConceptoContable"), DropDownList).SelectedValue
|
|
Dim EsRetencion As Boolean = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("ChkRetencion"), CheckBox).Checked
|
|
Dim CveClasificacion As Integer = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("DdlClasificacion"), DropDownList).SelectedValue
|
|
|
|
If ObjNomina.UpdateConcepto(Codigo, Concepto, Tipo, Formula, Sistema, TipoCalculo, Estado, CveConceptoPadre, CveConcepto, UsuarioActual.CveEmpresa, CveConceptoContable, EsRetencion, CveClasificacion, IdCtaContable) Then
|
|
GvDatos.EditIndex = -1
|
|
ViewState("DTNomConceptos") = ObjNomina.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
GlobalDTNomConceptos(-1) = ObjNomina.DtResultados
|
|
Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
|
|
|
|
If ViewState("Orden").ToString() <> String.Empty Then
|
|
CargaGrid(ViewState("Orden").ToString())
|
|
Else
|
|
CargaGrid("")
|
|
End If
|
|
UpDatos.Update()
|
|
End If
|
|
|
|
ObjNomina.Dispose()
|
|
End Sub
|
|
|
|
Protected Sub GvDatos_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvDatos.RowEditing
|
|
GvDatos.EditIndex = e.NewEditIndex
|
|
If ViewState("Orden").ToString() <> String.Empty Then
|
|
CargaGrid(ViewState("Orden").ToString())
|
|
Else
|
|
CargaGrid("")
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "O R D E N A M I E N T O"
|
|
Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs)
|
|
Dim Orden As String = ""
|
|
Dim Campo As String = ""
|
|
Dim Literal As Literal = Nothing
|
|
Const OrdenInicial As String = ""
|
|
Dim Arg(2) As String
|
|
|
|
Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c)
|
|
Campo = Arg(0)
|
|
Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal)
|
|
|
|
If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then
|
|
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo)
|
|
Literal.Text = String.Format("<i class='fa fa-sort-asc' style='color:#999' ></i>")
|
|
Else
|
|
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo)
|
|
Literal.Text = String.Format("<i class='fa fa-sort-desc' style='color:#999' ></i>")
|
|
End If
|
|
Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString
|
|
ViewState("Orden") = Orden
|
|
CargaGrid(Orden)
|
|
End Sub
|
|
|
|
Private Sub CargaGrid(Orden As String)
|
|
If Orden <> String.Empty Then
|
|
Dim DV As New DataView(CType(ViewState("DTNomConceptos"), DataTable), "", Orden, DataViewRowState.CurrentRows)
|
|
GvDatos.DataSource = DV.ToTable()
|
|
DV.Dispose()
|
|
Else
|
|
GvDatos.DataSource = CType(ViewState("DTNomConceptos"), DataTable)
|
|
End If
|
|
GvDatos.DataBind()
|
|
|
|
UpDatos.Update()
|
|
End Sub
|
|
|
|
Private Sub ChkRetencion_CheckedChanged(sender As Object, e As EventArgs) Handles ChkRetencion.CheckedChanged
|
|
If ChkRetencion.Checked Then
|
|
DdlClasificacion.SelectedValue = "-1"
|
|
DdlClasificacion.Enabled = False
|
|
DdlCtaContable.Enabled = True
|
|
|
|
DdlCtaContable.DataSource = DTCuentas
|
|
DdlCtaContable.DataBind()
|
|
DdlCtaContable.Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
Else
|
|
DdlClasificacion.Enabled = True
|
|
DdlCtaContable.Enabled = False
|
|
DdlCtaContable.Items.Clear()
|
|
DdlCtaContable.Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
End If
|
|
|
|
UpTitulos.Update()
|
|
End Sub
|
|
|
|
Protected Sub ChkRetencion_CheckedChanged1(sender As Object, e As EventArgs)
|
|
Dim chk As CheckBox = DirectCast(sender, CheckBox)
|
|
Dim gr As GridViewRow = DirectCast(chk.Parent.Parent, GridViewRow)
|
|
|
|
If chk.Checked Then
|
|
gr.FCDropDownList("DdlClasificacion").SelectedValue = "-1"
|
|
gr.FCDropDownList("DdlClasificacion").Enabled = False
|
|
gr.FCDropDownList("DdlCtaContable").Enabled = True
|
|
|
|
gr.FCDropDownList("DdlCtaContable").DataSource = DTCuentas
|
|
gr.FCDropDownList("DdlCtaContable").DataBind()
|
|
gr.FCDropDownList("DdlCtaContable").Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
Else
|
|
gr.FCDropDownList("DdlClasificacion").Enabled = True
|
|
gr.FCDropDownList("DdlCtaContable").Enabled = False
|
|
gr.FCDropDownList("DdlCtaContable").Items.Clear()
|
|
gr.FCDropDownList("DdlCtaContable").Items.Add(New ListItem("Sin Asignar", "-1"))
|
|
End If
|
|
|
|
UpTitulos.Update()
|
|
End Sub
|
|
End Class
|
|
#End Region
|