Merge branch 'bill-id' of code.ungleich.ch:nico/meow-pay

This commit is contained in:
Nico Schottelius 2020-03-06 11:10:47 +01:00
commit 0032c272e7
4 changed files with 30 additions and 28 deletions

View file

@ -9,8 +9,6 @@ from datetime import timedelta, date
from django.utils import timezone from django.utils import timezone
from uncloud_pay.models import Bill from uncloud_pay.models import Bill
BILL_PAYMENT_DELAY=timedelta(days=10)
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Command(BaseCommand): class Command(BaseCommand):
@ -31,8 +29,7 @@ class Command(BaseCommand):
Bill.generate_for( Bill.generate_for(
year=now.year, year=now.year,
month=now.month, month=now.month,
user=user, user=user)
allowed_delay=BILL_PAYMENT_DELAY)
# We're done for this round :-) # We're done for this round :-)
print("=> Done.") print("=> Done.")

View file

@ -180,6 +180,12 @@ class Bill(models.Model):
valid = models.BooleanField(default=True) valid = models.BooleanField(default=True)
@property
def reference(self):
return "{}_{}".format(
self.owner.username,
self.creation_date.strftime("%Y-%m-%d-%H%M"))
@property @property
def records(self): def records(self):
bill_records = [] bill_records = []

View file

@ -47,27 +47,6 @@ class CreatePaymentMethodSerializer(serializers.ModelSerializer):
model = PaymentMethod model = PaymentMethod
fields = ['source', 'description', 'primary', 'credit_card'] fields = ['source', 'description', 'primary', 'credit_card']
###
# Bills
# TODO: remove magic numbers for decimal fields
class BillRecordSerializer(serializers.Serializer):
order = serializers.CharField()
description = serializers.CharField()
recurring_period = serializers.CharField()
recurring_price = serializers.DecimalField(max_digits=10, decimal_places=2)
recurring_count = serializers.DecimalField(max_digits=10, decimal_places=2)
one_time_price = serializers.DecimalField(max_digits=10, decimal_places=2)
amount = serializers.DecimalField(max_digits=10, decimal_places=2)
class BillSerializer(serializers.ModelSerializer):
records = BillRecordSerializer(many=True, read_only=True)
class Meta:
model = Bill
fields = ['owner', 'total', 'due_date', 'creation_date',
'starting_date', 'ending_date', 'records', 'final']
### ###
# Orders & Products. # Orders & Products.
@ -83,3 +62,26 @@ class OrderSerializer(serializers.ModelSerializer):
model = Order model = Order
fields = ['uuid', 'creation_date', 'starting_date', 'ending_date', fields = ['uuid', 'creation_date', 'starting_date', 'ending_date',
'bill', 'recurring_period', 'records', 'recurring_price', 'one_time_price'] 'bill', 'recurring_period', 'records', 'recurring_price', 'one_time_price']
###
# Bills
# TODO: remove magic numbers for decimal fields
class BillRecordSerializer(serializers.Serializer):
order = serializers.HyperlinkedRelatedField(
view_name='order-detail',
read_only=True)
description = serializers.CharField()
recurring_period = serializers.CharField()
recurring_price = serializers.DecimalField(max_digits=10, decimal_places=2)
recurring_count = serializers.DecimalField(max_digits=10, decimal_places=2)
one_time_price = serializers.DecimalField(max_digits=10, decimal_places=2)
amount = serializers.DecimalField(max_digits=10, decimal_places=2)
class BillSerializer(serializers.ModelSerializer):
records = BillRecordSerializer(many=True, read_only=True)
class Meta:
model = Bill
fields = ['reference', 'owner', 'total', 'due_date', 'creation_date',
'starting_date', 'ending_date', 'records', 'final']

View file

@ -34,9 +34,6 @@ class BillViewSet(viewsets.ReadOnlyModelViewSet):
def get_queryset(self): def get_queryset(self):
return Bill.objects.filter(owner=self.request.user) return Bill.objects.filter(owner=self.request.user)
def unpaid(self, request):
return Bill.objects.filter(owner=self.request.user, paid=False)
class PaymentViewSet(viewsets.ReadOnlyModelViewSet): class PaymentViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = PaymentSerializer serializer_class = PaymentSerializer
permission_classes = [permissions.IsAuthenticated] permission_classes = [permissions.IsAuthenticated]