def registro(request): usuario = request.POST["escolhido"] est = Estagiario.objects.get(pk=usuario) #Se o usuário não tem nenhuma entrada em aberto naquele dia: if RegistroPonto.objects.filter(Estagiario=est, Data=datetime.now(), Saida=None).count() == 0: novoreg = RegistroPonto(Estagiario=est, Data=datetime.now(), Entrada=datetime.time(datetime.now())) novoreg.save() estado = 1 #Se o usuário ja possui uma entrada naquele dia: else: def tolerancia(Hora, Fixo): fixodelta = timedelta(minutes=Fixo.minute, hours=Fixo.hour) horadelta = timedelta(minutes=Hora.minute, hours=Hora.hour) hmax = fixodelta + timedelta(minutes=15) hmin = fixodelta - timedelta(minutes=15) if horadelta > hmax: return 0 elif horadelta < hmin: return 0 else: return 1 reg = RegistroPonto.objects.get(Estagiario=est, Data=datetime.now(), Saida=None) reg.Saida = datetime.time(datetime.now()) reg.save() #Se o horário está dentro do Horário Fixo então ele é automaticamente aceito. for fix in HorarioFixo.objects.filter( Estagiario=est, DiaSemana=((datetime.now().weekday() + 2) % 7)): if tolerancia(reg.Entrada, fix.Entrada) == 1: if tolerancia(reg.Saida, fix.Saida) == 1: reg.Entrada = fix.Entrada reg.Saida = fix.Saida reg.Aceito = True reg.save() estado = 2 return HttpResponseRedirect(('/?est=%d&estado=%d') % (est.id, estado))
def novo(request): if request.method == 'POST': form = FormRegistroPonto(request.POST, request.FILES) if form.is_valid(): dados = form.cleaned_data registroponto = RegistroPonto( dia = dados['dia'], hora = dados['hora'], tipo = dados['tipo'], imagem = '', usuario = request.user, ) registroponto.save() return render_to_response("gravado.html",{}) else: form = FormRegistroPonto() return render_to_response("novoregistro.html",{'form':form}, context_instance=RequestContext(request))
def registro(request): usuario = request.POST["escolhido"] est = Estagiario.objects.get(pk=usuario) #Se o usuário não tem nenhuma entrada em aberto naquele dia: if RegistroPonto.objects.filter(Estagiario= est, Data = datetime.now(), Saida=None).count() == 0: novoreg = RegistroPonto(Estagiario=est, Data=datetime.now(), Entrada=datetime.time(datetime.now())) novoreg.save() estado = 1 #Se o usuário ja possui uma entrada naquele dia: else: def tolerancia(Hora, Fixo): fixodelta=timedelta(minutes=Fixo.minute,hours=Fixo.hour) horadelta=timedelta(minutes=Hora.minute,hours=Hora.hour) hmax = fixodelta + timedelta(minutes=15) hmin = fixodelta - timedelta(minutes=15) if horadelta > hmax: return 0 elif horadelta < hmin: return 0 else: return 1 reg = RegistroPonto.objects.get(Estagiario= est, Data = datetime.now(), Saida=None) reg.Saida = datetime.time(datetime.now()) reg.save() #Se o horário está dentro do Horário Fixo então ele é automaticamente aceito. for fix in HorarioFixo.objects.filter(Estagiario = est, DiaSemana=((datetime.now().weekday()+2) % 7)): if tolerancia(reg.Entrada,fix.Entrada) == 1: if tolerancia(reg.Saida, fix.Saida) ==1: reg.Entrada = fix.Entrada reg.Saida = fix.Saida reg.Aceito = True reg.save() estado = 2 return HttpResponseRedirect( ('/?est=%d&estado=%d') % (est.id,estado) )