Option Strict On Imports System.Data Imports Extensiones Partial Class Nomina_Finiquito Inherits ClsPaginas Private Class ConceptosPersonal Public Sub New() Concepto = "" ConceptoD = "" CveConcepto = 0 CveConceptoD = 0 Estatus = 0 Estatus = 0 End Sub Public Property Concepto As String Public Property CveConcepto As Integer Public Property Importe As Decimal Public Property Estatus As Integer Public Property ConceptoD As String Public Property CveConceptoD As Integer Public Property ImporteD As Decimal Public Property EstatusD As Integer End Class #Region "Propiedades" Private Property CvePersonal As Integer Get If Not IsNothing(ViewState("CvePersonal")) Then Return ViewState("CvePersonal").ToString().ToEntero() Else Return 0 End If End Get Set(value As Integer) ViewState("CvePersonal") = value End Set End Property Private Property CveTipoPeriodo As Integer Get If Not IsNothing(ViewState("CveTipoPeriodo")) Then Return ViewState("CveTipoPeriodo").ToString().ToEntero() Else Return 0 End If End Get Set(value As Integer) ViewState("CveTipoPeriodo") = value End Set End Property Private Property CvePeriodoFiniquito As Integer Get If Not IsNothing(ViewState("CvePeriodoFiniquito")) Then Return ViewState("CvePeriodoFiniquito").ToString().ToEntero() Else Return 0 End If End Get Set(value As Integer) ViewState("CvePeriodoFiniquito") = value End Set End Property Private Property GCEstatus As Integer Get If Not IsNothing(ViewState("GCEstatus")) Then Return ViewState("GCEstatus").ToString().ToEntero() Else Return 0 End If End Get Set ViewState("GCEstatus") = Value End Set End Property Private Property GCCveConcepto As Integer Get If Not IsNothing(ViewState("GCCveConcepto")) Then Return ViewState("GCCveConcepto").ToString().ToEntero() Else Return 0 End If End Get Set ViewState("GCCveConcepto") = Value End Set End Property Private Property GCImporte As Decimal Get If Not IsNothing(ViewState("GCImporte")) Then Return ViewState("GCImporte").ToString().ToDecimal() Else Return 0 End If End Get Set ViewState("GCImporte") = Value End Set End Property Private ReadOnly Property ConceptsPersonas As List(Of ConceptosPersonal) Get Dim listaconceptos As New List(Of ConceptosPersonal) Dim TotalP As Decimal = 0 Dim TotalD As Decimal = 0 If (Not IsNothing(DTConceptosPersonal) AndAlso DTConceptosPersonal.Rows.Count > 0) Then Dim dtP As DataTable = DTConceptosPersonal.FiltraParametros("Tipo=1") Dim dtD As DataTable = DTConceptosPersonal.FiltraParametros("Tipo=2") Dim noP = dtP.Rows.Count() Dim noD = dtD.Rows.Count() Dim max = If(noP > noD, noP, noD) TotalP = dtP.SUM("Importe").ToString().ToDecimal() TotalD = dtD.SUM("Importe").ToString().ToDecimal() For index = 0 To max Dim obj As New ConceptosPersonal() If index < noP Then obj.Importe = dtP.Rows(index)("Importe").ToString().ToDecimal() obj.CveConcepto = dtP.Rows(index)("CveConcepto").ToString().ToEntero() obj.Concepto = dtP.Rows(index)("Concepto").ToString() obj.Estatus = dtP.Rows(index)("Estatus").ToString().ToEntero() ElseIf index = noP Then obj.Estatus = -1 obj.Concepto = "Agregar" End If If index < noD Then obj.ImporteD = dtD.Rows(index)("Importe").ToString().ToDecimal() obj.CveConceptoD = dtD.Rows(index)("CveConcepto").ToString().ToEntero() obj.ConceptoD = dtD.Rows(index)("Concepto").ToString() obj.EstatusD = dtD.Rows(index)("Estatus").ToString().ToEntero() ElseIf index = noD Then obj.EstatusD = -1 obj.ConceptoD = "Agregar" End If listaconceptos.Add(obj) Next End If listaconceptos.Add(New ConceptosPersonal()) Dim objST As New ConceptosPersonal() objST.Importe = TotalP objST.CveConcepto = 0 objST.Concepto = "Total Percepciones" objST.Estatus = -2 objST.ImporteD = TotalD objST.CveConceptoD = 0 objST.ConceptoD = "Total Deducciones" objST.EstatusD = -2 listaconceptos.Add(objST) Dim objT As New ConceptosPersonal() objT.CveConcepto = 0 objT.Concepto = "" objT.Estatus = -3 objT.ImporteD = objST.Importe - objT.Importe objT.CveConceptoD = 0 objT.ConceptoD = "Total" objT.EstatusD = -3 listaconceptos.Add(objT) Return listaconceptos End Get End Property Private Property DTConceptosPersonal As DataTable Get If Not IsNothing(ViewState("DTConceptosPersonal")) Then Return DirectCast(ViewState("DTConceptosPersonal"), DataTable) Else Return Nothing End If End Get Set ViewState("DTConceptosPersonal") = Value End Set End Property Private Property DTConceptos As DataTable Get If Not IsNothing(ViewState("DTConceptos")) Then Return DirectCast(ViewState("DTConceptos"), DataTable) Else Return Nothing End If End Get Set ViewState("DTConceptos") = 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 CargaDdlPersonal() CargaMotivoBaja() CvePeriodoFiniquito = 0 If Request("CvePersonal") IsNot Nothing AndAlso IsNumeric(Request("CvePersonal")) AndAlso Request("CvePersonal").ToEntero > 0 Then ViewState("CvePersonal") = Request("CvePersonal") Else CvePersonal = -1 End If If Not CargaDatosFiniquito() Then RegistraScript("$('#ModalEmpleados').modal();") End If End If If CvePersonal > 0 And CvePeriodoFiniquito > 0 Then LtlEmpleadoCancelar.Visible = True End If End Sub Private Sub CargaMotivoBaja() DdlMotivoBaja.DataSource = GlobalDTMotivoBaja.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlMotivoBaja.DataBind() End Sub Private Sub CargaDdlPersonal() Dim ObjPersonal As New ClsRH If ObjPersonal.GetPersonal(-1, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then DdlPersonal.DataSource = ObjPersonal.DtResultados DdlPersonal.DataBind() End If ObjPersonal.Dispose() End Sub Private Function CargaDatosFiniquito() As Boolean Dim retorno As Boolean = True If CvePersonal > 0 Then DdlPersonal.SelectedValueExist(CvePersonal.ToString()) Dim Nombre As String = "" Dim FechaBaja As String = "" Dim MotivoBaja As String = "" Dim EstatusPersonal As String = "" CvePeriodoFiniquito = 0 CveTipoPeriodo = 0 pnlupValoresFiniquito.Visible = False Dim ObjPersonal As New ClsRH If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) AndAlso ObjPersonal.DtResultados.Rows.Count > 0 Then Nombre = ObjPersonal.DtResultados.Rows(0)("Nombre").ToString() FechaBaja = String.Format("{0:dd/MM/yyyy}", ObjPersonal.FechaBaja) MotivoBaja = String.Format("{0}", ObjPersonal.DtResultados.Rows(0)("MotivoBaja")) EstatusPersonal = String.Format("{0}", ObjPersonal.DtResultados.Rows(0)("EstatusPersonal")) CvePeriodoFiniquito = ObjPersonal.DtResultados.Rows(0)("CvePeriodoFiniquito").ToString().ToEntero() CveTipoPeriodo = ObjPersonal.DtResultados.Rows(0)("CveTipoPeriodo").ToString().ToEntero() End If ObjPersonal.Dispose() HypEmpleado.Text = Nombre HypEmpleado.NavigateUrl = String.Format("/RH/Personal.aspx?CvePersonal={0}", CvePersonal) LblFechaBaja.Text = FechaBaja LblMotivoBaja.Text = MotivoBaja LblEstatus.Text = EstatusPersonal TxtFechaBaja.Text = FechaBaja If CvePeriodoFiniquito <= 0 Then DdlTipoPeriodo_SelectedIndexChanged(Nothing, Nothing) retorno = False pnlupValoresFiniquito.Visible = True End If Dim ObjNom As New ClsNominas If ObjNom.GetFiniquitosPersonal(CvePersonal, UsuarioActual.CveEmpresa) Then DTConceptosPersonal = ObjNom.DtResultados End If ObjNom.Dispose() GvConceptos.DataSource = ConceptsPersonas GvConceptos.DataBind() Else retorno = False End If Return retorno End Function Protected Sub LnkCampiarEmpleado_Click(sender As Object, e As EventArgs) CvePersonal = DdlPersonal.SelectedValue.ToEntero() If pnlupValoresFiniquito.Visible Then End If If Not CargaDatosFiniquito() Then RegistraScript("$('#ModalEmpleados').modal('hide');") End If upDatos.Update() End Sub Protected Sub LnkCalcular_Click(sender As Object, e As EventArgs) End Sub Protected Sub LnkAutorizar_Click(sender As Object, e As EventArgs) End Sub Protected Sub LnkTimbrar_Click(sender As Object, e As EventArgs) End Sub Protected Sub LnkFormatoRenuncia_Click(sender As Object, e As EventArgs) End Sub Protected Sub DdlPersonal_SelectedIndexChanged(sender As Object, e As EventArgs) End Sub Protected Sub DdlTipoPeriodo_SelectedIndexChanged(sender As Object, e As EventArgs) Dim CveTipoPeriodoactual As Integer = If(DdlTipoPeriodo.SelectedValue.ToEntero() > 0, DdlTipoPeriodo.SelectedValue.ToEntero(), CveTipoPeriodo) Dim fechabaja As String = TxtFechaBaja.Text Dim dtperiodos As New DataTable Dim ObjPeriodos As New ClsNominas If ObjPeriodos.GetPeriodos(CveTipoPeriodoactual, UsuarioActual.CveEmpresa, -1, -1, -1) Then dtperiodos = ObjPeriodos.DtResultados.FiltraParametros("Estatus IN (1,2,3,4)") 'FechaInicio, P.FechaFin DdlPeriodo.DataSource = dtperiodos Else DdlPeriodo.DataSource = Nothing End If ObjPeriodos.Dispose() DdlPeriodo.DataBind() If fechabaja.Length > 0 AndAlso dtperiodos.Rows.Count > 0 Then Dim row As DataRow = dtperiodos.FiltroPrimero(String.Format("FechaInicio<='{0:yyyy/MM/dd}' AND FechaFin>='{0:yyyy/MM/dd}'", fechabaja.ToDate())) If Not IsNothing(row) Then DdlPeriodo.SelectedValueExist(row("CvePeriodo")) End If End If End Sub #Region "Conceptos" Protected Sub GvConceptos_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then 'Datakeys 'Concepto,CveConcepto,Importe,Estatus,ConceptoD,CveConceptoD,ImporteD,EstatusD Dim CveConcepto As Integer = e.Row.DataKey("CveConcepto").ToEntero() Dim CveConceptoD As Integer = e.Row.DataKey("CveConceptoD").ToEntero() 'Dim Importe As Decimal = e.Row.DataKey("Importe").ToDecimal() 'Dim ImporteD As Decimal = e.Row.DataKey("ImporteD").ToDecimal() Dim Estatus As Integer = e.Row.DataKey("Estatus").ToEntero() Dim EstatusD As Integer = e.Row.DataKey("EstatusD").ToEntero() 'Controles Dim LtlConcepto As Label = e.Row.FCLabel("LtlConcepto") Dim LnkConcepto As LinkButton = e.Row.FCLinkButton("LnkConcepto") Dim LtlConceptoD As Label = e.Row.FCLabel("LtlConceptoD") Dim LnkConceptoD As LinkButton = e.Row.FCLinkButton("LnkConceptod") Dim LtlImporte As Label = e.Row.FCLabel("LtlImporte") Dim LnkImporte As LinkButton = e.Row.FCLinkButton("LnkImporte") Dim LtlImporteD As Label = e.Row.FCLabel("LtlImporteD") Dim LnkImporteD As LinkButton = e.Row.FCLinkButton("LnkImporteD") If Estatus < -1 Or EstatusD < -1 Then e.Row.CssClass = "ConceptosTotales" End If If CveConcepto = 0 AndAlso (Estatus = 0 OrElse Estatus = -1 OrElse Estatus = -3) Then LtlImporte.Text = "" End If If CveConceptoD = 0 AndAlso (EstatusD = 0 OrElse EstatusD = -1) Then LtlImporteD.Text = "" End If If Estatus = -1 Then LtlConcepto.Visible = False ElseIf Estatus > 0 Then LtlImporte.Visible = False End If If EstatusD = -1 Then LtlConceptoD.Visible = False ElseIf EstatusD > 0 Then LtlImporteD.Visible = False End If LnkConcepto.Visible = Not LtlConcepto.Visible LnkConceptoD.Visible = Not LtlConceptoD.Visible LnkImporte.Visible = Not LtlImporte.Visible LnkImporteD.Visible = Not LtlImporteD.Visible End If End Sub Protected Sub LnkConcepto_Click(sender As Object, e As EventArgs) Dim gvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) GCEstatus = gvRow.DataKey("Estatus").ToEntero() GCCveConcepto = gvRow.DataKey("CveConcepto").ToEntero() GCImporte = gvRow.DataKey("Importe").ToDecimal() OpenModalConceptos(1) End Sub Protected Sub LnkConceptoD_Click(sender As Object, e As EventArgs) Dim gvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) GCEstatus = gvRow.DataKey("Estatus").ToEntero() GCCveConcepto = gvRow.DataKey("CveConcepto").ToEntero() GCImporte = gvRow.DataKey("Importe").ToDecimal() OpenModalConceptos(2) End Sub Private Sub OpenModalConceptos(Tipo As Integer) If GCEstatus = -1 Then Else End If RegistraScript("$('#ModalConceptos').modal();") End Sub Protected Sub LnkAceptarConceptos_Click(sender As Object, e As EventArgs) RegistraScript("$('#ModalConceptos').modal('hide');") End Sub #End Region End Class