using Exferia_Aplicacion.General;
using Exferia_KairosPRO.General;
using Exferia_KairosPRO_EF;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exferia_KairosPRO._1_Modelos
{
    public class INTERNO_AUX_ConsultaDetallada_Modelo
    {
        public INTERNO_AUX_ConsultaDetallada_Modelo()
        { }

        public long Id_Empleado { get; set; }

        public DateTime Fecha { get; set; }
        public string DiaSemana { get; set; }
        public string DiaSemana_Texto
        {
            get
            {
                string str_DiaSemana_Texto = "";

                if (DiaSemana != null)
                {
                    if (DiaSemana.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_LUNES))
                    {
                        str_DiaSemana_Texto = Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_LUNES;
                    }
                    else if (DiaSemana.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MARTES))
                    {
                        str_DiaSemana_Texto = Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MARTES;
                    }
                    else if (DiaSemana.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MIERCOLES))
                    {
                        str_DiaSemana_Texto = Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MIERCOLES;
                    }
                    else if (DiaSemana.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_JUEVES))
                    {
                        str_DiaSemana_Texto = Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_JUEVES;
                    }
                    else if (DiaSemana.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_VIERNES))
                    {
                        str_DiaSemana_Texto = Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_VIERNES;
                    }
                    else if (DiaSemana.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_SABADO))
                    {
                        str_DiaSemana_Texto = Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_SABADO;
                    }
                    else if (DiaSemana.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_DOMINGO))
                    {
                        str_DiaSemana_Texto = Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_DOMINGO;
                    }
                }

                return str_DiaSemana_Texto;
            }
        }
        public string Tipo { get; set; }
        public string Jornada { get; set; }

        public TimeSpan TiempoARealizar { get; set; }
        public TimeSpan TiempoRealizado { get; set; }
        public TimeSpan TiempoReal { get; set; }
        public string TiempoAbsentismo { get; set; }
        public TimeSpan Saldo { get; set; }

        public TimeSpan Saldo_Positivo
        {
            get
            {
                TimeSpan tms_valor = new TimeSpan(0,0,0);
                if (Saldo.TotalSeconds>=0)
                {
                    tms_valor = Saldo;
                }

                return tms_valor;
            }
        }
        public TimeSpan Saldo_Negativo
        {
            get
            {
                TimeSpan tms_valor = new TimeSpan(0, 0, 0);

                if (Saldo.TotalSeconds < 0)
                {
                    tms_valor = Funciones_KairosPRO.Convertir_Horas_A_TimeSpan(decimal.Parse(Saldo.TotalHours.ToString())*-1);
                }

                return tms_valor;
            }
        }

        public TimeSpan HorasExtras_Reales { get; set; }
        public TimeSpan HorasExtras_Reales_PorConvenio { get; set; }
        public TimeSpan HorasExtras_Autorizadas { get; set; }
        public TimeSpan HorasExtras_Autorizadas_PorConvenio { get; set; }

        public bool IncidenciaHoras { get; set; }
        public string IncidenciaDia { get; set; }
        public string IncidenciaDia_Texto
        {
            get
            {
                string str_IncidenciaDia_Texto = "";

                if (IncidenciaDia != null)
                {
                    if (IncidenciaDia.Equals(Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_SININCIDENCIAS))
                    {
                        str_IncidenciaDia_Texto = Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_SININCIDENCIAS;
                    }
                    else if (IncidenciaDia.Equals(Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_CONINCIDENCIAS))
                    {
                        str_IncidenciaDia_Texto = Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_CONINCIDENCIAS;
                    }
                    else if (IncidenciaDia.Equals(Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_SINVALIDAR))
                    {
                        str_IncidenciaDia_Texto = Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_SINVALIDAR;
                    }
                    else if(IncidenciaDia.Equals(Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_SINFICHAJES))
                    {
                        str_IncidenciaDia_Texto = Variables_KairosPRO.G_STR_TIPO_INCIDENCIA_SINFICHAJES;
                    }
                }

                return str_IncidenciaDia_Texto;
            }
        }
    }
}
