Esempio n. 1
0
    def post(self, request):
        self.request = request
        failed = not self.save() or not self.contact_form.is_valid()
        if self.address_asked or self.request.event.settings.invoice_name_required:
            failed = failed or not self.invoice_form.is_valid()
        if failed:
            messages.error(
                request,
                _("We had difficulties processing your input. Please review the errors below."
                  ))
            return self.render()
        self.cart_session['email'] = self.contact_form.cleaned_data['email']
        self.cart_session['contact_form_data'] = self.contact_form.cleaned_data
        if self.address_asked or self.request.event.settings.invoice_name_required:
            addr = self.invoice_form.save()
            self.cart_session['invoice_address'] = addr.pk

            diff = update_tax_rates(event=request.event,
                                    cart_id=get_or_create_cart_id(request),
                                    invoice_address=self.invoice_form.instance)
            if abs(diff) > Decimal('0.001'):
                messages.info(
                    request,
                    _('Due to the invoice address you entered, we need to apply a different tax '
                      'rate to your purchase and the price of the products in your cart has '
                      'changed accordingly.'))
                return redirect(self.get_next_url(request) + '?open_cart=true')

        return redirect(self.get_next_url(request))
Esempio n. 2
0
    def post(self, request):
        self.request = request
        failed = not self.save() or not self.contact_form.is_valid()
        if self.address_asked or self.request.event.settings.invoice_name_required:
            failed = failed or not self.invoice_form.is_valid()
        if failed:
            messages.error(
                request,
                _("We had difficulties processing your input. Please review the errors below."
                  ))
            return self.render()
        self.cart_session['email'] = self.contact_form.cleaned_data['email']
        self.cart_session['contact_form_data'] = self.contact_form.cleaned_data
        if self.address_asked or self.request.event.settings.invoice_name_required:
            addr = self.invoice_form.save()
            self.cart_session['invoice_address'] = addr.pk

            update_tax_rates(event=request.event,
                             cart_id=get_or_create_cart_id(request),
                             invoice_address=self.invoice_form.instance)

        return redirect(self.get_next_url(request))
Esempio n. 3
0
    def post(self, request):
        self.request = request
        failed = not self.save() or not self.contact_form.is_valid()
        if request.event.settings.invoice_address_asked or self.request.event.settings.invoice_name_required:
            failed = failed or not self.invoice_form.is_valid()
        if failed:
            messages.error(request,
                           _("We had difficulties processing your input. Please review the errors below."))
            return self.render()
        self.cart_session['email'] = self.contact_form.cleaned_data['email']
        self.cart_session['contact_form_data'] = self.contact_form.cleaned_data
        if request.event.settings.invoice_address_asked or self.request.event.settings.invoice_name_required:
            addr = self.invoice_form.save()
            self.cart_session['invoice_address'] = addr.pk

            update_tax_rates(
                event=request.event,
                cart_id=get_or_create_cart_id(request),
                invoice_address=self.invoice_form.instance
            )

        return redirect(self.get_next_url(request))
Esempio n. 4
0
    def post(self, request):
        self.request = request
        failed = not self.save() or not self.contact_form.is_valid()
        if self.address_asked or self.request.event.settings.invoice_name_required:
            failed = failed or not self.invoice_form.is_valid()
        if failed:
            messages.error(
                request,
                _("We had difficulties processing your input. Please review the errors below."
                  ))
            return self.render()
        self.cart_session['email'] = self.contact_form.cleaned_data['email']
        d = dict(self.contact_form.cleaned_data)
        if d.get('phone'):
            d['phone'] = str(d['phone'])
        self.cart_session['contact_form_data'] = d
        if self.address_asked or self.request.event.settings.invoice_name_required:
            addr = self.invoice_form.save()
            try:
                diff = update_tax_rates(event=request.event,
                                        cart_id=get_or_create_cart_id(request),
                                        invoice_address=addr)
            except TaxRule.SaleNotAllowed:
                messages.error(
                    request,
                    _("Unfortunately, based on the invoice address you entered, we're not able to sell you "
                      "the selected products for tax-related legal reasons."))
                return self.render()

            self.cart_session['invoice_address'] = addr.pk
            if abs(diff) > Decimal('0.001'):
                messages.info(
                    request,
                    _('Due to the invoice address you entered, we need to apply a different tax '
                      'rate to your purchase and the price of the products in your cart has '
                      'changed accordingly.'))
                return redirect(self.get_next_url(request) + '?open_cart=true')

        return redirect(self.get_next_url(request))