示例#1
0
def solicitud_reminder(time_limit=9999):
    """Busca las solicitudes que inician dentro de 1h y manda aviso. Si ya se asigno un operador, se comunica el nombre"""
    now = timezone.localtime(timezone.now())
    notification_time = 'now'
    solicitudes = models.Solicitud.objects.filter(
        Q(status='agendado')
        & Q(cita__fecha__range=(now + datetime.timedelta(hours=1), now +
                                datetime.timedelta(hours=1, minutes=10))))
    for solicitud in solicitudes:
        if solicitud.vehiculo:
            vehiculo = solicitud.vehiculo.alias
        else:
            vehiculo = solicitud.placa
        msg = u'Recordatorio: Servicio de Verificación a Domicilio para el vehículo ' + vehiculo + ' dentro de 1 hora.'
        if solicitud.operador:
            msg = msg + ' El operador asignado es: ' + solicitud.operador.nombre
        solicitud.timestamp_proceso = timezone.now()
        solicitud.save()
        async_push.delay(deviceToken=solicitud.client.deviceToken,
                         alert=msg,
                         push_time='now',
                         action='verifica.showValet',
                         token=solicitud.solicitudToken.deviceToken)
    return len(solicitudes)
示例#2
0
def purge_unpaid_solicitud():
    """Busca las solicitudes que llevan mas de 2hrs sin pagar y les avisa que seran canceladas"""
    now = timezone.localtime(timezone.now())
    pending_time = now + relativedelta(hours=-2)
    recibos = models.Recibo.objects.filter(
        Q(status='pendiente') & Q(timestamp__lte=pending_time))
    for recibo in recibos:
        solicitud = recibo.solicitud
        solicitud.recibo = None
        solicitud.status = 'abierto'
        solicitud.save()
        if solicitud.vehiculo:
            vehiculo = solicitud.vehiculo.alias
        else:
            vehiculo = solicitud.placa
        recibo.delete()
        async_push.delay(deviceToken=solicitud.client.deviceToken,
                         alert=u'Servicio de Valet para el auto ' + vehiculo +
                         u' ha sido cancelado por falta de pago',
                         push_time='now',
                         action='verifica.showValet',
                         token=solicitud.solicitudToken.deviceToken,
                         sound=' ')
    return len(recibos)
示例#3
0
def change_solicitud_status(time_limit=9999):
    """Busca las solicitudes que ya pasaron la hora agendada y les avisa que ya esta en proceso"""
    now = timezone.localtime(timezone.now())
    notification_time = 'now'
    solicitudes = models.Solicitud.objects.filter(
        Q(status='agendado')
        & Q(cita__fecha__range=(now + relativedelta(minutes=-15),
                                now + relativedelta(minutes=+2))))
    for solicitud in solicitudes:
        solicitud.status = 'proceso'
        solicitud.timestamp_proceso = timezone.now()
        solicitud.save()
        if solicitud.vehiculo:
            vehiculo = solicitud.vehiculo.alias
        else:
            vehiculo = solicitud.placa
        async_push.delay(deviceToken=solicitud.client.deviceToken,
                         alert=u'Servicio de Valet para el auto ' + vehiculo +
                         u' en proceso.',
                         push_time='now',
                         action='verifica.showValet',
                         token=solicitud.solicitudToken.deviceToken,
                         sound=' ')
    return len(solicitudes)
示例#4
0
def notify_unpaid_solicitud():
    """Busca las solicitudes que llevan mas de 1hrs sin pagar y les recuerda que deben pagar"""
    now = timezone.localtime(timezone.now())
    pending_time = now + relativedelta(hours=-1)
    recibos = models.Recibo.objects.filter(
        Q(status='pendiente') & Q(timestamp__lte=pending_time)
        & Q(notified=False))
    for recibo in recibos:
        recibo.notified = True
        solicitud = recibo.solicitud
        if solicitud.vehiculo:
            vehiculo = solicitud.vehiculo.alias
        else:
            vehiculo = solicitud.placa
        recibo.save()
        async_push.delay(
            deviceToken=solicitud.client.deviceToken,
            alert=u'Realiza el pago del Servicio a Domicilio para el auto ' +
            vehiculo + u' para no perder tu cita',
            push_time='now',
            action='verifica.showValet',
            token=solicitud.solicitudToken.deviceToken,
            sound=' ')
    return len(recibos)