first
This commit is contained in:
commit
89a5d70512
284 files changed
+8364
No files matched your search
@@ -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}'
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user