Пример #1
0
def cpq_pay(request, cpq_code, cpq_type):
    from htk.apps.cpq.utils import resolve_cpq_code
    cpq_obj = resolve_cpq_code(cpq_code, cpq_type=cpq_type)
    if cpq_obj is None:
        raise Http404
    if not htk_setting('HTK_CPQ_PAY_ONLINE'):
        raise Http404

    success = False
    try:
        stripe_token = request.POST.get('stripeToken')
        amount = int(request.POST.get('amount'))
        email = request.POST.get('email')
        line_item_ids = request.POST.get('lineItemIds').split(',')
        success = cpq_obj.approve_and_pay(stripe_token, amount, email,
                                          line_item_ids)
    except ValueError:
        # most likely encountered exception parsing `amount` or `line_item_ids`
        pass

    if success:
        response = json_response_okay()
    else:
        response = json_response_error()
    return response
Пример #2
0
def cpq_view(
        request,
        cpq_code,
        cpq_type, # CPQType.INVOICE or CPQType.QUOTE
        data=None,
        template_name='htk/fragments/cpq/invoice.html',
        renderer=_r
    ):
    if data is None:
        data = wrap_data(request)

    from htk.apps.cpq.enums import CPQType
    from htk.apps.cpq.utils import resolve_cpq_code
    cpq_obj = resolve_cpq_code(cpq_code, cpq_type=cpq_type)
    if cpq_obj is None:
        raise Http404
    else:
        pass

    if cpq_type == CPQType.INVOICE:
        data_key = 'invoice'
    elif cpq_type == CPQType.QUOTE:
        data_key = 'quote'
    else:
        raise Http404

    data[data_key] = cpq_obj
    if request.GET.get('pdf'):
        response = render_to_pdf_response(template_name, data)
    else:
        response = renderer(template_name, data)
    return response
Пример #3
0
def cpq_view(request, cpq_code, cpq_type, template_name):
    """Renders an invoice, quote, or group quote
    `cpq_type` CPQType.INVOICE or CPQType.QUOTE or CPQType.GROUP_QUOTE
    """
    renderer = get_renderer()
    wrap_data = get_template_context_generator()
    data = wrap_data(request)

    from htk.apps.cpq.utils import resolve_cpq_code
    cpq_obj = resolve_cpq_code(cpq_code, cpq_type=cpq_type)
    if cpq_obj is None:
        raise Http404
    else:
        pass

    if cpq_type in (CPQType.INVOICE, CPQType.QUOTE, CPQType.GROUP_QUOTE):
        cpq_obj_key = cpq_type.name.lower()
    else:
        raise Http404

    cpq_full_url = cpq_obj.get_full_url(base_uri=data['request']['base_uri'])
    if htk_setting('HTK_CPQ_PAY_ONLINE'):
        live_mode = htk_setting('HTK_STRIPE_LIVE_MODE')
        data['stripe_key'] = get_stripe_public_key(live_mode=live_mode)
        data['cpq_payment_uri'] = cpq_obj.get_payment_uri()
    data['cpq_obj'] = cpq_obj
    data['cpq_url'] = cpq_full_url
    # deprecated
    data['cpq_type'] = cpq_obj_key
    data[cpq_obj_key] = cpq_obj
    data['%s_url' % cpq_obj_key] = cpq_full_url

    if request.GET.get('pdf'):
        data['pdf_filename'] = '%s.pdf' % cpq_obj_key
        from htk.utils.pdf_utils import render_to_pdf_response
        response = render_to_pdf_response(template_name,
                                          data,
                                          show_content_in_browser=False)
    else:
        response = renderer(template_name, data)
    return response
Пример #4
0
def cpq_view(request, cpq_code, cpq_type, template_name):
    """Renders an invoice, quote, or group quote
    `cpq_type` CPQType.INVOICE or CPQType.QUOTE or CPQType.GROUP_QUOTE
    """
    renderer = get_renderer()
    wrap_data = get_template_context_generator()
    data = wrap_data(request)

    from htk.apps.cpq.utils import resolve_cpq_code
    cpq_obj = resolve_cpq_code(cpq_code, cpq_type=cpq_type)
    if cpq_obj is None:
        raise Http404
    else:
        pass

    if cpq_type in (CPQType.INVOICE, CPQType.QUOTE, CPQType.GROUP_QUOTE):
        cpq_obj_key = cpq_type.name.lower()
    else:
        raise Http404

    cpq_full_url = cpq_obj.get_full_url(base_uri=data['request']['base_uri'])
    if htk_setting('HTK_CPQ_PAY_ONLINE'):
        live_mode = htk_setting('HTK_STRIPE_LIVE_MODE')
        data['stripe_key'] = get_stripe_public_key(live_mode=live_mode)
        data['cpq_payment_uri'] = cpq_obj.get_payment_uri()
    data['cpq_obj'] = cpq_obj
    data['cpq_url'] = cpq_full_url
    # deprecated
    data['cpq_type'] = cpq_obj_key
    data[cpq_obj_key] = cpq_obj
    data['%s_url' % cpq_obj_key] = cpq_full_url

    if request.GET.get('pdf'):
        data['pdf_filename'] = '%s.pdf' % cpq_obj_key
        from htk.utils.pdf_utils import render_to_pdf_response
        response = render_to_pdf_response(template_name, data, show_content_in_browser=False)
    else:
        response = renderer(request, template_name, data)
    return response
Пример #5
0
def cpq_pay(request, cpq_code, cpq_type):
    from htk.apps.cpq.utils import resolve_cpq_code
    cpq_obj = resolve_cpq_code(cpq_code, cpq_type=cpq_type)
    if cpq_obj is None:
        raise Http404
    if not htk_setting('HTK_CPQ_PAY_ONLINE'):
        raise Http404

    success = False
    try:
        stripe_token = request.POST.get('stripeToken')
        amount = int(request.POST.get('amount'))
        email = request.POST.get('email')
        line_item_ids = request.POST.get('lineItemIds').split(',')
        success = cpq_obj.approve_and_pay(stripe_token, amount, email, line_item_ids)
    except ValueError:
        # most likely encountered exception parsing `amount` or `line_item_ids`
        pass

    if success:
        response = json_response_okay()
    else:
        response = json_response_error()
    return response