def process_order(self): cost = self._calculate_cost() bonus = Money(Decimal(self.request.POST["bonus"]), CAD) cost = cost - bonus if cost.amount > 0: total_price = cost for tax in self.account.taxes(): total_price = total_price + (cost * tax.tax) order = FeaturedEventOrder(cost=cost, total_price=total_price, featured_event=self.featured_event, account=self.account) order.save() for tax in self.account.taxes(): account_tax_cost = AccountTaxCost(account_tax=tax, cost=cost * tax.tax, tax_name=tax.name) account_tax_cost.save() order.taxes.add(account_tax_cost) self.redirect_to_paypal = True else: order = FeaturedEventOrder(cost=cost, total_price=cost, featured_event=self.featured_event, account=self.account, status="s") order.save() FeaturedEvent.objects.filter(id=self.featured_event.id).update( active=True) self.order = order