Beispiel #1
0
def initiate_deferred_callback(deferred_callback_info):
    """
    Инициация отложенного звонка
    """
    if deferred_callback_info.widget.client.balance_minutes < Client.MINIMUM_ALLOWED_BALANCE_MINUTES:
        # out of balance
        # deferred_callback_info.callback_status = CALLBACK_STATUS_FAIL_OUT_OF_BALANCE
        # deferred_callback_info.save()
        send_email_out_of_balance_initiate_callback(
            deferred_callback_info.widget.out_of_balance_notifications_email,
            deferred_callback_info.phone_number_side_b,
            deferred_callback_info.planned_for_datetime,
            deferred_callback_info.widget.site_url)
        # deferred_callback_info.delete()
        process_pending_callback(deferred_callback_info, 
            call_description = "Недостаточно средств для запуска отложенного звонка", 
            callback_status = CALLBACK_STATUS_FAIL_OUT_OF_BALANCE, 
            condition='out of balance')
        return True

    JSONPEntryPoint.initiate_callback(
        deferred_callback_info.phone_number_side_b, 
        deferred_callback_info.widget,
        deferred_callback_info.search_request, 
        deferred_callback_info.referer,
        deferred_callback_info.ip_side_b,
        pending_callback_id=deferred_callback_info.id)

    return True