def save(self): b = Bussiness() turno = self.cleaned_data['hora'] telefono = self.cleaned_data['telefono'] modificado = b.modificar_linea_reserva(self.lr, turno, telefono) logger.debug("Modificado %s"%modificado) return modificado
def cancelar_reserva(request, lr_id=None): b = Bussiness() if request.method == 'POST': form = CancelarReservaForm(data=request.POST) if form.is_valid(): reserva = form.cleaned_data["turnos"] motivo = form.cleaned_data["motivo"] if b.cancelar_reserva(reserva, motivo, request.user.get_profile()): messages.success(request, u'Reserva cancelada con éxito') siguiente = form.cleaned_data['next'] if form.cleaned_data['next'] else request.path return HttpResponseRedirect(siguiente) elif lr_id and LineaDeReserva.objects.filter(id=lr_id).exists(): lr = LineaDeReserva.objects.get(id=lr_id) if lr.estado != Turno.RESERVADO or lr.turno.estado != Turno.RESERVADO: messages.warning(request, u'No puede cancelar una reserva con un estado distinto a reservado') logger.warning('Intentando cancelar la linea de reserva %s con estado %s'%(lr.id,lr.estado)) form = CancelarReservaForm(initial={'afiliado':lr.reserva.afiliado.id, 'numero':lr.reserva.afiliado.numero, 'dni':lr.reserva.afiliado.dni, 'next':request.GET.get('next') }, lr=lr) else: form = CancelarReservaForm(initial=request.GET) return render(request, "turno/cancelar_reserva.html", locals())
def __init__(self, lr=None, *args, **kwargs): super(ModificarReservaForm, self).__init__(*args, **kwargs) import calendar self.lr = lr b = Bussiness() dias = [(calendar.timegm(dia['fecha'].utctimetuple()), dia['fecha'].strftime('%d %b %Y')) for dia in b.getDiaTurnos(lr.turno.ee.especialista.id) if dia['estado'] is None] dias.insert(0,('',"Seleccionar dia para modificar")) self.fields['dia'] = forms.CharField(widget=forms.Select(choices=dias), required=False)
def confirmar_reserva(request): b = Bussiness() if request.method == 'POST': form = ConfirmarTurnoForm(request.POST) if form.is_valid(): reservas = form.cleaned_data["turnos"] if b.confirmar_reserva(reservas, request.user.get_profile()): messages.success(request, u'Reserva confirmada con éxito') return HttpResponseRedirect(request.path) else: form = ConfirmarTurnoForm() return render(request, "turno/confirmar.html", locals())
def get_reservas_especialista(request, especialidad, especialista, year, month, day): b = Bussiness() ee = EspecialistaEspecialidad.objects.filter(especialidad=especialidad, especialista=especialista) fecha = datetime.date(int(year), int(month), int(day)) lineas = b.get_reserva_especialista(ee, fecha) data = [{"fecha_reserva": lr.reserva.fecha, "fecha_turno": lr.turno.fecha, "afiliado":lr.reserva.afiliado.full_name(), "numero": lr.reserva.afiliado.numero, "telefono": lr.reserva.telefono, } for lr in lineas] return JSONResponse(data)
def consultar_reservas(request): if len(request.GET) > 0: form = ConsultarReservaForm(request.GET) if form.is_valid(): b=Bussiness() object_list = b.consultar_reservas(especialidad=form.cleaned_data['especialidad'], especialista=form.cleaned_data['especialista'], afiliado=form.cleaned_data['afiliado'], fecha_turno=form.cleaned_data['fecha_turno'], fecha_reserva=form.cleaned_data['fecha_reserva'], estado=form.cleaned_data['estado'],) else: form = ConsultarReservaForm(initial=request.GET) return TemplateResponse(request, "turno/buscar.html", locals())
def prompt_init(): parent_init = Bussiness.prompt_init() rooms = int(input("Enter number of rooms: ")) parent_init.update({"rooms": rooms}) return parent_init
def prompt_init(): parent_init = Bussiness.prompt_init() slots = int(input("Enter number of slots: ")) parent_init.update({"slots": slots}) return parent_init
def cancelar_turnos(request): if request.method == 'POST': form = CancelarTurnoForm(request.POST) if form.is_valid(): ee = EspecialistaEspecialidad.objects.filter(especialidad=form.cleaned_data["especialidad"], especialista=form.cleaned_data["especialista"]) if ee: ee = ee[0] b = Bussiness() fecha = datetime.date.fromtimestamp(form.cleaned_data["fecha"]/1000) cancelados = b.cancelar_turnos(ee.especialista.id, fecha) messages.success(request, u'%s turnos cancelados' % len(cancelados)) return HttpResponseRedirect(request.path) else: messages.error(request, u'La combinacion de especialidad y especialista no coincide') else: form = CancelarTurnoForm() return render(request, "turno/cancelar_turnos.html", locals())
def crear_turnos(request): b = Bussiness() if request.method == 'POST': form = CrearTurnoForm(request.POST) if form.is_valid(): logger.info("<%s> esta creando turnos" % request.user.username) service = ReservaTurnosService() creados = service.crear_turnos(dias=form.cleaned_data['dias']) if creados: messages.success(request, u'%s Turnos creados con éxito' % len(creados)) else: messages.warning(request, u'No se creó ningún turno, puede que ya se \ crearon con anterioridad') return HttpResponseRedirect(request.path) else: hasta = (timezone.now() + datetime.timedelta(days=b.DIAS-1)).strftime("%d-%m-%Y") last = Turno.objects.order_by('fecha').last() frecuencia = b.MINUTOS form = CrearTurnoForm(initial={'dias':b.DIAS}) historial = b.get_historial_creacion_turnos() return render(request, "turno/creacion.html", locals())
def getTurnosDisponibles(request, especialista_id, year, month, day): bussiness = Bussiness() fecha = datetime.date(int(year), int(month), int(day)) data = bussiness.getTurnosDisponibles(especialista_id, fecha) return JSONResponse(data)
def getDiaTurnos(request, especialista_id): bussiness = Bussiness() data = bussiness.getDiaTurnos(especialista_id) return JSONResponse(data)
def getAfiliado(request, parametro, valor): bussiness = Bussiness() data = bussiness.getAfiliados(parametro, valor) return JSONResponse(data)
def get_turnos_afiliado(request,afiliado_id,today=False): b = Bussiness() day = timezone.now() if today else None data = b.get_turnos_reservados(afiliado_id, day) return JSONResponse(data)
def verificarPresentismo(request, afiliado_id): bussiness = Bussiness() data = {'presentismo_ok': bussiness.presentismoOK(afiliado_id)} return JSONResponse(data)