This commit is contained in:
javad committed 2024-01-22 13:01:42 +03:30
commit 89a5d70512
284 files changed
+8364

No files matched your search

+86
View File
@@ -0,0 +1,86 @@
from django.db import models
from utils.base_model import BaseModel
from apps.workspace.models import Workspace as WorkspaceModel
from apps.cuser.models import CuserRole as CuserRoleModel
from apps.customer.models import ResponsibleGroup as ResponsibleGroupModel, Customer as CustomerModel
# Create your models here.
class ProductType(BaseModel):
name = models.CharField(max_length=100)
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
def __str__(self):
return f'{self.name}'
class ProductCategory(BaseModel):
name = models.CharField(max_length=30, null=False, blank=False)
parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
image = models.ImageField(null=True, blank=True, default=None, upload_to='product-cat/')
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
def __str__(self):
return f'{self.name}'
class Product(BaseModel):
name = models.CharField(max_length=150, null=False, blank=False)
price = models.DecimalField(max_digits=12, decimal_places=2, null=False, blank=False)
category = models.ForeignKey(ProductCategory, on_delete=models.CASCADE, null=False, blank=False)
acc_code = models.CharField(null=True, blank=True)
attr = models.JSONField(null=True, blank=True)
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
def __str__(self):
return f'{self.name}'
class Cart(BaseModel):
cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.CASCADE, null=False, blank=False)
product = models.ForeignKey(Product, on_delete=models.CASCADE, null=False, blank=False)
quantity = models.IntegerField(null=False, blank=False)
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
def __str__(self):
return f'{self.cuser_role}'
class Order(BaseModel):
FACTOR_TYPE_CHOICE = [
(1, 'pish_factor'),
(2, 'factor'),
]
FACTOR_STATUS_CHOICE = [
(1, 'unknown'),
(2, 'ok'),
(3, 'cancel'),
]
responsible_group = models.ForeignKey(ResponsibleGroupModel, on_delete=models.SET_NULL, null=True, blank=True)
customer = models.ForeignKey(CustomerModel, on_delete=models.CASCADE, null=False, blank=False)
total_price = models.DecimalField(max_digits=12, decimal_places=2, null=False, blank=False)
factor_type = models.PositiveSmallIntegerField(choices=FACTOR_TYPE_CHOICE, null=False, blank=False)
factor_status = models.PositiveSmallIntegerField(choices=FACTOR_STATUS_CHOICE, null=True, blank=True)
sys_ws = models.ForeignKey(WorkspaceModel, on_delete=models.CASCADE, null=False, blank=False)
def __str__(self):
return f'{self.customer}'
class OrderItem(BaseModel):
order = models.ForeignKey(Order, on_delete=models.CASCADE, null=False, blank=False)
product = models.ForeignKey(Product, on_delete=models.CASCADE, null=False, blank=False)
product_name = models.CharField(max_length=150, null=False, blank=False)
price = models.DecimalField(max_digits=12, decimal_places=2, null=False, blank=False)
amount = models.PositiveIntegerField(null=False, blank=False)
def __str__(self):
return f'{self.order} {self.order.id}'