Esempio n. 1
0
    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