1
0
forked from erp-dev/erp

feat: purchase_order approve and calcel

This commit is contained in:
2025-11-28 18:25:06 +08:00
parent 0c62398120
commit 4b3cd8eb75
14 changed files with 1019 additions and 43 deletions

View File

@@ -1,3 +1,4 @@
from decimal import Decimal
from django.db import models
from flower.common import ModelBase
from basic_info import models as basic_info_models
@@ -64,6 +65,15 @@ class PurchaseOrder(ModelBase):
verbose_name = '采购单'
verbose_name_plural = '采购单'
def get_total_amount(self) -> Decimal:
return sum(item.total_amount() for item in self.items.all())
def get_total_quantity(self) -> Decimal:
return sum(item.quantity for item in self.items.all())
def get_total_diff_quantity(self) -> Decimal:
return sum(item.diff_quantity() for item in self.items.all())
class PurchaseOrderItem(ModelBase):
"""采购单明细模型"""
@@ -83,8 +93,9 @@ class PurchaseOrderItem(ModelBase):
)
price = models.DecimalField(max_digits=15, decimal_places=2, verbose_name='单价')
color = models.CharField(max_length=50, null=True, blank=True, verbose_name='颜色')
quantity = models.PositiveIntegerField(verbose_name='数量')
quantity = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='数量')
unit = models.CharField(max_length=50, verbose_name='单位')
spec = models.CharField(max_length=100, null=True, blank=True, verbose_name='规格')
empty_diff_percent = models.DecimalField(
max_digits=15,
decimal_places=2,