Merge branch 'bill-id' of code.ungleich.ch:nico/meow-pay
This commit is contained in:
		
				commit
				
					
						0032c272e7
					
				
			
		
					 4 changed files with 30 additions and 28 deletions
				
			
		| 
						 | 
				
			
			@ -9,8 +9,6 @@ from datetime import timedelta, date
 | 
			
		|||
from django.utils import timezone
 | 
			
		||||
from uncloud_pay.models import Bill
 | 
			
		||||
 | 
			
		||||
BILL_PAYMENT_DELAY=timedelta(days=10)
 | 
			
		||||
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
class Command(BaseCommand):
 | 
			
		||||
| 
						 | 
				
			
			@ -31,8 +29,7 @@ class Command(BaseCommand):
 | 
			
		|||
            Bill.generate_for(
 | 
			
		||||
                    year=now.year,
 | 
			
		||||
                    month=now.month,
 | 
			
		||||
                    user=user,
 | 
			
		||||
                    allowed_delay=BILL_PAYMENT_DELAY)
 | 
			
		||||
                    user=user)
 | 
			
		||||
 | 
			
		||||
        # We're done for this round :-)
 | 
			
		||||
        print("=> Done.")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -180,6 +180,12 @@ class Bill(models.Model):
 | 
			
		|||
 | 
			
		||||
    valid = models.BooleanField(default=True)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def reference(self):
 | 
			
		||||
        return "{}_{}".format(
 | 
			
		||||
                self.owner.username,
 | 
			
		||||
                self.creation_date.strftime("%Y-%m-%d-%H%M"))
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def records(self):
 | 
			
		||||
        bill_records = []
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,27 +47,6 @@ class CreatePaymentMethodSerializer(serializers.ModelSerializer):
 | 
			
		|||
        model = PaymentMethod
 | 
			
		||||
        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.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -83,3 +62,26 @@ class OrderSerializer(serializers.ModelSerializer):
 | 
			
		|||
        model = Order
 | 
			
		||||
        fields = ['uuid', 'creation_date', 'starting_date', 'ending_date',
 | 
			
		||||
                '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']
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,9 +34,6 @@ class BillViewSet(viewsets.ReadOnlyModelViewSet):
 | 
			
		|||
    def get_queryset(self):
 | 
			
		||||
        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):
 | 
			
		||||
    serializer_class = PaymentSerializer
 | 
			
		||||
    permission_classes = [permissions.IsAuthenticated]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue