
Namespace Models

    Public Class TramoTeletrabajoExcepcion
        Public Property fechaInicio As Date
        Public Property fechaFin As Date
        Public Property idExcepTel As Integer
        Public Property idPersona As Integer
        Public Property motivo As String

    End Class
    Public Class ResultadoListadoExcepciones
        Public Property resultado As Integer
        Public Property mensaje As String
        Public Property listado As List(Of TramoTeletrabajoExcepcion)
    End Class
    Public Class ResultadoListTeletrabajoEntreFechas
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property ListadoEF As List(Of TramosTeletrabajo)
    End Class
    Public Class TramosTeletrabajo
        Public Property id As Integer
        Public Property nuDias As Integer
        Public Property excepcion As Boolean
        Public Property lunes As Boolean
        Public Property martes As Boolean
        Public Property miercoles As Boolean
        Public Property jueves As Boolean
        Public Property viernes As Boolean
        Public Property motivo As String
        Public Property Fei As Date
        Public Property Fef As Date
    End Class
    Public Class resultadoEditarPicadasAnuladas
        Public Property resultado As Integer
        Public Property mensaje As String
    End Class
    Public Class EditarPicadasAnuladas
        Public Property idPicada As Integer
        Public Property estado As Boolean
    End Class
    Public Class ResultadoObtenerHAD
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property HAD As String
    End Class
    Public Class EnumDepartamento
        Public Property idDep As Integer
        Public Property Descripcion As String
    End Class
    Public Class listPicadasAnular
        Public Property id As Integer
        Public Property idUsu As Integer
        Public Property fecha As Date
        Public Property incidencia As String
        Public Property activo As Boolean
    End Class

    Public Class FechaIniFin
        Property fechaInicio As String
        Property fechaFin As String
    End Class
    Public Class ResultadoIdentificacion
        Public Property resultado As Integer
        Public Property Personas As List(Of Personal)
        Public Property FeIniInciPorAceptar As Date
        Public Property FeFinInciPorAceptar As Date
        Public Property FeIniInciBorrador As Date
        Public Property FeFinInciBorrador As Date
        Public Property errores As String
    End Class
    Public Class Identificacion
        Public Property Nif As String
        Public Property clave As String
        Public Property origen As String
        Public Property resultado As String
    End Class

    Public Class SituacionPersonalOficina
        Public Property PerenlaOficina As List(Of PersonaSituacion)
        Public Property PerconIncidencia As List(Of PersonaSituacion)
    End Class

    Public Class PersonaSituacion
        Public Property Nif As String
        Public Property ApeNom As String
        Public Property Situacion As String
    End Class
    Public Class GenerarForaTer
        Public Property nif As String
        Public Property Swift As String
        Public Property Bic As String
        Public Property Entidad As String
        Public Property IBAN As String
    End Class
    Public Class ResultadoGenerarForaTer
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroForaTer As Byte()
    End Class

    Public Class compAcceso
        Public Property idAcceso As String
        Public Property clave As String

    End Class

    Public Class ResultadoListPicaEntreFechas
        Public Property resultado As Integer
        Public Property Mensaje As String
        Public Property ListadoEF As ListadoPicadasEntreFechas
    End Class
    Public Class ListadoPicadasEntreFechas
        Property ListaDepartamento As List(Of Departamento)
        Property FechaInicio As String
        Property FechaFin As String
        Property HorasTraPeriodo As Double
    End Class

    Public Class Departamento
        Property NombreDepartamento As String
        Property LisPersonas As List(Of PersonaCH)
    End Class
    Public Class Anos_Meses_Dias
        Property Anos As Integer
        Property Meses As Integer
        Property Dias As Integer

    End Class
    Public Class PersonaCH
        Property ApellidosNombre As String
        Property LisFechasTurnos As List(Of FechaTurno)
        Property TotalesPeriodo As TotalPeriodo
    End Class

    Public Class FechaTurno
        Property DesFechaTurno As String
        Property LisPicadasAsistencias As List(Of PicadaAsistencia)
        Property TotalesPeriodo As TotalPeriodo
    End Class

    Public Class PicadaAsistencia
        Property Fecha As String
        Property Hora As String
        Property HoraReal As String
        Property Incidencia As String
        Property HorasATrabajar As String
        Property HorasTrabajadas As String
        Property HorasExtraACompensar As String
        Property HorasExtraAguardar As String
        Property Saldo As String
        Property HorasRecuperables As String
        Property HorasIncumplimiento As String
        Property HorasTrabajadasTarde As String
        Property NumeroPicada As String
    End Class

    Public Class TotalPeriodo
        Property TotalHorasATrabajar As String
        Property TotalHorasTrabajadas As String
        Property TotalHorasExtraACompensar As String
        Property TotalHorasExtraAguardar As String
        Property TotalSaldo As String
        Property TotalHorasRecuperables As String
        Property TotalHorasIncumplimiento As String
        Property TotalHorasTrabajadasTarde As String
    End Class
    Public Class Persona
        Public Property Nombre As String
        Public Property Apellidos As String
        Public Property DNI As String
        Public Property email() As String
        Public Property FechaNacimiento As Date?
        Public Property Telefono As String
        Public Property Direccion As String
        Public Property CodigoPostal As String
        Public Property Provincia As String
        Public Property Poblacion As String
        Public Property FechaAlta As Date?
    End Class
    Public Class NominaTrabajador
        Public Property idNominaTrabajador As String
        Public Property Descripcion As String
        Public Property MesNomina As Integer
    End Class
    Public Class Incidencias
        Public Property idIncidencias As String
        Public Property Descripcion As String
        Public Property EsInciReloj As Boolean
    End Class
    Public Class ResultadoHorasExtrasEntreFechas
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property HorasEF As HorasExtEntreFech
    End Class

    Public Class HorasExtEntreFech
        Property FechaInicio As Date()
        Property FechaFin As Date()
        Property Nombre As String
        Property SaldoPeriodo As String
        Property SalcoAcumulado As String
        Property ListadoHorasExtras As List(Of HoraExtra)

    End Class

    Public Class HoraExtra
        Property Fecha As Date
        Property Horas As String
        Property Descripcion As String

    End Class
    Public Class ClaVaApBc
        Property Anno As Integer
        Property Nombre As String
        Property TotPerVa As String
        Property TotDisVa As String
        Property TotDifVa As String
        Property TotPerAp As String
        Property TotDisAp As String
        Property TotDifAp As String
        Property TotPerBc As String
        Property TotDisBc As String
        Property TotDifBc As String
        Property TotPerDr As String
        Property TotDisDr As String
        Property TotDifDr As String
        Property TotPerHr As String
        Property TotDisHr As String
        Property TotDifHr As String

        Property ListadoVaApBc As List(Of VaApBc)
    End Class

    Public Class VaApBc
        Property Fecha As Date
        Property FechaFin As Date
        Property Descripcion As String
        Property HorasManana As String
        Property HorasTarde As String
        Property NumDias As Integer
    End Class
    Public Class ResultadoSituacionVAAPBC
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property DiasVAB As List(Of ClaVaApBc)
    End Class
    'Public Class ResultadoIdentificacion
    '    Public Property resultado As Integer
    '    Public Property Personas As List(Of Personal)
    '    Public Property FeIniInciPorAceptar As Date
    '    Public Property FeFinInciPorAceptar As Date
    '    Public Property errores As String
    'End Class
    Public Class Personal
        Public Property Nombre As String
        Public Property Dni As String
        Public Property idPersona As Integer
        Public Property Departamento As String
        Public Property Roll As String
        Public Property Grupo As String
        Public Property NumeroInciPorAceptar As Integer
        Public Property FeIniInciPorAceptar As Date
        Public Property FeFinInciPorAceptar As Date


    End Class
    Public Class ListaPersonasDelegadas
        Public Property nifIdent As String
        Public Property listaPersonasDel As List(Of PersonaDelegada)
    End Class
    Public Class PersonaDelegada
        Public Property Nif As String
        Public Property Delegado As Boolean
    End Class

    Public Class Consulta
        Public Property fechaInicio As Nullable(Of Date)
        Public Property fechaFin As Nullable(Of Date)
        Public Property listaNif As List(Of String)
    End Class

    Public Class ListAsisEntreFechas
        Property ListaPersonas As List(Of PersonaAsi)
        Property FechaInicio As String
        Property FechaFin As String

    End Class

    Public Class PersonaAsi
        Property ApellidosNombre As String
        Property Nif As String
        Property LisAsistencias As List(Of Asistencia)

    End Class

    Public Class Asistencia
        Property idAsistencia As Integer
        Property DesAsistencia As String
        Public Property FechaInicio As Date
        Public Property FechaFin As Date
        Public Property HorasTraManana As String
        Public Property HorasTraTarde As String
        Public Property Observaciones As String
        Public Property ExpedienteECO As String
        Public Property Estado As String
        Public Property DesWeb As String
        Public Property Tipo As String
        Public Property Ndias As Integer

    End Class
    Public Class ResultadoListAsisEntreFechas
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property ListadoEF As ListAsisEntreFechas
        Public Property ListadoEFNoAceptada As ListAsisEntreFechas

    End Class

    Public Class ResultadoObtenAsistencia
        ''' <summary>
        ''' Devuelve 0 si es correcto en caso que no sea 0 devuelve error
        ''' </summary>
        ''' <returns></returns>
        ''' 
        Public Property Nif As String
        Public Property ApellidosNombre As String
        Public Property idAsistencia As Integer
        Public Property DesAsistencia As String
        Public Property idIncidenciaControlHorario As Integer
        Public Property FechaInicio As Date
        Public Property FechaFin As Date
        Public Property HoraInicioManana As String
        Public Property HoraFinManana As String
        Public Property HorasTraManana As String
        Public Property HoraInicioTarde As String
        Public Property HoraFinTarde As String
        Public Property HorasTraTarde As String
        Public Property Observaciones As String
        Public Property PosiblesEstados As List(Of Estados)
        Public Property PuedeCambiarEstado As Boolean
        Public Property EstadosAsistencia As List(Of EstadosdelaAsistencia)
        Public Property IdEstadoActual As Integer
        Public Property DesEstadoActual As String
        Public Property Expediente As String
        Public Property ExisteArchivo As Boolean = False
        Public Property Resultado As Integer
        Public Property Mensaje As String

    End Class

    Public Class EstadosdelaAsistencia
        Public Property FechaHora As Date
        Public Property IdTipoEstado As Integer
        Public Property Usuario As String
        Public Property InformacionAnexa As String
        Public Property Observaciones As String


    End Class
    Public Class Estados
        Public Property idEstado As String
        Public Property Descripcion As String

    End Class

    Public Class EstadosAsistencia
        Private Property listaEstados As List(Of Estados)
    End Class

    Public Class Incidencia
        Public Property idIncidencias As String
        Public Property Descripcion As String
        Public Property EsInciReloj As Boolean
        Public Property RequiereAprobacion As Boolean
        Public Property AdmiteDiasCompletos As Boolean
        Public Property AdmiteIntervaloDias As Boolean
        Public Property AdmiteIntervaloHoras As Boolean
        Public Property AdmiteInstanteTemporal As Boolean
        Public Property AdmiteRangosFechas As Boolean
        Public Property Adjunto As String
        Public Property idGrupo As String
        Public Property idSubgrupo As String
        Public Property visibleWeb As Boolean
        Public Property descripcionWeb As String
        Public Property ayudaWeb As String
        Public Property orden As Integer
        ReadOnly Property Nombre As String
            Get
                If descripcionWeb IsNot Nothing Then
                    Nombre = descripcionWeb
                Else
                    Nombre = Descripcion
                End If
            End Get
        End Property

    End Class
    Public Class FicheroAtrasnmitir
        Public Property idRegistro As Integer
        Public Property tabla As String
        Public Property Fichero As String

    End Class
    Public Class ResultadoAlmacenaFicheroAtransmitir
        Public Property Resultado As Integer
        Public Property Mensaje As String

    End Class
    Public Class grupos
        Public Property idGrupo As String
        Public Property Descripcion As String
        Public Property NumIncidencias As Integer
        Public Property NumSolicitudes As Integer
        Public Property orden As Integer
        Public Property ayudaWeb As String

    End Class
    Public Class subGrupos
        Public Property idSubGrupo As Integer
        Public Property ayudaWeb As String
        Public Property descripcion As String
        Public Property orden As Integer
        Public Property numCom As Integer
        Public Property numSol As Integer
    End Class
    Public Class ResultadoSubGruposIncidenciasControlHorario
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property listaSubgrupos As List(Of subGrupos)
    End Class
    Public Class ResultadoModificaPersonasDelegadas
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property Personas As List(Of Personal)
        Public Property FeIniInciPorAceptar As Date
        Public Property FeFinInciPorAceptar As Date
    End Class
    Public Class ConsultaAnnoMes
        Public Property Anno As Integer
        Public Property Mes As Integer
        Public Property listaNif As List(Of String)
    End Class

    Public Class ResultadoExcelResumenAsistencia
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroExcel As Byte()
    End Class

    Public Class AlmacenaFicheroIncidencia
        Public Property idAsistencia As Integer
        Public Property Fichero As String
    End Class

    Public Class ResultadoGenAsisEntreFechas
        ''' <summary>
        ''' Devuelve 0 si es correcto en caso que no sea 0 devuelve error
        ''' </summary>
        ''' <returns></returns>
        Public Property Resultado As Integer

        Public Property idAsistencia As Integer

        Public Property Mensaje As String
    End Class
    Public Class ResultadoGenTeletrabajoEntreFechas
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property Errores As List(Of String)
        Public Property ListadoEF As ListTeleTrabajoEntreFechas
    End Class
    Public Class GenTeletrabajoEntreFechas
        Public Property ListNif As List(Of String)
        Public Property FechaInicio As Date
        Public Property FechaFin As Date
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property ListadoEF As ListTeleTrabajoEntreFechas
    End Class
    Public Class ListTeleTrabajoEntreFechas
        Property ListaPersonas As List(Of PersonaAsi)
        Property FechaInicio As String
        Property FechaFin As String

    End Class
    Public Class ListAsisMasivas

        Public Property Nif As String

        Public Property ListAsis As List(Of AsisEstado)

    End Class

    Public Class AsisEstado

        Public Property idAsistencia As Integer

        Public Property idEstado As Integer

    End Class

    Public Class NifPersona
        Property Nif As String
    End Class
    Public Class ResultadoObtenerDatosPersonales
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property DatosPersonales As DatosPersonas
    End Class
    Public Class ObtenerDatosPersonales
        Public Property Nif As String
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property DatosPersonales As DatosPersonas
    End Class
    Public Class DatosPersonas
        Public Property Nif As String
        Public Property Direccion As String
        Public Property CodigoPostal As String
        Public Property Poblacion As String
        Public Property Provincia As String
        Public Property Telefono As String
        Public Property Movil As String
        Public Property IBAN As String
    End Class
    Public Class ResultadoExcelHojaAcreditacionDatos
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroExcel As Byte()
    End Class
    Public Class ExcelHojaAcreditacionDatos
        Public Property ListNif As List(Of String)
        Public Property FechaInicio As Date
        Public Property FechaFin As Date
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroExcel As Byte()
    End Class
    Public Class ResultadoSolicitudConsolidacionGrado
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroExcel As Byte()
    End Class
    Public Class SolicitudConsolidacionGrado
        Public Property ListNif As List(Of String)
        Public Property FechaInicio As Date
        Public Property FechaFin As Date
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroExcel As Byte()
    End Class
    Public Class ResultadoExcelRPT
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroExcel As Byte()
    End Class
    Public Class ExcelRPT
        Public Property ListNif As List(Of String)
        Public Property FechaInicio As Date
        Public Property FechaFin As Date
        Public Property Resultado As Integer
        Public Property Mensaje As String
        Public Property FicheroExcel As Byte()
    End Class

End Namespace
