fix: Fix money max digit
This commit is contained in:
parent
acb95b379d
commit
be42c2fd9d
4 changed files with 178 additions and 23 deletions
|
@ -9,7 +9,7 @@ from core.component import component
|
|||
|
||||
class InvoiceComponentSerializer(serializers.ModelSerializer):
|
||||
adjusted_end_date = serializers.DateTimeField()
|
||||
price_charged = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||
price_charged = MoneyField(max_digits=256, decimal_places=DECIMAL_PLACES)
|
||||
price_charged_currency = serializers.CharField(source="price_charged.currency")
|
||||
|
||||
|
||||
|
@ -31,9 +31,9 @@ def generate_invoice_component_serializer(model):
|
|||
|
||||
|
||||
class InvoiceSerializer(serializers.ModelSerializer):
|
||||
subtotal = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||
subtotal = MoneyField(max_digits=256, decimal_places=DECIMAL_PLACES)
|
||||
subtotal_currency = serializers.CharField(source="subtotal.currency")
|
||||
total = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||
total = MoneyField(max_digits=256, decimal_places=DECIMAL_PLACES)
|
||||
total_currency = serializers.CharField(source="total.currency", required=False)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
@ -47,9 +47,9 @@ class InvoiceSerializer(serializers.ModelSerializer):
|
|||
|
||||
|
||||
class SimpleInvoiceSerializer(serializers.ModelSerializer):
|
||||
subtotal = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||
subtotal = MoneyField(max_digits=256, decimal_places=DECIMAL_PLACES)
|
||||
subtotal_currency = serializers.CharField(source="subtotal.currency")
|
||||
total = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||
total = MoneyField(max_digits=256, decimal_places=DECIMAL_PLACES)
|
||||
total_currency = serializers.CharField(source="total.currency", required=False)
|
||||
|
||||
class Meta:
|
||||
|
@ -79,7 +79,7 @@ class NotificationSerializer(serializers.ModelSerializer):
|
|||
|
||||
class BalanceSerializer(serializers.ModelSerializer):
|
||||
project = BillingProjectSerializer()
|
||||
amount = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||
amount = MoneyField(max_digits=256, decimal_places=DECIMAL_PLACES)
|
||||
amount_currency = serializers.CharField(source="amount.currency")
|
||||
|
||||
class Meta:
|
||||
|
@ -88,7 +88,7 @@ class BalanceSerializer(serializers.ModelSerializer):
|
|||
|
||||
|
||||
class BalanceTransactionSerializer(serializers.ModelSerializer):
|
||||
amount = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||
amount = MoneyField(max_digits=256, decimal_places=DECIMAL_PLACES)
|
||||
amount_currency = serializers.CharField(source="amount.currency")
|
||||
action = serializers.CharField(required=False)
|
||||
description = serializers.CharField()
|
||||
|
|
155
core/migrations/0014_auto_20230926_1515.py
Normal file
155
core/migrations/0014_auto_20230926_1515.py
Normal file
|
@ -0,0 +1,155 @@
|
|||
# Generated by Django 3.2.6 on 2023-09-26 15:15
|
||||
|
||||
from decimal import Decimal
|
||||
from django.db import migrations
|
||||
import djmoney.models.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('core', '0013_balance_balancetransaction'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='balance',
|
||||
name='amount',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, default=Decimal('0'), max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='balancetransaction',
|
||||
name='amount',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='flavorprice',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='flavorprice',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='floatingipsprice',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='floatingipsprice',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='imageprice',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='imageprice',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoice',
|
||||
name='tax',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoice',
|
||||
name='total',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicefloatingip',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicefloatingip',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoiceimage',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoiceimage',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoiceinstance',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoiceinstance',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicerouter',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicerouter',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicesnapshot',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicesnapshot',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicevolume',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='invoicevolume',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='routerprice',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='routerprice',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='snapshotprice',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='snapshotprice',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='volumeprice',
|
||||
name='hourly_price',
|
||||
field=djmoney.models.fields.MoneyField(decimal_places=2, max_digits=256),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='volumeprice',
|
||||
name='monthly_price',
|
||||
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=256, null=True),
|
||||
),
|
||||
]
|
|
@ -84,8 +84,8 @@ class Invoice(BaseModel, TimestampMixin):
|
|||
end_date = models.DateTimeField(default=None, blank=True, null=True)
|
||||
finish_date = models.DateTimeField(default=None, blank=True, null=True)
|
||||
state = models.IntegerField(choices=InvoiceState.choices)
|
||||
tax = MoneyField(max_digits=10, default=None, blank=True, null=True)
|
||||
total = MoneyField(max_digits=10, default=None, blank=True, null=True)
|
||||
tax = MoneyField(max_digits=256, default=None, blank=True, null=True)
|
||||
total = MoneyField(max_digits=256, default=None, blank=True, null=True)
|
||||
|
||||
@property
|
||||
def subtotal(self):
|
||||
|
@ -303,7 +303,7 @@ class Notification(BaseModel, TimestampMixin):
|
|||
#region balance
|
||||
class Balance(BaseModel, TimestampMixin):
|
||||
project = models.ForeignKey('BillingProject', on_delete=models.CASCADE)
|
||||
amount = MoneyField(max_digits=10, default=0)
|
||||
amount = MoneyField(max_digits=256, default=0)
|
||||
|
||||
@classmethod
|
||||
def get_balance_for_project(cls, project):
|
||||
|
@ -349,7 +349,7 @@ class BalanceTransaction(BaseModel, TimestampMixin):
|
|||
TOP_DOWN = "top_down"
|
||||
|
||||
balance = models.ForeignKey('Balance', on_delete=models.CASCADE, blank=True, null=True)
|
||||
amount = MoneyField(max_digits=10)
|
||||
amount = MoneyField(max_digits=256)
|
||||
action = models.CharField(choices=ActionType.choices, max_length=256)
|
||||
description = models.CharField(max_length=256)
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@ class TimestampMixin(models.Model):
|
|||
|
||||
|
||||
class PriceMixin(models.Model):
|
||||
hourly_price = MoneyField(max_digits=10)
|
||||
monthly_price = MoneyField(max_digits=10, default=None, blank=True, null=True)
|
||||
hourly_price = MoneyField(max_digits=256)
|
||||
monthly_price = MoneyField(max_digits=256, default=None, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
|
Loading…
Add table
Reference in a new issue