XH_Digital_Management/application/org_mgnt/models.py

107 lines
5.0 KiB
Python
Raw Normal View History

2024-05-15 13:59:41 +08:00
from django.db import models
# 公司主体信息登记表
class CompanyEntity(models.Model):
BUSINESS_STATUS_CHOICES = (
('存续', '存续'),
('注销', '注销'),
)
entity_id = models.AutoField(primary_key=True, verbose_name='主体ID')
company_type = models.CharField(max_length=255, verbose_name='公司类型')
company_name = models.CharField(max_length=255, verbose_name='公司名称')
registration_address = models.CharField(max_length=255, verbose_name='注册地址')
registered_capital = models.DecimalField(max_digits=20, decimal_places=2, verbose_name='注册资本金')
capital_paid_time = models.DateField(verbose_name='实缴时间')
capital_paid = models.DecimalField(max_digits=20, decimal_places=2, verbose_name='实缴资金')
establishment_time = models.DateField(verbose_name='设立时间')
operation_period = models.CharField(max_length=255, verbose_name='营业期限')
taxpayer_identification_number = models.CharField(max_length=255, verbose_name='纳税人识别号')
business_status = models.CharField(max_length=255, choices=BUSINESS_STATUS_CHOICES, verbose_name='公司经营状态')
scope_of_business = models.TextField(verbose_name='营业范围')
purpose_of_company = models.CharField(max_length=255, verbose_name='公司用途')
shareholders_and_stakes = models.TextField(verbose_name='股东姓名及持股比例')
chairman = models.CharField(max_length=255, verbose_name='董事长')
directors = models.CharField(max_length=255, verbose_name='董事')
supervisor_chairman = models.CharField(max_length=255, verbose_name='监事长')
employee_supervisor = models.CharField(max_length=255, verbose_name='职工监事')
supervisors = models.CharField(max_length=255, verbose_name='监事')
general_manager = models.CharField(max_length=255, verbose_name='总经理')
financial_officer = models.CharField(max_length=255, verbose_name='财务负责人')
class Meta:
verbose_name = '公司主体信息'
verbose_name_plural = '公司主体信息登记表'
def __str__(self):
return f"{self.company_name} - {self.entity_id}"
# 主体信息变更记录表
class EntityChangeRecord(models.Model):
record_id = models.AutoField(primary_key=True, verbose_name='记录编号')
company_name = models.CharField(max_length=255, verbose_name='公司名称')
change_date = models.DateField(verbose_name='变更日期')
change_type = models.CharField(max_length=255, verbose_name='变更类型')
content_before_change = models.TextField(verbose_name='变更前内容')
content_after_change = models.TextField(verbose_name='变更后内容')
change_reason = models.TextField(verbose_name='变更原因')
change_executed_by = models.CharField(max_length=255, verbose_name='变更执行人')
class Meta:
verbose_name = '主体信息变更记录'
verbose_name_plural = '主体信息变更记录表'
def __str__(self):
return f"{self.company_name} - {self.change_date} - {self.change_type}"
# 公司银行账户表
class CompanyBankAccount(models.Model):
ACCOUNT_TYPE_CHOICES = (
('基本户', '基本户'),
('一般户', '一般户'),
)
account_id = models.AutoField(primary_key=True, verbose_name='账户ID')
entity_id = models.ForeignKey(CompanyEntity, on_delete=models.CASCADE, verbose_name='公司ID')
bank_name = models.CharField(max_length=255, verbose_name='开户行名称')
account_number = models.CharField(max_length=255, verbose_name='账号')
account_type = models.CharField(max_length=10, choices=ACCOUNT_TYPE_CHOICES, verbose_name='账户类型')
class Meta:
verbose_name = '公司银行账户'
verbose_name_plural = '公司银行账户表'
def __str__(self):
return f"{self.bank_name} - {self.account_number}"
2024-05-15 13:59:41 +08:00
class PrimaryDepartment(models.Model):
primary_department_id = models.AutoField(primary_key=True, verbose_name='部门ID')
department_name = models.CharField(max_length=255, unique=True, verbose_name='部门名称')
description = models.TextField(blank=True, null=True, verbose_name='描述')
2024-05-15 13:59:41 +08:00
class Meta:
verbose_name = '一级部门'
2024-05-15 13:59:41 +08:00
verbose_name_plural = '一级部门表'
def __str__(self):
return self.department_name
class SecondaryDepartment(models.Model):
secondary_department_id = models.AutoField(primary_key=True, verbose_name='二级部门ID')
primary_department = models.ForeignKey('PrimaryDepartment', on_delete=models.CASCADE, verbose_name='一级部门ID')
secondary_department_name = models.CharField(max_length=255, verbose_name='二级部门名称')
description = models.TextField(blank=True, null=True, verbose_name='描述')
2024-05-15 13:59:41 +08:00
class Meta:
verbose_name = '二级部门'
2024-05-15 13:59:41 +08:00
verbose_name_plural = '二级部门表'
unique_together = ('primary_department', 'secondary_department_name')
2024-05-15 13:59:41 +08:00
def __str__(self):
return f"{self.secondary_department_name} ({self.primary_department})"