Esempio n. 1
0
 def has_orders_in_current_order_round(self):
     """
      Ignores stock products!
     """
     return OrderProduct.objects.filter(product__supplier=self,
                                        order__order_round=get_current_order_round(),
                                        order__paid=True).exists()
Esempio n. 2
0
 def orders_round(obj):
     # Orders in this round
     current_order_round = get_current_order_round()
     orders = Order.objects.filter(order_round=current_order_round,
                                   user=obj,
                                   paid=True).count()
     return orders
Esempio n. 3
0
File: admin.py Progetto: rikva/voko
 def orders_round(obj):
     # Orders in this round
     current_order_round = get_current_order_round()
     orders = Order.objects.filter(order_round=current_order_round,
                                   user=obj,
                                   paid=True).count()
     return orders
Esempio n. 4
0
    def test_given_multiple_future_rounds_the_first_one_is_returned(self):
        # December 12
        OrderRoundFactory(
            open_for_orders=datetime(2014, 12, 8, 0, 0, tzinfo=UTC),
            closed_for_orders=datetime(2014, 12, 12, 19, 0, tzinfo=UTC),
            collect_datetime=datetime(2014, 12, 17, 17, 30, tzinfo=UTC)
        )
        # October 24
        OrderRoundFactory(
            open_for_orders=datetime(2014, 11, 24, 0, 0, tzinfo=UTC),
            closed_for_orders=datetime(2014, 11, 28, 19, 0, tzinfo=UTC),
            collect_datetime=datetime(2014, 12, 3, 17, 30, tzinfo=UTC)
        )
        # October 10
        future1 = OrderRoundFactory(
            open_for_orders=datetime(2014, 11, 10, 0, 0, tzinfo=UTC),
            closed_for_orders=datetime(2014, 11, 14, 19, 0, tzinfo=UTC),
            collect_datetime=datetime(2014, 11, 19, 17, 30, tzinfo=UTC)
        )

        self.mock_datetime.now.return_value = datetime(2014, 11, 1, 0, 0,
                                                       tzinfo=UTC)

        ret = get_current_order_round()
        self.assertEqual(ret, future1)
Esempio n. 5
0
def get_order_to_pay(user):
    cur_order_round = get_current_order_round()

    return Order.objects.filter(paid=False,
                                finalized=True,
                                order_round=cur_order_round,
                                user=user).last()
Esempio n. 6
0
 def test_given_one_closed_order_round_it_is_returned(self):
     self.mock_datetime.now.return_value = datetime(2014,
                                                    11,
                                                    6,
                                                    0,
                                                    0,
                                                    tzinfo=UTC)
     orderround = OrderRoundFactory(open_for_orders=datetime(2014,
                                                             10,
                                                             27,
                                                             0,
                                                             0,
                                                             tzinfo=UTC),
                                    closed_for_orders=datetime(2014,
                                                               10,
                                                               31,
                                                               19,
                                                               0,
                                                               tzinfo=UTC),
                                    collect_datetime=datetime(2014,
                                                              11,
                                                              5,
                                                              17,
                                                              30,
                                                              tzinfo=UTC))
     ret = get_current_order_round()
     self.assertEqual(ret, orderround)
Esempio n. 7
0
 def has_orders_in_current_order_round(self):
     """
      Ignores stock products!
     """
     return OrderProduct.objects.filter(
         product__supplier=self,
         order__order_round=get_current_order_round(),
         order__paid=True).exists()
Esempio n. 8
0
 def test_given_one_closed_order_round_it_is_returned(self):
     self.mock_datetime.now.return_value = datetime(2014, 11, 6, 0, 0, tzinfo=UTC)
     orderround = OrderRoundFactory(
         open_for_orders=datetime(2014, 10, 27, 0, 0, tzinfo=UTC),
         closed_for_orders=datetime(2014, 10, 31, 19, 0, tzinfo=UTC),
         collect_datetime=datetime(2014, 11, 5, 17, 30, tzinfo=UTC)
     )
     ret = get_current_order_round()
     self.assertEqual(ret, orderround)
Esempio n. 9
0
 def get_last_paid_order(self):
     """
     Allows us to use:
     VokoUser.orders.get_last_paid_order()
     """
     try:
         return super(OrderManager, self).get_queryset().filter(paid=True,
                                                                user=self.instance,
                                                                order_round=get_current_order_round()).order_by('-pk')[0]
     except IndexError:
         return
Esempio n. 10
0
 def get_last_paid_order(self):
     """
     Allows us to use:
     VokoUser.orders.get_last_paid_order()
     """
     try:
         return super(OrderManager, self).get_queryset().filter(
             paid=True,
             user=self.instance,
             order_round=get_current_order_round()).order_by('-pk')[0]
     except IndexError:
         return
Esempio n. 11
0
    def retail_price(self):
        """
        Return base price plus round's markup percentage, rounded up to 2 decimals.
        """
        if self.order_round:
            markup = self.order_round.markup_percentage
        else:
            markup = get_current_order_round().markup_percentage

        total_percentage = 100 + markup
        new_price = (Decimal(self.base_price) / Decimal('100.0')) * Decimal(total_percentage)
        rounded = new_price.quantize(Decimal('.01'), rounding=ROUND_UP)
        return rounded
Esempio n. 12
0
    def _create_credit(self):
        if self.order_product.product.order_round is None:
            order_round = get_current_order_round()
        else:
            order_round = self.order_product.product.order_round

        return Balance.objects.create(
            user=self.order_product.order.user,
            type="CR",
            amount=self.calculate_refund(),
            notes="Correctie in ronde %d, %dx %s, geleverd: %s%%" %
            (order_round.id, self.order_product.amount,
             self.order_product.product.name, self.supplied_percentage))
Esempio n. 13
0
    def _create_credit(self):
        if self.order_product.product.order_round is None:
            order_round = get_current_order_round()
        else:
            order_round = self.order_product.product.order_round

        return Balance.objects.create(user=self.order_product.order.user,
                                      type="CR",
                                      amount=self.calculate_refund(),
                                      notes="Correctie in ronde %d, %dx %s, geleverd: %s%%" %
                                            (order_round.id,
                                             self.order_product.amount,
                                             self.order_product.product.name,
                                             self.supplied_percentage))
Esempio n. 14
0
    def get_context_data(self, **kwargs):
        context = super(ChooseBankView, self).get_context_data(**kwargs)
        cur_order_round = get_current_order_round()
        try:
            context['order'] = Order.objects.get(
                id=self.request.GET.get(
                    'order_to_pay',
                    Order.objects.get(paid=False, finalized=True,
                                      order_round=cur_order_round,
                                      user=self.request.user).id))
        except Order.DoesNotExist:
            pass  # Warning is shown in template

        return context
Esempio n. 15
0
    def retail_price(self):
        """
        Return base price plus round's markup percentage,
        rounded up to 2 decimals.
        """
        if self.order_round:
            markup = self.order_round.markup_percentage
        else:
            markup = get_current_order_round().markup_percentage

        total_percentage = 100 + markup
        new_price = ((Decimal(self.base_price) / Decimal('100.0')) *
                     Decimal(total_percentage))
        rounded = new_price.quantize(Decimal('.01'), rounding=ROUND_UP)
        return rounded
Esempio n. 16
0
    def test_given_a_previous_and_a_future_order_round_the_future_round_is_returned(self):
        previous = OrderRoundFactory(
            open_for_orders=datetime(2014, 10, 27, 0, 0, tzinfo=UTC),
            closed_for_orders=datetime(2014, 10, 31, 19, 0, tzinfo=UTC),
            collect_datetime=datetime(2014, 11, 5, 17, 30, tzinfo=UTC)
        )
        future = OrderRoundFactory(
            open_for_orders=datetime(2014, 11, 10, 0, 0, tzinfo=UTC),
            closed_for_orders=datetime(2014, 11, 14, 19, 0, tzinfo=UTC),
            collect_datetime=datetime(2014, 11, 19, 17, 30, tzinfo=UTC)
        )
        self.mock_datetime.now.return_value = datetime(2014, 11, 7, 0, 0, tzinfo=UTC)

        ret = get_current_order_round()
        self.assertEqual(ret, future)
Esempio n. 17
0
    def test_given_current_and_future_order_rounds_current_is_returned(self):
        current = OrderRoundFactory(
            open_for_orders=datetime(2014, 10, 27, 0, 0, tzinfo=UTC),
            closed_for_orders=datetime(2014, 10, 31, 19, 0, tzinfo=UTC),
            collect_datetime=datetime(2014, 11, 5, 17, 30, tzinfo=UTC)
        )
        OrderRoundFactory(
            open_for_orders=datetime(2014, 11, 10, 0, 0, tzinfo=UTC),
            closed_for_orders=datetime(2014, 11, 14, 19, 0, tzinfo=UTC),
            collect_datetime=datetime(2014, 11, 19, 17, 30, tzinfo=UTC)
        )
        self.mock_datetime.now.return_value = datetime(2014, 11, 4, 0, 0,
                                                       tzinfo=UTC)

        ret = get_current_order_round()
        self.assertEqual(ret, current)
Esempio n. 18
0
    def test_given_previous_and_current_order_rounds_current_is_returned(self):
        OrderRoundFactory(open_for_orders=datetime(2014,
                                                   10,
                                                   27,
                                                   0,
                                                   0,
                                                   tzinfo=UTC),
                          closed_for_orders=datetime(2014,
                                                     10,
                                                     31,
                                                     19,
                                                     0,
                                                     tzinfo=UTC),
                          collect_datetime=datetime(2014,
                                                    11,
                                                    5,
                                                    17,
                                                    30,
                                                    tzinfo=UTC))
        current = OrderRoundFactory(open_for_orders=datetime(2014,
                                                             11,
                                                             10,
                                                             0,
                                                             0,
                                                             tzinfo=UTC),
                                    closed_for_orders=datetime(2014,
                                                               11,
                                                               14,
                                                               19,
                                                               0,
                                                               tzinfo=UTC),
                                    collect_datetime=datetime(2014,
                                                              11,
                                                              19,
                                                              17,
                                                              30,
                                                              tzinfo=UTC))
        self.mock_datetime.now.return_value = datetime(2014,
                                                       11,
                                                       15,
                                                       0,
                                                       0,
                                                       tzinfo=UTC)

        ret = get_current_order_round()
        self.assertEqual(ret, current)
Esempio n. 19
0
 def is_current(self):
     return self == get_current_order_round()
Esempio n. 20
0
    def test_given_multiple_open_order_rounds_return_first_one(self):
        round1 = OrderRoundFactory()
        round2 = OrderRoundFactory()

        self.assertTrue(round1.is_open)
        self.assertEqual(get_current_order_round(), round1)
Esempio n. 21
0
 def test_given_no_order_rounds_function_returns_none(self):
     ret = get_current_order_round()
     self.assertIsNone(ret)
Esempio n. 22
0
 def process_request(self, request):
     request.current_order_round = get_current_order_round()
Esempio n. 23
0
 def test_given_no_order_rounds_function_returns_none(self):
     ret = get_current_order_round()
     self.assertIsNone(ret)
Esempio n. 24
0
    def test_given_multiple_open_order_rounds_return_first_one(self):
        round1 = OrderRoundFactory()
        OrderRoundFactory()

        self.assertTrue(round1.is_open)
        self.assertEqual(get_current_order_round(), round1)
Esempio n. 25
0
    def test_given_multiple_future_rounds_the_first_one_is_returned(self):
        # December 12
        OrderRoundFactory(open_for_orders=datetime(2014,
                                                   12,
                                                   8,
                                                   0,
                                                   0,
                                                   tzinfo=UTC),
                          closed_for_orders=datetime(2014,
                                                     12,
                                                     12,
                                                     19,
                                                     0,
                                                     tzinfo=UTC),
                          collect_datetime=datetime(2014,
                                                    12,
                                                    17,
                                                    17,
                                                    30,
                                                    tzinfo=UTC))
        # October 24
        OrderRoundFactory(open_for_orders=datetime(2014,
                                                   11,
                                                   24,
                                                   0,
                                                   0,
                                                   tzinfo=UTC),
                          closed_for_orders=datetime(2014,
                                                     11,
                                                     28,
                                                     19,
                                                     0,
                                                     tzinfo=UTC),
                          collect_datetime=datetime(2014,
                                                    12,
                                                    3,
                                                    17,
                                                    30,
                                                    tzinfo=UTC))
        # October 10
        future1 = OrderRoundFactory(open_for_orders=datetime(2014,
                                                             11,
                                                             10,
                                                             0,
                                                             0,
                                                             tzinfo=UTC),
                                    closed_for_orders=datetime(2014,
                                                               11,
                                                               14,
                                                               19,
                                                               0,
                                                               tzinfo=UTC),
                                    collect_datetime=datetime(2014,
                                                              11,
                                                              19,
                                                              17,
                                                              30,
                                                              tzinfo=UTC))

        self.mock_datetime.now.return_value = datetime(2014,
                                                       11,
                                                       1,
                                                       0,
                                                       0,
                                                       tzinfo=UTC)

        ret = get_current_order_round()
        self.assertEqual(ret, future1)
Esempio n. 26
0
File: views.py Progetto: rikva/voko
def get_order_to_pay(user):
    cur_order_round = get_current_order_round()

    return Order.objects.filter(paid=False, finalized=True,
                                order_round=cur_order_round,
                                user=user).last()
Esempio n. 27
0
 def is_current(self):
     return self == get_current_order_round()