Files
Rasadyar_Kurdestan/panel/models.py
2026-01-18 11:59:48 +03:30

7444 lines
306 KiB
Python

import random
import string
from datetime import datetime, timedelta
from django.conf import settings
from django.contrib.auth.models import User, Group
from django.db import models
from django.utils import timezone
from jdatetime import time
from LiveStock.models import Cooperative, LiveStockRolseProduct
from authentication.models import (
BaseModel,
Address,
UserProfile,
SystemAddress,
SystemUserProfile,
BankCard,
Province, ExternalTransaction
)
from authentication.models import UserMessage
from general_urls import base_user_gate_way_id
from notification.models import Notification
# from .KillHouse.views import KillHouseComplaintViewSet
from .ReportingPanel.models import SearchFields
class CheckState(BaseModel):
poultry_request = models.ForeignKey(
'PoultryRequest',
on_delete=models.CASCADE,
null=True,
related_name="poultry_request"
)
notification = models.ForeignKey(
Notification,
on_delete=models.CASCADE,
null=True,
related_name="check_notification"
)
user_message = models.ForeignKey(
UserMessage,
on_delete=models.CASCADE,
null=True,
related_name="message_check"
)
city_operator_check = models.ForeignKey(
'CityOperatorCheckRequest',
on_delete=models.CASCADE,
null=True,
related_name="city_operator_check_state"
)
province_operator_check = models.ForeignKey(
'ProvinceCheckOperatorRequest',
on_delete=models.CASCADE,
null=True,
related_name='province_operator_check_state'
)
state = models.BooleanField(default=False)
city_state = models.BooleanField(default=False)
city_state_notification = models.BooleanField(default=False)
city_state_modal = models.BooleanField(default=False)
city_state_sms = models.BooleanField(default=False)
province_state = models.BooleanField(default=False)
province_state_notification = models.BooleanField(default=False)
province_state_modal = models.BooleanField(default=False)
province_state_sms = models.BooleanField(default=False)
kill_house_state_notification = models.BooleanField(default=False)
kill_house_state_modal = models.BooleanField(default=False)
kill_house_state_sms = models.BooleanField(default=False)
assignment_state_notification = models.BooleanField(default=False)
assignment_state_modal = models.BooleanField(default=False)
assignment_state_sms = models.BooleanField(default=False)
main_check = models.CharField(max_length=50, null=True)
class Wallet(BaseModel):
inventory = models.FloatField(default=0)
state = models.CharField(max_length=120, default='active')
province_name = models.CharField(max_length=50, null=True)
id_number = models.IntegerField(default=1)
def save(self, *args, **kwargs):
super(Wallet, self).save(*args, **kwargs)
class OperatorLastTimeEnter(BaseModel):
city_operator_last_time_check = models.DateTimeField(default=datetime.now())
province_operator_last_time_check = models.DateTimeField(default=datetime.now())
kill_house_last_time_check = models.DateTimeField(default=datetime.now())
assignment_last_time_check = models.DateTimeField(default=datetime.now())
operator = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
null=True,
related_name="operator_last_time_check"
)
# مدل مربوط به قیمت گذاری
class Pricing(BaseModel):
# price = models.FloatField(null=True)
operator = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="pricing_operator"
)
date = models.DateTimeField(null=True)
live_chicken_price = models.FloatField(null=True)
dead_chicken_price = models.FloatField(null=True)
major_seller_price = models.FloatField(null=True)
retail_seller_price = models.FloatField(null=True)
floor_price = models.FloatField(null=True)
ceiling_price = models.FloatField(null=True)
role = models.CharField(max_length=20, null=True)
lock = models.BooleanField(default=False)
pricing_id_key = models.IntegerField(null=True)
operator_id_foreign_key = models.IntegerField(null=True)
# partial_seller_price = models.FloatField(null=True)
def save(self, *args, **kwargs):
super(Pricing, self).save(*args, **kwargs)
class ChainCompany(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="chain_company_user",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="chain_company_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="chain_company_wallet",
null=True
)
name = models.CharField(max_length=200, null=True)
city = models.CharField(max_length=200, null=True)
province = models.CharField(max_length=200, null=True)
postal_code = models.CharField(max_length=200, null=True)
address = models.TextField(null=True)
def save(self, *args, **kwargs):
super(ChainCompany, self).save(*args, **kwargs)
class ChainCompanyTransaction(BaseModel):
chain_company = models.ForeignKey(
ChainCompany,
on_delete=models.CASCADE,
related_name="transaction_chain_company",
null=True
)
amount = models.BigIntegerField(default=0)
amount_with_tax = models.BigIntegerField(default=0)
transaction = models.IntegerField(null=True)
state = models.CharField(max_length=20, default='pending')
union_share = models.BigIntegerField(default=0)
company_share = models.BigIntegerField(default=0)
guilds_share = models.BigIntegerField(default=0)
city_share = models.BigIntegerField(default=0)
wallet_share = models.BigIntegerField(default=0)
other_share = models.BigIntegerField(default=0)
pay_type = models.CharField(max_length=200, null=True)
saleReferenceId = models.CharField(max_length=100, null=True)
refId = models.CharField(max_length=100, null=True)
orderId = models.CharField(max_length=100, null=True)
cardHolderPan = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ChainCompanyTransaction, self).save(*args, **kwargs)
# مدل مربوط به ثبت مرغدار
class Poultry(BaseModel):
owner = models.ForeignKey(
'self',
null=True,
blank=True,
related_name='poultry_owner',
on_delete=models.CASCADE
)
owner_id_foreign_key = models.IntegerField(null=True)
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="poultry_user",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="poultry_system_address",
null=True
)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="poultry_bank_info",
null=True
)
has_chain_company = models.BooleanField(default=False)
user_bank_id_foreign_key = models.IntegerField(null=True)
city_operator = models.CharField(max_length=150, null=True)
unit_name = models.CharField(max_length=100, null=True)
password = models.CharField(max_length=100, null=True)
gis_code = models.CharField(max_length=30, null=True)
operating_licence_capacity = models.BigIntegerField(default=0)
number_of_halls = models.IntegerField(default=0)
tenant = models.BooleanField(default=False, null=True)
has_tenant = models.BooleanField(default=False, null=True)
person_type = models.CharField(max_length=10, null=True)
economic_code = models.CharField(max_length=30, null=True)
system_code = models.CharField(max_length=20, null=True)
epidemiological_code = models.CharField(max_length=20, null=True)
breeding_unique_id = models.CharField(max_length=20, null=True)
total_capacity = models.BigIntegerField(default=0)
licence_number = models.CharField(max_length=20, null=True)
health_certificate_number = models.CharField(max_length=20, null=True)
number_of_requests = models.BigIntegerField(default=0)
hatching_date = models.DateTimeField(default=timezone.now())
last_party_date = models.DateTimeField(default=timezone.now())
number_of_incubators = models.BigIntegerField(default=0)
herd_age_by_day = models.IntegerField(default=0)
herd_age_by_week = models.IntegerField(default=0)
number_of_party = models.IntegerField(default=0)
communication_type = models.CharField(max_length=30, null=True)
cooperative = models.CharField(max_length=50, null=True)
date_of_register = models.DateTimeField(default=timezone.now())
unit_status = models.CharField(max_length=20, null=True)
active = models.BooleanField(default=True)
identity_documents = models.JSONField(null=True)
samasat_user_code = models.CharField(max_length=20, null=True)
base_order = models.BigIntegerField(null=True)
incubation_date = models.DateTimeField(null=True)
wallet_amount = models.BigIntegerField(default=0)
city = models.IntegerField(default=0)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="poultry_wallet",
null=True
)
wallet_id_foreign_key = models.IntegerField(default=1)
poultry_id_key = models.IntegerField(default=1)
Lat = models.FloatField(null=True)
Long = models.FloatField(null=True)
date = models.DateTimeField(null=True)
killing_ave_age = models.IntegerField(default=1)
active_left_over = models.IntegerField(default=0)
killing_ave_count = models.IntegerField(default=0)
killing_ave_weight = models.IntegerField(default=0)
killing_live_weight = models.IntegerField(default=0)
killing_carcasses_weight = models.IntegerField(default=0)
killing_loss_weight_percent = models.IntegerField(default=0)
real_killing_ave_weight = models.FloatField(default=0)
real_killing_live_weight = models.FloatField(default=0)
real_killing_carcasses_weight = models.FloatField(default=0)
real_killing_loss_weight_percent = models.FloatField(default=0)
interest_license_id = models.CharField(max_length=100, null=True)
order_limit = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(Poultry, self).save(*args, **kwargs)
# مدل مربوط به مستاجر مرغدار
class PoultryTenant(BaseModel):
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="poultry_tenant",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="poultry_tenant_bank_info",
null=True
)
fullname = models.CharField(max_length=150, null=True)
first_name = models.CharField(max_length=200, null=True)
last_name = models.CharField(max_length=200, null=True)
natinal_id = models.CharField(max_length=10, null=True)
mobile = models.CharField(max_length=11, null=True, default="")
def save(self, *args, **kwargs):
super(PoultryTenant, self).save(*args, **kwargs)
class PoultryAllowCityProvince(BaseModel):
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="poultry_allow",
null=True
)
poultry_id_foreign_key = models.IntegerField(null=True)
poultry_allow_city_province_id_key = models.IntegerField(null=True)
city = models.BooleanField(default=False)
province = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(PoultryAllowCityProvince, self).save(*args, **kwargs)
# مدل مربوط به ثبت جوجه ریزی مرغدار
class PoultryHatching(BaseModel):
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="poultry_hatching_user",
null=True
)
chain_company = models.ForeignKey(
ChainCompany,
on_delete=models.CASCADE,
related_name="poultry_hatching_chain_company",
null=True
)
has_chain_company = models.BooleanField(default=False)
poultry_id_foreign_key = models.IntegerField(null=True)
poultry_hatching_id_key = models.IntegerField(null=True)
quantity = models.BigIntegerField(default=0)
losses = models.BigIntegerField(default=0)
left_over = models.BigIntegerField(null=True)
killed_quantity = models.BigIntegerField(default=0)
extra_killed_quantity = models.BigIntegerField(default=0)
governmental_killed_quantity = models.FloatField(default=0)
governmental_quantity = models.FloatField(default=0)
free_killed_quantity = models.FloatField(default=0)
free_quantity = models.FloatField(default=0)
chain_killed_quantity = models.FloatField(default=0)
chain_killed_weight = models.FloatField(default=0)
out_province_killed_weight = models.FloatField(default=0)
out_province_killed_quantity = models.FloatField(default=0)
export_killed_weight = models.FloatField(default=0)
export_killed_quantity = models.FloatField(default=0)
total_commitment = models.FloatField(default=0)
commitment_type = models.CharField(max_length=20, default='govermental')
total_commitment_quantity = models.FloatField(default=0)
total_free_commitment_quantity = models.FloatField(default=0)
total_free_commitment_weight = models.FloatField(default=0)
total_killed_weight = models.FloatField(default=0)
total_average_killed_weight = models.FloatField(default=0)
request_left_over = models.BigIntegerField(default=0)
hall = models.IntegerField(default=0)
date = models.DateTimeField(null=True)
predicate_date = models.DateTimeField(null=True)
chicken_breed = models.CharField(max_length=200, null=True)
period = models.BigIntegerField(default=0, null=True)
allow_hatching = models.CharField(max_length=20, default='pending')
state = models.CharField(max_length=50, default="pending")
archive = models.BooleanField(default=False)
violation = models.BooleanField(default=False)
message = models.CharField(max_length=500, null=True)
registrar = models.JSONField(null=True)
breed = models.JSONField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
last_change = models.JSONField(null=True)
chicken_age = models.IntegerField(default=1)
now_age = models.IntegerField(default=1)
latest_hatching_change = models.JSONField(null=True)
violation_report = models.TextField(null=True)
violation_message = models.TextField(null=True)
violation_image = models.JSONField(null=True)
violation_reporter = models.CharField(max_length=200, null=True)
violation_report_date = models.DateTimeField(null=True)
violation_report_editor = models.CharField(max_length=200, null=True)
violation_report_edit_date = models.DateTimeField(null=True)
total_losses = models.BigIntegerField(default=0)
direct_losses = models.BigIntegerField(default=0)
direct_losses_inputer = models.CharField(max_length=200, null=True)
direct_losses_date = models.DateTimeField(null=True)
direct_losses_editor = models.CharField(max_length=200, null=True)
direct_losses_last_edit_date = models.DateTimeField(null=True)
end_period_losses_inputer = models.CharField(max_length=200, null=True)
end_period_losses_date = models.DateTimeField(null=True)
end_period_losses_editor = models.CharField(max_length=200, null=True)
end_period_losses_last_edit_date = models.DateTimeField(null=True)
breeding_unique_id = models.CharField(max_length=20, null=True)
licence_number = models.CharField(max_length=20, null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
first_date_input_archive = models.DateTimeField(null=True)
second_date_input_archive = models.DateTimeField(null=True)
input_archiver = models.CharField(max_length=20, null=True)
output_archive_date = models.DateTimeField(null=True)
output_archiver = models.CharField(max_length=20, null=True)
bar_difference_request_weight = models.FloatField(default=0)
bar_difference_request_quantity = models.FloatField(default=0)
total_disease_losses = models.BigIntegerField(default=0) # مجموع تلفات ناشی از بیماری
total_flock_destruction = models.BigIntegerField(default=0) # مجموع معدوم‌سازی گله
total_normal_flock_losses = models.BigIntegerField(default=0) # مجموع تلفات عادی گله
total_force_majeure_losses = models.BigIntegerField(default=0) # مجموع تلفات ناشی از عوامل قهری و طبیعی
total_fire_losses = models.BigIntegerField(default=0) # مجموع تلفات ناشی از آتش‌سوزی
health_certificate = models.CharField(max_length=100, null=True)
samasat_discharge_percentage = models.IntegerField(default=0)
PersonTypeName = models.CharField(max_length=200, null=True, blank=True)
InteractTypeName = models.CharField(max_length=200, null=True, blank=True)
UnionTypeName = models.CharField(max_length=200, null=True, blank=True)
CertId = models.CharField(max_length=200, null=True, blank=True)
increase_quantity = models.IntegerField(default=0)
tenant_fullname = models.CharField(max_length=300, null=True, blank=True)
tenant_national_code = models.CharField(max_length=50, null=True, blank=True)
tenant_mobile = models.CharField(max_length=20, null=True, blank=True)
tenant_city = models.CharField(max_length=200, null=True, blank=True)
has_tenant = models.BooleanField(default=False)
archive_date = models.DateTimeField(null=True)
unknown = models.BooleanField(default=False)
def save(self, *args, **kwargs):
self.total_killed_weight = (
(self.governmental_killed_quantity or 0)
+ (self.free_killed_quantity or 0)
+ (self.out_province_killed_weight or 0)
+ (self.chain_killed_weight or 0)
+ (self.export_killed_weight or 0)
+ (self.bar_difference_request_weight or 0)
)
managed_losses_total = 0
management_model = globals().get('HatchingLossManagement')
if management_model:
management = management_model.get_active()
else:
management = None
if management:
for management_field, loss_field in management_model.LOSS_FIELD_MAPPING.items():
if getattr(management, management_field, False):
managed_losses_total += getattr(self, loss_field, 0) or 0
effective_losses = managed_losses_total if managed_losses_total else (self.losses or 0)
self.total_losses = effective_losses + (self.direct_losses or 0)
self.killed_quantity = (
(self.governmental_quantity or 0)
+ (self.free_quantity or 0)
+ (self.out_province_killed_quantity or 0)
+ (self.chain_killed_quantity or 0)
+ (self.export_killed_quantity or 0)
+ (self.bar_difference_request_quantity or 0)
)
self.total_average_killed_weight = round(self.total_killed_weight / self.killed_quantity,
2) if self.killed_quantity > 0 else 0
calculated_left_over = (
(self.quantity or 0)
+ (self.increase_quantity or 0)
- (self.killed_quantity or 0)
- (self.total_losses or 0)
)
self.left_over = calculated_left_over if calculated_left_over > 0 else 0
super(PoultryHatching, self).save(*args, **kwargs)
class EvacuationHatchingDetail(BaseModel):
# گزارشات تلفات جوجه ریزی
hatching = models.ForeignKey(
PoultryHatching,
on_delete=models.CASCADE,
related_name="evacuation_details",
null=True,
blank=True
)
PartIdCode = models.CharField(max_length=200, null=True, blank=True)
RequestId = models.CharField(max_length=200, null=True, blank=True)
MoReportId = models.CharField(max_length=200, null=True, blank=True)
ReportType = models.IntegerField(null=True, blank=True)
ReportTypeString = models.CharField(max_length=255, null=True, blank=True)
ReportDate = models.CharField(max_length=200, null=True, blank=True)
ReportDateShamsi = models.CharField(max_length=200, null=True, blank=True)
MoReason = models.TextField(null=True, blank=True)
MoDate = models.CharField(max_length=200, null=True, blank=True)
MoDateShamsi = models.CharField(max_length=200, null=True, blank=True)
MoStartDay = models.IntegerField(null=True, blank=True)
MoEndDay = models.IntegerField(null=True, blank=True)
MoReportSubId = models.CharField(max_length=200, null=True, blank=True)
ReportStatus = models.IntegerField(null=True, blank=True)
GoodCount = models.IntegerField(null=True, blank=True)
Message = models.TextField(null=True, blank=True)
ErrorCode = models.IntegerField(null=True, blank=True)
IsDeleted = models.BooleanField(default=False)
RegDate = models.CharField(max_length=200, null=True, blank=True)
RegDateShamsi = models.CharField(max_length=200, null=True, blank=True)
RegDateShamsiWithTime = models.CharField(max_length=200, null=True, blank=True)
RegDateShamsiOnlyTime = models.CharField(max_length=200, null=True, blank=True)
ExternalId = models.CharField(max_length=200, null=True, blank=True)
StringId = models.CharField(max_length=200, null=True, blank=True)
IsPersisted = models.BooleanField(default=False)
AllowInsert = models.BooleanField(default=False)
AllowUpdate = models.BooleanField(default=False)
ModalCss = models.CharField(max_length=255, null=True, blank=True)
GridContainerParametersModel = models.CharField(max_length=255, null=True, blank=True)
MenuUserAccess = models.CharField(max_length=255, null=True, blank=True)
MenuUserAccessId = models.IntegerField(null=True, blank=True)
LogTableName = models.CharField(max_length=255, null=True, blank=True)
LogTableAlias = models.CharField(max_length=255, null=True, blank=True)
PageTitle = models.CharField(max_length=255, null=True, blank=True)
def save(self, *args, **kwargs):
super(EvacuationHatchingDetail, self).save(*args, **kwargs)
class HatchingLossManagement(BaseModel):
include_total_disease_losses = models.BooleanField(default=False)
include_total_flock_destruction = models.BooleanField(default=False)
include_total_normal_flock_losses = models.BooleanField(default=False)
include_total_force_majeure_losses = models.BooleanField(default=False)
include_total_fire_losses = models.BooleanField(default=False)
LOSS_FIELD_MAPPING = {
'include_total_disease_losses': 'total_disease_losses',
'include_total_flock_destruction': 'total_flock_destruction',
'include_total_normal_flock_losses': 'total_normal_flock_losses',
'include_total_force_majeure_losses': 'total_force_majeure_losses',
'include_total_fire_losses': 'total_fire_losses',
}
@classmethod
def get_active(cls):
return cls.objects.filter(trash=False).order_by('-modify_date').first()
def as_dict(self):
return {
field: getattr(self, field, False)
for field in self.LOSS_FIELD_MAPPING.keys()
}
# مدل ثبت اپراتور شهرستان
class CityOperator(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_operator_user",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
city_operator_id_key = models.IntegerField(null=True)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_system_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="city_operator_bank_info",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
identity_documents = models.JSONField(null=True)
phone = models.CharField(max_length=20, null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_wallet",
null=True
)
unit_name = models.CharField(max_length=50, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(CityOperator, self).save(*args, **kwargs)
class OutProvincePoultryRequestBuyer(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="out_province_poultry_user",
null=True
)
type = models.CharField(max_length=100, null=True)
fullname = models.CharField(max_length=300, null=True)
mobile = models.CharField(max_length=11, null=True)
unit_name = models.CharField(max_length=300, null=True)
city = models.CharField(max_length=300, null=True)
province = models.CharField(max_length=300, null=True)
kill_house_unique_id = models.CharField(max_length=100, null=True)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(OutProvincePoultryRequestBuyer, self).save(*args, **kwargs)
class Vet(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="user_profile_vet"
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="vet_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="vet_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="vet_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
vet_id_key = models.IntegerField(null=True)
wallet_amount = models.BigIntegerField(default=0)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(Vet, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست مرغدار
class PoultryRequest(BaseModel):
user = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
related_name="poultry_request",
null=True
)
city_operator = models.ForeignKey(
CityOperator,
on_delete=models.CASCADE,
related_name="poultry_request_city_operator",
null=True
)
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="poultry_request_poultry",
null=True
)
hatching = models.ForeignKey(
PoultryHatching,
on_delete=models.CASCADE,
related_name="poultry_request_hatching",
null=True
)
out_province_poultry_request_buyer = models.ForeignKey(
OutProvincePoultryRequestBuyer,
on_delete=models.CASCADE,
related_name="poultry_request_hatching",
null=True
)
vet_farm = models.ForeignKey(
Vet,
on_delete=models.CASCADE,
related_name="vet_poultry_request",
null=True
)
city_operator_id_foreign_key = models.IntegerField(null=True)
poultry_id_foreign_key = models.IntegerField(null=True)
poultry_hatching_id_foreign_key = models.IntegerField(null=True)
poultry_request_id_key = models.IntegerField(null=True)
quantity = models.BigIntegerField(default=0)
previous_quantity = models.BigIntegerField(default=0)
remain_quantity = models.BigIntegerField(default=0)
first_quantity = models.BigIntegerField(default=0)
losses = models.BigIntegerField(default=0)
send_date = models.DateTimeField(null=True)
chicken_breed = models.CharField(max_length=200, null=True)
financial_operation = models.CharField(max_length=100, null=True)
Index_weight = models.FloatField(null=True)
amount = models.FloatField(default=0)
state = models.JSONField(default=dict, null=True)
state_process = models.CharField(max_length=50, default="pending")
province_state = models.CharField(max_length=50, default="pending")
order_code = models.BigIntegerField(null=True)
general_order_code = models.BigIntegerField(null=True)
message = models.CharField(max_length=500, null=True)
inspector = models.CharField(max_length=30, null=True)
union = models.BooleanField(default=False)
awaiting_payment = models.BooleanField(default=False)
assignment = models.BooleanField(default=False)
auction = models.BooleanField(default=False)
fee = models.FloatField(default=0)
final_state = models.CharField(max_length=50, default="pending")
cell_type = models.JSONField(default=dict, null=True)
kill_house_list = models.JSONField(null=True)
registrar = models.JSONField(null=True)
buyer = models.JSONField(null=True)
out = models.BooleanField(default=False)
export = models.BooleanField(default=False)
free_sale_in_province = models.BooleanField(default=False)
vet = models.BooleanField(default=False)
archive = models.BooleanField(default=False)
direct_buying = models.BooleanField(default=False)
direct_buying_kill_place = models.CharField(max_length=100, null=True)
direct_buying_buyer_info = models.JSONField(null=True)
selling_without_city = models.BooleanField(default=False)
# clearance_code = models.BigIntegerField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
quarantine_code = models.CharField(max_length=200, null=True)
quarantine_quantity = models.IntegerField(default=0)
quarantine_code_registrar = models.JSONField(null=True)
out_province_driver_info = models.JSONField(null=True)
out_province_request_canceller = models.JSONField(null=True)
out_province_request_cancel = models.BooleanField(default=False)
freezing = models.BooleanField(default=False)
approved_price = models.BooleanField(default=False)
wage = models.FloatField(default=0)
total_wage_amount = models.BigIntegerField(default=0)
union_share = models.BigIntegerField(default=0)
union_share_percent = models.FloatField(default=0)
company_share = models.BigIntegerField(default=0)
company_share_percent = models.FloatField(default=0)
guilds_share = models.BigIntegerField(default=0)
guilds_share_percent = models.FloatField(default=0)
city_share = models.BigIntegerField(default=0)
city_share_percent = models.FloatField(default=0)
wallet_share = models.BigIntegerField(default=0)
wallet_share_percent = models.FloatField(default=0)
other_share = models.BigIntegerField(default=0)
other_share_percent = models.FloatField(default=0)
archive_wage = models.BooleanField(default=False)
wage_pay = models.BooleanField(default=False)
has_wage = models.BooleanField(default=False)
sms = models.BooleanField(default=False)
payer_type = models.CharField(max_length=20, null=True)
buyer_mobile = models.CharField(max_length=11, null=True)
buyer_fullname = models.CharField(max_length=200, null=True)
buyer_city = models.CharField(max_length=200, null=True)
buyer_province = models.CharField(max_length=200, null=True)
payer_fullname = models.CharField(max_length=200, null=True)
agent = models.JSONField(null=True)
hatching_left_over = models.IntegerField(default=0)
killing_age = models.IntegerField(default=1)
killer_kill_house_unit_name = models.CharField(max_length=300, null=True)
killer_kill_house_city = models.CharField(max_length=300, null=True)
killer_kill_house_province = models.CharField(max_length=300, null=True)
kill_house_unique_id = models.CharField(max_length=100, null=True)
payment_link = models.CharField(max_length=300, null=True)
interface_number = models.CharField(max_length=11, null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
price_confirmation = models.BooleanField(default=False)
price_confirmation_code = models.CharField(max_length=10, null=True)
input_price_confirmation_code = models.CharField(max_length=10, null=True)
fine = models.BooleanField(default=False)
fine_amount = models.BigIntegerField(default=0)
fine_coefficient = models.FloatField(default=0)
market = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(PoultryRequest, self).save(*args, **kwargs)
class PoultryRequestQuarantineCode(BaseModel):
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="poultry_request_code",
null=True
)
quarantine_code = models.CharField(max_length=200, null=True)
traffic_code = models.CharField(max_length=200, null=True)
registrar = models.CharField(max_length=200, null=True)
register_date = models.DateTimeField(null=True)
quarantine_quantity = models.IntegerField(default=0)
system_quarantine_quantity = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(PoultryRequestQuarantineCode, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست مرغدار
class TotalPoultryRequestQuantity(BaseModel):
quantity = models.BigIntegerField(default=0)
accepted_quantity = models.BigIntegerField(default=0)
returned_quantity = models.BigIntegerField(default=0)
first_quantity = models.BigIntegerField(default=0)
city_accepted_quantity = models.BigIntegerField(default=0)
allocated_quantity = models.BigIntegerField(default=0)
direct_buying_quantity = models.BigIntegerField(default=0)
number_of_poultry = models.BigIntegerField(default=0)
rejected_quantity = models.BigIntegerField(default=0)
waiting_quantity = models.BigIntegerField(default=0)
number_of_kill_house = models.BigIntegerField(default=0)
input_quantity = models.BigIntegerField(default=0)
assignableQuantity = models.BigIntegerField(default=0)
kill_requests_quantity = models.BigIntegerField(default=0)
date = models.DateTimeField(default=datetime.now())
age_up_45 = models.BigIntegerField(default=0, null=True)
total_poultry_request_quantity_id_key = models.IntegerField(null=True)
def save(self, *args, **kwargs):
super(TotalPoultryRequestQuantity, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست مزایده مرغدار
class PoultryRequestAuction(BaseModel):
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="poultry_request_auction",
null=True)
pricing = models.ForeignKey(
Pricing,
on_delete=models.CASCADE,
related_name="poultry_request_auction_pricing",
null=True
)
fee = models.FloatField(default=0, null=True)
hour = models.CharField(max_length=10, null=True)
auction_date = models.DateTimeField(null=True)
state = models.CharField(max_length=10, default='inactive')
def save(self, *args, **kwargs):
super(PoultryRequestAuction, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست بورسی مرغدار
class PoultryRequestExchange(BaseModel):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, related_name="poultry_request_exchange", null=True)
quantity = models.BigIntegerField(default=0, null=True)
send_date = models.DateTimeField(null=True)
hatching_date = models.DateTimeField(null=True)
chicken_breed = models.CharField(max_length=20, null=True)
Index_weight = models.FloatField(null=True)
fee = models.FloatField(null=True)
order_code = models.IntegerField(null=True)
longitude = models.FloatField(default=0)
latitude = models.FloatField(default=0)
address = models.TextField()
age = models.IntegerField(default=0, null=True)
inspector = models.CharField(max_length=30, null=True)
state = models.CharField(max_length=15, default='pending')
def save(self, *args, **kwargs):
super(PoultryRequestExchange, self).save(*args, **kwargs)
# مدل ثبت اپراتور کشتارگاه
class KillHouseOperator(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="kill_house_operator_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="kill_house_system_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="kill_house_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="kill_house_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
kill_house_operator_id_key = models.IntegerField(null=True)
wallet_amount = models.BigIntegerField(default=0)
killer = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseOperator, self).save(*args, **kwargs)
class Car(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="user_car",
null=True
)
driver_name = models.CharField(max_length=500, null=True)
driver_mobile = models.CharField(max_length=11, null=True)
type_car = models.CharField(max_length=50, null=True)
type = models.CharField(max_length=50, null=True)
transport_type = models.CharField(max_length=50, null=True)
pelak = models.CharField(max_length=200, null=True)
capocity = models.CharField(max_length=50, null=True)
weight_without_load = models.CharField(max_length=50, null=True)
health_code = models.CharField(max_length=100, null=True)
status = models.CharField(max_length=50, default="inactive")
active = models.BooleanField(default=True)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="car_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="car_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
identity_documents = models.JSONField(null=True)
phone = models.CharField(max_length=20, null=True)
registrar = models.JSONField(null=True)
active_state = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(Car, self).save(*args, **kwargs)
# مدل مربوط به ثبت کشتارگاه
class KillHouse(BaseModel):
user = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
related_name="user_killhouse",
null=True)
userprofile = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="system_user_kill_house"
)
address = models.ForeignKey(
Address,
on_delete=models.CASCADE,
related_name="killhouse_address",
null=True)
system_address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="killhouse_system_address",
null=True)
kill_house_operator = models.ForeignKey(
KillHouseOperator,
on_delete=models.CASCADE,
related_name="system_kill_house_operator",
null=True)
cars = models.ManyToManyField(
Car,
related_name='kill_house_car',
null=True, blank=True)
system_address_id_foreign_key = models.IntegerField(null=True)
kill_house_operator_id_foreign_key = models.IntegerField(null=True)
kill_house_id_key = models.IntegerField(null=True)
shift_work_from = models.CharField(max_length=50, null=True)
shift_work_to = models.CharField(max_length=50, null=True)
name = models.CharField(max_length=50, null=True)
car = models.JSONField(default=dict, null=True)
capacity = models.FloatField(default=0)
killing_race = models.CharField(max_length=20, null=True)
phone = models.CharField(max_length=20, null=True)
alternate_number = models.CharField(max_length=20, null=True)
killer = models.BooleanField(default=False)
wallet_amount = models.BigIntegerField(default=0)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
type = models.CharField(max_length=100, default='public')
out_province = models.BooleanField(default=False)
has_pos = models.BooleanField(default=False)
show_exclusive = models.BooleanField(default=True)
company_gateway_percent = models.IntegerField(default=0)
union_gateway_percent = models.IntegerField(default=0)
guilds_gateway_percent = models.IntegerField(default=0)
other_gateway_percent = models.IntegerField(default=0)
total_kill_capacity = models.FloatField(default=0)
total_kill_capacity_percent = models.FloatField(default=0)
extra_bar_kill_percent = models.FloatField(default=0)
max_kill_limit = models.BooleanField(default=False)
off = models.BigIntegerField(default=0)
unique_identifier = models.CharField(max_length=20, null=True)
share_debt_counting_wage = models.BooleanField(default=False)
out_province_selling_limitation = models.BooleanField(default=False)
out_province_selling_limitation_percent = models.IntegerField(default=0)
in_province_selling_limitation = models.BooleanField(default=False)
in_province_selling_limitation_percent = models.IntegerField(default=0)
market_buying = models.BooleanField(default=False)
market_buying_limitation = models.BooleanField(default=False)
market_buying_capacity_percent_status = models.BooleanField(default=False)
market_capacity_percent = models.FloatField(default=0)
market_light_capacity = models.BooleanField(default=False)
market_light_capacity_percent = models.FloatField(default=0)
poultry_payment_limitation = models.BooleanField(default=False)
quota = models.BooleanField(default=False)
quota_max_kill_limit = models.BooleanField(default=False)
quota_request = models.BooleanField(default=False)
quota_custom = models.BooleanField(default=False)
free_quota = models.FloatField(default=0)
governmental_quota = models.FloatField(default=0)
quota_custom_quantity = models.FloatField(default=0)
out_province_governmental_selling_percent = models.FloatField(default=0)
out_province_free_selling_percent = models.FloatField(default=0)
out_province_free_buying_commitment_percent = models.FloatField(default=0)
in_province_governmental_selling_percent = models.FloatField(default=0)
in_province_free_selling_percent = models.FloatField(default=0)
segmentation_governmental_percent = models.FloatField(default=0)
segmentation_free_selling_percent = models.FloatField(default=0)
cold_house_governmental_percent = models.FloatField(default=0)
cold_house_free_percent = models.FloatField(default=0)
governmental_selling_permission = models.BooleanField(default=False)
free_selling_permission = models.BooleanField(default=False)
free_sale_form_governmental_quota = models.BooleanField(default=False)
free_sale_from_free_quota_in_province = models.BooleanField(default=False)
total_input_warehouse_weight = models.FloatField(default=0)
total_input_warehouse_governmental_weight = models.FloatField(default=0)
total_input_warehouse_free_weight = models.FloatField(default=0)
total_selling_warehouse_governmental_weight = models.FloatField(default=0)
total_selling_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_governmental_weight = models.FloatField(default=0)
total_remain_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_weight = models.FloatField(default=0)
total_selling_in_province_governmental_weight = models.FloatField(default=0)
total_selling_in_province_free_weight = models.FloatField(default=0)
total_selling_out_province_governmental_weight = models.FloatField(default=0)
total_selling_out_province_free_weight = models.FloatField(default=0)
total_segmentation_governmental_weight = models.FloatField(default=0)
total_segmentation_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_weight = models.FloatField(default=0)
total_in_province_free_bars_weight = models.FloatField(default=0)
total_out_province_buying_bars_weight = models.FloatField(default=0)
pos_allocated_weight = models.FloatField(default=0)
pos_governmental_allocated_weight = models.FloatField(default=0)
pos_free_allocated_weight = models.FloatField(default=0)
total_selling_warehouse_weight = models.FloatField(default=0)
total_segmentation_weight = models.FloatField(default=0)
total_cold_house_weight = models.FloatField(default=0)
total_cold_house_governmental_weight = models.FloatField(default=0)
total_cold_house_free_weight = models.FloatField(default=0)
ware_house_archive_weight = models.FloatField(default=0)
ware_house_archive_governmental_weight = models.FloatField(default=0)
ware_house_archive_free_weight = models.FloatField(default=0)
total_commitment_governmental_weight = models.FloatField(default=0)
total_commitment_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_commitment_weight = models.FloatField(default=0)
total_in_province_free_bars_commitment_weight = models.FloatField(default=0)
total_out_province_buying_bars_commitment_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_remain_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_remain_weight = models.FloatField(default=0)
total_commitment_selling_out_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_out_province_free_weight = models.FloatField(default=0)
total_commitment_cold_house_governmental_weight = models.FloatField(default=0)
total_commitment_cold_house_free_weight = models.FloatField(default=0)
total_commitment_segmentation_governmental_weight = models.FloatField(default=0)
total_commitment_segmentation_free_weight = models.FloatField(default=0)
maximum_load_volume_increase = models.FloatField(default=0)
maximum_load_volume_reduction = models.FloatField(default=0)
ware_house_remaining_percent_limitation = models.FloatField(default=0)
ware_house_remaining_percent_limitation_status = models.BooleanField(default=False)
ware_house_remaining_weight_limitation = models.FloatField(default=0)
ware_house_remaining_weight_limitation_status = models.BooleanField(default=False)
ware_house_remaining_weight_archive_percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
self.total_segmentation_weight = self.total_segmentation_governmental_weight + self.total_segmentation_free_weight
self.total_cold_house_weight = self.total_cold_house_governmental_weight + self.total_cold_house_free_weight
self.total_input_warehouse_governmental_weight = self.total_in_province_governmental_bars_weight
self.total_input_warehouse_free_weight = self.total_in_province_free_bars_weight + self.total_out_province_buying_bars_weight
self.total_input_warehouse_weight = self.total_input_warehouse_governmental_weight + self.total_input_warehouse_free_weight
self.total_selling_warehouse_governmental_weight = self.total_selling_in_province_governmental_weight + self.total_selling_out_province_governmental_weight + self.total_segmentation_governmental_weight + self.total_cold_house_governmental_weight + self.pos_governmental_allocated_weight
self.total_selling_warehouse_free_weight = self.total_selling_in_province_free_weight + self.total_selling_out_province_free_weight + self.total_segmentation_free_weight + self.total_cold_house_free_weight + self.pos_free_allocated_weight
self.total_selling_warehouse_weight = self.total_selling_warehouse_governmental_weight + self.total_selling_warehouse_free_weight
self.total_remain_warehouse_governmental_weight = (
self.total_input_warehouse_governmental_weight - self.total_selling_warehouse_governmental_weight) - self.ware_house_archive_governmental_weight
self.total_remain_warehouse_free_weight = (
self.total_input_warehouse_free_weight - self.total_selling_warehouse_free_weight) - self.ware_house_archive_free_weight
self.total_remain_warehouse_weight = self.total_input_warehouse_weight - self.total_selling_warehouse_weight
# self.total_commitment_governmental_weight = int((self.in_province_governmental_selling_percent/100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_selling_in_province_governmental_weight = self.total_in_province_governmental_bars_commitment_weight
self.total_commitment_selling_out_province_governmental_weight = int((
self.out_province_governmental_selling_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_cold_house_governmental_weight = int((
self.cold_house_governmental_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_segmentation_governmental_weight = int((
self.segmentation_governmental_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
# self.total_commitment_free_weight = int((self.in_province_governmental_selling_percent/100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_selling_in_province_free_weight = self.total_in_province_free_bars_commitment_weight + self.total_out_province_buying_bars_commitment_weight
self.total_commitment_selling_out_province_free_weight = int((
self.out_province_free_selling_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_cold_house_free_weight = int((
self.cold_house_free_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_segmentation_free_weight = int((
self.segmentation_free_selling_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_selling_in_province_governmental_remain_weight = self.total_commitment_selling_in_province_governmental_weight - self.total_selling_in_province_governmental_weight if (
self.total_commitment_selling_in_province_governmental_weight - self.total_selling_in_province_governmental_weight) > 0 else 0
self.total_commitment_selling_in_province_free_remain_weight = self.total_commitment_selling_in_province_free_weight - self.total_selling_in_province_free_weight if (
self.total_commitment_selling_in_province_free_weight - self.total_selling_in_province_free_weight) > 0 else 0
super(KillHouse, self).save(*args, **kwargs)
class ChainAllocation(BaseModel):
poultry_hatching = models.ForeignKey(
PoultryHatching,
on_delete=models.CASCADE,
related_name="poultry_hatching_chain_allocation",
null=True
)
chain_company = models.ForeignKey(
ChainCompany,
on_delete=models.CASCADE,
related_name="chain_company_allocation",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="chain_company_allocation_kill_house",
null=True
)
date = models.DateTimeField(null=True)
state = models.CharField(max_length=50, default="pending")
vet_farm_state = models.CharField(max_length=50, default="pending")
quantity = models.BigIntegerField(default=0)
weight = models.FloatField(default=0)
index_weight = models.FloatField(default=0)
quarantine_code = models.CharField(max_length=200, null=True)
message = models.TextField(null=True)
remover = models.JSONField(null=True)
seconder = models.JSONField(null=True)
registerer = models.JSONField(null=True)
quarantine_code_registrar = models.JSONField(null=True)
wage = models.FloatField(default=0)
total_wage_amount = models.BigIntegerField(default=0)
union_share = models.BigIntegerField(default=0)
union_share_percent = models.FloatField(default=0)
company_share = models.BigIntegerField(default=0)
company_share_percent = models.FloatField(default=0)
guilds_share = models.BigIntegerField(default=0)
guilds_share_percent = models.FloatField(default=0)
city_share = models.BigIntegerField(default=0)
city_share_percent = models.FloatField(default=0)
wallet_share = models.BigIntegerField(default=0)
wallet_share_percent = models.FloatField(default=0)
other_share = models.BigIntegerField(default=0)
other_share_percent = models.FloatField(default=0)
driver_name = models.CharField(max_length=100, null=True)
driver_mobile = models.CharField(max_length=11, null=True)
type_car = models.CharField(max_length=100, null=True)
pelak = models.CharField(max_length=100, null=True)
health_code = models.CharField(max_length=100, null=True)
buyer_name = models.CharField(max_length=100, null=True)
buyer_mobile = models.CharField(max_length=11, null=True)
province = models.CharField(max_length=50, null=True)
city = models.CharField(max_length=50, null=True)
company_name = models.CharField(max_length=100, null=True)
company_user_fullname = models.CharField(max_length=100, null=True)
company_user_mobile = models.CharField(max_length=11, null=True)
company_user_province = models.CharField(max_length=50, null=True)
company_user_city = models.CharField(max_length=50, null=True)
out_province = models.BooleanField(default=False)
archive_wage = models.BooleanField(default=False)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ChainAllocation, self).save(*args, **kwargs)
class KillHouseWareHouse(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="ware_house_kill_house",
null=True)
bar_quantity = models.BigIntegerField(default=0)
allocated_quantity = models.BigIntegerField(default=0)
bar_live_weight = models.FloatField(default=0)
number_of_carcasses = models.BigIntegerField(default=0)
updated_number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
updated_weight_of_carcasses = models.FloatField(default=0)
ave_weight_of_carcasses = models.FloatField(default=0)
update_ave_weight_of_carcasses = models.FloatField(default=0)
free_bar_quantity = models.BigIntegerField(default=0)
number_of_free_carcasses = models.BigIntegerField(default=0)
free_weight_of_carcasses = models.FloatField(default=0)
total_bar_quantity = models.BigIntegerField(default=0)
total_number_of_carcasses = models.BigIntegerField(default=0)
update_total_number_of_carcasses = models.BigIntegerField(default=0)
final_total_number_of_carcasses = models.BigIntegerField(default=0)
total_weight_of_carcasses = models.FloatField(default=0)
update_total_weight_of_carcasses = models.FloatField(default=0)
final_total_weight_of_carcasses = models.FloatField(default=0)
allocated_total_number_of_carcasses = models.BigIntegerField(default=0)
allocated_total_weight_of_carcasses = models.FloatField(default=0)
remain_total_number_of_carcasses = models.BigIntegerField(default=0)
remain_total_weight_of_carcasses = models.FloatField(default=0)
pre_cold_number_of_carcasses_self_ware_house = models.BigIntegerField(default=0)
pre_cold_weight_of_carcasses_self_ware_house = models.FloatField(default=0)
pre_cold_number_of_carcasses_to_ware_house = models.BigIntegerField(default=0)
pre_cold_weight_of_carcasses_to_ware_house = models.FloatField(default=0)
freezing_quantity = models.BigIntegerField(default=0)
freezing_weight = models.FloatField(default=0)
free_sale_quantity = models.BigIntegerField(default=0)
free_sale_weight = models.FloatField(default=0)
final_registration = models.BooleanField(default=False)
date = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
super(KillHouseWareHouse, self).save(*args, **kwargs)
# مدل مربوط به ثبت کشتارگاه
class KillHouseAllowVet(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_allow",
null=True)
kill_house_id_foreign_key = models.IntegerField(null=True)
kill_house_allow_vet_id_key = models.IntegerField(null=True)
allow = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseAllowVet, self).save(*args, **kwargs)
# مدل مربوط به ثبت کشتارگاه
class KillHousePercentage(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="percent_killhouse",
null=True)
kill_house_for_killer = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="killer_kill_house",
null=True)
kill_house_for_killer_id_foreign_key = models.IntegerField(null=True)
kill_house_id_foreign_key = models.IntegerField(null=True)
kill_house_percentage_id_key = models.IntegerField(null=True)
percent = models.FloatField(default=0)
last_guilds_update_date = models.CharField(max_length=100, null=True)
guilds_quantity = models.IntegerField(default=0)
guilds_weight = models.FloatField(default=0)
quantity = models.BigIntegerField(default=0)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
change_data = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(KillHousePercentage, self).save(*args, **kwargs)
# مدل مربوط به اضافه کردن راننده به کشتاگاه
class KillHouseDriver(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="user_driver",
null=True
)
driver_name = models.CharField(max_length=500, null=True)
driver_mobile = models.CharField(max_length=11, null=True)
type_car = models.CharField(max_length=50, null=True)
type = models.CharField(max_length=50, null=True)
pelak = models.CharField(max_length=200, null=True)
capocity = models.CharField(max_length=50, null=True)
weight_without_load = models.CharField(max_length=50, null=True)
health_code = models.CharField(max_length=100, null=True)
status = models.CharField(max_length=50, default="inactive")
active = models.BooleanField(default=True)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="driver_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="driver_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
kill_house_driver_id_key = models.IntegerField(null=True)
wallet_amount = models.BigIntegerField(default=0)
identity_documents = models.JSONField(null=True)
phone = models.CharField(max_length=20, null=True)
registrar = models.JSONField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
active_state = models.BooleanField(default=True)
archive = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(KillHouseDriver, self).save(*args, **kwargs)
# مدل مربوط به اضافه کردن ماشین به کشتاگاه
class KillHouseADDCAR(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_add_car",
null=True
)
driver = models.ForeignKey(
KillHouseDriver,
on_delete=models.CASCADE,
related_name="kill_house_add_car_driver",
null=True
)
kill_house_id_foreign_key = models.IntegerField(null=True)
driver_id_foreign_key = models.IntegerField(null=True)
kill_house_add_car_id_key = models.IntegerField(null=True)
status = models.CharField(max_length=50, default="inactive")
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
active_state = models.BooleanField(default=True)
archive = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(KillHouseADDCAR, self).save(*args, **kwargs)
# مدل بررسی درخواست های شهرستان که شامل تایید یا رد درخواست مرغدار
class CityOperatorCheckRequest(BaseModel):
city_operator = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
related_name="user_city_operator",
null=True
)
city_operator_system = models.ForeignKey(
CityOperator,
on_delete=models.CASCADE,
related_name="system_city_operator",
null=True
)
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="poultry_check",
null=True
)
city_operator_system_id_foreign_key = models.IntegerField(null=True)
poultry_request_id_foreign_key = models.IntegerField(null=True)
city_operator_check_request_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=20, null=True)
message = models.CharField(max_length=500, null=True)
allow_hatching = models.BooleanField(null=True)
show_province = models.BooleanField(default=True)
province_accept = models.BooleanField(default=False)
province_state = models.CharField(max_length=20, default='pending')
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(CityOperatorCheckRequest, self).save(*args, **kwargs)
# مدل ثبت اپراتور استان
class ProvinceOperator(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="province_operator_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="province_system_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="province_operator_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="province_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
province_operator_id_key = models.IntegerField(null=True)
wallet_amount = models.BigIntegerField(default=0)
identity_documents = models.JSONField(null=True)
phone = models.CharField(max_length=20, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceOperator, self).save(*args, **kwargs)
class ProvinceCheckOperatorOutRequest(BaseModel):
province_operator_system = models.ForeignKey(
ProvinceOperator,
on_delete=models.CASCADE,
related_name="system_province_operator_out",
null=True
)
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="province_poultry_out_request",
null=True
)
province_operator_system_id_foreign_key = models.IntegerField(null=True)
poultry_request_id_foreign_key = models.IntegerField(null=True)
province_operator_check_out_request_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=50, null=True)
message = models.CharField(max_length=200, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceCheckOperatorOutRequest, self).save(*args, **kwargs)
# مدل مربوط به بررسی درخواست های استان که شامل تایید یا رد درخواست های شهرستان
class ProvinceCheckOperatorRequest(BaseModel):
province_operator = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
related_name="user_province_operator",
null=True
)
province_operator_system = models.ForeignKey(
ProvinceOperator,
on_delete=models.CASCADE,
related_name="system_province_operator",
null=True
)
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="province_poultry_request",
null=True
)
city_request_Poultry = models.ForeignKey(
CityOperatorCheckRequest,
on_delete=models.CASCADE,
related_name="Poultry_city_request_to_province", null=True
)
province_operator_system_id_foreign_key = models.IntegerField(null=True)
poultry_request_id_foreign_key = models.IntegerField(null=True)
city_request_poultry_id_foreign_key = models.IntegerField(null=True)
province_operator_check_request_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=50, null=True)
quantity = models.BigIntegerField(default=0, null=True)
fee = models.FloatField(null=True)
total_weight_at_end = models.FloatField(default=0, null=True)
total_cost_at_end = models.FloatField(null=True)
paid_state = models.CharField(max_length=20, default="pending")
province_show_kill_house = models.CharField(max_length=20, default="pending")
factor_state = models.CharField(max_length=20, default="pending")
message = models.CharField(max_length=200, null=True)
financial_archive = models.CharField(max_length=20, default="pending")
deposit_allocation_archive = models.CharField(max_length=20, default="pending")
end_state = models.CharField(max_length=20, default='active')
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceCheckOperatorRequest, self).save(*args, **kwargs)
# مدل مربوط به بررسی درخواست های استان که شامل تایید یا رد درخواست های شهرستان
class ProvinceRequestAction(BaseModel):
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="province_request_auction_poultry",
null=True
)
province_operator_system = models.ForeignKey(
ProvinceOperator,
on_delete=models.CASCADE,
related_name="system_province_operator_auction",
null=True
)
state = models.CharField(max_length=15, default='pending')
def save(self, *args, **kwargs):
super(ProvinceRequestAction, self).save(*args, **kwargs)
class ProvincePercentLeftOver(BaseModel):
percent = models.FloatField(default=0, null=True)
def save(self, *args, **kwargs):
super(ProvincePercentLeftOver, self).save(*args, **kwargs)
class ShareOfAllocation(BaseModel):
province = models.ForeignKey(
Province,
on_delete=models.CASCADE,
related_name="share_province",
null=True)
province_id_foreign_key = models.IntegerField(null=True)
share_of_allocation_id_key = models.IntegerField(null=True)
central_union = models.FloatField(default=0, null=True)
province_union = models.FloatField(default=0, null=True)
city_union = models.FloatField(default=0, null=True)
fanava = models.FloatField(default=0, null=True)
central_control_system = models.FloatField(default=0, null=True)
company = models.FloatField(default=0, null=True)
vet = models.FloatField(default=0, null=True)
total = models.FloatField(default=0, null=True)
state = models.CharField(max_length=20, null=True)
date = models.DateTimeField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
self.total = self.central_union + self.province_union + self.city_union + self.fanava + self.company
super(ShareOfAllocation, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست بورسی کشتارگاه
class KillHouseRequestExchange(BaseModel):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, related_name="kill_house_request_exchange",
null=True)
kill_house = models.ForeignKey(KillHouse, on_delete=models.CASCADE,
related_name="kill_house_exchange_kill_house",
null=True)
quantity = models.BigIntegerField(default=0, null=True)
send_date1 = models.DateTimeField(null=True)
send_date2 = models.DateTimeField(null=True)
chicken_breed = models.JSONField(default=[], null=True)
Index_weight = models.FloatField(default=0, null=True)
fee = models.FloatField(default=0, null=True)
longitude = models.FloatField(default=0)
latitude = models.FloatField(default=0)
address = models.TextField()
age1 = models.IntegerField(default=0, null=True)
age2 = models.IntegerField(default=0, null=True)
state = models.CharField(max_length=15, default='pending')
def save(self, *args, **kwargs):
super(KillHouseRequestExchange, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست بورسی رزرو کشتارگاه
class KillHouseRequestExchangeReserve(BaseModel):
kill_house = models.ForeignKey(KillHouse, on_delete=models.CASCADE,
related_name="kill_house_request_exchange_kill_house",
null=True)
# poultry_exchange = models.ForeignKey(PoultryRequestExchange, on_delete=models.CASCADE,
# related_name="kill_house_request_exchange_poultry",
# null=True)
# quantity = models.BigIntegerField(default=0, null=True)
state = models.CharField(max_length=15, default='pending')
def save(self, *args, **kwargs):
super(KillHouseRequestExchangeReserve, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست بورسی رزرو کشتارگاه
class KillHouseRequestAction(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_request_auction_kill_house",
null=True)
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="kill_house_request_auction_poultry",
null=True)
fee = models.FloatField(default=0, null=True)
date = models.DateTimeField(null=True)
state = models.CharField(max_length=15, default='pending')
def save(self, *args, **kwargs):
super(KillHouseRequestAction, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست بورسی رزرو کشتارگاه
class KillHouseRequestActionWinner(BaseModel):
kill_house_request_auction = models.ForeignKey(
KillHouseRequestAction,
on_delete=models.CASCADE,
related_name="kill_house_request_auction_kill_house",
null=True)
fee = models.FloatField(default=0, null=True)
quantity = models.BigIntegerField(default=0, null=True)
def save(self, *args, **kwargs):
super(KillHouseRequestActionWinner, self).save(*args, **kwargs)
# مدل مربوط به تایید یا رد درخواست مرغدار که رزرو شده توسط کشتارگاه
class PoultryRequestExchangeAccept(BaseModel):
poultry_request_exchange = models.ForeignKey(PoultryRequestExchange, on_delete=models.CASCADE,
related_name="poultry_request_exchange_accept", null=True)
kill_house_request_exchange_reserve = models.ForeignKey(KillHouseRequestExchangeReserve, on_delete=models.CASCADE,
related_name="poultry_request_exchange_kill_house_accept",
null=True)
state = models.CharField(max_length=15, default='pending')
message = models.CharField(max_length=200, null=True)
def save(self, *args, **kwargs):
super(PoultryRequestExchangeAccept, self).save(*args, **kwargs)
# مدل مربوط اضافه کردن ماشین به درخواست بورسی کشتارگاه
class KillHouseRequestExchangeAddCar(BaseModel):
kill_house_reserve = models.ForeignKey(KillHouseRequestExchangeReserve, on_delete=models.CASCADE,
related_name="kill_house_request_accept_reserve",
null=True)
cars = models.JSONField(default=dict, null=True)
def save(self, *args, **kwargs):
super(KillHouseRequestExchangeAddCar, self).save(*args, **kwargs)
# مدل مربوط به ثبت درخواست کشتار از سمت کشتارگاه
class KillRequest(BaseModel):
kill_house = models.ForeignKey(KillHouse, on_delete=models.CASCADE, related_name="kill", null=True)
slaughter_house = models.ForeignKey(KillHouse, on_delete=models.CASCADE, related_name="slaughter_kill_req",
null=True)
kill_house_id_foreign_key = models.IntegerField(null=True)
slaughter_house_id_foreign_key = models.IntegerField(null=True)
kill_request_id_key = models.IntegerField(null=True)
kill_capacity = models.IntegerField(null=True)
previous_kill_capacity = models.IntegerField(default=0, null=True)
remain_quantity_for_poultry = models.IntegerField(default=0)
remain_quantity = models.IntegerField(null=True)
recive_time = models.CharField(max_length=50, null=True)
recive_date = models.DateTimeField(null=True)
state = models.CharField(max_length=20, default='pending')
province_state = models.CharField(max_length=20, default='pending')
province_quantity = models.IntegerField(null=True)
cars = models.JSONField(null=True, default=dict)
buy_type = models.JSONField(default=dict, null=True)
weight = models.CharField(max_length=200, null=True)
weight_type = models.JSONField(default=dict, null=True)
chicken_breed = models.CharField(max_length=200, null=True)
old_chicken_breed = models.CharField(max_length=200, null=True)
message = models.CharField(max_length=200, null=True)
Index_weight = models.FloatField(null=True)
first_average_weight = models.FloatField(default=0)
second_average_weight = models.FloatField(default=0)
factor_amount = models.FloatField(default=0)
allocated_number = models.FloatField(default=0)
factor_deposit = models.FloatField(default=0)
debt = models.BooleanField(default=False)
priority = models.BooleanField(default=False)
debt_amount = models.FloatField(default=0)
sms_payment = models.BooleanField(default=False)
automatic = models.BooleanField(default=False)
automatic_debt = models.BooleanField(default=False)
payment_info = models.JSONField(null=True)
registrar = models.JSONField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
poultry = models.ForeignKey(Poultry, on_delete=models.CASCADE, related_name="poultry_kill_req", null=True)
poultry_hatching = models.ForeignKey(PoultryHatching, on_delete=models.CASCADE,
related_name="poultry_hatching_kill_req", null=True)
poultry_request = models.ForeignKey(PoultryRequest, on_delete=models.CASCADE,
related_name="poultry_request_kill_req", null=True)
free_direct_buying = models.BooleanField(default=False)
direct_buying_state = models.CharField(max_length=20, default='pending')
direct_buying_message = models.CharField(max_length=500, null=True)
direct_buying_code = models.CharField(max_length=20, null=True)
input_direct_buying_code = models.CharField(max_length=20, null=True)
export_status = models.BooleanField(default=False)
export_state = models.CharField(max_length=20, default='pending')
export_message = models.CharField(max_length=500, null=True)
export_code = models.CharField(max_length=20, null=True)
input_export_code = models.CharField(max_length=20, null=True)
export_country = models.CharField(max_length=100, null=True)
accept_reject_date = models.DateTimeField(null=True)
amount = models.FloatField(default=0)
automatic_accept = models.BooleanField(default=False)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
price_confirmation = models.BooleanField(default=False)
final_accept = models.BooleanField(default=False)
poultry_mobile = models.CharField(max_length=20, null=True)
payment_deadline_days = models.IntegerField(default=0)
payment_deadline_date = models.DateTimeField(null=True)
payment_deadline = models.BooleanField(default=False)
extension_payment_deadline_days = models.IntegerField(default=0)
extension_payment_deadline_date = models.DateTimeField(null=True)
market = models.BooleanField(default=False)
market_final_accept = models.BooleanField(default=False)
market_state = models.CharField(max_length=20, default='pending')
market_state_message = models.TextField(null=True)
market_expire_date_time = models.DateTimeField(null=True)
direct_buying_intermediary_mobile = models.CharField(max_length=20, null=True)
market_code_status = models.BooleanField(default=False)
market_code = models.CharField(max_length=20, null=True)
input_market_code = models.CharField(max_length=20, null=True)
expire_time_ten_minute = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
super(KillRequest, self).save(*args, **kwargs)
class AutomaticKillRequest(BaseModel):
active = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(AutomaticKillRequest, self).save(*args, **kwargs)
class KillRequestFactor(BaseModel):
kill_request = models.ForeignKey(KillRequest, on_delete=models.CASCADE, related_name="factor_kill_req", null=True)
kill_request_id_foreign_key = models.IntegerField(null=True)
kill_request_factor_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=20, default='pending')
amount = models.FloatField(default=0)
minimum_amount = models.FloatField(default=0)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillRequestFactor, self).save(*args, **kwargs)
class KillRequestFactorPayment(BaseModel):
kill_request_factor = models.ForeignKey(KillRequestFactor, on_delete=models.CASCADE, related_name="kill_req_factor",
null=True)
kill_request_factor_id_foreign_key = models.IntegerField(null=True)
kill_request_factor_payment_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=20, default='pending')
image = models.CharField(max_length=200, null=True)
payment_code = models.BigIntegerField(default=0)
amount = models.FloatField(default=0)
remain_amount = models.FloatField(default=0)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillRequestFactorPayment, self).save(*args, **kwargs)
# مدل مربوط به تخصیص استان به کشتارگاه
class ProvinceKillRequest(BaseModel):
killhouse_user = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_user",
null=True
)
kill_request = models.ForeignKey(
KillRequest,
on_delete=models.CASCADE,
related_name="kill_request",
null=True
)
province_request = models.ForeignKey(
ProvinceCheckOperatorRequest,
on_delete=models.CASCADE,
related_name="kill_house_province",
null=True
)
killhouse_user_id_foreign_key = models.IntegerField(null=True)
kill_request_id_foreign_key = models.IntegerField(null=True)
province_request_id_foreign_key = models.IntegerField(null=True)
province_kill_request_id_key = models.IntegerField(null=True)
quantity = models.BigIntegerField(default=0)
main_quantity = models.BigIntegerField(default=0)
total_killed_quantity = models.BigIntegerField(default=0)
first_car_allocated_quantity = models.BigIntegerField(default=0)
extra_killed_quantity = models.BigIntegerField(default=0)
total_killed_weight = models.FloatField(default=0)
extra_killed_weight = models.FloatField(default=0)
fee = models.FloatField(default=0, null=True)
wage = models.FloatField(default=0, null=True)
total_amount = models.FloatField(default=0, null=True)
total_wage_amount = models.FloatField(default=0, null=True)
prev_total_amount = models.FloatField(null=True)
state = models.CharField(max_length=20, default='pending')
vet_state = models.CharField(max_length=20, default='pending')
payment_type = models.CharField(max_length=20, null=True)
payment_dead_line = models.DateTimeField(null=True)
message = models.CharField(max_length=200, null=True)
clearance_code = models.BigIntegerField(null=True)
automatic = models.BooleanField(default=False)
dont_show_kill_house = models.BooleanField(default=False)
reviewer = models.JSONField(null=True)
total_amount_editor = models.JSONField(null=True)
delete_message = models.CharField(max_length=200, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
wage_pay = models.BooleanField(default=False)
depositor = models.JSONField(null=True)
archive_by_province = models.BooleanField(default=False)
archive_wage = models.BooleanField(default=False)
return_to_province = models.BooleanField(default=False)
archive_message = models.CharField(max_length=500, null=True)
archiver = models.JSONField(null=True)
return_archive_message = models.CharField(max_length=500, null=True)
returner = models.JSONField(null=True)
wallet_pay = models.BooleanField(default=False)
union_share = models.BigIntegerField(default=0)
union_share_percent = models.FloatField(default=0)
company_share = models.BigIntegerField(default=0)
company_share_percent = models.FloatField(default=0)
guilds_share = models.BigIntegerField(default=0)
guilds_share_percent = models.FloatField(default=0)
city_share = models.BigIntegerField(default=0)
city_share_percent = models.FloatField(default=0)
wallet_share = models.BigIntegerField(default=0)
wallet_share_percent = models.FloatField(default=0)
other_share = models.BigIntegerField(default=0)
other_share_percent = models.FloatField(default=0)
kill_house_price = models.BigIntegerField(default=0)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
payment_deadline_days = models.IntegerField(default=0)
payment_deadline_date = models.DateTimeField(null=True)
payment_deadline = models.BooleanField(default=False)
payment_deadline_archive = models.BooleanField(default=False)
payment_deadline_state = models.CharField(max_length=50, default='pending')
payment_deadline_checker_fullname = models.CharField(max_length=50, null=True)
payment_deadline_checker_mobile = models.CharField(max_length=50, null=True)
payment_deadline_check_date = models.DateTimeField(null=True)
payment_deadline_archive_message = models.TextField(null=True)
payment_deadline_supporter_message = models.TextField(null=True)
final_accept = models.BooleanField(default=False)
final_accept_registrar = models.CharField(max_length=200, null=True)
final_accept_registrar_mobile = models.CharField(max_length=20, null=True)
final_accept_date = models.DateTimeField(null=True)
payment_deadline_amount = models.BigIntegerField(default=0)
extension_payment_deadline_days = models.IntegerField(default=0)
extension_payment_deadline_date = models.DateTimeField(null=True)
fine = models.BooleanField(default=False)
fine_amount = models.BigIntegerField(default=0)
fine_coefficient = models.FloatField(default=0)
direct_buying_fine = models.BooleanField(default=False)
direct_buying_fine_amount = models.BigIntegerField(default=0)
direct_buying_fine_coefficient = models.FloatField(default=0)
direct_buying = models.BooleanField(default=False)
market = models.BooleanField(default=False)
warehouse = models.BooleanField(default=True)
return_trash = models.BooleanField(default=False)
def save(self, *args, **kwargs):
self.extra_killed_quantity = self.total_killed_quantity - self.main_quantity if self.total_killed_quantity - self.main_quantity > 0 else 0
self.quantity = self.main_quantity - self.first_car_allocated_quantity if self.main_quantity - self.first_car_allocated_quantity > 0 else 0
super(ProvinceKillRequest, self).save(*args, **kwargs)
class BarDocumentStatus(BaseModel):
title = models.CharField(max_length=500, null=True)
description = models.TextField(null=True)
sms = models.BooleanField(default=False)
is_error = models.BooleanField(default=False)
priority_id = models.IntegerField(default=0)
def save(self, *args, **kwargs):
if self.priority_id == 0:
bar_documents_status = BarDocumentStatus.objects.filter(trash=False).order_by('priority_id').last()
self.priority_id = bar_documents_status.priority_id + 1 if bar_documents_status else 1
super(BarDocumentStatus, self).save(*args, **kwargs)
# مدل ایحاد درخواست کشتار از سمت کشتارگاه با توجه به میزان تخصیص از سمت استان
class KillHouseRequest(BaseModel):
killhouse_user = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_request_user",
null=True
)
killer = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_request_killer",
null=True
)
kill_request = models.ForeignKey(
KillRequest,
on_delete=models.CASCADE,
related_name="kill_request_kill_house",
null=True
)
province_request = models.ForeignKey(
ProvinceCheckOperatorRequest,
on_delete=models.CASCADE,
related_name="kill_house_province_request",
null=True
)
province_kill_request = models.ForeignKey(
ProvinceKillRequest,
on_delete=models.CASCADE,
related_name="province_kill_house_request",
null=True
)
kill_house_request_auction_winner = models.ForeignKey(
KillHouseRequestActionWinner,
on_delete=models.CASCADE,
related_name="kill_house_request_winner",
null=True
)
# driver = models.ForeignKey(
# KillHouseDriver,
# on_delete=models.CASCADE,
# related_name="kill_house_request_driver",
# null=True
# )
add_car = models.ForeignKey(
KillHouseADDCAR,
on_delete=models.CASCADE,
related_name="kill_house_request_add_car",
null=True
)
real_add_car = models.ForeignKey(
KillHouseADDCAR,
on_delete=models.CASCADE,
related_name="kill_house_request_real_add_car",
null=True
)
bar_document_status = models.ForeignKey(
BarDocumentStatus,
on_delete=models.CASCADE,
related_name="kill_house_request_bar_document_status",
null=True
)
input_warehouse = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_input_warehouse",
null=True
)
killhouse_user_id_foreign_key = models.IntegerField(null=True)
kill_request_id_foreign_key = models.IntegerField(null=True)
province_request_id_foreign_key = models.IntegerField(null=True)
province_kill_request_id_foreign_key = models.IntegerField(null=True)
add_car_id_foreign_key = models.IntegerField(null=True)
kill_house_request_id_key = models.IntegerField(null=True)
capacity = models.BigIntegerField(default=0)
quantity = models.BigIntegerField(default=0)
bar_code = models.BigIntegerField(null=True)
quarantine_quantity = models.BigIntegerField(null=True)
quarantine_code_state = models.CharField(max_length=500, null=True)
fee = models.FloatField(default=0, null=True)
time = models.CharField(max_length=20, null=True)
state = models.CharField(max_length=20, null=True)
vet_state = models.CharField(max_length=20, default='pending')
active_state = models.CharField(max_length=20, default='active')
assignment_state_archive = models.CharField(max_length=20, default='pending')
show_kill_house = models.CharField(max_length=20, default='pending')
car = models.JSONField(default=dict, null=True)
kill_house_message = models.TextField(max_length=1000, null=True)
allocation_state = models.CharField(max_length=20, null=True)
auction = models.BooleanField(default=False)
role = models.JSONField(null=True)
clearance_code = models.CharField(max_length=200, null=True)
traffic_code = models.CharField(max_length=200, null=True)
registrar_clearance_code = models.JSONField(null=True)
editor_traffic_code = models.JSONField(null=True)
bar_remover = models.JSONField(null=True)
extra_killed_quantity = models.BigIntegerField(default=0)
accepted_real_quantity = models.BigIntegerField(default=0)
accepted_real_weight = models.FloatField(default=0)
extra_killed_weight = models.FloatField(default=0)
vet_accepted_real_quantity = models.BigIntegerField(default=0)
vet_accepted_real_weight = models.FloatField(default=0)
accepted_assignment_real_quantity = models.BigIntegerField(default=0)
accepted_assignment_real_weight = models.FloatField(default=0)
message = models.CharField(max_length=200, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
ware_house_confirmation = models.BooleanField(default=False)
ware_house_accepted_real_quantity = models.BigIntegerField(default=0)
ware_house_accepted_real_weight = models.FloatField(default=0)
date_of_ware_house = models.CharField(max_length=200, null=True)
freezing = models.BooleanField(default=False)
archive_wage = models.BooleanField(default=False)
weight_loss = models.FloatField(default=0)
ware_house_input_type = models.CharField(max_length=100, null=True)
document_status = models.CharField(max_length=500, null=True)
aggregate_code = models.BigIntegerField(null=True)
aggregate_status = models.BooleanField(default=False)
calculate_status = models.BooleanField(default=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
entered_message = models.TextField(null=True)
# فیلد های استعلام از قرنطینه
inquiry_date = models.DateField(null=True)
inquiry_origin = models.CharField(max_length=100, null=True)
inquiry_destination = models.CharField(max_length=100, null=True)
inquiry_driver = models.CharField(max_length=100, null=True)
inquiry_pelak = models.CharField(max_length=100, null=True)
settlement_type = models.CharField(max_length=100, null=True)
price = models.IntegerField(default=0)
description = models.TextField(null=True)
bar_document_description = models.TextField(null=True)
image = models.CharField(max_length=500, null=True)
price_registerar = models.CharField(max_length=200, null=True)
price_registerar_role = models.CharField(max_length=100, null=True)
price_register_date = models.DateTimeField(null=True)
price_editor = models.CharField(max_length=200, null=True)
price_editor_role = models.CharField(max_length=100, null=True)
price_editor_date = models.DateTimeField(null=True)
non_receipt = models.BooleanField(default=False)
non_receipt_return = models.BooleanField(default=False)
non_receipt_return_message = models.TextField(null=True)
non_receipt_message = models.TextField(null=True)
main_non_receipt = models.BooleanField(default=False)
non_receipt_state = models.CharField(max_length=20, default='pending')
non_receipt_checker = models.CharField(max_length=200, null=True)
non_receipt_checker_message = models.TextField(null=True)
non_receipt_checker_mobile = models.CharField(max_length=20, null=True)
non_receipt_check_date = models.DateTimeField(null=True)
non_receipt_returner = models.CharField(max_length=200, null=True)
non_receipt_returner_mobile = models.CharField(max_length=20, null=True)
non_receipt_return_date = models.DateTimeField(null=True)
fine = models.BooleanField(default=False)
fine_amount = models.BigIntegerField(default=0)
fine_coefficient = models.FloatField(default=0)
document_number = models.CharField(max_length=50, null=True)
company_document = models.BooleanField(default=False)
warehouse = models.BooleanField(default=True)
warehouse_commitment_weight = models.FloatField(default=0)
return_trash = models.BooleanField(default=False)
amount = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(KillHouseRequest, self).save(*args, **kwargs)
# مدل مربوط به تایید یا رد درخواست کشتار تخصیص داده شده به کشتارگاه توسط کشتارگاه
class KillHouseCheckRequest(BaseModel):
province_kill_request = models.ForeignKey(
ProvinceKillRequest,
on_delete=models.CASCADE,
related_name="province_kill_house_check",
null=True
)
province_kill_request_id_foreign_key = models.IntegerField(null=True)
kill_house_check_request_id_key = models.IntegerField(null=True)
role = models.JSONField(null=True)
state = models.CharField(max_length=20, null=True)
message = models.CharField(max_length=200, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseCheckRequest, self).save(*args, **kwargs)
class MostSearch(BaseModel):
searched_items = models.CharField(max_length=200, null=True)
count = models.IntegerField(default=0)
# مدل مربوط به ورود اطلاعات بار توسط کشتارگاه
class KillHouseAssignmentInformation(BaseModel):
kill_house_check = models.ForeignKey(
KillHouseCheckRequest,
on_delete=models.CASCADE,
related_name="kill_house_check_req",
null=True
)
kill_house_request = models.ForeignKey(
KillHouseRequest,
on_delete=models.CASCADE,
related_name="kill_house_request_assignment",
null=True
)
kill_house_check_id_foreign_key = models.IntegerField(null=True)
kill_house_request_id_foreign_key = models.IntegerField(null=True)
kill_house_kill_house_assingment_information_id_key = models.IntegerField(null=True)
car_weight_without_load = models.FloatField(default=0)
car_weight_without_load_image = models.CharField(max_length=500, null=True)
car_weight_with_load = models.FloatField(default=0)
car_weight_with_load_image = models.CharField(max_length=500, null=True)
message = models.CharField(max_length=200, null=True)
net_weight = models.FloatField(default=0)
exploited_carcass = models.FloatField(default=0)
state = models.CharField(max_length=15, default='pending')
poultry = models.BooleanField(default=False)
city = models.BooleanField(default=False)
province = models.BooleanField(default=False)
unusual_casualties = models.BooleanField(default=False)
real_quantity = models.IntegerField(default=0)
importer = models.JSONField(default=dict, null=True)
protest_time = models.DateTimeField(null=True)
weight_withs_losses = models.FloatField(default=0, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
def save(self, *args, **kwargs):
# self.net_weight = float(self.car_weight_with_load) - float(self.car_weight_without_load)
super(KillHouseAssignmentInformation, self).save(*args, **kwargs)
# مدل مربوط به ورود اطلاعات بار توسط کشتارگاه
class KillHouseAssignmentImages(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_images",
null=True
)
health_certificate_image = models.CharField(max_length=500, null=True)
national_card_image = models.CharField(max_length=500, null=True)
birth_certificate_image = models.CharField(max_length=500, null=True)
police_clearance_image = models.CharField(max_length=500, null=True)
no_addiction_image = models.CharField(max_length=500, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseAssignmentImages, self).save(*args, **kwargs)
# مدل مربوط به ورود اطلاعات بار توسط مرغدار
class PoultryAssignmentInformation(BaseModel):
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="poultry_assignment",
null=True
)
car_weight_without_load = models.FloatField(default=0)
car_weight_without_load_image = models.CharField(max_length=500, null=True)
car_weight_with_load = models.FloatField(default=0)
car_weight_with_load_image = models.CharField(max_length=500, null=True)
net_weight = models.FloatField(default=0)
state = models.CharField(max_length=15, default='pending')
def save(self, *args, **kwargs):
self.net_weight = float(self.car_weight_with_load) - float(self.car_weight_without_load)
super(PoultryAssignmentInformation, self).save(*args, **kwargs)
# مدل مربوط به بررسی اطلاعات بار وارد شده
class ProvinceCheckInformation(BaseModel):
kill_house_assignment = models.ForeignKey(
KillHouseAssignmentInformation,
on_delete=models.CASCADE,
related_name="kill_house_assign",
null=True
)
poultry_assignment = models.ForeignKey(
PoultryAssignmentInformation,
on_delete=models.CASCADE,
related_name="poultry_assign",
null=True
)
province_operator = models.ForeignKey(
ProvinceOperator,
on_delete=models.CASCADE,
related_name="provinc_operator_check_info",
null=True
)
kill_house_assignment_id_foreign_key = models.IntegerField(null=True)
province_operator_id_foreign_key = models.IntegerField(null=True)
province_check_information_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=20, null=True)
message = models.CharField(max_length=200, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceCheckInformation, self).save(*args, **kwargs)
# مدل ایجاد فاکتور توسط استان برای کشتارگاه
class ProvinceFactorToKillHouseForPoultry(BaseModel):
province_check_info = models.ForeignKey(
ProvinceCheckInformation,
on_delete=models.CASCADE,
related_name="province_info_poultry",
null=True
)
province_check_req = models.ForeignKey(
ProvinceCheckOperatorRequest,
on_delete=models.CASCADE,
related_name="province_check_poultry",
null=True
)
total_weight = models.FloatField(default=0)
weight = models.FloatField(default=0)
factor_fee = models.FloatField(default=0)
factor_bar_code = models.BigIntegerField(null=True)
factor_date = models.DateTimeField(null=True)
total_price = models.FloatField(default=0)
today_price = models.FloatField(default=0)
real_weight = models.FloatField(default=0)
shares = models.JSONField(default=dict, null=True)
paid_state = models.CharField(max_length=20, default='pending')
pay_for = models.CharField(max_length=20, null=True)
kill_house_factor_info = models.CharField(max_length=20, default='pending')
bank = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="bank_card_poultry",
null=True
)
sum_state = models.CharField(max_length=20, default='pending')
out = models.BooleanField(default=False)
def save(self, *args, **kwargs):
# self.total_price = self.total_weight * self.factor_fee
super(ProvinceFactorToKillHouseForPoultry, self).save(*args, **kwargs)
# مدل ایجاد فاکتور توسط استان برای کشتارگاه
class ProvinceFactorToKillHouse(BaseModel):
province_check_info = models.ForeignKey(
ProvinceCheckInformation,
on_delete=models.CASCADE,
related_name="province_info",
null=True
)
poultry_factor = models.ForeignKey(
ProvinceFactorToKillHouseForPoultry,
on_delete=models.CASCADE,
related_name="province_factor_poultry",
null=True
)
province_check_req = models.ForeignKey(
ProvinceCheckOperatorRequest,
on_delete=models.CASCADE,
related_name="province_check_province",
null=True
)
total_weight = models.FloatField(default=0)
weight = models.FloatField(default=0)
factor_fee = models.FloatField(default=0)
factor_bar_code = models.BigIntegerField(null=True)
factor_date = models.DateTimeField(null=True)
total_price = models.FloatField(default=0)
province_input_amount = models.FloatField(default=0)
province_input_amount_type = models.CharField(max_length=20, null=True)
province_wage = models.FloatField(default=0)
previous_amount = models.FloatField(default=0)
decreasing_amount = models.FloatField(default=0)
today_price = models.FloatField(default=0)
kill_house_factor_payment_remain = models.FloatField(default=0)
real_weight = models.FloatField(default=0)
shares = models.JSONField(default=dict, null=True)
paid_state = models.CharField(max_length=20, default='pending')
pay_for = models.CharField(max_length=20, null=True)
kill_house_factor_info = models.CharField(max_length=20, default='pending')
reason = models.TextField(null=True)
sum_state = models.CharField(max_length=20, default='pending')
factor_person_type = models.CharField(max_length=20, default='pending')
# bank = models.JSONField(default={'bank_info': 'بانک کشاورزی به نام اتحادیه تعاونی کشاورزی محمد رضا کمالوندی',
# 'bank_card': '6037654323417678', 'bank_shaba': '56678876554433223445566'})
bank = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="bank_card_province",
null=True
)
province_check_info_id_foreign_key = models.IntegerField(null=True)
province_check_req_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
province_factor_to_kill_house_id_key = models.IntegerField(null=True)
out = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
# self.total_price = self.total_weight * self.factor_fee
super(ProvinceFactorToKillHouse, self).save(*args, **kwargs)
class KillHouseFactorToPoultry(BaseModel):
province_factor = models.ForeignKey(
ProvinceFactorToKillHouseForPoultry,
on_delete=models.CASCADE,
related_name="province_factor_info_poultry",
null=True
)
payment_code = models.CharField(max_length=100, null=True)
state = models.CharField(max_length=20, default='pending')
payment_state = models.CharField(max_length=50, null=True)
payment_method = models.CharField(max_length=50, null=True)
factor_image = models.CharField(max_length=500, null=True)
message = models.CharField(max_length=500, null=True)
importer = models.CharField(max_length=100, null=True)
archive_state = models.CharField(max_length=50, default='pending')
def save(self, *args, **kwargs):
super(KillHouseFactorToPoultry, self).save(*args, **kwargs)
# مدل ایجاد فاکتور توسط کشتارگاه برای استان
class KillHouseFactorToProvince(BaseModel):
province_factor = models.ForeignKey(
ProvinceFactorToKillHouse,
on_delete=models.CASCADE,
related_name="province_factor_info",
null=True
)
province_factor_id_foreign_key = models.IntegerField(null=True)
kill_house_factor_to_province_id_key = models.IntegerField(null=True)
payment_code = models.CharField(max_length=100, null=True)
state = models.CharField(max_length=20, default='pending')
payment_state = models.CharField(max_length=50, null=True)
payment_method = models.CharField(max_length=50, null=True)
factor_image = models.CharField(max_length=500, null=True)
message = models.CharField(max_length=500, null=True)
importer = models.CharField(max_length=100, null=True)
archive_state = models.CharField(max_length=50, default='pending')
first_payment = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseFactorToProvince, self).save(*args, **kwargs)
# مدل بررسی فاکتور کشتارگاه توسط استان
class ProvinceCheckKillHouseFactor(BaseModel):
kill_house_factor = models.ForeignKey(
KillHouseFactorToProvince,
on_delete=models.CASCADE,
related_name="province_check_factor",
null=True
)
kill_house_factor_poultry = models.ForeignKey(
KillHouseFactorToPoultry,
on_delete=models.CASCADE,
related_name="province_check_factor_poultry",
null=True
)
kill_house_factor_id_foreign_key = models.IntegerField(null=True)
province_check_kill_house_factor_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=20, null=True)
message = models.CharField(max_length=500, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceCheckKillHouseFactor, self).save(*args, **kwargs)
class ProvinceImportKillHouseOutFactors(BaseModel):
kill_house_factor = models.ForeignKey(
ProvinceFactorToKillHouse,
on_delete=models.CASCADE,
related_name="province_check_factor_out",
null=True
)
kill_house_factor_poultry = models.ForeignKey(
ProvinceFactorToKillHouseForPoultry,
on_delete=models.CASCADE,
related_name="province_check_factor_poultry_out",
null=True
)
province_check = models.ForeignKey(
ProvinceCheckOperatorRequest,
on_delete=models.CASCADE,
related_name="province_check_request",
null=True
)
image = models.CharField(max_length=500, null=True)
amount = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(ProvinceImportKillHouseOutFactors, self).save(*args, **kwargs)
# مدل مریوط به تخصیصات مالی برای مرغدار و شهرستان و استان
class DepositAllocation(BaseModel):
poultry = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="allocations_poultry",
null=True
)
poultry_request_id_foreign_key = models.IntegerField(null=True)
deposit_allocation_id_key = models.IntegerField(null=True)
poultry_share = models.FloatField(default=0, null=True)
poultry_share_payment = models.FloatField(default=0, null=True)
poultry_share_payment_info = models.JSONField(default=list, null=True)
city_share = models.FloatField(default=0, null=True)
city_share_payment = models.FloatField(default=0, null=True)
city_share_payment_info = models.JSONField(default=list, null=True)
province_share = models.FloatField(default=0, null=True)
province_share_payment = models.FloatField(default=0, null=True)
province_share_payment_info = models.JSONField(default=list, null=True)
poultry_bank = models.JSONField(default=dict, null=True)
city_bank = models.JSONField(default=dict, null=True)
poultry_image = models.CharField(max_length=200, null=True)
city_image = models.CharField(max_length=200, null=True)
company_share = models.FloatField(default=0, null=True)
company_share_payment = models.FloatField(default=0, null=True)
company_share_payment_info = models.JSONField(default=list, null=True)
company_bank = models.JSONField(default=dict, null=True)
central_union_share = models.FloatField(default=0, null=True)
central_union_share_payment = models.FloatField(default=0, null=True)
central_union_share_payment_info = models.JSONField(default=list, null=True)
fanava_share = models.FloatField(default=0, null=True)
fanava_share_payment = models.FloatField(default=0, null=True)
fanava_share_payment_info = models.JSONField(default=list, null=True)
deposit_allocation_state = models.CharField(max_length=20, default='pending')
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(DepositAllocation, self).save(*args, **kwargs)
class InspectorOperator(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="inspector_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="inspector_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="province_inspector_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="inspector_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
inspector_operator_id_key = models.IntegerField(null=True)
wallet_amount = models.BigIntegerField(default=0)
active = models.BooleanField(default=True)
identity_documents = models.JSONField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
id_number = models.IntegerField(default=1)
def save(self, *args, **kwargs):
super(InspectorOperator, self).save(*args, **kwargs)
# مدل مربوط به تایید یا رد پرونده توسط بازرس استان
class PovinceInspector(BaseModel):
inspector_operator = models.ForeignKey(
InspectorOperator,
on_delete=models.CASCADE,
related_name="inspector",
null=True
)
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="poultry_request_inspector",
null=True
)
inspector_operator_id_foreign_key = models.IntegerField(null=True)
poultry_request_id_foreign_key = models.IntegerField(null=True)
province_inspector_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=20, default='pending')
message = models.CharField(max_length=500, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(PovinceInspector, self).save(*args, **kwargs)
class FunctionExecutor(BaseModel):
func_name = models.CharField(max_length=200, null=True)
time_type = models.CharField(max_length=100, null=True)
cycle = models.IntegerField(default=0)
compare_time = models.DateTimeField(default=datetime.now())
class ReportingFieldRoleLimitation(BaseModel):
role_name = models.ForeignKey(
Group,
on_delete=models.CASCADE,
null=True,
related_name="report_role"
)
fields = models.CharField(max_length=200, null=True)
def save(self, *args, **kwargs):
super(ReportingFieldRoleLimitation, self).save(*args, **kwargs)
# مدل مربوط به آنالیز قیمت مرغ
class PriceAnalysis(models.Model):
corn_percent = models.FloatField(default=0, null=True)
corn_free_price = models.FloatField(default=0, null=True)
corn_Ration_free_price = models.FloatField(default=0, null=True)
corn_total_free_price = models.FloatField(default=0, null=True)
Soy_free_price = models.FloatField(default=0, null=True)
Soy_total_free_price = models.FloatField(default=0, null=True)
Soy_Ration_free_price = models.FloatField(default=0, null=True)
Soy_percent = models.FloatField(default=0, null=True)
Oil_percent = models.FloatField(default=0, null=True)
Oil_free_price = models.FloatField(default=0, null=True)
Oil_total_free_price = models.FloatField(default=0, null=True)
Oil_Ration_free_price = models.FloatField(default=0, null=True)
Dicalcium_free_price = models.FloatField(default=0, null=True)
Dicalcium_total_free_price = models.FloatField(default=0, null=True)
Dicalcium_Ration_free_price = models.FloatField(default=0, null=True)
Dicalcium_percent = models.FloatField(default=0, null=True)
Carbonate_free_price = models.FloatField(default=0, null=True)
Carbonate_total_free_price = models.FloatField(default=0, null=True)
Carbonate_Ration_free_price = models.FloatField(default=0, null=True)
Carbonate_percent = models.FloatField(default=0, null=True)
mineral_supplement_percent = models.FloatField(default=0, null=True)
mineral_Ration_supplement_free_price = models.FloatField(default=0, null=True)
mineral_supplement_free_price = models.FloatField(default=0, null=True)
mineral_supplement_total_free_price = models.FloatField(default=0, null=True)
vitamin_supplement_free_price = models.FloatField(default=0, null=True)
vitamin_supplement_total_free_price = models.FloatField(default=0, null=True)
vitamin_supplement_percent = models.FloatField(default=0, null=True)
vitamin_Ration_free_supplement_percent = models.FloatField(default=0, null=True)
baking_soda_free_price = models.FloatField(default=0, null=True)
baking_soda_total_free_price = models.FloatField(default=0, null=True)
baking_Ration_soda_free_price = models.FloatField(default=0, null=True)
baking_soda_percent = models.FloatField(default=0, null=True)
Salt_Ration_free_price = models.FloatField(default=0, null=True)
Salt_Ration_total_free_price = models.FloatField(default=0, null=True)
Salt_free_total_price = models.FloatField(default=0, null=True)
Salt_free_price = models.FloatField(default=0, null=True)
Salt_percent = models.FloatField(default=0, null=True)
metiunin_Ration_free_price = models.FloatField(default=0, null=True)
metiunin_free_price = models.FloatField(default=0, null=True)
metiunin_total_free_price = models.FloatField(default=0, null=True)
metiunin_percent = models.FloatField(default=0, null=True)
Lysine_Ration_free_price = models.FloatField(default=0, null=True)
Lysine_free_price = models.FloatField(default=0, null=True)
Lysine_total_free_price = models.FloatField(default=0, null=True)
Lysine_percent = models.FloatField(default=0, null=True)
threonine_free_price = models.FloatField(default=0, null=True)
threonine_total_free_price = models.FloatField(default=0, null=True)
threonine_Ration_free_price = models.FloatField(default=0, null=True)
threonine_percent = models.FloatField(default=0, null=True)
Antifungal_free_price = models.FloatField(default=0, null=True)
Antifungal_total_free_price = models.FloatField(default=0, null=True)
Antifungal_Ration_free_price = models.FloatField(default=0, null=True)
Antifungal_percent = models.FloatField(default=0, null=True)
inulin_free_price = models.FloatField(default=0, null=True)
inulin_total_free_price = models.FloatField(default=0, null=True)
inulin_Ration_free_price = models.FloatField(default=0, null=True)
inulin_percent = models.FloatField(default=0, null=True)
Fire_emulsion_free_price = models.FloatField(default=0, null=True)
Fire_total_emulsion_free_price = models.FloatField(default=0, null=True)
Fire_emulsion_Ration_free_price = models.FloatField(default=0, null=True)
Fire_emulsion_percent = models.FloatField(default=0, null=True)
Colleen_free_price = models.FloatField(default=0, null=True)
Colleen_total_free_price = models.FloatField(default=0, null=True)
Colleen_Ration_free_price = models.FloatField(default=0, null=True)
Colleen_percent = models.FloatField(default=0, null=True)
total_price = models.FloatField(default=0, null=True)
total_Ration_free_price = models.FloatField(default=0, null=True)
Vaccination_period = models.FloatField(default=0, null=True)
Multivitamin_course = models.FloatField(default=0, null=True)
period_chicken = models.FloatField(default=0, null=True)
directors_office = models.FloatField(default=0, null=True)
Water_gas_electricity_period = models.FloatField(default=0, null=True)
Water_gas_the_current_cost_of_the_period_unit = models.FloatField(default=0, null=True)
Course_repairs = models.FloatField(default=0, null=True)
Course_loss = models.FloatField(default=0, null=True)
motfar_ga_durah = models.FloatField(default=0, null=True)
Paper_reel = models.FloatField(default=0, null=True)
Course_disinfection = models.FloatField(default=0, null=True)
Lamp = models.FloatField(default=0, null=True)
total_percent = models.FloatField(default=0, null=True)
total_ration = models.FloatField(default=0, null=True)
chicken_price = models.FloatField(default=0, null=True)
def save(self, *args, **kwargs):
super(PriceAnalysis, self).save(*args, **kwargs)
# مدل مربوط به ثیت نماینده دامپزشک برای کشتارگاه
class KillHouseVet(BaseModel):
vet = models.ForeignKey(
Vet,
on_delete=models.CASCADE,
null=True,
related_name="kill_house_vet_user"
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
null=True,
related_name="kill_house_vet"
)
vet_id_foreign_key = models.IntegerField(null=True)
kill_house_id_foreign_key = models.IntegerField(null=True)
kill_house_vet_id_key = models.IntegerField(null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseVet, self).save(*args, **kwargs)
# مدل مربوط به تایید بار رسیده به کشتار گاه توسط نماینده دامپزشکی
class VetCheckRequest(BaseModel):
kill_house_vet = models.ForeignKey(
KillHouseVet,
on_delete=models.CASCADE,
null=True,
related_name="kill_house_user_vet"
)
kill_house_request = models.ForeignKey(
KillHouseRequest,
on_delete=models.CASCADE,
null=True,
related_name="kill_house_request_vet"
)
kill_house_vet_id_foreign_key = models.IntegerField(null=True)
kill_house_request_id_foreign_key = models.IntegerField(null=True)
vet_check_request_id_key = models.IntegerField(null=True)
state = models.CharField(max_length=20, null=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(VetCheckRequest, self).save(*args, **kwargs)
# مدل مربوط به ثبت دامپزشک فارم
class VetFarm(BaseModel):
vet = models.ForeignKey(
Vet,
on_delete=models.CASCADE,
related_name="vet_farm_vet",
null=True
)
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="vet_farm_poultry",
null=True
)
vet_id_foreign_key = models.IntegerField(null=True)
poultry_id_foreign_key = models.IntegerField(null=True)
vet_farm_id_key = models.IntegerField(null=True)
hall = models.IntegerField(default=0)
vetfarm_losses = models.BigIntegerField(default=0)
state = models.CharField(max_length=20, default='pending')
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(VetFarm, self).save(*args, **kwargs)
# مدل مربوط به ثبت دامپزشک فارم
class VetFarmInspection(BaseModel):
vet_farm = models.ForeignKey(VetFarm,
on_delete=models.CASCADE,
related_name="vet_farm_inspection",
null=True
)
poultry_hatching = models.ForeignKey(
PoultryHatching,
on_delete=models.CASCADE,
related_name="vet_farm_inspection_poultry_hatching",
null=True
)
vet_farm_id_foreign_key = models.IntegerField(null=True)
poultry_hatching_id_foreign_key = models.IntegerField(null=True)
vet_farm_inspection_id_key = models.IntegerField(null=True)
hall = models.IntegerField(default=0)
topic = models.CharField(max_length=500, null=True)
description = models.TextField(null=True)
Losses = models.BigIntegerField(default=0)
image = models.JSONField(null=True)
longitude = models.FloatField(default=0)
latitude = models.FloatField(default=0)
state = models.CharField(max_length=20, default='pending')
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(VetFarmInspection, self).save(*args, **kwargs)
# مدل مربوط ثبت درخواست مرغ منجمد
class WareHouseFactor(BaseModel):
customer = models.CharField(max_length=50, null=True)
national_code = models.CharField(max_length=20, null=True)
letter_number = models.BigIntegerField(null=True)
letter_number_jahad = models.BigIntegerField(null=True)
date = models.DateTimeField(null=True)
mobile = models.CharField(max_length=11, null=True)
product_type = models.JSONField(default=dict, null=True)
weight = models.FloatField(default=0, null=True)
fee = models.FloatField(default=0, null=True)
wage = models.FloatField(default=0, null=True)
total_wage = models.FloatField(default=0, null=True)
total_fee = models.FloatField(default=0, null=True)
total_cost = models.FloatField(default=0, null=True)
Complications = models.FloatField(default=0, null=True)
tax = models.FloatField(default=0, null=True)
discount = models.FloatField(default=0, null=True)
name_of_bank_user = models.CharField(max_length=200, null=True)
card = models.CharField(max_length=16, null=True)
shaba = models.CharField(max_length=100, null=True)
state = models.CharField(max_length=100, default='pending')
account = models.CharField(max_length=100, null=True)
mark = models.CharField(max_length=100, default='pending')
considerations = models.TextField(null=True)
first_operator = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
null=True,
related_name="user_first_operator"
)
second_operator = models.ForeignKey(
UserProfile,
on_delete=models.CASCADE,
null=True,
related_name="user_second_operator"
)
def save(self, *args, **kwargs):
super(WareHouseFactor, self).save(*args, **kwargs)
# مدل مربوط به اضافه کردن راننده به کشتاگاه
class DriverRequestCancel(BaseModel):
Kill_house_add_car = models.ForeignKey(
KillHouseADDCAR,
on_delete=models.CASCADE,
related_name="cancel_request_car",
null=True
)
kill_house_request = models.ForeignKey(
KillHouseRequest,
on_delete=models.CASCADE,
related_name="cancel_request",
null=True
)
message = models.TextField(null=True)
def save(self, *args, **kwargs):
super(DriverRequestCancel, self).save(*args, **kwargs)
class PaymentDeadLine(BaseModel):
days = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(PaymentDeadLine, self).save(*args, **kwargs)
class MonthlyProfitPercentage(BaseModel):
days = models.IntegerField(default=0)
percent = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(MonthlyProfitPercentage, self).save(*args, **kwargs)
class PercentageOfLosses(BaseModel):
houre = models.IntegerField(default=0)
percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(PercentageOfLosses, self).save(*args, **kwargs)
class KillHousePercentageOfLosses(BaseModel):
percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(KillHousePercentageOfLosses, self).save(*args, **kwargs)
class KillHouseComplaint(BaseModel):
bar = models.ForeignKey(
KillHouseAssignmentInformation,
on_delete=models.CASCADE,
related_name="bar_information",
null=True
)
title = models.CharField(max_length=200, null=True)
description = models.TextField()
image = models.JSONField(null=True)
percent = models.FloatField(default=0)
state = models.CharField(max_length=20, default='pending')
message = models.CharField(max_length=20, null=True)
registrar = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(KillHouseComplaint, self).save(*args, **kwargs)
class CheckKillHouseComplaint(BaseModel):
camplaint = models.ForeignKey(
KillHouseComplaint,
on_delete=models.CASCADE,
related_name="check_complaint",
null=True
)
state = models.CharField(max_length=20, null=True)
message = models.CharField(max_length=20, null=True)
def save(self, *args, **kwargs):
super(CheckKillHouseComplaint, self).save(*args, **kwargs)
class Itransaction(BaseModel):
wallet = models.ForeignKey(Wallet,
related_name="itranseaction_wallet",
on_delete=models.CASCADE,
null=True)
transfer_amount = models.FloatField(null=True)
transaction_type = models.CharField(max_length=20, null=True)
payment_code = models.BigIntegerField(null=True, default=0)
state = models.CharField(max_length=20, default='pending')
make_location_state = models.CharField(max_length=20, null=True)
file_id = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(Itransaction, self).save(*args, **kwargs)
class Debt(BaseModel):
cost = models.IntegerField(null=True)
description = models.TextField(null=True)
image = models.CharField(max_length=300, null=True)
itransaction = models.ForeignKey(Itransaction,
related_name="debtor_itransaction",
on_delete=models.CASCADE,
null=True)
def save(self, *args, **kwargs):
super(Debt, self).save(*args, **kwargs)
class Penalty(BaseModel):
cost = models.IntegerField(null=True)
description = models.TextField(null=True)
image = models.CharField(max_length=300, null=True)
itransaction = models.ForeignKey(Itransaction,
related_name="penalty_itransaction",
on_delete=models.CASCADE,
null=True)
def save(self, *args, **kwargs):
super(Penalty, self).save(*args, **kwargs)
class Deposit(BaseModel):
cost = models.IntegerField(null=True)
description = models.TextField(null=True)
image = models.CharField(max_length=300, null=True)
itransaction = models.ForeignKey(Itransaction,
related_name="deposit_itransaction",
on_delete=models.CASCADE,
null=True)
def save(self, *args, **kwargs):
super(Deposit, self).save(*args, **kwargs)
class FinancialDocument(BaseModel):
transaction_details = models.JSONField(null=True)
type = models.CharField(max_length=30, null=True)
cost = models.FloatField(null=True)
description = models.TextField(null=True)
payment_code = models.IntegerField(null=True)
image = models.JSONField(null=True)
wallet = models.ForeignKey(Wallet,
related_name="financial_wallet",
on_delete=models.CASCADE,
null=True)
def save(self, *args, **kwargs):
super(FinancialDocument, self).save(*args, **kwargs)
class FinancialTransaction(BaseModel):
type = models.CharField(max_length=50, null=True)
cost = models.IntegerField(null=True)
description = models.TextField(null=True)
image = models.JSONField(null=True)
itransaction = models.ForeignKey(Itransaction,
related_name="financial_transaction",
on_delete=models.CASCADE,
null=True)
def save(self, *args, **kwargs):
super(FinancialTransaction, self).save(*args, **kwargs)
class Admin(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="user_profile_admin"
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="admin_address",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
admin_id_key = models.IntegerField(null=True)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(Admin, self).save(*args, **kwargs)
class CheckUnusualCasualties(BaseModel):
state = models.CharField(max_length=50, null=True)
message = models.TextField(null=True)
complaint = models.ForeignKey(KillHouseComplaint,
on_delete=models.CASCADE,
null=True,
related_name="losses"
)
role = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(CheckUnusualCasualties, self).save(*args, **kwargs)
# مدل کاربر جهاد
class Jahad(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="jahad_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="jahad_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="jahad_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="jahad_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
jahad_id_key = models.IntegerField(null=True)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(Jahad, self).save(*args, **kwargs)
class CityJahad(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_jahad_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_jahad_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="city_jahad_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_jahad_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
city_jahad_id_key = models.IntegerField(null=True)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(CityJahad, self).save(*args, **kwargs)
class CityPoultry(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_poultry_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_poultry_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="city_poultry_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_poultry_wallet",
null=True
)
def save(self, *args, **kwargs):
super(CityPoultry, self).save(*args, **kwargs)
class ProteinGuild(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="protein_guild_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="protein_guild_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="protein_guild_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="protein_guild_wallet",
null=True
)
def save(self, *args, **kwargs):
super(ProteinGuild, self).save(*args, **kwargs)
# مدل کاربر استانداری
class ProvincialGovernment(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="government_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="government_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="government_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="government_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
provincial_government_id_key = models.IntegerField(null=True)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvincialGovernment, self).save(*args, **kwargs)
class VetSupervisor(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="supervisor_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="supervisor_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="supervisor_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="supervisor_wallet",
null=True
)
vet = models.ForeignKey(
Vet,
on_delete=models.CASCADE,
related_name="vet_supervisor",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
vet_id_foreign_key = models.IntegerField(null=True)
vet_superviser_id_key = models.IntegerField(null=True)
wallet_amount = models.BigIntegerField(default=0)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(VetSupervisor, self).save(*args, **kwargs)
class CityVet(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_vet_user",
null=True
)
vet = models.ForeignKey(
Vet,
on_delete=models.CASCADE,
related_name="vet_city_vet",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_vet_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="city_vet_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_vet_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(CityVet, self).save(*args, **kwargs)
class LiveStockSupport(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="live_stock_support_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="live_stock_support_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="live_stock_support_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="live_stock_support_wallet",
null=True
)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(LiveStockSupport, self).save(*args, **kwargs)
class Commerce(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="commerce_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="commerce_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="commerce_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="commerce_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(Commerce, self).save(*args, **kwargs)
class CityCommerce(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_commerce_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_commerce_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="city_commerce_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_commerce_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
class ProvinceSupervisor(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="province_supervisor_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="province_supervisor_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="province_supervisor_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="province_supervisor_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
class CitySupervisor(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_supervisor_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_supervisor_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="city_supervisor_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_supervisor_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(CitySupervisor, self).save(*args, **kwargs)
class JahadInspector(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="jahad_inspector_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="jahad_inspector_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="jahad_inspector_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="jahad_inspector_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(JahadInspector, self).save(*args, **kwargs)
class VetCheckAllocations(BaseModel):
vet = models.ForeignKey(
Vet,
on_delete=models.CASCADE,
related_name="vet_check",
null=True
)
kill_house_request = models.ForeignKey(
KillHouseRequest,
on_delete=models.CASCADE,
related_name="check_kill_house_request",
null=True
)
vet_id_foreign_key = models.IntegerField(null=True)
kill_house_request_id_foreign_key = models.IntegerField(null=True)
vet_chick_allocations_id_key = models.IntegerField(null=True)
#
# province_kill_request = models.ForeignKey(
# ProvinceKillRequest,
# on_delete=models.CASCADE,
# related_name="check_province_kill_request",
# null=True
# )
# poultry_request = models.ForeignKey(
# PoultryRequest,
# on_delete=models.CASCADE,
# related_name="vet_check_poultry_request",
# null=True
# )
state = models.CharField(max_length=50, default='pending')
reviewer = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(VetCheckAllocations, self).save(*args, **kwargs)
class HourLimit(BaseModel):
hour = models.IntegerField(null=True)
active = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(HourLimit, self).save(*args, **kwargs)
class KillHouseHourLimit(BaseModel):
hour = models.IntegerField(null=True)
active = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(KillHouseHourLimit, self).save(*args, **kwargs)
class SmsLicense(BaseModel):
hatching = models.BooleanField(default=False)
poultry_request = models.BooleanField(default=False)
city_approval = models.BooleanField(default=False)
province_approval = models.BooleanField(default=False)
kill_request = models.BooleanField(default=False)
province_kill_request = models.BooleanField(default=False)
farm_veterinarian_approval = models.BooleanField(default=False)
kill_house_request = models.BooleanField(default=False)
kill_house_house_veterinarian_approval = models.BooleanField(default=False)
assingment_information = models.BooleanField(default=False)
confirmation_of_assingment_information = models.BooleanField(default=False)
invoicing = models.BooleanField(default=False)
invoice_payment = models.BooleanField(default=False)
invoice_payment_confirmation = models.BooleanField(default=False)
inspector_approval = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(SmsLicense, self).save(*args, **kwargs)
class KillHouseCreditors(BaseModel):
amount = models.FloatField(default=0)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_creditors",
null=True
)
def save(self, *args, **kwargs):
super(KillHouseCreditors, self).save(*args, **kwargs)
class ProvinceAllowKillHouseRegisterCar(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="province_allow_kill_house_register",
null=True
)
kill_house_id_foreign_key = models.IntegerField(null=True)
province_allow_kill_house_register_car_id_key = models.IntegerField(null=True)
allow = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceAllowKillHouseRegisterCar, self).save(*args, **kwargs)
class ProvinceAllowPoultryChooseKillHouse(BaseModel):
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="province_allow_kill_house_register",
null=True
)
poultry_id_foreign_key = models.IntegerField(null=True)
province_allow_poultry_choose_kill_house_id_key = models.IntegerField(null=True)
allow = models.BooleanField(default=False)
mandatory = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceAllowPoultryChooseKillHouse, self).save(*args, **kwargs)
class ProvinceAllowPoultryChooseKillHouseTotal(BaseModel):
allow = models.BooleanField(default=False)
mandatory = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProvinceAllowPoultryChooseKillHouseTotal, self).save(*args, **kwargs)
class FreeSaleWithinprovince(BaseModel):
allow = models.BooleanField(default=False)
type = models.CharField(max_length=20, null=True)
weight = models.FloatField(default=0)
percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(FreeSaleWithinprovince, self).save(*args, **kwargs)
class ProvinceAllowPoultrySellFree(BaseModel):
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="province_allow_poultry_sell_free",
null=True
)
poultry_id_foreign_key = models.IntegerField(null=True)
province_allow_poultry_sell_free_id_key = models.IntegerField(null=True)
allow = models.BooleanField(default=False)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceAllowPoultrySellFree, self).save(*args, **kwargs)
class ProvinceAllowPoultrySellFreeTotal(BaseModel):
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProvinceAllowPoultrySellFreeTotal, self).save(*args, **kwargs)
class ProvinceAllowKillHouseDirectBuying(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="province_allow_kill_house_direct_buying",
null=True
)
allow = models.BooleanField(default=False)
export_status = models.BooleanField(default=False)
freezing_status = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProvinceAllowKillHouseDirectBuying, self).save(*args, **kwargs)
class ProvinceAllowKillHouseDirectBuyingTotal(BaseModel):
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProvinceAllowKillHouseDirectBuyingTotal, self).save(*args, **kwargs)
class ProvinceAllowKillHouseRegisterGuilds(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="province_allow_kill_house_register_guilds",
null=True
)
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProvinceAllowKillHouseRegisterGuilds, self).save(*args, **kwargs)
class ProvinceAllowKillHouseRegisterGuildsTotal(BaseModel):
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProvinceAllowKillHouseRegisterGuildsTotal, self).save(*args, **kwargs)
class KillHouseDailyQuota(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="percent_killhouse_daily_quota",
null=True)
kill_request = models.ForeignKey(
KillRequest,
on_delete=models.CASCADE,
related_name="percent_kill_request_daily_quota",
null=True)
killer_kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="killer_kill_house_daily_quota",
null=True)
kill_house_id_foreign_key = models.IntegerField(null=True)
kill_request_id_foreign_key = models.IntegerField(null=True)
killer_kill_house_id_foreign_key = models.IntegerField(null=True)
kill_house_daily_quota_id_key = models.IntegerField(null=True)
percent = models.FloatField(default=0)
quantity = models.BigIntegerField(default=0)
remain_quantity = models.BigIntegerField(default=0)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseDailyQuota, self).save(*args, **kwargs)
# class ProvinceAutomaticAllocation(BaseModel):
# daily_quota = models.ForeignKey(
# KillHouseDailyQuota,
# on_delete=models.CASCADE,
# related_name="percent_killhouse_daily_quota_province",
# null=True)
#
# poultry_request = models.ForeignKey(
# PoultryRequest,
# on_delete=models.CASCADE,
# related_name="poultry_request_quantity_province",
# null=True)
# quantity = models.BigIntegerField(default=0)
#
# def save(self, *args, **kwargs):
# super(ProvinceAutomaticAllocation, self).save(*args, **kwargs)
class ProvinceAutoAllocation(BaseModel):
daily_quota = models.ForeignKey(
KillHouseDailyQuota,
on_delete=models.CASCADE,
related_name="percent_auto_killhouse_daily_quota_province",
null=True)
poultry_request = models.ForeignKey(
PoultryRequest,
on_delete=models.CASCADE,
related_name="poultry_request_auto_quantity_province",
null=True)
province_kill_request = models.ForeignKey(
ProvinceKillRequest,
on_delete=models.CASCADE,
related_name="province_kill_request_auto_quantity_province",
null=True)
daily_quota_id_foreign_key = models.IntegerField(null=True)
poultry_request_id_foreign_key = models.IntegerField(null=True)
province_kill_request_id_foreign_key = models.IntegerField(null=True)
province_auto_allocation_id_key = models.IntegerField(null=True)
unauthorized_number = models.BooleanField(default=False)
quantity = models.BigIntegerField(default=0)
allocation_order_code = models.BigIntegerField(default=0)
state = models.CharField(max_length=50, default='temporary')
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(ProvinceAutoAllocation, self).save(*args, **kwargs)
class AutoAcceptProvinceKillRequest(BaseModel):
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(AutoAcceptProvinceKillRequest, self).save(*args, **kwargs)
class AutoMakeKillHouseRequest(BaseModel):
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(AutoMakeKillHouseRequest, self).save(*args, **kwargs)
class Hall(models.Model):
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="poultry_hall",
null=True
)
hall_number = models.IntegerField(default=1)
def save(self, *args, **kwargs):
super(Hall, self).save(*args, **kwargs)
class PoultryHallProfile(models.Model):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="user_poultry_profile",
null=True
)
hall = models.ForeignKey(
Hall,
on_delete=models.CASCADE,
related_name="hall_poultry_profile",
null=True
)
start_date = models.DateTimeField(null=True)
end_date = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
super(PoultryHallProfile, self).save(*args, **kwargs)
class TypeActivity(BaseModel):
title = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(TypeActivity, self).save(*args, **kwargs)
class AreaActivity(BaseModel):
title = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(AreaActivity, self).save(*args, **kwargs)
class GuildSteward(BaseModel):
guild = models.ForeignKey('Guilds', on_delete=models.CASCADE, related_name='guild_to_stewards')
steward = models.ForeignKey('Guilds', on_delete=models.CASCADE, related_name='steward_to_guilds')
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ('guild', 'steward')
def save(self, *args, **kwargs):
super(GuildSteward, self).save(*args, **kwargs)
class DistributionUserLevel(BaseModel):
fa_title = models.CharField(max_length=200, null=True)
en_title = models.CharField(max_length=200, null=True)
def save(self, *args, **kwargs):
super(DistributionUserLevel, self).save(*args, **kwargs)
class GuildsGeneralConfigs(BaseModel):
active = models.BooleanField(default=False)
activator = models.CharField(max_length=200, null=True)
out_province_governmental_selling_percent = models.FloatField(default=0)
out_province_free_selling_percent = models.FloatField(default=0)
out_province_free_buying_commitment_percent = models.FloatField(default=0)
in_province_governmental_selling_percent = models.FloatField(default=0)
in_province_free_selling_percent = models.FloatField(default=0)
segmentation_governmental_percent = models.FloatField(default=0)
segmentation_free_selling_percent = models.FloatField(default=0)
cold_house_governmental_percent = models.FloatField(default=0)
cold_house_free_percent = models.FloatField(default=0)
governmental_selling_permission = models.BooleanField(default=False)
free_selling_permission = models.BooleanField(default=False)
free_sale_form_governmental_quota = models.BooleanField(default=False)
free_sale_from_free_quota_in_province = models.BooleanField(default=False)
total_input_warehouse_weight = models.FloatField(default=0)
total_input_warehouse_governmental_weight = models.FloatField(default=0)
total_input_warehouse_free_weight = models.FloatField(default=0)
total_selling_warehouse_governmental_weight = models.FloatField(default=0)
total_selling_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_governmental_weight = models.FloatField(default=0)
total_remain_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_weight = models.FloatField(default=0)
total_selling_in_province_governmental_weight = models.FloatField(default=0)
total_selling_in_province_free_weight = models.FloatField(default=0)
total_selling_out_province_governmental_weight = models.FloatField(default=0)
total_selling_out_province_free_weight = models.FloatField(default=0)
total_segmentation_governmental_weight = models.FloatField(default=0)
total_segmentation_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_weight = models.FloatField(default=0)
total_in_province_free_bars_weight = models.FloatField(default=0)
total_out_province_buying_bars_weight = models.FloatField(default=0)
total_selling_warehouse_weight = models.FloatField(default=0)
total_segmentation_weight = models.FloatField(default=0)
total_cold_house_weight = models.FloatField(default=0)
total_cold_house_governmental_weight = models.FloatField(default=0)
total_cold_house_free_weight = models.FloatField(default=0)
total_commitment_governmental_weight = models.FloatField(default=0)
total_commitment_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_commitment_weight = models.FloatField(default=0)
total_in_province_free_bars_commitment_weight = models.FloatField(default=0)
total_out_province_buying_bars_commitment_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_remain_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_remain_weight = models.FloatField(default=0)
total_commitment_selling_out_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_out_province_free_weight = models.FloatField(default=0)
total_commitment_cold_house_governmental_weight = models.FloatField(default=0)
total_commitment_cold_house_free_weight = models.FloatField(default=0)
total_commitment_segmentation_governmental_weight = models.FloatField(default=0)
total_commitment_segmentation_free_weight = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(GuildsGeneralConfigs, self).save(*args, **kwargs)
class Guilds(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="guilds_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="guilds_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="guilds_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="guilds_wallet",
null=True
)
guild_area_activity = models.ForeignKey(
AreaActivity,
on_delete=models.CASCADE,
related_name="guilds_area_activity",
null=True
)
guild_type_activity = models.ForeignKey(
TypeActivity,
on_delete=models.CASCADE,
related_name="guilds_type_activity",
null=True
)
cars = models.ManyToManyField(
Car,
related_name='guild_car',
null=True, blank=True)
kill_house = models.ManyToManyField(
KillHouse,
related_name='guild_kill_houses',
null=True, blank=True)
steward_kill_house = models.ManyToManyField(
KillHouse,
related_name='steward_kill_houses',
null=True, blank=True)
stewards = models.ManyToManyField(
'self',
through='GuildSteward',
symmetrical=False,
related_name='guild_stewards', blank=True)
user_level = models.ManyToManyField(
DistributionUserLevel,
related_name='guild_user_level',
null=True, blank=True)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
provincial_government_id_key = models.IntegerField(null=True)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
guilds_id = models.CharField(max_length=50, null=True)
license_number = models.CharField(max_length=50, null=True)
guilds_name = models.CharField(max_length=100, null=True)
phone = models.CharField(max_length=100, null=True)
type_activity = models.CharField(max_length=100, null=True)
area_activity = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
steward = models.BooleanField(default=False)
has_pos = models.BooleanField(default=False)
centers_allocation = models.JSONField(null=True)
kill_house_centers_allocation = models.JSONField(null=True)
allocation_limit = models.BigIntegerField(null=True)
limitation_allocation = models.BooleanField(default=False)
# province_accept = models.BooleanField(default=True)
registerar_role = models.CharField(max_length=50, null=True)
registerar_fullname = models.CharField(max_length=100, null=True)
registerar_mobile = models.CharField(max_length=11, null=True)
kill_house_register = models.BooleanField(default=False)
steward_register = models.BooleanField(default=False)
guilds_room_register = models.BooleanField(default=False)
pos_company_register = models.BooleanField(default=False)
province_accept_state = models.CharField(max_length=20, default='accepted')
province_message = models.CharField(max_length=500, null=True)
condition = models.CharField(max_length=500, null=True)
description_condition = models.TextField(null=True)
steward_active = models.BooleanField(default=True)
steward_allocation_limit = models.BigIntegerField(null=True)
steward_limitation_allocation = models.BooleanField(default=False)
license = models.BooleanField(default=False)
license_form = models.CharField(max_length=500, null=True)
license_file = models.CharField(max_length=500, null=True)
reviewer_role = models.CharField(max_length=50, null=True)
reviewer_fullname = models.CharField(max_length=100, null=True)
reviewer_mobile = models.CharField(max_length=11, null=True)
checker_message = models.TextField(null=True)
final_accept = models.BooleanField(default=False)
temporary_registration = models.BooleanField(default=False)
role_activation = models.CharField(max_length=100, null=True)
register_code = models.CharField(max_length=100, null=True)
logged_register_code = models.CharField(max_length=100, null=True)
active_register_code = models.BooleanField(default=False)
expire_time_register_code = models.DateTimeField(null=True)
register_date_register_code = models.DateTimeField(null=True)
is_registered = models.BooleanField(default=False)
out_province_governmental_selling_percent = models.FloatField(default=0)
out_province_free_selling_percent = models.FloatField(default=0)
out_province_free_buying_commitment_percent = models.FloatField(default=0)
in_province_governmental_selling_percent = models.FloatField(default=0)
in_province_free_selling_percent = models.FloatField(default=0)
segmentation_governmental_percent = models.FloatField(default=0)
segmentation_free_selling_percent = models.FloatField(default=0)
cold_house_governmental_percent = models.FloatField(default=0)
cold_house_free_percent = models.FloatField(default=0)
governmental_selling_permission = models.BooleanField(default=False)
free_selling_permission = models.BooleanField(default=False)
free_sale_form_governmental_quota = models.BooleanField(default=False)
free_sale_from_free_quota_in_province = models.BooleanField(default=False)
total_input_warehouse_weight = models.FloatField(default=0)
total_input_warehouse_governmental_weight = models.FloatField(default=0)
total_input_warehouse_free_weight = models.FloatField(default=0)
total_selling_warehouse_governmental_weight = models.FloatField(default=0)
total_selling_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_governmental_weight = models.FloatField(default=0)
total_remain_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_weight = models.FloatField(default=0)
total_selling_in_province_governmental_weight = models.FloatField(default=0)
total_selling_in_province_free_weight = models.FloatField(default=0)
total_selling_out_province_governmental_weight = models.FloatField(default=0)
total_selling_out_province_free_weight = models.FloatField(default=0)
total_segmentation_governmental_weight = models.FloatField(default=0)
total_segmentation_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_weight = models.FloatField(default=0)
total_in_province_free_bars_weight = models.FloatField(default=0)
total_out_province_buying_bars_weight = models.FloatField(default=0)
pos_allocated_weight = models.FloatField(default=0)
pos_governmental_allocated_weight = models.FloatField(default=0)
pos_free_allocated_weight = models.FloatField(default=0)
total_selling_warehouse_weight = models.FloatField(default=0)
total_segmentation_weight = models.FloatField(default=0)
total_cold_house_weight = models.FloatField(default=0)
total_cold_house_governmental_weight = models.FloatField(default=0)
total_cold_house_free_weight = models.FloatField(default=0)
ware_house_archive_weight = models.FloatField(default=0)
ware_house_archive_governmental_weight = models.FloatField(default=0)
ware_house_archive_free_weight = models.FloatField(default=0)
total_commitment_governmental_weight = models.FloatField(default=0)
total_commitment_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_commitment_weight = models.FloatField(default=0)
total_in_province_free_bars_commitment_weight = models.FloatField(default=0)
total_out_province_buying_bars_commitment_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_remain_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_remain_weight = models.FloatField(default=0)
total_commitment_selling_out_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_out_province_free_weight = models.FloatField(default=0)
total_commitment_cold_house_governmental_weight = models.FloatField(default=0)
total_commitment_cold_house_free_weight = models.FloatField(default=0)
total_commitment_segmentation_governmental_weight = models.FloatField(default=0)
total_commitment_segmentation_free_weight = models.FloatField(default=0)
license_type = models.CharField(max_length=100, null=True) # نوع مجوز
license_status = models.CharField(max_length=50, null=True) # وضعیت مجوز
license_issue_date = models.DateTimeField(null=True) # تاریخ صدور مجوز
license_expire_date = models.DateTimeField(null=True) # تاریخ انقضا مجوز
company_name = models.CharField(max_length=200, null=True) # نام شرکت
union_name = models.CharField(max_length=200, null=True)
national_code = models.CharField(max_length=200, null=True)
phone_number = models.CharField(max_length=200, null=True)
company_identifier = models.CharField(max_length=100, null=True) # شناسه شرکت
is_foreign_national = models.BooleanField(default=False) # آیا اتباع است
has_partner = models.BooleanField(default=False) # آیا شریک دارد
has_inquiry = models.BooleanField(default=False) # آیا استعلام دارد
is_real_person = models.BooleanField(default=True) # حقیقی یا حقوقی
def save(self, *args, **kwargs):
self.total_segmentation_weight = self.total_segmentation_governmental_weight + self.total_segmentation_free_weight
self.total_cold_house_weight = self.total_cold_house_governmental_weight + self.total_cold_house_free_weight
self.total_input_warehouse_governmental_weight = self.total_in_province_governmental_bars_weight
self.total_input_warehouse_free_weight = self.total_in_province_free_bars_weight + self.total_out_province_buying_bars_weight
self.total_input_warehouse_weight = self.total_input_warehouse_governmental_weight + self.total_input_warehouse_free_weight
self.total_selling_warehouse_governmental_weight = self.total_selling_in_province_governmental_weight + self.total_selling_out_province_governmental_weight + self.total_segmentation_governmental_weight + self.total_cold_house_governmental_weight + self.pos_governmental_allocated_weight
self.total_selling_warehouse_free_weight = self.total_selling_in_province_free_weight + self.total_selling_out_province_free_weight + self.total_segmentation_free_weight + self.total_cold_house_free_weight + self.pos_free_allocated_weight
self.total_selling_warehouse_weight = self.total_selling_warehouse_governmental_weight + self.total_selling_warehouse_free_weight
self.total_remain_warehouse_governmental_weight = (
self.total_input_warehouse_governmental_weight - self.total_selling_warehouse_governmental_weight) - self.ware_house_archive_governmental_weight
self.total_remain_warehouse_free_weight = (
self.total_input_warehouse_free_weight - self.total_selling_warehouse_free_weight) - self.ware_house_archive_free_weight
self.total_remain_warehouse_weight = self.total_input_warehouse_weight - self.total_selling_warehouse_weight
self.total_commitment_selling_in_province_governmental_weight = int(
self.total_input_warehouse_governmental_weight * (self.in_province_governmental_selling_percent / 100))
self.total_commitment_selling_out_province_governmental_weight = int((
self.out_province_governmental_selling_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_cold_house_governmental_weight = int((
self.cold_house_governmental_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_segmentation_governmental_weight = int((
self.segmentation_governmental_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_selling_in_province_free_weight = int(
self.total_input_warehouse_free_weight * (self.in_province_free_selling_percent / 100))
self.total_commitment_selling_out_province_free_weight = int((
self.out_province_free_selling_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_cold_house_free_weight = int((
self.cold_house_free_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_segmentation_free_weight = int((
self.segmentation_free_selling_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_selling_in_province_governmental_remain_weight = self.total_commitment_selling_in_province_governmental_weight - self.total_selling_in_province_governmental_weight if (
self.total_commitment_selling_in_province_governmental_weight - self.total_selling_in_province_governmental_weight) > 0 else 0
self.total_commitment_selling_in_province_free_remain_weight = self.total_commitment_selling_in_province_free_weight - self.total_selling_in_province_free_weight if (
self.total_commitment_selling_in_province_free_weight - self.total_selling_in_province_free_weight) > 0 else 0
super(Guilds, self).save(*args, **kwargs)
class GuildLegalPersonDetail(BaseModel):
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="legal_person_details",
null=True,
blank=True,
)
status = models.BooleanField(default=False)
status_code = models.IntegerField(default=0)
api_log_id = models.CharField(max_length=100, null=True, blank=True)
legal_person_info_dto_id = models.CharField(max_length=100, null=True, blank=True)
parent_legal_person_id = models.CharField(max_length=100, null=True, blank=True)
successful = models.BooleanField(default=False)
message = models.TextField(null=True, blank=True)
name = models.CharField(max_length=300, null=True, blank=True)
national_code = models.CharField(max_length=20, null=True, blank=True)
post_code = models.CharField(max_length=20, null=True, blank=True)
address = models.TextField(null=True, blank=True)
legal_person_type = models.CharField(max_length=100, null=True, blank=True)
register_number = models.CharField(max_length=100, null=True, blank=True)
register_unit = models.CharField(max_length=100, null=True, blank=True)
register_date = models.CharField(max_length=100, null=True, blank=True)
register_date_unix = models.BigIntegerField(default=0)
residency = models.CharField(max_length=100, null=True, blank=True)
state = models.CharField(max_length=100, null=True, blank=True)
is_settle = models.BooleanField(default=False)
settle_date = models.CharField(max_length=100, null=True, blank=True)
is_break_up = models.BooleanField(default=False)
break_up_date = models.CharField(max_length=100, null=True, blank=True)
is_branch = models.BooleanField(default=False)
branch_list = models.JSONField(null=True, blank=True)
parent_legal_person_raw = models.JSONField(null=True, blank=True)
establishment_date = models.CharField(max_length=100, null=True, blank=True)
is_db_result = models.BooleanField(default=False)
service_type = models.IntegerField(default=0)
parent_name = models.CharField(max_length=300, null=True, blank=True)
parent_national_code = models.CharField(max_length=20, null=True, blank=True)
parent_post_code = models.CharField(max_length=20, null=True, blank=True)
parent_address = models.TextField(null=True, blank=True)
parent_legal_person_type = models.CharField(max_length=100, null=True, blank=True)
parent_register_number = models.CharField(max_length=100, null=True, blank=True)
parent_register_unit = models.CharField(max_length=100, null=True, blank=True)
parent_register_date = models.CharField(max_length=100, null=True, blank=True)
parent_register_date_unix = models.BigIntegerField(default=0)
parent_residency = models.CharField(max_length=100, null=True, blank=True)
parent_state = models.CharField(max_length=100, null=True, blank=True)
parent_is_settle = models.BooleanField(default=False)
parent_settle_date = models.CharField(max_length=100, null=True, blank=True)
parent_is_break_up = models.BooleanField(default=False)
parent_break_up_date = models.CharField(max_length=100, null=True, blank=True)
parent_is_branch = models.BooleanField(default=False)
parent_branch_list = models.JSONField(null=True, blank=True)
parent_establishment_date = models.CharField(max_length=100, null=True, blank=True)
parent_is_db_result = models.BooleanField(default=False)
parent_service_type = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(GuildLegalPersonDetail, self).save(*args, **kwargs)
class GuildsWareHouse(BaseModel):
guilds = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="ware_house_guilds",
null=True)
bar_quantity = models.BigIntegerField(default=0)
allocated_quantity = models.BigIntegerField(default=0)
number_of_carcasses = models.BigIntegerField(default=0)
real_number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
real_weight_of_carcasses = models.FloatField(default=0)
ave_weight_of_carcasses = models.FloatField(default=0)
allocated_total_number_of_carcasses = models.BigIntegerField(default=0)
allocated_total_weight_of_carcasses = models.FloatField(default=0)
remain_total_number_of_carcasses = models.BigIntegerField(default=0)
remain_total_weight_of_carcasses = models.FloatField(default=0)
final_registration = models.BooleanField(default=False)
date = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
self.remain_total_number_of_carcasses = (
self.number_of_carcasses - self.allocated_total_number_of_carcasses) if self.real_number_of_carcasses == 0 else (
self.real_number_of_carcasses - self.allocated_total_number_of_carcasses)
self.remain_total_weight_of_carcasses = (
self.weight_of_carcasses - self.allocated_total_weight_of_carcasses) if self.real_weight_of_carcasses == 0 else (
self.real_weight_of_carcasses - self.allocated_total_weight_of_carcasses)
super(GuildsWareHouse, self).save(*args, **kwargs)
class Steward(BaseModel):
guilds = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_guilds",
null=True
)
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="steward_user",
null=True
)
active = models.BooleanField(default=True)
allocation_limit = models.BigIntegerField(null=True)
limitation_allocation = models.BooleanField(default=False)
centers_allocation = models.JSONField(null=True)
kill_house_register = models.BooleanField(default=False)
province_accept_state = models.CharField(max_length=20, default='accepted')
city = models.CharField(max_length=100, null=True)
out_province_free_selling_percent = models.FloatField(default=0)
out_province_free_buying_commitment_percent = models.FloatField(default=0)
in_province_governmental_selling_percent = models.FloatField(default=0)
in_province_free_selling_percent = models.FloatField(default=0)
segmentation_governmental_percent = models.FloatField(default=0)
segmentation_free_selling_percent = models.FloatField(default=0)
cold_house_governmental_percent = models.FloatField(default=0)
cold_house_free_percent = models.FloatField(default=0)
governmental_selling_permission = models.BooleanField(default=False)
free_selling_permission = models.BooleanField(default=False)
free_sale_form_governmental_quota = models.BooleanField(default=False)
free_sale_from_free_quota_in_province = models.BooleanField(default=False)
total_input_warehouse_weight = models.FloatField(default=0)
total_input_warehouse_governmental_weight = models.FloatField(default=0)
total_input_warehouse_free_weight = models.FloatField(default=0)
total_selling_warehouse_governmental_weight = models.FloatField(default=0)
total_selling_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_governmental_weight = models.FloatField(default=0)
total_remain_warehouse_free_weight = models.FloatField(default=0)
total_remain_warehouse_weight = models.FloatField(default=0)
total_selling_in_province_governmental_weight = models.FloatField(default=0)
total_selling_in_province_free_weight = models.FloatField(default=0)
total_selling_out_province_governmental_weight = models.FloatField(default=0)
total_selling_out_province_free_weight = models.FloatField(default=0)
total_segmentation_governmental_weight = models.FloatField(default=0)
total_segmentation_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_weight = models.FloatField(default=0)
total_in_province_free_bars_weight = models.FloatField(default=0)
total_out_province_buying_bars_weight = models.FloatField(default=0)
pos_allocated_weight = models.FloatField(default=0)
pos_governmental_allocated_weight = models.FloatField(default=0)
pos_free_allocated_weight = models.FloatField(default=0)
total_selling_warehouse_weight = models.FloatField(default=0)
total_segmentation_weight = models.FloatField(default=0)
total_cold_house_weight = models.FloatField(default=0)
total_cold_house_governmental_weight = models.FloatField(default=0)
total_cold_house_free_weight = models.FloatField(default=0)
ware_house_archive_weight = models.FloatField(default=0)
ware_house_archive_governmental_weight = models.FloatField(default=0)
ware_house_archive_free_weight = models.FloatField(default=0)
total_commitment_governmental_weight = models.FloatField(default=0)
total_commitment_free_weight = models.FloatField(default=0)
total_in_province_governmental_bars_commitment_weight = models.FloatField(default=0)
total_in_province_free_bars_commitment_weight = models.FloatField(default=0)
total_out_province_buying_bars_commitment_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_weight = models.FloatField(default=0)
total_commitment_selling_in_province_governmental_remain_weight = models.FloatField(default=0)
total_commitment_selling_in_province_free_remain_weight = models.FloatField(default=0)
total_commitment_selling_out_province_governmental_weight = models.FloatField(default=0)
total_commitment_selling_out_province_free_weight = models.FloatField(default=0)
total_commitment_cold_house_governmental_weight = models.FloatField(default=0)
total_commitment_cold_house_free_weight = models.FloatField(default=0)
total_commitment_segmentation_governmental_weight = models.FloatField(default=0)
total_commitment_segmentation_free_weight = models.FloatField(default=0)
# province_accept = models.BooleanField(default=True)
def save(self, *args, **kwargs):
self.total_segmentation_weight = self.total_segmentation_governmental_weight + self.total_segmentation_free_weight
self.total_cold_house_weight = self.total_cold_house_governmental_weight + self.total_cold_house_free_weight
self.total_input_warehouse_governmental_weight = self.total_in_province_governmental_bars_weight
self.total_input_warehouse_free_weight = self.total_in_province_free_bars_weight + self.total_out_province_buying_bars_weight
self.total_input_warehouse_weight = self.total_input_warehouse_governmental_weight + self.total_input_warehouse_free_weight
self.total_selling_warehouse_governmental_weight = self.total_selling_in_province_governmental_weight + self.total_selling_out_province_governmental_weight + self.total_segmentation_governmental_weight + self.total_cold_house_governmental_weight + self.pos_governmental_allocated_weight
self.total_selling_warehouse_free_weight = self.total_selling_in_province_free_weight + self.total_selling_out_province_free_weight + self.total_segmentation_free_weight + self.total_cold_house_free_weight + self.pos_free_allocated_weight
self.total_selling_warehouse_weight = self.total_selling_warehouse_governmental_weight + self.total_selling_warehouse_free_weight
self.total_remain_warehouse_governmental_weight = (
self.total_input_warehouse_governmental_weight - self.total_selling_warehouse_governmental_weight) - self.ware_house_archive_governmental_weight
self.total_remain_warehouse_free_weight = (
self.total_input_warehouse_free_weight - self.total_selling_warehouse_free_weight) - self.ware_house_archive_free_weight
self.total_remain_warehouse_weight = self.total_input_warehouse_weight - self.total_selling_warehouse_weight
self.total_commitment_selling_in_province_governmental_weight = int(
self.total_input_warehouse_governmental_weight * (self.in_province_governmental_selling_percent / 100))
self.total_commitment_selling_out_province_governmental_weight = int((
self.out_province_governmental_selling_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_cold_house_governmental_weight = int((
self.cold_house_governmental_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_segmentation_governmental_weight = int((
self.segmentation_governmental_percent / 100) * self.total_input_warehouse_governmental_weight) if self.governmental_selling_permission else 0
self.total_commitment_selling_in_province_free_weight = int(
self.total_input_warehouse_free_weight * (self.in_province_free_selling_percent / 100))
self.total_commitment_selling_out_province_free_weight = int((
self.out_province_free_selling_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_cold_house_free_weight = int((
self.cold_house_free_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_segmentation_free_weight = int((
self.segmentation_free_selling_percent / 100) * self.total_input_warehouse_free_weight) if self.free_selling_permission else 0
self.total_commitment_selling_in_province_governmental_remain_weight = self.total_commitment_selling_in_province_governmental_weight - self.total_selling_in_province_governmental_weight if (
self.total_commitment_selling_in_province_governmental_weight - self.total_selling_in_province_governmental_weight) > 0 else 0
self.total_commitment_selling_in_province_free_remain_weight = self.total_commitment_selling_in_province_free_weight - self.total_selling_in_province_free_weight if (
self.total_commitment_selling_in_province_free_weight - self.total_selling_in_province_free_weight) > 0 else 0
super(Steward, self).save(*args, **kwargs)
class StewardWareHouse(BaseModel):
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="ware_house_steward",
null=True)
bar_quantity = models.BigIntegerField(default=0)
allocated_quantity = models.BigIntegerField(default=0)
number_of_carcasses = models.BigIntegerField(default=0)
real_number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
real_weight_of_carcasses = models.FloatField(default=0)
free_bar_quantity = models.BigIntegerField(default=0)
number_of_free_carcasses = models.BigIntegerField(default=0)
weight_of_free_carcasses = models.FloatField(default=0)
ave_weight_of_carcasses = models.FloatField(default=0)
allocated_total_number_of_carcasses = models.BigIntegerField(default=0)
allocated_total_weight_of_carcasses = models.FloatField(default=0)
remain_total_number_of_carcasses = models.BigIntegerField(default=0)
remain_total_weight_of_carcasses = models.FloatField(default=0)
final_registration = models.BooleanField(default=False)
free_sale_quantity = models.BigIntegerField(default=0)
free_sale_weight = models.FloatField(default=0)
date = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
super(StewardWareHouse, self).save(*args, **kwargs)
class Dispenser(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="dispenser_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="dispenser_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="dispenser_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="dispenser_wallet",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="dispenser_kill_house",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="dispenser_guild",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="dispenser_steward",
null=True
)
dispenser_type = models.CharField(max_length=100, null=True)
limitation_amount = models.FloatField(default=0)
car = models.CharField(max_length=100, null=True)
pelak = models.CharField(max_length=100, null=True)
registrar = models.CharField(max_length=200, null=True)
active = models.BooleanField(default=True)
free_sale = models.BooleanField(default=False)
free_guilds = models.BooleanField(default=False)
free_stewards = models.BooleanField(default=False)
in_use = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(Dispenser, self).save(*args, **kwargs)
class DispenserInformation(BaseModel):
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="dispenser_info_user",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="dispenser_info_kill_house",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="dispenser_info_steward",
null=True
)
fullname = models.CharField(max_length=200, null=True)
national_id = models.CharField(max_length=200, null=True)
first_name = models.CharField(max_length=200, null=True)
last_name = models.CharField(max_length=200, null=True)
mobile = models.CharField(max_length=11, null=True)
city = models.CharField(max_length=300, null=True)
province = models.CharField(max_length=300, null=True)
active = models.BooleanField(default=True)
limitation = models.BooleanField(default=False)
free_limitation = models.BooleanField(default=False)
governmental_limitation = models.BooleanField(default=False)
governmental_limitation_weight = models.FloatField(default=0)
free_limitation_weight = models.FloatField(default=0)
total_selling_warehouse_governmental_weight = models.FloatField(default=0)
total_selling_warehouse_free_weight = models.FloatField(default=0)
total_selling_warehouse_weight = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(DispenserInformation, self).save(*args, **kwargs)
class NewProduct(BaseModel):
product_id = models.IntegerField(default=0)
name = models.CharField(max_length=200, null=True)
image = models.CharField(max_length=500, null=True)
sale_type = models.CharField(max_length=100, null=True)
sale_type_package_weight = models.FloatField(default=0)
approved_price_status = models.BooleanField(default=False)
approved_price = models.IntegerField(default=0)
sale_limitation_status = models.BooleanField(default=False)
sale_limitation_maximum_weight_status = models.BooleanField(default=False)
sale_limitation_maximum_weight = models.FloatField(default=0)
sale_limitation_maximum_package_status = models.BooleanField(default=False)
sale_limitation_maximum_package = models.FloatField(default=0)
sale_limitation_maximum_number_of_purchases_status = models.BooleanField(default=False)
sale_limitation_maximum_number_of_purchases = models.FloatField(default=0)
sale_limitation_maximum_number_of_purchases_type = models.CharField(max_length=100, null=True)
sale_limitation_maximum_inquiry_status = models.BooleanField(default=False)
sale_limitation_maximum_inquiry_type = models.CharField(max_length=100, null=True)
Conventional_sales_status = models.BooleanField(default=False)
Conventional_sales_weight = models.FloatField(default=0)
Conventional_sales_package = models.FloatField(default=0)
selling_more_than_inventory = models.BooleanField(default=False)
parent = models.ForeignKey(
'self',
on_delete=models.CASCADE,
related_name="child",
null=True
)
def save(self, *args, **kwargs):
super(NewProduct, self).save(*args, **kwargs)
class RolesProducts(BaseModel):
parent_product = models.ForeignKey(
NewProduct,
on_delete=models.CASCADE,
related_name="roles_products_new_product",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="roles_products_kill_house",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="roles_products_steward",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="roles_products_guild",
null=True
)
name = models.CharField(max_length=300, null=True)
province_governmental_carcasses_quantity = models.BigIntegerField(default=0)
province_governmental_carcasses_weight = models.BigIntegerField(default=0)
province_free_carcasses_quantity = models.BigIntegerField(default=0)
province_free_carcasses_weight = models.BigIntegerField(default=0)
receive_governmental_carcasses_quantity = models.BigIntegerField(default=0)
receive_governmental_carcasses_weight = models.BigIntegerField(default=0)
receive_free_carcasses_quantity = models.BigIntegerField(default=0)
receive_free_carcasses_weight = models.BigIntegerField(default=0)
free_buying_carcasses_quantity = models.BigIntegerField(default=0)
free_buying_carcasses_weight = models.BigIntegerField(default=0)
total_governmental_carcasses_quantity = models.BigIntegerField(default=0)
total_governmental_carcasses_weight = models.BigIntegerField(default=0)
total_free_bars_carcasses_quantity = models.BigIntegerField(default=0)
total_free_bars_carcasses_weight = models.BigIntegerField(default=0)
weight_average = models.FloatField(default=0)
total_carcasses_quantity = models.BigIntegerField(default=0)
total_carcasses_weight = models.BigIntegerField(default=0)
freezing_quantity = models.BigIntegerField(default=0)
freezing_weight = models.BigIntegerField(default=0)
loss_weight = models.BigIntegerField(default=0)
out_province_allocated_quantity = models.BigIntegerField(default=0)
out_province_allocated_weight = models.BigIntegerField(default=0)
province_allocated_quantity = models.BigIntegerField(default=0)
province_allocated_weight = models.BigIntegerField(default=0)
province_governmental_allocated_weight = models.BigIntegerField(default=0)
province_free_allocated_weight = models.BigIntegerField(default=0)
real_allocated_quantity = models.BigIntegerField(default=0)
real_allocated_weight = models.BigIntegerField(default=0)
cold_house_allocated_weight = models.BigIntegerField(default=0)
pos_allocated_weight = models.BigIntegerField(default=0)
segmentation_weight = models.BigIntegerField(default=0)
ware_house_archive_weight = models.BigIntegerField(default=0)
total_remain_quantity = models.BigIntegerField(default=0)
total_remain_weight = models.BigIntegerField(default=0)
free_price = models.IntegerField(default=0)
approved_price = models.IntegerField(default=0)
approved_price_status = models.BooleanField(default=False)
def save(self, *args, **kwargs):
self.total_governmental_carcasses_quantity = self.province_governmental_carcasses_quantity + self.receive_governmental_carcasses_quantity
self.total_governmental_carcasses_weight = self.province_governmental_carcasses_weight + self.receive_governmental_carcasses_weight
self.total_free_bars_carcasses_quantity = self.province_free_carcasses_quantity + self.receive_free_carcasses_quantity + self.free_buying_carcasses_quantity
self.total_free_bars_carcasses_weight = self.province_free_carcasses_weight + self.receive_free_carcasses_weight + self.free_buying_carcasses_weight
self.total_carcasses_quantity = self.total_governmental_carcasses_quantity + self.total_free_bars_carcasses_quantity
self.total_carcasses_weight = self.total_governmental_carcasses_weight + self.total_free_bars_carcasses_weight
self.real_allocated_quantity = self.province_allocated_quantity + self.out_province_allocated_quantity + self.freezing_quantity
self.real_allocated_weight = self.province_allocated_weight + self.out_province_allocated_weight + self.loss_weight + self.cold_house_allocated_weight + self.segmentation_weight + int(
self.pos_allocated_weight / 1000)
self.total_remain_quantity = self.total_carcasses_quantity - self.real_allocated_quantity
self.total_remain_weight = (
self.total_carcasses_weight - self.real_allocated_weight) - self.ware_house_archive_weight
self.weight_average = round(self.total_carcasses_weight / self.total_carcasses_quantity,
2) if self.total_carcasses_quantity > 0 else 0
super(RolesProducts, self).save(*args, **kwargs)
class OtherProducts(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="other_products_kill_house",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="other_products_guild",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="other_products_steward",
null=True
)
name = models.CharField(max_length=300, null=True)
unit = models.CharField(max_length=100, default='kg')
targetunit = models.CharField(max_length=100, default='g')
image = models.CharField(max_length=500, null=True)
price = models.BigIntegerField(default=0)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(OtherProducts, self).save(*args, **kwargs)
class BaseOutProvinceCarcassesBuyer(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="base_buyer_user",
null=True)
fullname = models.CharField(max_length=200, null=True)
national_id = models.CharField(max_length=200, null=True)
first_name = models.CharField(max_length=200, null=True)
last_name = models.CharField(max_length=200, null=True)
mobile = models.CharField(max_length=11, null=True)
unit_name = models.CharField(max_length=300, null=True)
city = models.CharField(max_length=300, null=True)
province = models.CharField(max_length=300, null=True)
isRealPerson = models.BooleanField(
default=True,
verbose_name="حقیقی=True / حقوقی=False")
status = models.BooleanField(default=False)
statusCode = models.IntegerField(null=True, blank=True)
legalPersonInfoDtoId = models.CharField(
max_length=100,
null=True,
blank=True)
parentLegalPersonId = models.CharField(
max_length=100,
null=True,
blank=True)
successful = models.BooleanField(default=False)
message = models.TextField(null=True, blank=True)
name = models.CharField(max_length=300, null=True, blank=True)
nationalCode = models.CharField(
max_length=20,
null=True,
blank=True)
postCode = models.CharField(
max_length=20,
null=True,
blank=True)
address = models.TextField(null=True, blank=True)
legalPersonType = models.CharField(
max_length=100,
null=True,
blank=True)
registerNumber = models.CharField(max_length=50, null=True, blank=True)
registerUnit = models.CharField(max_length=100, null=True, blank=True)
registerDate = models.CharField(max_length=50, null=True, blank=True)
registerDateUnix = models.BigIntegerField(null=True, blank=True)
residency = models.CharField(max_length=100, null=True, blank=True)
state = models.CharField(max_length=100, null=True, blank=True)
isSettle = models.BooleanField(default=False)
settleDate = models.CharField(max_length=50, null=True, blank=True)
isBreakUp = models.BooleanField(default=False)
breakUpdate = models.CharField(max_length=50, null=True, blank=True)
isBranch = models.BooleanField(default=False)
branchList = models.TextField(null=True, blank=True)
establishmentDate = models.CharField(max_length=50, null=True, blank=True)
isDbResult = models.BooleanField(default=False)
serviceType = models.IntegerField(null=True, blank=True)
parentLegalPersonInfoDtoId = models.CharField(
max_length=100,
null=True,
blank=True)
parentLegalPersonParentId = models.CharField(
max_length=100,
null=True,
blank=True)
parentLegalPersonSuccessful = models.BooleanField(default=False)
parentLegalPersonMessage = models.TextField(null=True, blank=True)
parentLegalPersonName = models.CharField(
max_length=300,
null=True,
blank=True)
parentLegalPersonNationalCode = models.CharField(
max_length=20,
null=True,
blank=True)
parentLegalPersonPostCode = models.CharField(
max_length=20,
null=True,
blank=True)
parentLegalPersonAddress = models.TextField(null=True, blank=True)
parentLegalPersonType = models.CharField(
max_length=100,
null=True,
blank=True)
parentLegalPersonRegisterNumber = models.CharField(
max_length=50,
null=True,
blank=True)
parentLegalPersonRegisterUnit = models.CharField(
max_length=100,
null=True,
blank=True)
parentLegalPersonRegisterDate = models.CharField(
max_length=50,
null=True,
blank=True)
parentLegalPersonRegisterDateUnix = models.BigIntegerField(
null=True,
blank=True)
parentLegalPersonResidency = models.CharField(
max_length=100,
null=True,
blank=True)
parentLegalPersonState = models.CharField(
max_length=100,
null=True,
blank=True)
parentLegalPersonIsSettle = models.BooleanField(default=False)
parentLegalPersonSettleDate = models.CharField(
max_length=50,
null=True,
blank=True)
parentLegalPersonIsBreakUp = models.BooleanField(default=False)
parentLegalPersonBreakUpdate = models.CharField(
max_length=50,
null=True,
blank=True)
parentLegalPersonIsBranch = models.BooleanField(default=False)
parentLegalPersonBranchList = models.TextField(null=True, blank=True)
parentLegalPersonEstablishmentDate = models.CharField(
max_length=50,
null=True,
blank=True)
parentLegalPersonIsDbResult = models.BooleanField(default=False)
parentLegalPersonServiceType = models.IntegerField(
null=True,
blank=True)
apiLogId = models.CharField(max_length=100, null=True, blank=True)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
self.fullname = self.first_name + " " + self.last_name
super(BaseOutProvinceCarcassesBuyer, self).save(*args, **kwargs)
class OutProvinceCarcassesBuyer(BaseModel):
buyer = models.ForeignKey(
BaseOutProvinceCarcassesBuyer,
on_delete=models.CASCADE,
related_name="base_buyer",
null=True)
type_activity = models.ForeignKey(
TypeActivity,
on_delete=models.CASCADE,
related_name="buyer_activity",
null=True)
Kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_buyer",
null=True)
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_buyer",
null=True)
fullname = models.CharField(max_length=200, null=True)
first_name = models.CharField(max_length=200, null=True)
last_name = models.CharField(max_length=200, null=True)
national_id = models.CharField(max_length=200, null=True)
mobile = models.CharField(max_length=11, null=True)
unit_name = models.CharField(max_length=300, null=True)
city = models.CharField(max_length=300, null=True)
province = models.CharField(max_length=300, null=True)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
self.fullname = self.first_name + " " + self.last_name
super(OutProvinceCarcassesBuyer, self).save(*args, **kwargs)
class Representative(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_representative",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="steward_representative",
null=True
)
first_name = models.CharField(max_length=200, null=True)
last_name = models.CharField(max_length=200, null=True)
mobile = models.CharField(max_length=15, null=True)
city = models.CharField(max_length=100, null=True)
active = models.BooleanField(default=True)
limitation = models.BooleanField(default=False)
free_limitation = models.BooleanField(default=False)
governmental_limitation = models.BooleanField(default=False)
governmental_limitation_weight = models.FloatField(default=0)
free_limitation_weight = models.FloatField(default=0)
total_selling_warehouse_governmental_weight = models.FloatField(default=0)
total_selling_warehouse_free_weight = models.FloatField(default=0)
total_selling_warehouse_weight = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(Representative, self).save(*args, **kwargs)
class KillHouseFreeSaleBarInformation(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_kill_house",
null=True)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_kill_house_product",
null=True)
buyer = models.ForeignKey(
OutProvinceCarcassesBuyer,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_buyer",
null=True)
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_dispenser",
null=True
)
representative = models.ForeignKey(
Representative,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_representative",
null=True
)
registerar_fullname = models.CharField(max_length=100, null=True)
permission_type = models.CharField(max_length=100, null=True)
status = models.CharField(max_length=300, default='pending')
buyer_name = models.CharField(max_length=100, null=True)
buyer_mobile = models.CharField(max_length=11, null=True)
province = models.CharField(max_length=50, null=True)
city = models.CharField(max_length=50, null=True)
driver_name = models.CharField(max_length=100, null=True)
driver_mobile = models.CharField(max_length=11, null=True)
type_car = models.CharField(max_length=100, null=True)
pelak = models.CharField(max_length=100, null=True)
clearance_code = models.CharField(max_length=50, null=True)
number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
real_number_of_carcasses = models.BigIntegerField(default=0)
real_weight_of_carcasses = models.FloatField(default=0)
quarantine_weight_of_carcasses = models.FloatField(default=0)
accepted_number_of_carcasses = models.BigIntegerField(default=0)
accepted_weight_of_carcasses = models.FloatField(default=0)
date = models.DateTimeField(null=True)
wage = models.FloatField(default=0)
archive_wage = models.BooleanField(default=False)
total_wage_amount = models.BigIntegerField(default=0)
union_share = models.BigIntegerField(default=0)
union_share_percent = models.FloatField(default=0)
company_share = models.BigIntegerField(default=0)
company_share_percent = models.FloatField(default=0)
guilds_share = models.BigIntegerField(default=0)
guilds_share_percent = models.FloatField(default=0)
city_share = models.BigIntegerField(default=0)
city_share_percent = models.FloatField(default=0)
wallet_share = models.BigIntegerField(default=0)
wallet_share_percent = models.FloatField(default=0)
other_share = models.BigIntegerField(default=0)
other_share_percent = models.FloatField(default=0)
calculate_status = models.BooleanField(default=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
sale_type = models.CharField(max_length=20, null=True)
quota = models.CharField(max_length=20, null=True)
warehouse = models.BooleanField(default=True)
registration_code = models.IntegerField(null=True)
logged_registration_code = models.IntegerField(null=True)
expire_date_time_registration_code = models.DateTimeField(null=True)
register_date_time_registration_code = models.DateTimeField(null=True)
active_expire_date_time = models.BooleanField(default=False)
system_registration_code = models.BooleanField(default=False)
expire_time_ten_minute = models.DateTimeField(null=True)
production_date = models.DateTimeField(null=True)
distribution_type = models.CharField(max_length=20, null=True)
amount = models.BigIntegerField(default=0)
total_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(KillHouseFreeSaleBarInformation, self).save(*args, **kwargs)
class KillHouseFreeBarInformation(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="free_bar_info_kill_house",
null=True)
exclusive_killer = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="free_bar_info_exclusive_killer",
null=True)
public_killer = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="free_bar_info_public_killer",
null=True)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="free_bar_info_kill_house_product",
null=True)
input_warehouse = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="free_bar_input_warehouse",
null=True
)
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="free_bar_dispenser",
null=True
)
representative = models.ForeignKey(
Representative,
on_delete=models.CASCADE,
related_name="free_bar_representative",
null=True
)
poultry_name = models.CharField(max_length=100, null=True)
poultry_mobile = models.CharField(max_length=11, null=True)
seller_name = models.CharField(max_length=100, null=True)
seller_mobile = models.CharField(max_length=11, null=True)
province = models.CharField(max_length=50, null=True)
city = models.CharField(max_length=50, null=True)
vet_farm_name = models.CharField(max_length=100, null=True)
vet_farm_mobile = models.CharField(max_length=11, null=True)
driver_name = models.CharField(max_length=100, null=True)
driver_mobile = models.CharField(max_length=11, null=True)
car = models.JSONField(null=True)
clearance_code = models.JSONField(null=True)
bar_clearance_code = models.CharField(max_length=100, null=True)
quantity = models.BigIntegerField(default=0)
number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
kill_house_vet_quantity = models.BigIntegerField(default=0)
kill_house_vet_weight = models.FloatField(default=0)
kill_house_vet_state = models.CharField(max_length=50, default="pending")
date_of_accept_reject = models.DateTimeField(null=True)
acceptor_rejector = models.CharField(max_length=200, null=True)
live_weight = models.FloatField(default=0)
bar_image = models.CharField(max_length=200, null=True)
buy_type = models.CharField(max_length=50, null=True)
ware_house = models.BooleanField(default=False)
date = models.DateTimeField(null=True)
wage = models.FloatField(default=0)
total_wage_amount = models.BigIntegerField(default=0)
union_share = models.BigIntegerField(default=0)
union_share_percent = models.FloatField(default=0)
company_share = models.BigIntegerField(default=0)
company_share_percent = models.FloatField(default=0)
guilds_share = models.BigIntegerField(default=0)
guilds_share_percent = models.FloatField(default=0)
city_share = models.BigIntegerField(default=0)
city_share_percent = models.FloatField(default=0)
wallet_share = models.BigIntegerField(default=0)
wallet_share_percent = models.FloatField(default=0)
other_share = models.BigIntegerField(default=0)
other_share_percent = models.FloatField(default=0)
archive_wage = models.BooleanField(default=False)
weight_loss = models.FloatField(default=0)
calculate_status = models.BooleanField(default=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
entered_message = models.TextField(null=True)
bar_code = models.BigIntegerField(null=True)
register_type = models.CharField(max_length=250, default='manual')
register_date = models.DateTimeField(null=True)
warehouse = models.BooleanField(default=True)
warehouse_commitment_weight = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(KillHouseFreeBarInformation, self).save(*args, **kwargs)
class StewardFreeBarInformation(BaseModel):
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="free_bar_info_steward",
null=True)
stewards = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="free_bar_info_stewards",
null=True)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="free_bar_info_guild",
null=True)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="free_bar_info_steward_product",
null=True)
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="free_bar_info_steward_dispenser",
null=True
)
representative = models.ForeignKey(
Representative,
on_delete=models.CASCADE,
related_name="free_bar_info_steward_representative",
null=True
)
kill_house_name = models.CharField(max_length=100, null=True)
kill_house_mobile = models.CharField(max_length=11, null=True)
kill_house_vet_name = models.CharField(max_length=100, null=True)
kill_house_vet_mobile = models.CharField(max_length=11, null=True)
province = models.CharField(max_length=50, null=True)
city = models.CharField(max_length=50, null=True)
driver_name = models.CharField(max_length=100, null=True)
driver_mobile = models.CharField(max_length=11, null=True)
car = models.CharField(max_length=100, null=True)
pelak = models.CharField(max_length=100, null=True)
number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
bar_image = models.CharField(max_length=200, null=True)
date = models.DateTimeField(null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
warehouse = models.BooleanField(default=True)
quota = models.CharField(max_length=20, null=True)
def save(self, *args, **kwargs):
super(StewardFreeBarInformation, self).save(*args, **kwargs)
class StewardFreeSaleBarInformation(BaseModel):
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_steward",
null=True)
stewards = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_stewards",
null=True)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_guild",
null=True)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="free_sale_bar_info_steward_product",
null=True)
buyer = models.ForeignKey(
OutProvinceCarcassesBuyer,
on_delete=models.CASCADE,
related_name="steward_free_sale_bar_info_buyer",
null=True)
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="steward_free_sale_bar_info_dispenser",
null=True
)
representative = models.ForeignKey(
Representative,
on_delete=models.CASCADE,
related_name="steward_free_sale_bar_info_representative",
null=True
)
buyer_name = models.CharField(max_length=100, null=True)
buyer_mobile = models.CharField(max_length=11, null=True)
province = models.CharField(max_length=50, null=True)
city = models.CharField(max_length=50, null=True)
driver_name = models.CharField(max_length=100, null=True)
driver_mobile = models.CharField(max_length=11, null=True)
type_car = models.CharField(max_length=100, null=True)
pelak = models.CharField(max_length=100, null=True)
clearance_code = models.CharField(max_length=50, null=True)
number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
date = models.DateTimeField(null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
warehouse = models.BooleanField(default=True)
quota = models.CharField(max_length=20, null=True)
sale_type = models.CharField(max_length=20, null=True)
registration_code = models.IntegerField(null=True)
logged_registration_code = models.IntegerField(null=True)
expire_date_time_registration_code = models.DateTimeField(null=True)
register_date_time_registration_code = models.DateTimeField(null=True)
active_expire_date_time = models.BooleanField(default=False)
system_registration_code = models.BooleanField(default=False)
expire_time_ten_minute = models.DateTimeField(null=True)
production_date = models.DateTimeField(null=True)
distribution_type = models.CharField(max_length=20, null=True)
def save(self, *args, **kwargs):
super(StewardFreeSaleBarInformation, self).save(*args, **kwargs)
class ColdHouse(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="cold_house_kill_house",
null=True
)
live_stock_support = models.ForeignKey(
LiveStockSupport,
on_delete=models.CASCADE,
related_name="cold_house_live_stock_support",
null=True
)
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_cold_house",
null=True
)
name = models.CharField(max_length=500, null=True)
province = models.CharField(max_length=200, null=True)
city = models.CharField(max_length=200, null=True)
address = models.CharField(max_length=500, null=True)
total_quantity = models.BigIntegerField(default=0)
total_weight = models.FloatField(default=0)
total_input_weight = models.BigIntegerField(default=0)
total_allocated_weight = models.BigIntegerField(default=0)
total_remain_weight = models.BigIntegerField(default=0)
active = models.BooleanField(default=True)
broadcast = models.BooleanField(default=True)
relocate = models.BooleanField(default=True)
capacity = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
self.total_remain_weight = self.total_input_weight - self.total_allocated_weight
super(ColdHouse, self).save(*args, **kwargs)
class StewardAllocation(BaseModel):
ware_house = models.ForeignKey(
KillHouseWareHouse,
on_delete=models.CASCADE,
related_name="ware_house_steward_allocation",
null=True
)
steward_ware_house = models.ForeignKey(
StewardWareHouse,
on_delete=models.CASCADE,
related_name="steward_ware_house_steward_guilds_allocation",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_steward_allocation",
null=True
)
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_steward_allocation",
null=True
)
guilds = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_allocation_guilds",
null=True
)
to_steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="allocation_to_steward",
null=True
)
to_guilds = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="allocation_to_guilds",
null=True
)
to_kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="allocation_to_kill_house",
null=True
)
to_cold_house = models.ForeignKey(
ColdHouse,
on_delete=models.CASCADE,
related_name="allocation_to_cold_house",
null=True
)
other_cold_house = models.ForeignKey(
ColdHouse,
on_delete=models.CASCADE,
related_name="allocation_to_other_cold_house",
null=True
)
car = models.ForeignKey(
Car,
on_delete=models.CASCADE,
related_name="steward_allocation_car",
null=True
)
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="allocation_dispenser",
null=True
)
representative = models.ForeignKey(
Representative,
on_delete=models.CASCADE,
related_name="allocation_representative",
null=True
)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="allocation_product",
null=True
)
number_of_carcasses = models.BigIntegerField(default=0)
real_number_of_carcasses = models.BigIntegerField(default=0)
receiver_real_number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
real_weight_of_carcasses = models.FloatField(default=0)
receiver_real_weight_of_carcasses = models.FloatField(default=0)
weight_loss_of_carcasses = models.FloatField(default=0)
final_registration = models.BooleanField(default=False)
sell_type = models.CharField(max_length=100, null=True)
product_name = models.CharField(max_length=200, null=True)
seller_type = models.CharField(max_length=100, null=True)
type = models.CharField(max_length=100, null=True)
sale_type = models.CharField(max_length=100, null=True)
allocation_type = models.CharField(max_length=100, null=True)
system_registration_code = models.BooleanField(default=False)
registration_code = models.IntegerField(null=True)
amount = models.BigIntegerField(default=0)
total_amount = models.BigIntegerField(default=0)
total_amount_paid = models.BigIntegerField(default=0)
total_amount_remain = models.BigIntegerField(default=0)
logged_registration_code = models.IntegerField(null=True)
state = models.CharField(max_length=50, default='pending')
receiver_state = models.CharField(max_length=50, default='pending')
allocation_state = models.CharField(max_length=50, default='pending')
date = models.DateTimeField(null=True)
role = models.JSONField(null=True)
steward_temp_key = models.IntegerField(null=True)
approved_price_status = models.BooleanField(default=True)
calculate_status = models.BooleanField(default=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
overhead = models.BooleanField(default=False)
image = models.CharField(max_length=500, null=True)
quota = models.CharField(max_length=20, null=True)
warehouse = models.BooleanField(default=True)
steward_warehouse = models.BooleanField(default=True)
expire_date_time_registration_code = models.DateTimeField(null=True)
register_date_time_registration_code = models.DateTimeField(null=True)
active_expire_date_time = models.BooleanField(default=False)
return_trash = models.BooleanField(default=False)
return_trash_date = models.DateTimeField(null=True)
returner_trash = models.CharField(max_length=200, null=True)
interface_number = models.CharField(max_length=11, null=True)
expire_time_ten_minute = models.DateTimeField(null=True)
production_date = models.DateTimeField(null=True)
distribution_type = models.CharField(max_length=20, null=True)
Settlement_type = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
# allow = AllowRegisterCodeForStewardAllocation.objects.filter(trash=False, active=True).first()
# if allow:
# if allow and self.registration_code and self.expire_date_time_registration_code is None:
# self.expire_date_time_registration_code = datetime.now() + timedelta(minutes=int(allow.time))
# self.active_expire_date_time = True
self.total_amount_remain = self.total_amount - self.total_amount_paid if self.total_amount - self.total_amount_paid > 0 else 0
super(StewardAllocation, self).save(*args, **kwargs)
class AutomaticStewardAllocation(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_automatic_allocation",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="automatic_steward_allocation",
null=True
)
guilds = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="automatic_guilds_allocation",
null=True
)
number_of_carcasses = models.BigIntegerField(default=0)
real_number_of_carcasses = models.BigIntegerField(default=0)
weight_of_carcasses = models.FloatField(default=0)
real_weight_of_carcasses = models.FloatField(default=0)
final_registration = models.BooleanField(default=False)
registration_code = models.IntegerField(null=True)
logged_registration_code = models.IntegerField(null=True)
state = models.CharField(max_length=50, default='pending')
date = models.DateTimeField(null=True)
role = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(AutomaticStewardAllocation, self).save(*args, **kwargs)
class ProvinceAllowKillHouseChooseStewardGuilds(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="allow_kill_house_steward_guilds",
null=True
)
steward = models.BooleanField(default=False)
guilds = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProvinceAllowKillHouseChooseStewardGuilds, self).save(*args, **kwargs)
class LastUpdate(models.Model):
poultry_hatching = models.JSONField(null=True)
update_date = models.DateTimeField(null=True)
class HatchingLossesPermission(BaseModel):
percent = models.FloatField(default=0)
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(HatchingLossesPermission, self).save(*args, **kwargs)
class WagePayment(BaseModel):
province_kill_request = models.JSONField(null=True)
payment_type = models.CharField(max_length=50, null=True)
type = models.CharField(max_length=100, null=True)
total_amount = models.BigIntegerField(default=0)
total_amount_with_tax = models.BigIntegerField(default=0)
payer = models.JSONField(null=True)
tracking_code = models.CharField(max_length=100, null=True)
refId = models.CharField(max_length=100, null=True)
orderId = models.CharField(max_length=100, null=True)
authority = models.CharField(max_length=100, null=True)
cardHolderPan = models.CharField(max_length=100, null=True)
payer_info = models.CharField(max_length=200, null=True)
state = models.CharField(max_length=20, default='pending')
message = models.TextField(null=True)
link_pay = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(WagePayment, self).save(*args, **kwargs)
class KillHousePurchaseRequest(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_purchase_request",
null=True
)
allow = models.BooleanField(default=True)
limitation = models.BooleanField(default=False)
total_limitation = models.BooleanField(default=False)
limitation_number = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(KillHousePurchaseRequest, self).save(*args, **kwargs)
class Observatory(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="observatory_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="observatory_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="observatory_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="observatory_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(Observatory, self).save(*args, **kwargs)
class PosCompany(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="pos_company_user",
null=True
)
name = models.CharField(max_length=100, null=True)
active = models.BooleanField(default=True)
en_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(PosCompany, self).save(*args, **kwargs)
class PosDeviceVersion(BaseModel):
company = models.ForeignKey(
PosCompany,
on_delete=models.CASCADE,
related_name="pos_version_company",
null=True
)
name = models.CharField(max_length=200, null=True)
code = models.IntegerField()
description = models.TextField(null=True)
enable = models.BooleanField(default=True)
remove = models.BooleanField(default=False)
link = models.TextField(null=True)
checksum = models.TextField(null=True)
def save(self, *args, **kwargs):
super(PosDeviceVersion, self).save(*args, **kwargs)
class Meta:
unique_together = ('company', 'code')
class POSId(BaseModel):
pos_id = models.CharField(max_length=12, null=True)
info = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(POSId, self).save(*args, **kwargs)
class POSMachine(BaseModel):
pos_id = models.CharField(max_length=12, null=True)
pos_unique_id = models.CharField(max_length=6, unique=True, null=True)
token = models.CharField(max_length=36, null=True)
receiver_number = models.CharField(max_length=100, null=True)
terminal_number = models.CharField(max_length=100, null=True)
active = models.BooleanField(default=True)
multi_device = models.BooleanField(default=False)
server_register = models.BooleanField(default=False)
Lat = models.FloatField(null=True)
Long = models.FloatField(null=True)
company_name = models.CharField(max_length=200, null=True)
last_check = models.DateTimeField(null=True)
serial = models.TextField(default="")
mac = models.CharField(max_length=50, null=True)
password = models.CharField(max_length=10, null=True)
ip = models.CharField(max_length=15, default='0.0.0.0')
name = models.TextField(default="")
sdk = models.TextField(default="")
version = models.IntegerField(default=0)
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="user_pos",
null=True
)
owner = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="owned_pos",
null=True
)
current_user = models.ForeignKey(
SystemUserProfile,
on_delete=models.SET_NULL,
null=True,
related_name="current_pos"
)
current_dispenser = models.ForeignKey(
SystemUserProfile,
on_delete=models.SET_NULL,
null=True,
related_name="current_dispenser_pos"
)
current_representative = models.ForeignKey(
Representative,
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name="representative_pos"
)
pos_company = models.ForeignKey(
PosCompany,
on_delete=models.CASCADE,
related_name="company_pos",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_pos",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="guild_pos",
null=True
)
cooperative = models.ForeignKey(
Cooperative,
on_delete=models.CASCADE,
related_name="cooperative_pos",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="steward_pos",
null=True
)
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="dispenser_pos",
null=True
)
def save(self, *args, **kwargs):
super(POSMachine, self).save(*args, **kwargs)
class POSAccessLevel(BaseModel):
pos = models.ForeignKey(POSMachine, on_delete=models.CASCADE, related_name='access_levels')
name = models.CharField(max_length=100, null=True)
in_province_sale = models.BooleanField(default=True)
out_province_sale = models.BooleanField(default=True)
cutting = models.BooleanField(default=True)
freezing = models.BooleanField(default=True)
warehouse = models.BooleanField(default=True)
retail = models.BooleanField(default=True)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(POSAccessLevel, self).save(*args, **kwargs)
class POSAuditLog(models.Model):
ACTION_CHOICES = (
('CHANGE_OWNER', 'تغییر مالک'),
('CHANGE_CURRENT_USER', 'تغییر توزیع کننده'),
('CHANGE_CURRENT_REPRESENTATIVE', 'تغییر نماینده'),
('ACCESSLEVEL_UPDATE', 'بروزرسانی سطح دسترسی'),
)
pos = models.ForeignKey(POSMachine, on_delete=models.CASCADE, related_name='audit_logs')
action = models.CharField(max_length=50, choices=ACTION_CHOICES)
performed = models.ForeignKey(SystemUserProfile, on_delete=models.SET_NULL, null=True)
old_value = models.JSONField(null=True, blank=True)
new_value = models.JSONField(null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
description = models.TextField(null=True, blank=True)
def save(self, *args, **kwargs):
super(POSAuditLog, self).save(*args, **kwargs)
class POSDeviceSession(BaseModel):
pos = models.ForeignKey(
POSMachine,
on_delete=models.CASCADE,
related_name="pos_device_session",
null=True,
)
pos_unique_id = models.CharField(max_length=6, unique=True, null=True)
version = models.IntegerField()
mac = models.CharField(max_length=50)
name = models.TextField(default="")
sdk = models.TextField(default="")
serial = models.TextField(default="")
ip = models.CharField(max_length=15, default='0.0.0.0')
password = models.CharField(max_length=10)
session_create_date = models.DateTimeField(default=datetime.now())
session_last_seen_date = models.DateTimeField(default=datetime.now())
lng = models.FloatField(default=0)
lot = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(POSDeviceSession, self).save(*args, **kwargs)
class POSTransactions(BaseModel):
pos_machine = models.ForeignKey(
POSMachine,
on_delete=models.CASCADE,
related_name="pos_machine_transaction",
null=True
)
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="user_pos_transaction",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_pos_transaction",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="guild_pos_transaction",
null=True
)
cooperative = models.ForeignKey(
Cooperative,
on_delete=models.CASCADE,
related_name="cooperative_pos_transaction",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="steward_pos_transaction",
null=True
)
cart = models.CharField(max_length=20, null=True)
mobile = models.CharField(max_length=20, null=True)
terminal = models.CharField(max_length=100, null=True)
posid = models.CharField(max_length=100, null=True)
result = models.CharField(max_length=500, null=True)
refnum = models.CharField(max_length=200, null=True)
resnum = models.CharField(max_length=200, null=True)
natcode = models.CharField(max_length=20, null=True)
fullname = models.CharField(max_length=200, null=True)
buy_date = models.BigIntegerField(null=True)
date = models.BigIntegerField(null=True)
product = models.JSONField(null=True)
state = models.IntegerField(null=True)
amount = models.FloatField(null=True)
price = models.FloatField(null=True)
lng = models.FloatField(null=True)
lot = models.FloatField(null=True)
checkout = models.BooleanField(null=True)
registered = models.BooleanField(null=True)
paid = models.BooleanField(null=True)
def save(self, *args, **kwargs):
super(POSTransactions, self).save(*args, **kwargs)
class AdditionalProducts(BaseModel):
name = models.CharField(max_length=200, null=True)
image = models.CharField(max_length=500, null=True)
unit_of_measurement = models.CharField(max_length=20, null=True)
selling_free_price = models.BooleanField(default=False)
selling_approved_price = models.BooleanField(default=False)
selling_more_than_inventory = models.BooleanField(default=False)
selling_other_products = models.BooleanField(default=False)
price = models.FloatField(default=0)
priority = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(AdditionalProducts, self).save(*args, **kwargs)
class Product(BaseModel):
name = models.CharField(max_length=200, null=True)
image = models.CharField(max_length=500, null=True)
unit_of_measurement = models.CharField(max_length=20, null=True)
quantity = models.BigIntegerField(default=0)
priority = models.IntegerField(default=0)
sale_quantity = models.BigIntegerField(default=0)
extra_sale_quantity = models.BigIntegerField(default=0)
remain_quantity = models.BigIntegerField(default=0)
weight = models.FloatField(default=0)
sale_weight = models.FloatField(default=0)
extra_sale_weight = models.FloatField(default=0)
remain_weight = models.FloatField(default=0)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_product",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="guild_product",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="steward_product",
null=True
)
selling_free_price = models.BooleanField(default=False)
selling_approved_price = models.BooleanField(default=False)
selling_more_than_inventory = models.BooleanField(default=False)
selling_other_products = models.BooleanField(default=False)
general = models.BooleanField(default=False)
show = models.BooleanField(default=False)
price = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(Product, self).save(*args, **kwargs)
class PosVersion(BaseModel):
build_id = models.BigIntegerField(default=0)
latest_downloadlink = models.TextField()
def save(self, *args, **kwargs):
super(PosVersion, self).save(*args, **kwargs)
class PosItem(BaseModel):
name = models.CharField(max_length=100, null=True)
value = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(PosItem, self).save(*args, **kwargs)
class GuildRoom(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="guild_room_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="guild_room_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="guild_room_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="guild_room_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(GuildRoom, self).save(*args, **kwargs)
class EvacuationPermit(BaseModel):
type = models.CharField(max_length=100, default='optional')
def save(self, *args, **kwargs):
super(EvacuationPermit, self).save(*args, **kwargs)
class SellForFreezing(BaseModel):
permission = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(SellForFreezing, self).save(*args, **kwargs)
class ColdHouseAllocations(BaseModel):
cold_house = models.ForeignKey(
ColdHouse,
on_delete=models.CASCADE,
related_name="cold_house_allocations_cold_house",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="cold_house_allocations_kill_house",
null=True
)
kill_house_request = models.ForeignKey(
KillHouseRequest,
on_delete=models.CASCADE,
related_name="cold_house_allocations_kill_house_request",
null=True
)
kill_house_ware_house = models.ForeignKey(
KillHouseWareHouse,
on_delete=models.CASCADE,
related_name="cold_house_allocations_kill_house_ware_house",
null=True
)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="cold_house_allocations_product",
null=True
)
quantity = models.BigIntegerField(default=0)
accepted_quantity = models.BigIntegerField(default=0)
real_quantity = models.BigIntegerField(default=0)
weight = models.FloatField(default=0)
accepted_weight = models.FloatField(default=0)
real_weight = models.FloatField(default=0)
state = models.CharField(max_length=20, default='pending')
allocation_type = models.CharField(max_length=50, null=True)
reviewer = models.JSONField(null=True)
date = models.DateTimeField(null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ColdHouseAllocations, self).save(*args, **kwargs)
class OperationLimitation(BaseModel):
vet_farm_out_province_limitation = models.BooleanField(default=False)
province_allocation_limitation = models.BooleanField(default=False)
kill_house_allocation_limitation = models.BooleanField(default=False)
kill_house_assignment_limitation = models.BooleanField(default=False)
vet_check_kill_house_assignment_limitation = models.BooleanField(default=False)
kill_house_input_bar_limitation = models.BooleanField(default=False)
kill_house_steward_guild_allocation_limitation = models.BooleanField(default=False)
kill_house_freezing_limitation = models.BooleanField(default=False)
kill_house_free_sale_limitation = models.BooleanField(default=False)
kill_house_free_buy_limitation = models.BooleanField(default=False)
kill_house_vet_limitation = models.BooleanField(default=False)
vet_farm_limitation = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(OperationLimitation, self).save(*args, **kwargs)
class ApprovedPrice(BaseModel):
approved = models.BooleanField(default=False)
lowest_price = models.FloatField(default=0)
highest_price = models.FloatField(default=0)
lowest_weight = models.FloatField(default=0)
highest_weight = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(ApprovedPrice, self).save(*args, **kwargs)
class Announcements(BaseModel):
active = models.BooleanField(default=False)
description = models.TextField(max_length=2000, null=True)
role = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(Announcements, self).save(*args, **kwargs)
class ChickenAgeRange(BaseModel):
active = models.BooleanField(default=False)
maximum = models.IntegerField(default=0)
minimum = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(ChickenAgeRange, self).save(*args, **kwargs)
class TimeRange(BaseModel):
time_range = models.JSONField(null=True)
def save(self, *args, **kwargs):
super(TimeRange, self).save(*args, **kwargs)
class SystemWallet(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="system_wallet_kill_house",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="system_wallet_steward",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="system_wallet_guild",
null=True
)
balance = models.BigIntegerField(default=0)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(SystemWallet, self).save(*args, **kwargs)
class SuperAdmin(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="super_admin_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="super_admin_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="super_admin_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="super_admin_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(SuperAdmin, self).save(*args, **kwargs)
class PaymentGatewayPercentage(BaseModel):
company = models.IntegerField(default=0)
union = models.IntegerField(default=0)
guilds = models.IntegerField(default=0)
other = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(PaymentGatewayPercentage, self).save(*args, **kwargs)
class TotalPaymentGatewayPercentage(BaseModel):
company = models.IntegerField(default=0)
union = models.IntegerField(default=0)
guilds = models.IntegerField(default=0)
other = models.IntegerField(default=0)
type = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(TotalPaymentGatewayPercentage, self).save(*args, **kwargs)
class SlaughterHouseTransaction(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="slaughter_house_transaction_kill_house",
null=True
)
parent_kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="slaughter_house_transaction_parent_kill_house",
null=True
)
amount = models.BigIntegerField(default=0)
amount_with_tax = models.BigIntegerField(default=0)
transaction = models.IntegerField(null=True)
type = models.CharField(max_length=100, null=True)
state = models.CharField(max_length=20, default='pending')
union_share = models.BigIntegerField(default=0)
company_share = models.BigIntegerField(default=0)
guilds_share = models.BigIntegerField(default=0)
city_share = models.BigIntegerField(default=0)
wallet_share = models.BigIntegerField(default=0)
other_share = models.BigIntegerField(default=0)
pay_type = models.CharField(max_length=200, null=True)
saleReferenceId = models.CharField(max_length=100, null=True)
refId = models.CharField(max_length=100, null=True)
orderId = models.CharField(max_length=100, null=True)
cardHolderPan = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(SlaughterHouseTransaction, self).save(*args, **kwargs)
class ShareType(BaseModel):
name = models.CharField(max_length=500, null=True)
en_name = models.CharField(max_length=500, null=True)
account_id = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(ShareType, self).save(*args, **kwargs)
class WageType(BaseModel):
name = models.CharField(max_length=500, null=True)
en_name = models.CharField(max_length=500, null=True)
amount = models.BigIntegerField(default=0)
status = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(WageType, self).save(*args, **kwargs)
class PercentageOfWageType(BaseModel):
wage_type = models.ForeignKey(
WageType,
on_delete=models.CASCADE,
related_name="wage_type_percentage",
null=True
)
share_type = models.ForeignKey(
ShareType,
on_delete=models.CASCADE,
related_name="share_type_percentage",
null=True
)
percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(PercentageOfWageType, self).save(*args, **kwargs)
class SubSectorPercentageOfWageType(BaseModel):
percentage_of_wage_type = models.ForeignKey(
PercentageOfWageType,
on_delete=models.CASCADE,
related_name="sub_sector_wage_type",
null=True
)
city = models.BooleanField(default=False)
percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(SubSectorPercentageOfWageType, self).save(*args, **kwargs)
class TotalWageInformation(BaseModel):
total_amount = models.BigIntegerField(default=0)
total_unpaid_amount = models.BigIntegerField(default=0)
total_paid_amount = models.BigIntegerField(default=0)
total_weight = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(TotalWageInformation, self).save(*args, **kwargs)
class InternalTransaction(BaseModel):
date = models.DateTimeField(auto_now_add=True)
amount = models.BigIntegerField(default=0)
amount_with_tax = models.BigIntegerField(default=0)
status = models.CharField(max_length=100, default='pending')
transaction_type = models.CharField(max_length=100, null=True)
type = models.CharField(max_length=100, null=True)
payer_type = models.CharField(max_length=100, null=True)
message = models.TextField(null=True)
saleReferenceId = models.CharField(max_length=100, null=True)
refId = models.CharField(max_length=100, null=True)
authority = models.CharField(max_length=100, null=True)
orderId = models.CharField(max_length=100, null=True)
cardHolderPan = models.CharField(max_length=100, null=True)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
null=True,
related_name="internal_transaction_kill_house_user"
)
parent_kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="internal_transaction_parent_kill_house",
null=True
)
chain_company = models.ForeignKey(
ChainCompany,
on_delete=models.CASCADE,
null=True,
related_name="internal_transaction_chain_company_user"
)
poultry_request = models.ManyToManyField(
PoultryRequest,
related_name='poutry_request_transactions',
null=True, blank=True)
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
null=True,
related_name="internal_transaction_poultry"
)
out_province_poultry_request_buyer = models.ForeignKey(
OutProvincePoultryRequestBuyer,
on_delete=models.CASCADE,
null=True,
related_name="internal_transaction_out_province_poultry_request_buyer"
)
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
null=True,
related_name="internal_transaction_user"
)
union_share = models.BigIntegerField(default=0)
union_account = models.CharField(max_length=50, null=True)
company_share = models.BigIntegerField(default=0)
company_account = models.CharField(max_length=50, null=True)
guilds_share = models.BigIntegerField(default=0)
guilds_account = models.CharField(max_length=50, null=True)
city_share = models.BigIntegerField(default=0)
city_account = models.CharField(max_length=50, null=True)
wallet_share = models.BigIntegerField(default=0)
wallet_account = models.CharField(max_length=50, null=True)
other_share = models.BigIntegerField(default=0)
other_account = models.CharField(max_length=50, null=True)
link_pay = models.BooleanField(default=False)
description = models.TextField(null=True)
image = models.CharField(max_length=500, null=True)
payer_fullname = models.CharField(max_length=200, null=True)
payer_mobile = models.CharField(max_length=11, null=True)
temporary_trash = models.BooleanField(default=False)
temporary_deleted = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(InternalTransaction, self).save(*args, **kwargs)
class CityLivestock(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_livestock_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_livestock_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="city_livestock_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_livestock_wallet",
null=True
)
user_id_foreign_key = models.IntegerField(null=True)
address_id_foreign_key = models.IntegerField(null=True)
user_bank_id_foreign_key = models.IntegerField(null=True)
wallet_id_foreign_key = models.IntegerField(null=True)
city_jahad_id_key = models.IntegerField(null=True)
identity_documents = models.JSONField(null=True)
active = models.BooleanField(default=True)
city_number = models.IntegerField(default=0)
city_name = models.CharField(max_length=100, null=True)
province_number = models.IntegerField(default=0)
province_name = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(CityLivestock, self).save(*args, **kwargs)
class ImprovingLivestock(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="improving_livestock_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="improving_livestock_address",
null=True
)
user_bank_info = models.ForeignKey(BankCard, on_delete=models.CASCADE, related_name="improving_livestock_bank_info",
null=True)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="improving_livestock_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(ImprovingLivestock, self).save(*args, **kwargs)
class ReportSubmissionTime(BaseModel):
type = models.CharField(max_length=100, null=True)
hour = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(ReportSubmissionTime, self).save(*args, **kwargs)
class Reports(BaseModel):
title = models.CharField(max_length=500, null=True)
end_point = models.CharField(max_length=50, null=True)
active = models.BooleanField(default=False)
description = models.TextField(null=True)
def save(self, *args, **kwargs):
super(Reports, self).save(*args, **kwargs)
class ReportsUsers(BaseModel):
active = models.BooleanField(default=True)
firstname = models.CharField(max_length=100, null=True)
lastname = models.CharField(max_length=100, null=True)
fullname = models.CharField(max_length=100, null=True)
city = models.CharField(max_length=100, null=True)
position = models.CharField(max_length=100, null=True)
mobile = models.CharField(max_length=11, null=True)
user_token = models.CharField(max_length=4, null=True, unique=True)
def save(self, *args, **kwargs):
self.fullname = self.firstname + " " + self.lastname
if self.user_token is None:
while (True):
res = ''.join(random.choices(string.ascii_lowercase + string.digits, k=3))
res = base_user_gate_way_id + res
if not ReportsUsers.objects.filter(user_token=res).exists():
break
self.user_token = res
super(ReportsUsers, self).save(*args, **kwargs)
class UserReports(BaseModel):
active = models.BooleanField(default=True)
user = models.ForeignKey(
ReportsUsers,
on_delete=models.CASCADE,
related_name="user_reports_user",
null=True
)
report = models.ForeignKey(
Reports,
on_delete=models.CASCADE,
related_name="report_user_reports",
null=True
)
def save(self, *args, **kwargs):
super(UserReports, self).save(*args, **kwargs)
class MovingTextDashboardStatus(BaseModel):
active = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(MovingTextDashboardStatus, self).save(*args, **kwargs)
class MovingTextRole(BaseModel):
role = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(MovingTextRole, self).save(*args, **kwargs)
class MovingText(BaseModel):
moving_text = models.TextField(null=True)
active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(MovingText, self).save(*args, **kwargs)
class MovingTextWithRole(BaseModel):
moving_text = models.ForeignKey(
MovingText,
on_delete=models.CASCADE,
related_name="role_moving_text",
null=True
)
role = models.ForeignKey(
MovingTextRole,
on_delete=models.CASCADE,
related_name="moving_text_role",
null=True
)
active = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(MovingTextWithRole, self).save(*args, **kwargs)
class AdminX(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="admin_x_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="admin_x_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="admin_x_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="admin_x_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(AdminX, self).save(*args, **kwargs)
class Supporter(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="supporter_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="supporter_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="supporter_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="supporter_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(Supporter, self).save(*args, **kwargs)
class ZarinPalAccounts(BaseModel):
name = models.CharField(max_length=50, null=True)
en_name = models.CharField(max_length=50, null=True)
account = models.CharField(max_length=50, null=True)
def save(self, *args, **kwargs):
super(ZarinPalAccounts, self).save(*args, **kwargs)
class PoultryExport(BaseModel):
allow = models.BooleanField(default=False)
limitation_status = models.BooleanField(default=False)
limitation = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(PoultryExport, self).save(*args, **kwargs)
class PoultryOutProvinceRequest(BaseModel):
allow = models.BooleanField(default=False)
limitation_status = models.BooleanField(default=False)
limitation = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(PoultryOutProvinceRequest, self).save(*args, **kwargs)
class VetFarmAggregatePermission(BaseModel):
allow = models.BooleanField(default=False)
limitation = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(VetFarmAggregatePermission, self).save(*args, **kwargs)
class KillHouseBarLimitation(BaseModel):
allow = models.BooleanField(default=False)
limitation = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(KillHouseBarLimitation, self).save(*args, **kwargs)
class KillHouseStewardGuildRelation(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_relation",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="guild_relation",
null=True
)
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_relation",
null=True
)
allocation_limit = models.IntegerField(default=0)
allocation_type = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(KillHouseStewardGuildRelation, self).save(*args, **kwargs)
class OutOfProvinceSellingCarcassesPermission(BaseModel):
active = models.BooleanField(default=False)
type = models.CharField(max_length=100, null=True)
percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(OutOfProvinceSellingCarcassesPermission, self).save(*args, **kwargs)
class ProductPricingType(BaseModel):
province = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(ProductPricingType, self).save(*args, **kwargs)
class KillHousePricePermission(BaseModel):
allow = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(KillHousePricePermission, self).save(*args, **kwargs)
class IranProvinces(models.Model):
name = models.CharField(max_length=250)
slug = models.CharField(max_length=250)
tel_prefix = models.CharField(max_length=3, null=True)
class IranCities(models.Model):
name = models.CharField(max_length=250)
slug = models.CharField(max_length=250)
province_id = models.ForeignKey(IranProvinces, on_delete=models.CASCADE)
class AutomaticDirectBuyingPermission(models.Model):
allow = models.BooleanField(default=False)
start_time = models.TimeField(null=True)
end_time = models.TimeField(null=True)
def save(self, *args, **kwargs):
super(AutomaticDirectBuyingPermission, self).save(*args, **kwargs)
class AgeNotificationPoultry(BaseModel):
message = models.TextField()
poultry_age = models.CharField(max_length=2)
losses_percent = models.IntegerField(null=True)
def save(self, *args, **kwargs):
super(AgeNotificationPoultry, self).save(*args, **kwargs)
class PosMachineTransactions(BaseModel):
pos = models.ForeignKey(
POSMachine,
on_delete=models.CASCADE,
related_name="roles_products_pos_transactions",
null=True
)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="roles_products_pos_transactions",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="transaction_kill_house",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="transaction_guild",
null=True
)
check_id = models.CharField(max_length=100, null=True, unique=True)
mobile = models.CharField(max_length=100, null=True, blank=True)
natcode = models.CharField(max_length=100, null=True, blank=True)
fullname = models.CharField(max_length=100, null=True, blank=True)
date = models.DateTimeField(null=True)
pos_date = models.BigIntegerField(default=0)
price = models.BigIntegerField(default=0)
price_paid = models.BigIntegerField(default=0)
price_type = models.CharField(max_length=50, null=True, blank=True)
paid = models.BooleanField(default=False)
state = models.IntegerField(default=0)
posProvider = models.CharField(max_length=100, null=True)
result = models.CharField(max_length=1000, null=True)
refnum = models.CharField(max_length=100, null=True, blank=True)
terminal = models.CharField(max_length=100, null=True, blank=True)
cart = models.CharField(max_length=100, null=True, blank=True)
lng = models.FloatField(default=0)
lot = models.FloatField(default=0)
# additional = models.CharField(max_length=200, null=True, blank=True)
additional = models.TextField(null=True, blank=True)
current_price = models.IntegerField(default=0)
checkout = models.BooleanField(default=False)
weight = models.IntegerField(default=0)
hasTry = models.BooleanField(default=False)
live_stock = models.BooleanField(default=False)
warehouse = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(PosMachineTransactions, self).save(*args, **kwargs)
class ProductsTransactions(BaseModel):
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="products_transactions_product",
null=True
)
other_product = models.ForeignKey(
OtherProducts,
on_delete=models.CASCADE,
related_name="products_transactions_other_product",
null=True
)
transaction = models.ForeignKey(
PosMachineTransactions,
on_delete=models.CASCADE,
related_name="transaction_products_transactions",
null=True
)
live_stack_products = models.ForeignKey(
LiveStockRolseProduct,
on_delete=models.CASCADE,
related_name="products_transactions_live_stack_products",
null=True
)
price = models.BigIntegerField(default=0)
cur_price = models.BigIntegerField(default=0)
cur_weight = models.BigIntegerField(default=0)
total_price = models.BigIntegerField(default=0)
price_approved = models.BooleanField(default=False)
name = models.CharField(max_length=300, null=True)
image = models.CharField(max_length=500, null=True)
unit = models.CharField(max_length=10, null=True)
targetunit = models.CharField(max_length=10, null=True)
warehouse = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(ProductsTransactions, self).save(*args, **kwargs)
class PosAllocationTransactions(BaseModel):
pos = models.ForeignKey(
POSMachine,
on_delete=models.CASCADE,
related_name="steward_allocation_pos_transactions",
null=True
)
allocation = models.ForeignKey(
StewardAllocation,
on_delete=models.CASCADE,
related_name="steward_allocation_transactions",
null=True
)
check_id = models.CharField(max_length=100, null=True)
date = models.DateTimeField(null=True)
price = models.BigIntegerField(default=0)
paid = models.BooleanField(default=False)
state = models.IntegerField(default=0)
posProvider = models.CharField(max_length=100, null=True)
result = models.TextField(null=True)
refnum = models.CharField(max_length=100, null=True, blank=True)
terminal = models.CharField(max_length=100, null=True, blank=True)
cart = models.CharField(max_length=100, null=True, blank=True)
lng = models.FloatField(default=0)
lot = models.FloatField(default=0)
additional = models.CharField(max_length=200, null=True, blank=True)
def save(self, *args, **kwargs):
super(PosAllocationTransactions, self).save(*args, **kwargs)
class BroadcastPrice(BaseModel):
active = models.BooleanField(default=False)
kill_house_price = models.FloatField(default=0)
steward_price = models.FloatField(default=0)
guild_price = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(BroadcastPrice, self).save(*args, **kwargs)
class OutProvinceSaleLimitation(BaseModel):
active = models.BooleanField(default=False)
kill_house = models.FloatField(default=0)
steward = models.FloatField(default=0)
guild = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(OutProvinceSaleLimitation, self).save(*args, **kwargs)
class ParentCompany(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="parent_company_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="parent_company_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="parent_company_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="parent_company_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(ParentCompany, self).save(*args, **kwargs)
class CityGuild(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="city_guild_user",
null=True
)
address = models.ForeignKey(
SystemAddress,
on_delete=models.CASCADE,
related_name="city_guild_address",
null=True
)
user_bank_info = models.ForeignKey(
BankCard,
on_delete=models.CASCADE,
related_name="city_guild_bank_info",
null=True
)
wallet = models.ForeignKey(
Wallet,
on_delete=models.CASCADE,
related_name="city_guild_wallet",
null=True
)
wallet_amount = models.BigIntegerField(default=0)
unit_name = models.CharField(max_length=200, null=True)
def save(self, *args, **kwargs):
super(CityGuild, self).save(*args, **kwargs)
class SubSectorTransactions(BaseModel):
city_operator = models.ForeignKey(
CityOperator,
on_delete=models.CASCADE,
related_name="city_operator_transactions",
null=True
)
vet = models.ForeignKey(
Vet,
on_delete=models.CASCADE,
related_name="vet_transactions",
null=True
)
city_guild = models.ForeignKey(
CityGuild,
on_delete=models.CASCADE,
related_name="city_guild_transactions",
null=True
)
date = models.DateTimeField(null=True)
from_account = models.CharField(max_length=200, null=True)
to_account = models.CharField(max_length=200, null=True)
type = models.CharField(max_length=50, null=True)
amount = models.BigIntegerField(default=0)
image = models.CharField(max_length=500, null=True)
def save(self, *args, **kwargs):
super(SubSectorTransactions, self).save(*args, **kwargs)
class PosSegmentation(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_segmentation",
null=True
)
steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="steward_segmentation",
null=True
)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="guild_segmentation",
null=True
)
product = models.ForeignKey(
RolesProducts,
on_delete=models.CASCADE,
related_name="product_segmentation",
null=True
)
to_guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="to_guild_segmentation",
null=True
)
to_steward = models.ForeignKey(
Steward,
on_delete=models.CASCADE,
related_name="to_steward_segmentation",
null=True
)
dispenser = models.ForeignKey(
Dispenser,
on_delete=models.CASCADE,
related_name="segmentation_dispenser",
null=True
)
representative = models.ForeignKey(
Representative,
on_delete=models.CASCADE,
related_name="segmentation_representative",
null=True
)
date = models.DateTimeField(null=True)
weight = models.BigIntegerField(default=0)
sale_type = models.CharField(max_length=20, null=True)
quota = models.CharField(max_length=20, null=True)
warehouse = models.BooleanField(default=True)
production_date = models.DateTimeField(null=True)
distribution_type = models.CharField(max_length=20, null=True)
amount = models.BigIntegerField(default=0)
total_amount = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(PosSegmentation, self).save(*args, **kwargs)
class PoultryPrediction(BaseModel):
poultry = models.ForeignKey(
Poultry,
on_delete=models.CASCADE,
related_name="prediction_poultry",
null=True
)
date = models.DateTimeField(null=True)
killing_ave_age = models.IntegerField(default=1)
active_left_over = models.IntegerField(default=0)
killing_ave_count = models.IntegerField(default=0)
killing_ave_weight = models.IntegerField(default=0)
killing_loss_weight_percent = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(PoultryPrediction, self).save(*args, **kwargs)
class BarDifferenceRequest(BaseModel):
hatching = models.ForeignKey(
PoultryHatching,
on_delete=models.CASCADE,
related_name="difference_hatching",
null=True
)
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="difference_kill_house",
null=True
)
state = models.CharField(max_length=20, default='pending')
register_fullname = models.CharField(max_length=200, null=True)
register_mobile = models.CharField(max_length=200, null=True)
register_message = models.TextField(null=True)
quantity = models.IntegerField(default=0)
real_quantity = models.IntegerField(default=0)
weight = models.IntegerField(default=0)
real_weight = models.IntegerField(default=0)
violation_image = models.JSONField(null=True)
acceptor_image = models.JSONField(null=True)
acceptor_fullname = models.CharField(max_length=200, null=True)
acceptor_mobile = models.CharField(max_length=200, null=True)
acceptor_date = models.DateTimeField(null=True)
acceptor_message = models.TextField(null=True)
def save(self, *args, **kwargs):
super(BarDifferenceRequest, self).save(*args, **kwargs)
class CookieSamasat(models.Model):
cookie = models.TextField(null=True)
table_name = models.CharField(max_length=100, null=True, blank=True)
def save(self, *args, **kwargs):
super(CookieSamasat, self).save(*args, **kwargs)
class LiveChickenTransportDetails(BaseModel):
kill_house = models.ForeignKey(KillHouse, on_delete=models.CASCADE, null=True)
hatching = models.ForeignKey(PoultryHatching, on_delete=models.CASCADE, null=True)
quarantine_code = models.CharField(max_length=100, null=True)
rejester_date = models.DateTimeField(null=True)
quantity = models.IntegerField(null=True)
state = models.CharField(max_length=100, null=True)
product_name = models.CharField(max_length=200, null=True)
kill_house_unique_identifier = models.CharField(max_length=100, null=True)
kill_house_name = models.CharField(max_length=100, null=True)
status_registration_date = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
super(LiveChickenTransportDetails, self).save(*args, **kwargs)
class RequestLimitation(BaseModel):
limitation = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(RequestLimitation, self).save(*args, **kwargs)
class PriceConfirmation(BaseModel):
poultry_status = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(PriceConfirmation, self).save(*args, **kwargs)
class ArchiveWageInfo(BaseModel):
start_year = models.DateTimeField(null=True)
end_year = models.DateTimeField(null=True)
total_wage = models.BigIntegerField(default=0)
total_paid_wage = models.BigIntegerField(default=0)
total_company_paid_wage = models.BigIntegerField(default=0)
total_union_paid_wage = models.BigIntegerField(default=0)
total_guild_paid_wage = models.BigIntegerField(default=0)
total_vet_paid_wage = models.BigIntegerField(default=0)
def save(self, *args, **kwargs):
super(ArchiveWageInfo, self).save(*args, **kwargs)
class CompanyBeneficiaryAccount(BaseModel):
name = models.CharField(max_length=200, null=True)
shaba = models.CharField(max_length=200, null=True)
percent = models.BigIntegerField(default=0)
in_province = models.BooleanField(default=False)
out_province = models.BooleanField(default=False)
unique_code = models.IntegerField(null=True)
def save(self, *args, **kwargs):
if self.unique_code is None:
last_uniq = CompanyBeneficiaryAccount.objects.filter().last().unique_code
self.unique_code = last_uniq + 1
super(CompanyBeneficiaryAccount, self).save(*args, **kwargs)
class HatchingIncreaseRequest(BaseModel):
hatching = models.ForeignKey(PoultryHatching, on_delete=models.CASCADE,
related_name="increase_hatching",
null=True)
hatching_quantity = models.IntegerField(null=True)
quantity = models.IntegerField(null=True)
hatching_kill_quantity = models.IntegerField(null=True)
hatching_left_over = models.IntegerField(null=True)
hatching_losses = models.IntegerField(null=True)
message = models.TextField(null=True)
registerer_name = models.CharField(max_length=250, null=True)
registerer_role = models.CharField(max_length=50, null=True)
registerer_mobile = models.CharField(max_length=20, null=True)
date = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
super(HatchingIncreaseRequest, self).save(*args, **kwargs)
class ChickenCommissionPrices(BaseModel):
kill_house_price = models.IntegerField(default=15000)
wholesaler_price = models.IntegerField(default=20000)
retailer_price = models.IntegerField(default=40000)
chicken_average_price = models.IntegerField(default=0)
province_kill_request_amount = models.IntegerField(default=0)
poultry_request_amount = models.IntegerField(default=0)
kill_request_amount = models.IntegerField(default=0)
date = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
super(ChickenCommissionPrices, self).save(*args, **kwargs)
class CommonlyUsed(BaseModel):
kill_house = models.ForeignKey(KillHouse, on_delete=models.CASCADE,
related_name="commonly_used_kill_house",
null=True)
guild = models.ForeignKey(Guilds, on_delete=models.CASCADE,
related_name="commonly_used_guild",
null=True)
steward = models.ForeignKey(Guilds, on_delete=models.CASCADE,
related_name="commonly_used_steward",
null=True)
priority = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(CommonlyUsed, self).save(*args, **kwargs)
class PercentageDropLimitation(BaseModel):
kill_house_limit_percent_down = models.IntegerField(default=0)
kill_house_limit_percent_up = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(PercentageDropLimitation, self).save(*args, **kwargs)
class UploadImageLimitation(BaseModel):
kill_house_allocation = models.BooleanField(default=False)
kill_house_free_sale = models.BooleanField(default=False)
steward_allocation = models.BooleanField(default=False)
steward_free_sale = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(UploadImageLimitation, self).save(*args, **kwargs)
class ApkInfo(BaseModel):
info = models.JSONField(null=True)
download_link = models.CharField(max_length=700, null=True, blank=True)
def save(self, *args, **kwargs):
super(ApkInfo, self).save(*args, **kwargs)
class DirectBuyingVerification(BaseModel):
poultry_code_mandatory = models.BooleanField(default=False)
payment_deadline = models.BooleanField(default=False)
payment_deadline_days = models.IntegerField(default=0)
def save(self, *args, **kwargs):
super(DirectBuyingVerification, self).save(*args, **kwargs)
class DirectBuyingPayment(BaseModel):
province_kill_request = models.ForeignKey(ProvinceKillRequest, on_delete=models.CASCADE,
related_name="direct_buying_province_kill_request",
null=True)
amount = models.BigIntegerField(default=0)
image = models.CharField(max_length=700, null=True)
date = models.DateTimeField(null=True)
payment_registrar = models.CharField(max_length=200, null=True)
payment_registrar_mobile = models.CharField(max_length=20, null=True)
payment_deadline_supporter_message = models.TextField(null=True)
def save(self, *args, **kwargs):
super(DirectBuyingPayment, self).save(*args, **kwargs)
class FinePermission(BaseModel):
out_poultry_request = models.BooleanField(default=False)
out_poultry_request_start_time = models.TimeField(null=True)
out_poultry_request_end_time = models.TimeField(null=True)
out_poultry_request_fine_coefficient = models.FloatField(default=0)
direct_buying = models.BooleanField(default=False)
direct_buying_start_time = models.TimeField(null=True)
direct_buying_end_time = models.TimeField(null=True)
direct_buying_fine_coefficient = models.FloatField(default=0)
in_province_allocations = models.BooleanField(default=False)
in_province_allocations_fine_coefficient = models.FloatField(default=0)
in_province_bars = models.BooleanField(default=False)
in_province_bars_fine_coefficient = models.FloatField(default=0)
name = models.CharField(max_length=200, null=True)
start_time = models.TimeField(null=True)
end_time = models.TimeField(null=True)
fine_coefficient = models.FloatField(default=0)
fine = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(FinePermission, self).save(*args, **kwargs)
class ManagementSendSms(BaseModel):
name = models.CharField(max_length=100, null=True)
username = models.CharField(max_length=100, null=True)
password = models.CharField(max_length=100, null=True)
class ShowMarketRequest(BaseModel):
allow = models.BooleanField(default=False)
start_time = models.TimeField(null=True)
end_time = models.TimeField(null=True)
def save(self, *args, **kwargs):
super(ShowMarketRequest, self).save(*args, **kwargs)
class ManagementHatchingAgeRange(BaseModel):
from_age = models.SmallIntegerField(default=0, max_length=3)
to_age = models.SmallIntegerField(default=0, max_length=3)
from_weight = models.FloatField(default=0)
to_weight = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(ManagementHatchingAgeRange, self).save(*args, **kwargs)
class IndexWeightCategory(BaseModel):
name = models.CharField(max_length=100, null=True)
min_value = models.FloatField(default=0)
max_value = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(IndexWeightCategory, self).save(*args, **kwargs)
class PoultryScience(BaseModel):
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="poultry_science_user",
null=True
)
poultry = models.ManyToManyField(
Poultry,
related_name="poultry_entries",
)
engineering_code = models.CharField(max_length=50, null=True, blank=True)
def save(self, *args, **kwargs):
super(PoultryScience, self).save(*args, **kwargs)
class PoultryScienceReport(BaseModel):
poultry_science = models.ForeignKey(
PoultryScience,
on_delete=models.CASCADE,
related_name="poultry_science_reporter",
null=True
)
hatching = models.ForeignKey(
PoultryHatching,
on_delete=models.CASCADE,
related_name="poultry_science_hatching",
null=True
)
user = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="poultry_science_report_user",
null=True
)
date = models.DateTimeField(null=True)
image = models.JSONField(null=True)
lat = models.FloatField(null=True)
log = models.FloatField(null=True)
reporter_fullname = models.CharField(null=True, max_length=50)
reporter_mobile = models.CharField(null=True, max_length=11)
reporter_role = models.CharField(null=True, max_length=50)
state = models.CharField(default='pending', max_length=50)
real_quantity_ai = models.IntegerField(null=True)
message_ai = models.CharField(null=True, max_length=250)
real_quantity = models.IntegerField(null=True)
message = models.CharField(null=True, max_length=250)
message_registerer_fullname = models.CharField(null=True, max_length=50)
message_registerer_mobile = models.CharField(null=True, max_length=11)
message_registerer_role = models.CharField(null=True, max_length=50)
report_information = models.JSONField(null=True)
report_id = models.IntegerField(null=True)
chicken_age = models.IntegerField(null=True)
def save(self, *args, **kwargs):
if self.report_id is None:
last = PoultryScienceReport.objects.filter().last()
if last:
last_report = last.report_id
else:
last_report = 1000
self.report_id = last_report + 1
super(PoultryScienceReport, self).save(*args, **kwargs)
class TokenEitaaForEachVet(models.Model):
token = models.CharField(max_length=250)
vet_fullname = models.CharField(max_length=50)
vet_mobile = models.CharField(max_length=11)
group_name = models.CharField(max_length=250)
def save(self, *args, **kwargs):
super(TokenEitaaForEachVet, self).save(*args, **kwargs)
class UserLoginLog(models.Model):
user_profile = models.ForeignKey(
SystemUserProfile,
on_delete=models.CASCADE,
related_name="login_logs_user"
)
headers = models.JSONField(null=True, blank=True)
ip_address = models.CharField(max_length=500, null=True, blank=True)
user_agent = models.CharField(max_length=500, null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
super(UserLoginLog, self).save(*args, **kwargs)
class AllowRegisterCodeForStewardAllocation(BaseModel):
active = models.BooleanField(default=False)
time = models.CharField(max_length=50, null=True)
def save(self, *args, **kwargs):
super(AllowRegisterCodeForStewardAllocation, self).save(*args, **kwargs)
class AllowRegisterCodeForGuilds(BaseModel):
active = models.BooleanField(default=False)
time = models.CharField(max_length=50, null=True)
has_time = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(AllowRegisterCodeForGuilds, self).save(*args, **kwargs)
class StewardAppLogin(BaseModel):
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_login",
null=True)
created_at = models.DateTimeField(auto_now_add=True)
device_name = models.CharField(max_length=200, null=True)
def save(self, *args, **kwargs):
super(StewardAppLogin, self).save(*args, **kwargs)
class StewardRequest(BaseModel):
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_request",
null=True)
date = models.DateTimeField(null=True)
quantity = models.IntegerField(default=0)
weight = models.IntegerField(default=0)
state = models.CharField(default='pending', max_length=50)
registerer = models.CharField(null=True, max_length=250)
registerer_mobile = models.CharField(null=True, max_length=250)
registerer_role = models.CharField(null=True, max_length=250)
def save(self, *args, **kwargs):
super(StewardRequest, self).save(*args, **kwargs)
class RestrictionCarcassDistribution(BaseModel):
allow = models.BooleanField(default=False)
time = models.TimeField(null=True)
distribution_type = models.CharField(max_length=50, default='KillHouse')
out = models.BooleanField(default=False)
def save(self, *args, **kwargs):
super(RestrictionCarcassDistribution, self).save(*args, **kwargs)
class AllowRegisterCodeForKillHouseFreeSaleBarInformation(BaseModel):
active = models.BooleanField(default=False)
time = models.CharField(max_length=50, null=True)
def save(self, *args, **kwargs):
super(AllowRegisterCodeForKillHouseFreeSaleBarInformation, self).save(*args, **kwargs)
class AllowRegisterCodeForStewardFreeSaleBarInformation(BaseModel):
active = models.BooleanField(default=False)
time = models.CharField(max_length=50, null=True)
def save(self, *args, **kwargs):
super(AllowRegisterCodeForStewardFreeSaleBarInformation, self).save(*args, **kwargs)
class LimitationForDirectPurchaseAndBarInformation(BaseModel):
active = models.BooleanField(default=False)
start_time = models.TimeField(null=True, blank=True)
end_time = models.TimeField(null=True, blank=True)
def save(self, *args, **kwargs):
super(LimitationForDirectPurchaseAndBarInformation, self).save(*args, **kwargs)
class WarehouseArchive(BaseModel):
kill_house = models.ForeignKey(
KillHouse,
on_delete=models.CASCADE,
related_name="kill_house_archive",
null=True)
steward = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="steward_archive",
null=True)
guild = models.ForeignKey(
Guilds,
on_delete=models.CASCADE,
related_name="guild_archive",
null=True)
date = models.DateTimeField(null=True)
weight = models.FloatField(default=0)
image = models.CharField(max_length=500, null=True)
quota = models.CharField(max_length=20, null=True)
description = models.TextField(null=True)
registerer = models.CharField(null=True, max_length=250)
registerer_mobile = models.CharField(null=True, max_length=250)
registerer_role = models.CharField(null=True, max_length=250)
warehouse = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(WarehouseArchive, self).save(*args, **kwargs)
class SmsRecipient(BaseModel):
phone_number = models.CharField(max_length=11, unique=True)
name = models.CharField(max_length=100, null=True)
is_active = models.BooleanField(default=True)
def save(self, *args, **kwargs):
super(SmsRecipient, self).save(*args, **kwargs)
class PosDeviceSetting(BaseModel):
pos_machin = models.CharField(max_length=100, null=True)
owner = models.TextField(null=True)
serial = models.TextField(null=True)
key_id = models.TextField(null=True)
key_value = models.TextField(null=True)
last_modify = models.DateTimeField(null=True)
def save(self, *args, **kwargs):
super(PosDeviceSetting, self).save(*args, **kwargs)
class MarketDailyLimitation(BaseModel):
quantity = models.IntegerField(default=0)
active = models.BooleanField(default=False)
register_role = models.CharField(max_length=50, null=True)
register_fullname = models.CharField(max_length=100, null=True)
register_mobile = models.CharField(max_length=100, null=True)
def save(self, *args, **kwargs):
super(MarketDailyLimitation, self).save(*args, **kwargs)
class HatchingArchivePercent(BaseModel):
active = models.BooleanField(default=False)
percent = models.FloatField(default=0)
def save(self, *args, **kwargs):
super(HatchingArchivePercent, self).save(*args, **kwargs)
class RequestLog(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
null=True,
blank=True,
on_delete=models.SET_NULL
)
method = models.CharField(max_length=10)
path = models.TextField()
query_params = models.JSONField(null=True, blank=True)
body = models.JSONField(null=True, blank=True)
headers = models.JSONField(null=True, blank=True)
status_code = models.PositiveIntegerField(null=True)
ip_address = models.GenericIPAddressField(null=True, blank=True)
duration = models.FloatField(help_text="Request duration in seconds")
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.method} {self.path} ({self.status_code})"