Esempio n. 1
0
def adviser_illustrated_client_ajax(request, enquiry_id):
    if request.method == "POST":
        if AdviserQueue.objects.filter(adviser=request.user,
                                       pk=enquiry_id).exists():
            form = IllustrationForm(request.POST)
            if form.is_valid():

                aq = AdviserQueue.objects.get(adviser=request.user,
                                              pk=enquiry_id)
                aq.status = 4
                aq.portfolio_value = form.cleaned_data[
                    'funds_under_management']
                aq.add_note('Client illustrated with £%d' %
                            form.cleaned_data['funds_under_management'])
                aq.save()
                try:
                    user = User.objects.get(email=aq.email)
                except User.DoesNotExist:
                    user, _, record_stats = create_stage_one_profile(
                        request,
                        aq.email,
                        'manual_add_concierge',
                        send_activation=False,
                        login_user=False)
                pool, _ = ConciergeUserPool.objects.get_or_create(
                    term=0,
                    user=user,
                    balance=form.cleaned_data['funds_under_management'])
                return HttpResponse(status=204)
            return HttpResponse(status=409,
                                content='{"status":"error in form"}')
        return HttpResponse(status=409, content='{"status":"doesn\'t exist"}')
    return HttpResponse(status=409, content='{"status":"not post"}')
Esempio n. 2
0
def adviser_signed_client_ajax(request, enquiry_id):
    if request.method == 'POST':
        if AdviserQueue.objects.filter(adviser=request.user,
                                       pk=enquiry_id).exists():
            adviser_queue = AdviserQueue.objects.get(pk=enquiry_id)
            form = SignedForm(request.POST, instance=adviser_queue)
            if form.is_valid():
                form.save()
                adviser_queue.status = 9
                adviser_queue.add_note(
                    'Client signed up with £%d, fee was charged as £%d' %
                    (form.cleaned_data['portfolio_value'],
                     form.cleaned_data['fee']))
                adviser_queue.save()
                try:
                    user = User.objects.get(email=adviser_queue.email)
                except User.DoesNotExist:
                    user, _, record_stats = create_stage_one_profile(
                        request,
                        adviser_queue.email,
                        'manual_add_concierge',
                        send_activation=False,
                        login_user=False)
                record_referral_signup(request, user, True, 'concierge_client')
                return HttpResponse(status=204)
            else:
                assert False, form.errors
        return HttpResponse(status=409, content='{"status":"doesn\'t exist"}')
    return HttpResponse(status=409, content='{"status":"not post"}')
Esempio n. 3
0
def engine_load_user(request, email=None, context=None):
    if context is None:
        context = {}
    if request.method == "POST":
        form = ConciergeUserForm(request.POST)
        if form.is_valid():
            User = get_user_model()
            try:
                user = User.objects.get(email=form.cleaned_data['email'])
            except User.DoesNotExist:
                user, _, record_stats = create_stage_one_profile(
                    request,
                    email=form.cleaned_data['email'],
                    source='CMT Dashboard',
                    send_activation=False,
                    login_user=False)
            concierge_user, created = ConciergeUserOption.objects.get_or_create(
                user=user)
            context = load_user(concierge_user, context)
        else:
            context['form'] = form
            return render(request, 'concierge/engine/index_no_wrapper.html',
                          context)
    elif email is not None:
        concierge_user, created = ConciergeUserOption.objects.get_or_create(
            user__email=email)
        context = load_user(concierge_user, context)

    else:
        context['form'] = ConciergeUserForm()
        return render(request, 'concierge/engine/index_no_wrapper.html',
                      context)

    return render(request, 'concierge/engine/user_management.html', context)
Esempio n. 4
0
def engine_load_user(request, email=None, context=None):
    if context is None:
        context = {}
    if request.method == "POST":
        form = ConciergeUserForm(request.POST)
        if form.is_valid():
            User = get_user_model()
            try:
                user = User.objects.get(email=form.cleaned_data['email'])
            except User.DoesNotExist:
                user, _, record_stats = create_stage_one_profile(request, email=form.cleaned_data['email'], source='CMT Dashboard',
                                                   send_activation=False, login_user=False)
            concierge_user, created = ConciergeUserOption.objects.get_or_create(user=user)
            context = load_user(concierge_user, context)
        else:
            context['form'] = form
            return render(request, 'concierge/engine/index_no_wrapper.html', context)
    elif email is not None:
        concierge_user, created = ConciergeUserOption.objects.get_or_create(user__email=email)
        context = load_user(concierge_user, context)

    else:
        context['form'] = ConciergeUserForm()
        return render(request, 'concierge/engine/index_no_wrapper.html', context)

    return render(request, 'concierge/engine/user_management.html', context)
Esempio n. 5
0
def adviser_add_client_ajax(request, context=None):
    if context is None:
        context = {}

    if request.method == "POST":
        form = AddClientForm(request.POST)
        if form.is_valid():
            new_client = form.save(commit=False)
            new_client.adviser = request.user
            new_client.add_note('Client was added manually')
            new_client.save()
            create_stage_one_profile(request, new_client.email, 'manual_add_concierge', send_activation=False,
                                     login_user=False)
            return HttpResponse(status=204)
        return HttpResponse(status=409, content='{"status":"%s"}' % form.errors)
    return HttpResponse(status=409, content='{"status":"exists"}')
Esempio n. 6
0
def best_buy_table_callback(request, context=None):
    if context is None:
        context = {}

    if request.method == 'POST':
        form = BestBuyCallbackForm(request.POST)
        if form.is_valid():
            create_profile_output = create_stage_one_profile(
                request=request,
                email=form.cleaned_data['email'],
                source='best_buy_call_back',
                send_activation=False,
                login_user=False)
            user, user_created, record_stats = create_profile_output
            record_referral_signup(request=request,
                                   user=user,
                                   user_created=user_created,
                                   action='best_buy_call_back')
            AdviserQueue.add_to_queue(
                email=form.cleaned_data['email'],
                first_name=form.cleaned_data['name'],
                last_name='.',
                lead_source='Best Buy Call Back',
                telephone_number=form.cleaned_data['phone'])
            return render(request,
                          'products/topaccounts/callback/success.html',
                          context)
        context['form'] = form
        return render(request, 'products/topaccounts/callback/form.html',
                      context)
    return render(request, 'products/topaccounts/callback/failure.html',
                  context)
Esempio n. 7
0
def reccuring_business_bestbuy_emails(request):
    context = {'weekly_form': WeeklyBusinessRateAlertsForm()}
    if request.method == 'POST':
        form = WeeklyBusinessRateAlertsForm(request.POST)
        if form.is_valid():
            best_buy_table_emails = form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'Recurring Business Best Buy Emails', 'Signup', referer)
            create_profile_output = create_stage_one_profile(request=request, email=best_buy_table_emails.email,
                                                             source='recurring_business_best_buy_emails',
                                                             send_activation=False, login_user=False)
            if isinstance(create_profile_output, tuple):
                user, user_created, record_stats = create_profile_output
            else:
                return create_profile_output
            record_referral_signup(request=request, user=user, user_created=user_created, action='signup')
            context['weekly_signed_up'] = True
            if best_buy_table_emails.frequency == 1:
                update_subscription_on_email_service.delay(best_buy_table_emails.email, interest_group=u'Daily Business Best Buy Tables')
                record_referral_signup(request=request, user=user, user_created=user_created,
                                       action='recurring_business_daily_best_buys')
            if best_buy_table_emails.frequency == 2:
                update_subscription_on_email_service.delay(best_buy_table_emails.email, interest_group=u'Weekly Business Best Buy Tables')
                record_referral_signup(request=request, user=user, user_created=user_created,
                                       action='recurring_business_weekly_best_buys')
            if best_buy_table_emails.frequency == 3:
                update_subscription_on_email_service.delay(best_buy_table_emails.email, interest_group=u'Monthly Business Best Buy Tables')
                record_referral_signup(request=request, user=user, user_created=user_created,
                                       action='recurring_business_monthly_best_buys')
    return render(request, 'products/topaccounts/business_reccuring_emails.html', context)
Esempio n. 8
0
def adviser_client_dashboard(request, client_id, context=None):
    if context is None:
        context = {}
    if AdviserQueue.objects.filter(pk=client_id, adviser=request.user).exists():
        adviser_queue = AdviserQueue.objects.get(pk=client_id, adviser=request.user)
        try:
            user = User.objects.get(email=adviser_queue.email)
            user_created = False
        except User.DoesNotExist:
            create_profile_output = create_stage_one_profile(request, adviser_queue.email, source='Concierge Signup',
                                                             send_activation=False, login_user=False)
            if isinstance(create_profile_output, tuple):
                user, user_created, record_stats = create_profile_output
            else:
                return create_profile_output
            record_referral_signup(request=request, user=user, user_created=user_created, action='signup')
        context['concierge_user'], _ = ConciergeUserOption.objects.get_or_create(user=user)
        context['user_options_form'] = ConciergeUserOptionForm(instance=context['concierge_user'])
        context['user_notes_form'] = ConciergeUserNotesForm(initial={'user': user})
        context['user_notes'] = ConciergeUserNotes.objects.filter(user=user)

        concierge_lead_capture, _ = ConciergeLeadCapture.objects.get_or_create(user=user, named_user=True)
        context['lead_capture_first'] = ConciergeLeadCaptureForm(prefix='first_client', instance=concierge_lead_capture)

        concierge_lead_capture, _ = ConciergeLeadCapture.objects.get_or_create(user=user, named_user=False)
        context['lead_capture_second'] = ConciergeLeadCaptureForm(prefix='second_client', instance=concierge_lead_capture)
        record_referral_signup(request=request, user=user, user_created=user_created, action='concierge_enquiry')

        return render(request, 'concierge/adviser/client_dashboard.html', context)
    return HttpResponse(status=403)
Esempio n. 9
0
def reccuring_business_bestbuy_emails(request):
    context = {'weekly_form': WeeklyBusinessRateAlertsForm()}
    if request.method == 'POST':
        form = WeeklyBusinessRateAlertsForm(request.POST)
        if form.is_valid():
            best_buy_table_emails = form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(
                    pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'Recurring Business Best Buy Emails',
                            'Signup', referer)
            create_profile_output = create_stage_one_profile(
                request=request,
                email=best_buy_table_emails.email,
                source='recurring_business_best_buy_emails',
                send_activation=False,
                login_user=False)
            if isinstance(create_profile_output, tuple):
                user, user_created, record_stats = create_profile_output
            else:
                return create_profile_output
            record_referral_signup(request=request,
                                   user=user,
                                   user_created=user_created,
                                   action='signup')
            context['weekly_signed_up'] = True
            if best_buy_table_emails.frequency == 1:
                update_subscription_on_email_service.delay(
                    best_buy_table_emails.email,
                    interest_group=u'Daily Business Best Buy Tables')
                record_referral_signup(
                    request=request,
                    user=user,
                    user_created=user_created,
                    action='recurring_business_daily_best_buys')
            if best_buy_table_emails.frequency == 2:
                update_subscription_on_email_service.delay(
                    best_buy_table_emails.email,
                    interest_group=u'Weekly Business Best Buy Tables')
                record_referral_signup(
                    request=request,
                    user=user,
                    user_created=user_created,
                    action='recurring_business_weekly_best_buys')
            if best_buy_table_emails.frequency == 3:
                update_subscription_on_email_service.delay(
                    best_buy_table_emails.email,
                    interest_group=u'Monthly Business Best Buy Tables')
                record_referral_signup(
                    request=request,
                    user=user,
                    user_created=user_created,
                    action='recurring_business_monthly_best_buys')
    return render(request,
                  'products/topaccounts/business_reccuring_emails.html',
                  context)
Esempio n. 10
0
def personal_top_accounts(request, bestbuy_slug, term=None):
    context = RequestContext(request)

    # required for the sidebar
    bestbuys = BestBuy.objects.filter(has_table=True, client_type='p')
    context['bestbuys'] = bestbuys
    context['bestbuyselected'] = True

    bestbuy = BestBuy.objects.get(slug=bestbuy_slug, client_type='p')
    context['bestbuy'] = bestbuy

    products = bestbuy.get_personal_products(term=term)
    fixed_rate_bond_products = defaultdict(list)
    for product in products:
        product_term = product.link_to_products.get(bestbuy=bestbuy, product=product, date_replaced=None).term
        fixed_rate_bond_products[product_term].append(product)
    context['terms'] = fixed_rate_bond_products.keys()
    context['products'] = fixed_rate_bond_products
    context['emailform'] = EmailInstructionsForm()
    context['weekly_form'] = WeeklyRateAlertsForm()

    if request.method == 'POST':
        form = WeeklyRateAlertsForm(request.POST)
        if form.is_valid():
            best_buy_table_emails = form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'Reccuring Best Buy Emails', 'Signup', referer)
            create_profile_output = create_stage_one_profile(request=request, email=best_buy_table_emails.email,
                                                             source='recurring_best_buy_emails', send_activation=False,
                                                             login_user=False)
            if isinstance(create_profile_output, tuple):
                user, user_created, record_stats = create_profile_output
            else:
                return create_profile_output
            record_referral_signup(request=request, user=user, user_created=user_created,
                                   action='signup')
            context['weekly_signed_up'] = True
            from common.tasks import update_subscription_on_email_service
            if best_buy_table_emails.frequency == 1:
                update_subscription_on_email_service.delay(best_buy_table_emails.email, interest_group=u'Daily Best Buy Tables')
                record_referral_signup(request=request, user=user, user_created=user_created,
                                       action='recurring_daily_best_buys')
            if best_buy_table_emails.frequency == 2:
                update_subscription_on_email_service.delay(best_buy_table_emails.email, interest_group=u'Weekly Best Buy Tables')
                record_referral_signup(request=request, user=user, user_created=user_created,
                                       action='recurring_weekly_best_buys')
            if best_buy_table_emails.frequency == 3:
                update_subscription_on_email_service.delay(best_buy_table_emails.email, interest_group=u'Monthly Best Buy Tables')
                record_referral_signup(request=request, user=user, user_created=user_created,
                                       action='recurring_monthly_best_buys')

    return render_to_response('products/topaccounts/table.html',
                              context_instance=context)
Esempio n. 11
0
def bj_signup(request):
    form_1 = BJForm(prefix="bj_form1")
    form_2 = BJForm(prefix="bj_form2")
    if request.method == "POST":
        form_1 = BJForm(request.POST, prefix="bj_form1")
        form_2 = BJForm(request.POST, prefix="bj_form2")
        if form_1.is_valid() or form_2.is_valid():
            if form_1.is_valid():
                form = form_1
            else:
                form = form_2
            form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'Beckford James', 'Signup', referer)
            user, user_created, record_stats = create_stage_one_profile(request=request, email=form.cleaned_data.get('email'),
                                                          source='beckford_james_signup', send_activation=False,
                                                          login_user=False)

            from common.tasks import update_subscription_on_email_service
            update_subscription_on_email_service.delay(user.email, interest_group=u'Beckford James Referral')

            name = form.cleaned_data.get('name')
            email = form.cleaned_data.get('email')
            telephone = form.cleaned_data.get('telephone')
            postcode = form.cleaned_data.get('postcode')

            text_email = get_template('ifa/bj_signup_email.txt')
            client_details = {'name': name, 'email': email, 'telephone': telephone, 'postcode': postcode}
            c = Context(client_details)

            text_content = text_email.render(c)

            subject, from_email = "New Beckford James Enquiry", "*****@*****.**"
            msg = EmailMultiAlternatives(subject, text_content, from_email,
                                         ["*****@*****.**", '*****@*****.**'])
            msg.send()

            AdviserQueue.add_to_queue(client_details['email'],
                                      client_details['name'],
                                      u'.',
                                      u'IFA (Beckford James) Signup',
                                      telephone_number=client_details['telephone'])

            record_referral_signup(request, user, user_created, 'bj_referral')

            return redirect(reverse('bj_thankyou'))
        else:
            messages.error(request, 'Your input contained errors, or you have already enquired about Beckford James')
    return render(request, 'ifa/bj_signup.html', {
        'bj_form': form_1,
        'bj_form2': form_2
    })
Esempio n. 12
0
def adviser_add_client_ajax(request, context=None):
    if context is None:
        context = {}

    if request.method == "POST":
        form = AddClientForm(request.POST)
        if form.is_valid():
            new_client = form.save(commit=False)
            new_client.adviser = request.user
            new_client.add_note('Client was added manually')
            new_client.save()
            create_stage_one_profile(request,
                                     new_client.email,
                                     'manual_add_concierge',
                                     send_activation=False,
                                     login_user=False)
            return HttpResponse(status=204)
        return HttpResponse(status=409,
                            content='{"status":"%s"}' % form.errors)
    return HttpResponse(status=409, content='{"status":"exists"}')
Esempio n. 13
0
    def save(self):
        data = self.cleaned_data
        user_exists = False
        if 'email' in data:
            email = data['email']
            if User.objects.filter(email=email).exists():
                # This user already exists, maybe they have details that need to be updated
                user_exists = True
                user = User.objects.get(email=email)
            else:
                # User does not already exist, we'll need to create one.
                create_profile_output = create_stage_one_profile(
                    None,
                    email,
                    '',
                    send_activation=False,
                    login_user=False,
                    use_site_framework=False)
                if isinstance(create_profile_output, tuple):
                    user, user_created, record_stats = create_profile_output
                else:
                    return create_profile_output
                user_exists = True

        if 'title' in data and user_exists:
            title = data['title']
            profile = Profile.objects.get(user=user)
            profile.salutation = title
            profile.save()

        if 'first_name' in data and user_exists:
            first_name = data['first_name']
            user.first_name = first_name

        if 'last_name' in data and user_exists:
            last_name = data['last_name']
            user.last_name = last_name

        if 'phone' in data and user_exists:
            phone = data['phone']
            profile = Profile.objects.get(user=user)
            profile.telephone = phone
            profile.save()
        if 'marital_status' in data:
            pass
        if 'residential_status' in data:
            pass
        if 'date_of_birth' in data:
            dob = data['date_of_birth']
            profile = Profile.objects.get(user=user)
            profile.dob = dob
            profile.save()
Esempio n. 14
0
def adviser_client_dashboard(request, client_id, context=None):
    if context is None:
        context = {}
    if AdviserQueue.objects.filter(pk=client_id,
                                   adviser=request.user).exists():
        adviser_queue = AdviserQueue.objects.get(pk=client_id,
                                                 adviser=request.user)
        try:
            user = User.objects.get(email=adviser_queue.email)
            user_created = False
        except User.DoesNotExist:
            create_profile_output = create_stage_one_profile(
                request,
                adviser_queue.email,
                source='Concierge Signup',
                send_activation=False,
                login_user=False)
            if isinstance(create_profile_output, tuple):
                user, user_created, record_stats = create_profile_output
            else:
                return create_profile_output
            record_referral_signup(request=request,
                                   user=user,
                                   user_created=user_created,
                                   action='signup')
        context[
            'concierge_user'], _ = ConciergeUserOption.objects.get_or_create(
                user=user)
        context['user_options_form'] = ConciergeUserOptionForm(
            instance=context['concierge_user'])
        context['user_notes_form'] = ConciergeUserNotesForm(
            initial={'user': user})
        context['user_notes'] = ConciergeUserNotes.objects.filter(user=user)

        concierge_lead_capture, _ = ConciergeLeadCapture.objects.get_or_create(
            user=user, named_user=True)
        context['lead_capture_first'] = ConciergeLeadCaptureForm(
            prefix='first_client', instance=concierge_lead_capture)

        concierge_lead_capture, _ = ConciergeLeadCapture.objects.get_or_create(
            user=user, named_user=False)
        context['lead_capture_second'] = ConciergeLeadCaptureForm(
            prefix='second_client', instance=concierge_lead_capture)
        record_referral_signup(request=request,
                               user=user,
                               user_created=user_created,
                               action='concierge_enquiry')

        return render(request, 'concierge/adviser/client_dashboard.html',
                      context)
    return HttpResponse(status=403)
Esempio n. 15
0
def step_impl(context):
    """
    :type context behave.runner.Context
    """
    request = RequestFactory().get('/')
    request.session = {}
    user, user_created, record_stats = create_stage_one_profile(request,
                                                                '*****@*****.**',
                                                                'testing',
                                                                send_activation=False,
                                                                login_user=False,
                                                                use_site_framework=False)
    context.user = user
    context.user_created = user_created
Esempio n. 16
0
def step_impl(context):
    """
    :type context behave.runner.Context
    """
    request = RequestFactory().get('/')
    request.session = {}
    user, user_created, record_stats = create_stage_one_profile(
        request,
        '*****@*****.**',
        'testing',
        send_activation=False,
        login_user=False,
        use_site_framework=False)
    context.user = user
    context.user_created = user_created
Esempio n. 17
0
    def save(self):
        data = self.cleaned_data
        user_exists = False
        if 'email' in data:
            email = data['email']
            if User.objects.filter(email=email).exists():
                # This user already exists, maybe they have details that need to be updated
                user_exists = True
                user = User.objects.get(email=email)
            else:
                # User does not already exist, we'll need to create one.
                create_profile_output = create_stage_one_profile(None, email, '', send_activation=False,
                                                                 login_user=False, use_site_framework=False)
                if isinstance(create_profile_output, tuple):
                    user, user_created, record_stats = create_profile_output
                else:
                    return create_profile_output
                user_exists = True

        if 'title' in data and user_exists:
            title = data['title']
            profile = Profile.objects.get(user=user)
            profile.salutation = title
            profile.save()

        if 'first_name' in data and user_exists:
            first_name = data['first_name']
            user.first_name = first_name

        if 'last_name' in data and user_exists:
            last_name = data['last_name']
            user.last_name = last_name

        if 'phone' in data and user_exists:
            phone = data['phone']
            profile = Profile.objects.get(user=user)
            profile.telephone = phone
            profile.save()
        if 'marital_status' in data:
            pass
        if 'residential_status' in data:
            pass
        if 'date_of_birth' in data:
            dob = data['date_of_birth']
            profile = Profile.objects.get(user=user)
            profile.dob = dob
            profile.save()
Esempio n. 18
0
    def save(self, request):
        email = self.cleaned_data('email')
        user, user_created, record_stats = create_stage_one_profile(
            request, email=email, source=self.cleaned_data.get('source'))

        tim_signup, _ = TiMSignups.objects.get_or_create(email=user.email)
        user.profile.newsletter = self.cleaned_data.get('newsletter', False)
        user.profile.ratealerts = self.cleaned_data.get('ratealerts', False)

        if RateAlertsSignup.objects.filter(email=user.email).exists():
            user.profile.ratealerts = True
        if NewsletterSignup.objects.filter(email=user.email).exists():
            user.profile.newsletter = True

        user.profile.is_synched = False
        user.profile.skeleton_user = False

        user.profile.save()

        # add the fixed rate product
        provider = request.POST['provider']
        balance = request.POST['balance']
        account_type = request.POST['account_type']
        if account_type != '' and provider != '' and balance != '':
            bestbuy = BestBuy.objects.get(id=account_type)
            reminder = RatetrackerReminder()
            reminder.user = user
            reminder.account_type = bestbuy
            reminder.balance = balance
            reminder.provider = Provider.objects.get(id=provider)
            if 'maturity_date_month' not in request.POST and 'maturity_date_year' not in request.POST:
                product = Product.objects.get(pk=request.POST['product'])
                product_term = product.term if product.term is not None else 0
                month = int(request.POST['opening_date_month'])
                year = int(request.POST['opening_date_year'])
                maturity_date = datetime.date(
                    day=1, month=month,
                    year=year) + datetime.timedelta(days=product_term)
            else:
                month = int(request.POST['maturity_date_month'])
                year = int(request.POST['maturity_date_year'])
                maturity_date = datetime.date(day=1, month=month, year=year)
            reminder.maturity_date = maturity_date
            reminder.is_synched = False
            reminder.save()
        return user
Esempio n. 19
0
    def post(self, request, format=None):
        data = request.data
        thb_reminder = None

        source = data.get('source', None)

        user, user_created = create_stage_one_profile(request=request, email=data['email'],
                                                      source='thb_tool', send_activation=False,
                                                      login_user=False)

        record_referral_signup(request=request, user=user, user_created=user_created, action='signup')

        if data['remind_me']:
            # Client asked to be reminded of the FSCS change to £75,000
            update_subscription_on_email_service.delay(data['email'], interest_group=u'FSCS Protection Drop Reminder')
            record_referral_signup(request=request, user=user, user_created=user_created, action='thb_remind_me_fscs')

        if data['set_reminder'] == 'true':
            deposit_date = datetime.date(year=int(data['deposit_year']),
                                         month=int(data['deposit_month']),
                                         day=int(data['deposit_day']))
            thb_reminder = THBToolReminder.add_reminder(
                name=data['name'],
                email=data['email'],
                phone_number=data['phone_number'],
                source=source,
                deposit_date=deposit_date,
                callback=(data['book_callback'] == 'true')
            )
            record_referral_signup(request=request, user=user, user_created=user_created, action='thb_alert_me_fscs')

        if data['book_callback'] == 'true':
            AdviserQueue.add_to_queue(email=data['email'],
                                      first_name=data['name'],
                                      last_name='.',
                                      lead_source='THB Tool',
                                      telephone_number=data['phone_number'])
            if thb_reminder is not None:
                thb_reminder.scheduled_callback = True
                thb_reminder.save()
            record_referral_signup(request=request, user=user, user_created=user_created, action='thb_book_callback')

        return JsonResponse({
            'status': 'ok'
        })
Esempio n. 20
0
def adviser_illustrated_client_ajax(request, enquiry_id):
    if request.method == "POST":
        if AdviserQueue.objects.filter(adviser=request.user, pk=enquiry_id).exists():
            form = IllustrationForm(request.POST)
            if form.is_valid():

                aq = AdviserQueue.objects.get(adviser=request.user, pk=enquiry_id)
                aq.status = 4
                aq.portfolio_value = form.cleaned_data['funds_under_management']
                aq.add_note('Client illustrated with £%d' % form.cleaned_data['funds_under_management'])
                aq.save()
                try:
                    user = User.objects.get(email=aq.email)
                except User.DoesNotExist:
                    user, _, record_stats = create_stage_one_profile(request, aq.email, 'manual_add_concierge', send_activation=False,
                                                       login_user=False)
                pool, _ = ConciergeUserPool.objects.get_or_create(term=0, user=user, balance=form.cleaned_data['funds_under_management'])
                return HttpResponse(status=204)
            return HttpResponse(status=409, content='{"status":"error in form"}')
        return HttpResponse(status=409, content='{"status":"doesn\'t exist"}')
    return HttpResponse(status=409, content='{"status":"not post"}')
Esempio n. 21
0
def adviser_signed_client_ajax(request, enquiry_id):
    if request.method == 'POST':
        if AdviserQueue.objects.filter(adviser=request.user, pk=enquiry_id).exists():
            adviser_queue = AdviserQueue.objects.get(pk=enquiry_id)
            form = SignedForm(request.POST, instance=adviser_queue)
            if form.is_valid():
                form.save()
                adviser_queue.status = 9
                adviser_queue.add_note('Client signed up with £%d, fee was charged as £%d' % (form.cleaned_data['portfolio_value'], form.cleaned_data['fee']))
                adviser_queue.save()
                try:
                    user = User.objects.get(email=adviser_queue.email)
                except User.DoesNotExist:
                    user, _, record_stats = create_stage_one_profile(request, adviser_queue.email, 'manual_add_concierge',
                                                       send_activation=False, login_user=False)
                record_referral_signup(request, user, True, 'concierge_client')
                return HttpResponse(status=204)
            else:
                assert False, form.errors
        return HttpResponse(status=409, content='{"status":"doesn\'t exist"}')
    return HttpResponse(status=409, content='{"status":"not post"}')
Esempio n. 22
0
def best_buy_table_callback(request, context=None):
    if context is None:
        context = {}

    if request.method == 'POST':
        form = BestBuyCallbackForm(request.POST)
        if form.is_valid():
            create_profile_output = create_stage_one_profile(request=request, email=form.cleaned_data['email'],
                                                             source='best_buy_call_back', send_activation=False,
                                                             login_user=False)
            user, user_created, record_stats = create_profile_output
            record_referral_signup(request=request, user=user, user_created=user_created,
                                   action='best_buy_call_back')
            AdviserQueue.add_to_queue(email=form.cleaned_data['email'],
                                      first_name=form.cleaned_data['name'],
                                      last_name='.',
                                      lead_source='Best Buy Call Back',
                                      telephone_number=form.cleaned_data['phone'])
            return render(request, 'products/topaccounts/callback/success.html', context)
        context['form'] = form
        return render(request, 'products/topaccounts/callback/form.html', context)
    return render(request, 'products/topaccounts/callback/failure.html', context)
Esempio n. 23
0
def tpo_signup(request, balance=None):
    if balance == '1':
        form = IFAForm(initial={'signup_amount': '£250,000 - £1million'})
    elif balance == '2':
        form = IFAForm(initial={'signup_amount': '£1million - £5million'})
    elif balance == '3':
        form = IFAForm(initial={'signup_amount': '£5million +'})
    else:
        form = IFAForm()
    if request.method == "POST":
        form = IFAForm(request.POST)

        if form.is_valid():
            form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'TPO', 'Signup', referer)
            user, user_created, record_stats = create_stage_one_profile(request=request, email=form.cleaned_data.get('email'),
                                                          source='tpo_signup', send_activation=False, login_user=False)

            from common.tasks import update_subscription_on_email_service
            update_subscription_on_email_service.delay(user.email, interest_group=u'TPO Referral')

            text_email = get_template('ifa/ifa_signup_email.txt')
            guide_email = get_template('ifa/ifa_guide_email.txt')
            html_guide_email = get_template('ifa/ifa_guide_email.html')

            client_details = {'name': form.cleaned_data.get('name'),
                              'last_name': form.cleaned_data.get('last_name'),
                              'email': form.cleaned_data.get('email'),
                              'signup_amount': form.cleaned_data.get('signup_amount'),
                              'postcode': form.cleaned_data.get('postcode'),
                              'telephone': form.cleaned_data.get('telephone')}
            c = Context(client_details)

            text_content = text_email.render(c)
            guide_content = guide_email.render(c)
            html_guide_content = html_guide_email.render(c)

            subject, from_email = "New IFA Enquiry", "*****@*****.**"
            to_email = ["*****@*****.**"]
            AdviserQueue.add_to_queue(client_details['email'],
                                      client_details['name'],
                                      u'.',
                                      u'IFA Signup (TPO) - {value}'.format(value=client_details['signup_amount']),
                                      telephone_number=client_details['telephone'])
            msg = EmailMultiAlternatives(subject, text_content, from_email, to_email)
            msg.send()

            subject, from_email = "Your IFA Guide", "*****@*****.**"
            msg = EmailMultiAlternatives(subject, guide_content, from_email, [c['email']])
            msg.attach_alternative(html_guide_content, "text/html")
            guide_path = os.path.join(settings.STATIC_ROOT, 'doc', 'ifa',
                                      '9_steps_to_choosing_an_independent_financial_adviser.pdf')
            msg.attach_file(guide_path)
            msg.send()
            record_referral_signup(request, user, user_created, 'tpo_referral')

            return redirect('tpo_thankyou')
        else:
            messages.error(request,
                           'Your input contained errors, or you have already enquired about The Private Office')
    return render(request, 'ifa/tpo_signup_alt.html', {
        'form': form
    })
Esempio n. 24
0
def bj_signup(request):
    form_1 = BJForm(prefix="bj_form1")
    form_2 = BJForm(prefix="bj_form2")
    if request.method == "POST":
        form_1 = BJForm(request.POST, prefix="bj_form1")
        form_2 = BJForm(request.POST, prefix="bj_form2")
        if form_1.is_valid() or form_2.is_valid():
            if form_1.is_valid():
                form = form_1
            else:
                form = form_2
            form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(
                    pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'Beckford James', 'Signup', referer)
            user, user_created, record_stats = create_stage_one_profile(
                request=request,
                email=form.cleaned_data.get('email'),
                source='beckford_james_signup',
                send_activation=False,
                login_user=False)

            from common.tasks import update_subscription_on_email_service
            update_subscription_on_email_service.delay(
                user.email, interest_group=u'Beckford James Referral')

            name = form.cleaned_data.get('name')
            email = form.cleaned_data.get('email')
            telephone = form.cleaned_data.get('telephone')
            postcode = form.cleaned_data.get('postcode')

            text_email = get_template('ifa/bj_signup_email.txt')
            client_details = {
                'name': name,
                'email': email,
                'telephone': telephone,
                'postcode': postcode
            }
            c = Context(client_details)

            text_content = text_email.render(c)

            subject, from_email = "New Beckford James Enquiry", "*****@*****.**"
            msg = EmailMultiAlternatives(
                subject, text_content, from_email,
                ["*****@*****.**", '*****@*****.**'])
            msg.send()

            AdviserQueue.add_to_queue(
                client_details['email'],
                client_details['name'],
                u'.',
                u'IFA (Beckford James) Signup',
                telephone_number=client_details['telephone'])

            record_referral_signup(request, user, user_created, 'bj_referral')

            return redirect(reverse('bj_thankyou'))
        else:
            messages.error(
                request,
                'Your input contained errors, or you have already enquired about Beckford James'
            )
    return render(request, 'ifa/bj_signup.html', {
        'bj_form': form_1,
        'bj_form2': form_2
    })
Esempio n. 25
0
def tpo_signup(request, balance=None):
    if balance == '1':
        form = IFAForm(initial={'signup_amount': '£250,000 - £1million'})
    elif balance == '2':
        form = IFAForm(initial={'signup_amount': '£1million - £5million'})
    elif balance == '3':
        form = IFAForm(initial={'signup_amount': '£5million +'})
    else:
        form = IFAForm()
    if request.method == "POST":
        form = IFAForm(request.POST)

        if form.is_valid():
            form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(
                    pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'TPO', 'Signup', referer)
            user, user_created, record_stats = create_stage_one_profile(
                request=request,
                email=form.cleaned_data.get('email'),
                source='tpo_signup',
                send_activation=False,
                login_user=False)

            from common.tasks import update_subscription_on_email_service
            update_subscription_on_email_service.delay(
                user.email, interest_group=u'TPO Referral')

            text_email = get_template('ifa/ifa_signup_email.txt')
            guide_email = get_template('ifa/ifa_guide_email.txt')
            html_guide_email = get_template('ifa/ifa_guide_email.html')

            client_details = {
                'name': form.cleaned_data.get('name'),
                'last_name': form.cleaned_data.get('last_name'),
                'email': form.cleaned_data.get('email'),
                'signup_amount': form.cleaned_data.get('signup_amount'),
                'postcode': form.cleaned_data.get('postcode'),
                'telephone': form.cleaned_data.get('telephone')
            }
            c = Context(client_details)

            text_content = text_email.render(c)
            guide_content = guide_email.render(c)
            html_guide_content = html_guide_email.render(c)

            subject, from_email = "New IFA Enquiry", "*****@*****.**"
            to_email = ["*****@*****.**"]
            AdviserQueue.add_to_queue(
                client_details['email'],
                client_details['name'],
                u'.',
                u'IFA Signup (TPO) - {value}'.format(
                    value=client_details['signup_amount']),
                telephone_number=client_details['telephone'])
            msg = EmailMultiAlternatives(subject, text_content, from_email,
                                         to_email)
            msg.send()

            subject, from_email = "Your IFA Guide", "*****@*****.**"
            msg = EmailMultiAlternatives(subject, guide_content, from_email,
                                         [c['email']])
            msg.attach_alternative(html_guide_content, "text/html")
            guide_path = os.path.join(
                settings.STATIC_ROOT, 'doc', 'ifa',
                '9_steps_to_choosing_an_independent_financial_adviser.pdf')
            msg.attach_file(guide_path)
            msg.send()
            record_referral_signup(request, user, user_created, 'tpo_referral')

            return redirect('tpo_thankyou')
        else:
            messages.error(
                request,
                'Your input contained errors, or you have already enquired about The Private Office'
            )
    return render(request, 'ifa/tpo_signup_alt.html', {'form': form})
Esempio n. 26
0
def personal_top_accounts(request, bestbuy_slug, term=None):
    context = RequestContext(request)

    # required for the sidebar
    bestbuys = BestBuy.objects.filter(has_table=True, client_type='p')
    context['bestbuys'] = bestbuys
    context['bestbuyselected'] = True

    bestbuy = BestBuy.objects.get(slug=bestbuy_slug, client_type='p')
    context['bestbuy'] = bestbuy

    products = bestbuy.get_personal_products(term=term)
    fixed_rate_bond_products = defaultdict(list)
    for product in products:
        product_term = product.link_to_products.get(bestbuy=bestbuy,
                                                    product=product,
                                                    date_replaced=None).term
        fixed_rate_bond_products[product_term].append(product)
    context['terms'] = fixed_rate_bond_products.keys()
    context['products'] = fixed_rate_bond_products
    context['emailform'] = EmailInstructionsForm()
    context['weekly_form'] = WeeklyRateAlertsForm()

    if request.method == 'POST':
        form = WeeklyRateAlertsForm(request.POST)
        if form.is_valid():
            best_buy_table_emails = form.save()
            if 'referer' in request.session:
                referer = Referrer.objects.get(
                    pk=request.session['referer']).name
            else:
                referer = '(Direct)'
            analytics.delay('event', 'Reccuring Best Buy Emails', 'Signup',
                            referer)
            create_profile_output = create_stage_one_profile(
                request=request,
                email=best_buy_table_emails.email,
                source='recurring_best_buy_emails',
                send_activation=False,
                login_user=False)
            if isinstance(create_profile_output, tuple):
                user, user_created, record_stats = create_profile_output
            else:
                return create_profile_output
            record_referral_signup(request=request,
                                   user=user,
                                   user_created=user_created,
                                   action='signup')
            context['weekly_signed_up'] = True
            from common.tasks import update_subscription_on_email_service
            if best_buy_table_emails.frequency == 1:
                update_subscription_on_email_service.delay(
                    best_buy_table_emails.email,
                    interest_group=u'Daily Best Buy Tables')
                record_referral_signup(request=request,
                                       user=user,
                                       user_created=user_created,
                                       action='recurring_daily_best_buys')
            if best_buy_table_emails.frequency == 2:
                update_subscription_on_email_service.delay(
                    best_buy_table_emails.email,
                    interest_group=u'Weekly Best Buy Tables')
                record_referral_signup(request=request,
                                       user=user,
                                       user_created=user_created,
                                       action='recurring_weekly_best_buys')
            if best_buy_table_emails.frequency == 3:
                update_subscription_on_email_service.delay(
                    best_buy_table_emails.email,
                    interest_group=u'Monthly Best Buy Tables')
                record_referral_signup(request=request,
                                       user=user,
                                       user_created=user_created,
                                       action='recurring_monthly_best_buys')

    return render_to_response('products/topaccounts/table.html',
                              context_instance=context)