1
0
forked from erp-dev/erp
This commit is contained in:
2026-07-02 18:26:09 +08:00
parent 5170700234
commit 4538e51ad5
14 changed files with 471 additions and 26 deletions

View File

@@ -7,6 +7,7 @@ from django.conf import settings
from django.core.exceptions import ValidationError
from flower.common import ModelBase
from basic_info import models as basic_info_models
from .amounts import calculate_line_amount, calculate_settlement_amount
def build_business_human_id(prefix: str, created_at, object_id) -> str:
@@ -222,7 +223,11 @@ class PurchaseOrderItem(ModelBase):
return round(self.quantity * (self.empty_diff_percent / 100), 2)
def total_amount(self):
return round(self.price * self.real_quantity(), 2)
return calculate_line_amount(
quantity=self.quantity,
price=self.price,
standard_quantity=self.real_quantity(),
)
def split_quantity_of_rolls(self) -> List[int]:
if self.quantity_of_rolls:
@@ -393,7 +398,11 @@ class SalesOrderItem(ModelBase):
return round(self.quantity * (self.empty_diff_percent / 100), 2)
def total_amount(self):
return round(self.price * self.real_quantity(), 2)
return calculate_line_amount(
quantity=self.quantity,
price=self.price,
standard_quantity=self.real_quantity(),
)
class PreSalesOrder(ModelBase):
@@ -878,7 +887,11 @@ class PurchaseReturnOrderItem(ModelBase):
return round(self.quantity * (self.empty_diff_percent / 100), 2)
def total_amount(self):
return round(self.price * self.real_quantity(), 2)
return calculate_line_amount(
quantity=self.quantity,
price=self.price,
standard_quantity=self.real_quantity(),
)
class SalesReturnStatusEnum(models.IntegerChoices):
@@ -1008,7 +1021,11 @@ class SalesReturnOrderItem(ModelBase):
return round(self.quantity * (self.empty_diff_percent / 100), 2)
def total_amount(self):
return round(self.price * self.real_quantity(), 2)
return calculate_line_amount(
quantity=self.quantity,
price=self.price,
standard_quantity=self.real_quantity(),
)
class ExternalCustomerStatementCategoryEnum(models.TextChoices):
@@ -1151,8 +1168,10 @@ class PaymentOrder(OrderDirectionMixin, OrderCounterpartyMixin, ModelBase):
@property
def settlement_amount(self) -> Decimal:
discount = self.discount_amount or Decimal('0')
return self.amount + discount
return calculate_settlement_amount(
amount=self.amount,
discount_amount=self.discount_amount or Decimal('0'),
)
def get_total_amount(self) -> Decimal:
return self.settlement_amount
@@ -1242,8 +1261,10 @@ class ReceiptOrder(OrderDirectionMixin, OrderCounterpartyMixin, ModelBase):
@property
def settlement_amount(self) -> Decimal:
discount = self.discount_amount or Decimal('0')
return self.amount + discount
return calculate_settlement_amount(
amount=self.amount,
discount_amount=self.discount_amount or Decimal('0'),
)
def get_total_amount(self) -> Decimal:
return self.settlement_amount