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
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
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
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