import datetime
from django import template
from nlt import numlet as nl


register = template.Library()

dias=["Lunes","Martes","Miercoles","Jueves","Viernes","Sábado","Domingo"]
@register.simple_tag
def dia(fecha):
    return dias[fecha.weekday()]

@register.simple_tag
def hora(hora):
    #hora = datetime.datetime.strptime(hora, "%X").time()
    if (hora >=datetime.datetime.strptime("17:00:00", "%X").time() ):
        return "Marcación Regular (S)"
    if (hora >=datetime.datetime.strptime("12:30:00", "%X").time() and hora <=datetime.datetime.strptime("13:00:59", "%X").time()):
        return "Marcación Regular (EA)"
    if (hora >=datetime.datetime.strptime("12:00:00", "%X").time()  and hora <=datetime.datetime.strptime("12:30:59", "%X").time()):
        return "Marcación Regular (SA)"
    if (hora <= datetime.datetime.strptime("08:05:00", "%X").time() ):
        return "Marcación Regular (E)"
    if(hora> datetime.datetime.strptime("08:05:00", "%X").time() and hora <= datetime.datetime.strptime("12:00:00", "%X").time()):
        return "Atraso (A)"
    else:
        return "Salida Anticipada (SA)"


def segundos_a_segundos_minutos_y_horas(segundos):
    horas = int(segundos / 3600)
    segundos -= horas * 3600
    minutos = int(segundos / 60)
    segundos -= minutos * 60
    return f"{horas:02d}:{minutos:02d}:{int(segundos):02d}"

@register.simple_tag
def suma_atrasos_justificados(query):
    h=0
    for i in query:
        s = 0
        if i.hora ==datetime.timedelta(hours=8,minutes=0, seconds=0):
            s=datetime.timedelta(hours=8,minutes=0, seconds=0).total_seconds()
        else:
            if not i.justificado:
                format = '%H:%M:%S'
                s = i.retraso
                print(">Esta es la resta", s)
                time = datetime.datetime.strptime(str(s), format)
                print("la hora", time.time())
                s=int(time.time().hour)*3600+int(time.time().minute)*60+int(time.time().second)
                print('segundos',s)
        h+=s
    return segundos_a_segundos_minutos_y_horas(h)

@register.simple_tag
def decimales(numero):
    valor=float(numero)+2.35
    return f"{valor:.2f}"

meses=['enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre']
@register.simple_tag
def fecha_letras(fecha):
    fecha=fecha.split('/')
    print(fecha)
    dia=''
    if int(fecha[0])==1:
        dia='al un'
    else:
        dia ="a los "+ nl.Numero(fecha[0]).a_letras.lower()
    mes = meses[int(fecha[1]) - 1]
    a=nl.Numero(fecha[2]).a_letras.lower()


    return f"{dia} dias del mes de {mes}, del año {a}"