first push
This commit is contained in:
372
LiveStock/models.py
Normal file
372
LiveStock/models.py
Normal file
@@ -0,0 +1,372 @@
|
||||
import datetime
|
||||
|
||||
from authentication.models import BaseModel, SystemUserProfile, SystemAddress, BankCard
|
||||
from django.db import models
|
||||
|
||||
|
||||
class LiveStockProvinceJahad(BaseModel):
|
||||
user = models.ForeignKey(
|
||||
SystemUserProfile,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="live_stock_jahad_user",
|
||||
null=True
|
||||
)
|
||||
address = models.ForeignKey(
|
||||
SystemAddress,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="live_stock_jahad_address",
|
||||
null=True
|
||||
)
|
||||
user_bank_info = models.ForeignKey(
|
||||
BankCard,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="live_stock_jahad_bank_info",
|
||||
null=True
|
||||
)
|
||||
name = models.CharField(max_length=200, null=True)
|
||||
mobile = models.CharField(max_length=200, null=True)
|
||||
type = models.CharField(max_length=200, null=True)
|
||||
account = models.CharField(max_length=200, null=True)
|
||||
national_id = models.CharField(max_length=100, null=True)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(LiveStockProvinceJahad, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class Union(BaseModel):
|
||||
user = models.ForeignKey(
|
||||
SystemUserProfile,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="union_user",
|
||||
null=True
|
||||
)
|
||||
address = models.ForeignKey(
|
||||
SystemAddress,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="union_address",
|
||||
null=True
|
||||
)
|
||||
user_bank_info = models.ForeignKey(
|
||||
BankCard,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="union_bank_info",
|
||||
null=True
|
||||
)
|
||||
|
||||
name = models.CharField(max_length=200, null=True)
|
||||
mobile = models.CharField(max_length=200, null=True)
|
||||
type = models.CharField(max_length=200, null=True)
|
||||
account = models.CharField(max_length=200, null=True)
|
||||
national_id = models.CharField(max_length=100, null=True)
|
||||
active = models.BooleanField(default=True)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(Union, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class Cooperative(BaseModel):
|
||||
user = models.ForeignKey(
|
||||
SystemUserProfile,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cooperative_user",
|
||||
null=True
|
||||
)
|
||||
address = models.ForeignKey(
|
||||
SystemAddress,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cooperative_address",
|
||||
null=True
|
||||
)
|
||||
user_bank_info = models.ForeignKey(
|
||||
BankCard,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cooperative_bank_info",
|
||||
null=True
|
||||
)
|
||||
name = models.CharField(max_length=200, null=True)
|
||||
mobile = models.CharField(max_length=200, null=True)
|
||||
type = models.CharField(max_length=200, null=True)
|
||||
account = models.CharField(max_length=200, null=True)
|
||||
national_id = models.CharField(max_length=100, null=True)
|
||||
active = models.BooleanField(default=True)
|
||||
first_sub_cooperative_price = models.IntegerField(default=0)
|
||||
first_sub_cooperative_account = models.CharField(max_length=200, null=True)
|
||||
second_sub_cooperative_price = models.IntegerField(default=0)
|
||||
second_sub_cooperative_account = models.CharField(max_length=200, null=True)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(Cooperative, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class Rancher(BaseModel):
|
||||
user = models.ForeignKey(
|
||||
SystemUserProfile,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="rancher_user",
|
||||
null=True
|
||||
)
|
||||
# address = models.ForeignKey(
|
||||
# SystemAddress,
|
||||
# on_delete=models.CASCADE,
|
||||
# related_name="rancher_address",
|
||||
# null=True
|
||||
# )
|
||||
# user_bank_info = models.ForeignKey(
|
||||
# BankCard,
|
||||
# on_delete=models.CASCADE,
|
||||
# related_name="rancher_bank_info",
|
||||
# null=True
|
||||
# )
|
||||
# contractor = models.ForeignKey(
|
||||
# Contractor,
|
||||
# on_delete=models.CASCADE,
|
||||
# related_name="rancher_contractor",
|
||||
# null=True
|
||||
# )
|
||||
cooperative = models.ForeignKey(
|
||||
Cooperative,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="rancher_cooperative",
|
||||
null=True
|
||||
)
|
||||
name = models.CharField(max_length=200, null=True)
|
||||
registering_user = models.CharField(max_length=200, null=True)
|
||||
lng = models.FloatField(default=0)
|
||||
lot = models.FloatField(default=0)
|
||||
mobile = models.CharField(max_length=200, null=True)
|
||||
fullname = models.CharField(max_length=200, null=True)
|
||||
city = models.CharField(max_length=200, null=True)
|
||||
herd_name = models.CharField(max_length=200, null=True)
|
||||
unit_id = models.CharField(max_length=100, null=True)
|
||||
postal_code = models.CharField(max_length=100, null=True)
|
||||
epidemiological_code = models.CharField(max_length=100, null=True)
|
||||
herd_code = models.CharField(max_length=100, null=True)
|
||||
national_id = models.CharField(max_length=100, null=True)
|
||||
allow_buy = models.BooleanField(default=True)
|
||||
weight_allocation_light = models.IntegerField(default=0)
|
||||
weight_allocation_heavy = models.IntegerField(default=0)
|
||||
weight_quota_heavy = models.IntegerField(default=0)
|
||||
weight_quota_light = models.IntegerField(default=0)
|
||||
total_weight = models.BigIntegerField(default=0)
|
||||
contractor_code = models.CharField(max_length=100, null=True)
|
||||
sheep = models.IntegerField(default=0)
|
||||
goat = models.IntegerField(default=0)
|
||||
cow = models.IntegerField(default=0)
|
||||
horse = models.IntegerField(default=0)
|
||||
camel = models.IntegerField(default=0)
|
||||
light_livestock = models.IntegerField(default=0)
|
||||
heavy_livestock = models.IntegerField(default=0)
|
||||
has_script = models.BooleanField(default=False)
|
||||
active = models.BooleanField(default=True)
|
||||
type = models.CharField(max_length=200, default='rural')
|
||||
industrial = models.BooleanField(default=False)
|
||||
dhi_amount = models.IntegerField(default=0)
|
||||
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
# live_stocks = LiveStock.objects.filter(trash=False, herd_code=self.herd_code).only('type')
|
||||
# light_livestock = live_stocks.filter(type__in=('بز', 'گوسفند')).count()
|
||||
# heavy_livestock = live_stocks.filter(type__in=('گاو', 'اسب', 'شتر')).count()
|
||||
# product = LiveStockProduct.objects.filter(trash=False, name='سبوس').first()
|
||||
# self.weight_quota_heavy=product.heavy_wight * heavy_livestock
|
||||
# self.weight_quota_light=product.light_wight * light_livestock
|
||||
super(Rancher, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class LiveStock(BaseModel):
|
||||
rancher = models.ForeignKey(Rancher, on_delete=models.CASCADE, null=True)
|
||||
national_id_livestock_code = models.CharField(max_length=200, null=True)
|
||||
herd_code = models.CharField(max_length=100, null=True)
|
||||
type = models.CharField(max_length=200, null=True)
|
||||
birth_day = models.CharField(max_length=200, null=True)
|
||||
gender = models.CharField(max_length=100, null=True)
|
||||
contractor_code = models.CharField(max_length=100, null=True)
|
||||
unique_identifier = models.CharField(max_length=100, null=True)
|
||||
agent = models.CharField(max_length=100, null=True)
|
||||
registering_user = models.CharField(max_length=200, null=True)
|
||||
registering_date = models.CharField(max_length=200, null=True)
|
||||
active = models.BooleanField(default=True)
|
||||
birth_day_gh = models.DateTimeField(null=True)
|
||||
registering_date_gh = models.DateTimeField(null=True)
|
||||
archive=models.BooleanField(default=False)
|
||||
age_of_archive=models.IntegerField(default=1)
|
||||
archiver=models.CharField(max_length=250,null=True)
|
||||
archive_date=models.DateTimeField(null=True)
|
||||
returner_from_archive=models.CharField(max_length=250,null=True)
|
||||
return_from_archive_date=models.DateTimeField(null=True)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(LiveStock, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class LiveStockProduct(BaseModel):
|
||||
name = models.CharField(max_length=200, null=True)
|
||||
image = models.CharField(max_length=500, null=True)
|
||||
unit = models.CharField(max_length=200, null=True)
|
||||
price = models.IntegerField(default=0)
|
||||
light_wight = models.IntegerField(default=0)
|
||||
heavy_wight = models.IntegerField(default=0)
|
||||
company_price = models.IntegerField(default=0)
|
||||
shipping_price = models.IntegerField(default=0)
|
||||
union_price = models.IntegerField(default=0)
|
||||
cooperative_price = models.IntegerField(default=0)
|
||||
light_wight_industrial = models.IntegerField(default=0)
|
||||
heavy_wight_industrial = models.IntegerField(default=0)
|
||||
light_wight_dha = models.IntegerField(default=0)
|
||||
heavy_wight_dha = models.IntegerField(default=0)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(LiveStockProduct, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class CooperativeProductsShare(BaseModel):
|
||||
cooperative = models.ForeignKey(
|
||||
Cooperative,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cooperative_share_product",
|
||||
null=True
|
||||
)
|
||||
product = models.ForeignKey(
|
||||
LiveStockProduct,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cooperative_share_product",
|
||||
null=True
|
||||
)
|
||||
price = models.IntegerField(default=0)
|
||||
shipping_price = models.IntegerField(default=0)
|
||||
union_price = models.IntegerField(default=0)
|
||||
cooperative_price = models.IntegerField(default=0)
|
||||
company_price = models.IntegerField(default=0)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(CooperativeProductsShare, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class LiveStockRolseProduct(BaseModel):
|
||||
parent_product = models.ForeignKey(
|
||||
LiveStockProduct,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="parents_product",
|
||||
null=True
|
||||
)
|
||||
jahad = models.ForeignKey(
|
||||
LiveStockProvinceJahad,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="jahad_product",
|
||||
null=True
|
||||
)
|
||||
union = models.ForeignKey(
|
||||
Union,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="union_product",
|
||||
null=True
|
||||
)
|
||||
cooperative = models.ForeignKey(
|
||||
Cooperative,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cooperative_product",
|
||||
null=True
|
||||
)
|
||||
# rancher = models.ForeignKey(
|
||||
# Rancher,
|
||||
# on_delete=models.CASCADE,
|
||||
# related_name="rancher_product",
|
||||
# null=True
|
||||
# )
|
||||
name = models.CharField(max_length=200, null=True)
|
||||
total_weight = models.BigIntegerField(default=0)
|
||||
total_receipt_weight = models.BigIntegerField(default=0)
|
||||
total_allocated_weight = models.BigIntegerField(default=0)
|
||||
total_remain_weight = models.BigIntegerField(default=0)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.total_remain_weight = self.total_weight - self.total_allocated_weight
|
||||
super(LiveStockRolseProduct, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class LiveStockAllocations(BaseModel):
|
||||
product = models.ForeignKey(
|
||||
LiveStockRolseProduct,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="product_allocation",
|
||||
null=True
|
||||
)
|
||||
jahad = models.ForeignKey(
|
||||
LiveStockProvinceJahad,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="jahad_allocation",
|
||||
null=True
|
||||
)
|
||||
union = models.ForeignKey(
|
||||
Union,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="union_allocation",
|
||||
null=True
|
||||
)
|
||||
cooperative = models.ForeignKey(
|
||||
Cooperative,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="cooperative_allocation",
|
||||
null=True
|
||||
)
|
||||
state = models.CharField(max_length=200, default='pending')
|
||||
weight = models.BigIntegerField(default=0)
|
||||
real_weight = models.BigIntegerField(default=0)
|
||||
date = models.DateTimeField(default=datetime.datetime.now)
|
||||
allocate_from = models.CharField(max_length=200, null=True)
|
||||
allocate_to = models.CharField(max_length=200, null=True)
|
||||
place = models.TextField(null=True)
|
||||
charge = models.BooleanField(default=False)
|
||||
code = models.CharField(max_length=200, null=True)
|
||||
description = models.TextField(null=True, blank=True)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(LiveStockAllocations, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class Contractor(BaseModel):
|
||||
user = models.ForeignKey(
|
||||
SystemUserProfile,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="contractor_user",
|
||||
null=True
|
||||
)
|
||||
address = models.ForeignKey(
|
||||
SystemAddress,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="contractor_user",
|
||||
null=True
|
||||
)
|
||||
cooperative = models.ForeignKey(
|
||||
Cooperative,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="contractor_cooperative",
|
||||
null=True
|
||||
)
|
||||
contractor_code = models.CharField(max_length=100, null=True)
|
||||
fullname = models.CharField(max_length=200, null=True)
|
||||
entity_code = models.CharField(max_length=200, null=True)
|
||||
national_id = models.CharField(max_length=100, null=True)
|
||||
company_name = models.CharField(max_length=200, null=True)
|
||||
number_of_rancher = models.IntegerField(default=0)
|
||||
heavy_livestock = models.IntegerField(default=0)
|
||||
light_livestock = models.IntegerField(default=0)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(Contractor, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
class PosSeller(BaseModel):
|
||||
cooperative = models.ForeignKey(
|
||||
Cooperative,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="seller_pos_cooperative",
|
||||
null=True
|
||||
)
|
||||
full_name=models.CharField(max_length=200,null=True)
|
||||
mobile=models.CharField(max_length=50,null=True)
|
||||
national_id=models.CharField(max_length=50,null=True)
|
||||
city=models.CharField(max_length=100,null=True)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super(PosSeller, self).save(*args, **kwargs)
|
||||
Reference in New Issue
Block a user