Option Strict On Imports System.Data Imports Extensiones Partial Class Nomina_FiniquitoVB 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 + objST.ImporteD 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 Private Property esLiquidacion As Boolean Get If Not IsNothing(ViewState("esLiquidacion")) Then Return CBool(ViewState("esLiquidacion")) Else Return False End If End Get Set ViewState("esLiquidacion") = 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 End If RegistraScript("$('#ModalEmpleados').modal();") 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, 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 EstatusPersonal As String = "" CvePeriodoFiniquito = 0 CveTipoPeriodo = 0 esLiquidacion = False pnlupValoresFiniquito.Visible = False DdlMotivoBaja.SelectedValue = "-1" Using ObjPersonal As New ClsRH() If ObjPersonal.GetPersonal(CvePersonal, 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) EstatusPersonal = String.Format("{0}", ObjPersonal.DtResultados.Rows(0)("EstatusPersonal")) CveTipoPeriodo = ObjPersonal.DtResultados.Rows(0)("CveTipoPeriodo").ToString().ToEntero() End If If ObjPersonal.GetPersonalAltas(CvePersonal) AndAlso ObjPersonal.DtResultados.Rows.Count > 0 Then CvePeriodoFiniquito = ObjPersonal.DtResultados.Rows(0)("CvePeriodoFiniquito").ToString().ToEntero() FechaBaja = String.Format("{0:dd/MM/yyyy}", ObjPersonal.DtResultados.Rows(0)("FechaFin")) DdlMotivoBaja.SelectedValueExist(ObjPersonal.DtResultados.Rows(0)("CveMotivoBaja").ToString().ToEntero()) Dim stringesliquidacion = ObjPersonal.DtResultados.Rows(0)("esLiquidacion").ToString() esLiquidacion = (stringesliquidacion = "True" OrElse stringesliquidacion = "1") ChkesLiquidacion.Checked = esLiquidacion End If End Using If DdlMotivoBaja.SelectedValue.ToEntero() > 0 Then LblMotivoBaja.Text = DdlMotivoBaja.SelectedItem.Text Else LblMotivoBaja.Text = "" End If HypEmpleado.Text = Nombre HypEmpleado.NavigateUrl = String.Format("/RH/Personal.aspx?CvePersonal={0}", CvePersonal) LblFechaBaja.Text = FechaBaja LblEstatus.Text = EstatusPersonal TxtFechaBaja.Text = FechaBaja DdlTipoPeriodo_SelectedIndexChanged(Nothing, Nothing) LblPerido.Text = DdlPeriodo.SelectedItem.Text If CvePeriodoFiniquito <= 0 Then retorno = False End If pnlupValoresFiniquito.Visible = True Using ObjNom As New ClsNominas() 'If ObjNom.GetFiniquitosPersonal(CvePersonal, UsuarioActual.CveEmpresa) Then ' DTConceptosPersonal = ObjNom.DtResultados 'Autoriza nomina 'Finiquita Liquidación 'Rep Nomina 'RepInversion de nomina 'Alertas Altas /Bajas ' 'End If End Using 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() Using ObjPersonal As New ClsRH() If ObjPersonal.UpPersonalAltas(CvePersonal, "", TxtFechaBaja.Text.ToDateTime().ToString("yyyy/MM/dd"), DdlPeriodo.SelectedValue.ToEntero(), DdlMotivoBaja.SelectedValue.ToEntero(), ChkesLiquidacion.Checked) AndAlso ObjPersonal.DtResultados.Rows.Count > 0 Then End If End Using 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) Response.Redirect($"/Nomina/Finiquito.aspx?CvePersonal={DdlPersonal.SelectedValue}") 'Alert($"insertParam('CvePersonal','{DdlPersonal.SelectedValue}')") 'RegistraScript($"insertParam('CvePersonal','{DdlPersonal.SelectedValue}')") 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(-1, UsuarioActual.CveEmpresa, -1, -1, -1) Then dtperiodos = ObjPeriodos.DtResultados If IsNothing(sender) AndAlso CvePeriodoFiniquito > 0 Then Dim row As DataRow = dtperiodos.FiltroPrimero(String.Format("CvePeriodo={0} ", CvePeriodoFiniquito)) If Not IsNothing(row) Then CveTipoPeriodoactual = row("CveTipoPeriodo").ToString().ToEntero() DdlTipoPeriodo.SelectedValueExist(If(CveTipoPeriodoactual = 6, "6", "-1")) End If End If dtperiodos = ObjPeriodos.DtResultados.FiltraParametros(String.Format("(Estatus IN (1,2,3,4) AND CveTipoPeriodo={0}) ", CveTipoPeriodoactual)) 'FechaInicio, P.FechaFin DdlPeriodo.Items.Clear() DdlPeriodo.Items.Add(New ListItem("Seleccione", "-1")) DdlPeriodo.SelectedValue = "-1" DdlPeriodo.DataSource = dtperiodos Else DdlPeriodo.DataSource = Nothing End If ObjPeriodos.Dispose() DdlPeriodo.DataBind() If fechabaja.Length > 0 AndAlso dtperiodos.Rows.Count > 0 Then If (CvePeriodoFiniquito > 0) AndAlso IsNothing(sender) Then DdlPeriodo.SelectedValueExist(CvePeriodoFiniquito) Else 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 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