fix: Fix money decimal
This commit is contained in:
parent
505eadc6af
commit
d80500f15f
3 changed files with 32 additions and 7 deletions
|
@ -1,4 +1,5 @@
|
||||||
from djmoney.contrib.django_rest_framework import MoneyField
|
from djmoney.contrib.django_rest_framework import MoneyField
|
||||||
|
from djmoney.settings import DECIMAL_PLACES
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from api import custom_validator
|
from api import custom_validator
|
||||||
|
@ -8,7 +9,7 @@ from core.component import component
|
||||||
|
|
||||||
class InvoiceComponentSerializer(serializers.ModelSerializer):
|
class InvoiceComponentSerializer(serializers.ModelSerializer):
|
||||||
adjusted_end_date = serializers.DateTimeField()
|
adjusted_end_date = serializers.DateTimeField()
|
||||||
price_charged = MoneyField(max_digits=10, decimal_places=0)
|
price_charged = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||||
price_charged_currency = serializers.CharField(source="price_charged.currency")
|
price_charged_currency = serializers.CharField(source="price_charged.currency")
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,9 +31,9 @@ def generate_invoice_component_serializer(model):
|
||||||
|
|
||||||
|
|
||||||
class InvoiceSerializer(serializers.ModelSerializer):
|
class InvoiceSerializer(serializers.ModelSerializer):
|
||||||
subtotal = MoneyField(max_digits=10, decimal_places=0)
|
subtotal = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||||
subtotal_currency = serializers.CharField(source="subtotal.currency")
|
subtotal_currency = serializers.CharField(source="subtotal.currency")
|
||||||
total = MoneyField(max_digits=10, decimal_places=0)
|
total = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||||
total_currency = serializers.CharField(source="total.currency", required=False)
|
total_currency = serializers.CharField(source="total.currency", required=False)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
@ -46,9 +47,9 @@ class InvoiceSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class SimpleInvoiceSerializer(serializers.ModelSerializer):
|
class SimpleInvoiceSerializer(serializers.ModelSerializer):
|
||||||
subtotal = MoneyField(max_digits=10, decimal_places=0)
|
subtotal = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||||
subtotal_currency = serializers.CharField(source="subtotal.currency")
|
subtotal_currency = serializers.CharField(source="subtotal.currency")
|
||||||
total = MoneyField(max_digits=10, decimal_places=0)
|
total = MoneyField(max_digits=10, decimal_places=DECIMAL_PLACES)
|
||||||
total_currency = serializers.CharField(source="total.currency", required=False)
|
total_currency = serializers.CharField(source="total.currency", required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
24
core/migrations/0012_auto_20221121_1511.py
Normal file
24
core/migrations/0012_auto_20221121_1511.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Generated by Django 3.2.6 on 2022-11-21 15:11
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
import djmoney.models.fields
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('core', '0011_auto_20221121_1505'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='invoice',
|
||||||
|
name='tax',
|
||||||
|
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=10, null=True),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='invoice',
|
||||||
|
name='total',
|
||||||
|
field=djmoney.models.fields.MoneyField(blank=True, decimal_places=2, default=None, max_digits=10, null=True),
|
||||||
|
),
|
||||||
|
]
|
|
@ -84,8 +84,8 @@ class Invoice(BaseModel, TimestampMixin):
|
||||||
end_date = models.DateTimeField(default=None, blank=True, null=True)
|
end_date = models.DateTimeField(default=None, blank=True, null=True)
|
||||||
finish_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)
|
state = models.IntegerField(choices=InvoiceState.choices)
|
||||||
tax = MoneyField(max_digits=10, decimal_places=0, default=None, blank=True, null=True)
|
tax = MoneyField(max_digits=10, default=None, blank=True, null=True)
|
||||||
total = MoneyField(max_digits=10, decimal_places=0, default=None, blank=True, null=True)
|
total = MoneyField(max_digits=10, default=None, blank=True, null=True)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def subtotal(self):
|
def subtotal(self):
|
||||||
|
|
Loading…
Add table
Reference in a new issue