Skip to content

Instantly share code, notes, and snippets.

@ijharulislam
Created February 23, 2016 15:27
Show Gist options
  • Select an option

  • Save ijharulislam/4cbf3e5485704713be58 to your computer and use it in GitHub Desktop.

Select an option

Save ijharulislam/4cbf3e5485704713be58 to your computer and use it in GitHub Desktop.
from __future__ import unicode_literals
from django.db import models
from django.db.models import Q
from financial.models import Tax
from django.contrib.auth.models import User
class BaseClass(models.Model):
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True)
modified_by = models.ForeignKey(User,null=True,blank=True)
class Meta:
abstract = True
class Manufacturer(models.Model):
"""
Represents a Manufacturer
"""
name = models.CharField(max_length=100, null=True, blank=True)
description = models.TextField(null=True, blank=True)
is_active = models.BooleanField(default=True)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="manufacturer_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="manufacturer_modified_by")
class Meta:
ordering = ('name',)
def __unicode__(self):
return self.name
class Category(models.Model):
"""
Represents a Category for Products
"""
name = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=100, unique=True)
description = models.TextField(null=True, blank=True)
pic = models.ImageField(upload_to='images/catalog/categorievs', null=True, blank=True)
parent = models.ForeignKey('self', related_name='sub_categories', null=True, blank=True)
tags = models.CharField(max_length=100, null=True, blank=True,
help_text='Comma-delimited set of SEO keywords for meta tag')
display_order = models.IntegerField(default=0)
is_active = models.BooleanField(default=True)
is_expended = models.BooleanField(default=False, help_text='Catergory will always shown expended')
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="category_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="category_modified_by")
class Meta:
ordering = ('display_order', 'id',)
verbose_name_plural = 'Categories'
class Product(models.Model):
name = models.CharField(max_length=100, null=True, blank=True)
handle = models.CharField(max_length=100, null=True, blank=True)
description = models.TextField(null=True, blank=True)
tags = models.CharField(max_length=100, null=True, blank=True,
help_text='Comma-delimited set of SEO keywords for meta tag')
sales_account_code = models.CharField(max_length=100, null=True, blank=True)
supplier_code = models.CharField(max_length=100, null=True, blank=True)
purchase_account_code = models.CharField(max_length=100, null=True, blank=True)
image = models.ImageField(upload_to="product/images", null=True, blank=True)
is_active = models.BooleanField(default=True)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="product_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="product_modified_by")
class Meta:
ordering = ('id',)
def __unicode__(self):
return self.name
class Price(models.Model):
product = models.ForeignKey(Product)
supply_price = models.DecimalField(
max_digits=9, decimal_places=2, help_text='Per unit price')
retail_price = models.DecimalField(
max_digits=9, decimal_places=2, help_text='Per unit price')
markup = models.FloatField(default=0.0)
tax = models.ForeignKey(Tax)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="price_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="price_modified_by")
class Variant(models.Model):
product = models.ManyToManyField(Product)
has_varient = models.BooleanField(default=True)
default_value = models.CharField(max_length=100)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="variant_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="variant_modified_by")
class Attribute(models.Model):
variant = models.ForeignKey(Variant)
option_name = models.CharField(max_length=100)
default_value = models.CharField(max_length=100)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="attribute_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="attribute_modified_by")
STOCK_TYPE_CHOICES = (
('1','Standard'),
('2','Composite'),
)
class Inventory(models.Model):
product = models.ForeignKey(Product)
sku = models.CharField(max_length=100, unique=True)
stock_type = models.CharField(max_length=100, choices=STOCK_TYPE_CHOICES)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="inventory_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="inventory_modified_by")
class StockControl(models.Model):
inventory = models.ForeignKey(Inventory)
current_stock = models.IntegerField(default=0)
reorder_point = models.IntegerField(default=0)
reorder_amount = models.IntegerField(default=0)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="stock_control_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="stock_control_modified_by")
class Suplier(models.Model):
product= models.ForeignKey(Product, blank=True, null=True, related_name="product_sulier")
suplier_name = models.CharField(max_length=200, blank=True, null=True)
description = models.CharField(max_length=1000, blank=True, null=True)
default_markup = models.IntegerField(default=0)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="suplier_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="suplier_modified_by")
class ProductBrand(models.Model):
product= models.ForeignKey(Product, blank=True, null=True, related_name="product_brand")
brand_name = models.CharField(max_length=200, blank=True, null=True)
description = models.CharField(max_length=1000, blank=True, null=True)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="brand_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="brand_modified_by")
class ProductType(models.Model):
product= models.ForeignKey(Product, blank=True, null=True, related_name="product_type")
type_name = models.CharField(max_length=200, blank=True, null=True)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="type_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="type_modified_by")
class ProductTax(models.Model):
product= models.ForeignKey(Product, blank=True, null=True, related_name="product_tax")
tax_name = models.CharField(max_length=200, blank=True, null=True)
rate = models.FloatField(default=0.0)
created_on = models.DateTimeField(auto_now_add=True, null=True,blank=True)
modified_on = models.DateTimeField(auto_now=True,null=True,blank=True)
created_by = models.ForeignKey(User,null=True,blank=True, related_name="type_created_by")
modified_by = models.ForeignKey(User,null=True,blank=True, related_name="type_modified_by")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment