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