forked from erp-dev/erp
beta
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user