XH_Digital_Management/application/org_mgnt/models.py

124 lines
6.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='财务负责人')
2024-06-04 16:50:30 +08:00
historical_evolution = models.TextField(verbose_name='历史沿革', blank=True)
related_bank_accounts_info = models.TextField(verbose_name='相关银行账户信息', blank=True)
class Meta:
2024-06-16 20:08:28 +08:00
verbose_name = '公司主体信息'
verbose_name_plural = '公司主体信息登记表'
def __str__(self):
2024-06-19 02:03:59 +08:00
return self.company_name
2024-06-04 16:50:30 +08:00
def get_historical_evolution(self):
return "\n".join([
f"变更日期: {record.change_date}, 变更类型: {record.change_type}, 变更前内容: {record.content_before_change}, 变更后内容: {record.content_after_change}, 变更原因: {record.change_reason}, 变更执行人: {record.change_executed_by}"
for record in self.change_records.all()
])
class EntityChangeRecord(models.Model):
record_id = models.AutoField(primary_key=True, verbose_name='记录编号')
2024-06-19 02:03:59 +08:00
company_entity = models.ForeignKey(CompanyEntity, on_delete=models.CASCADE, related_name='change_records', verbose_name='公司主体', default=1)
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):
2024-06-04 16:50:30 +08:00
return f"{self.company_entity.company_name} - {self.change_date} - {self.change_type}"
# 公司银行账户表
class CompanyBankAccount(models.Model):
ACCOUNT_TYPE_CHOICES = (
('基本户', '基本户'),
('一般户', '一般户'),
)
ACCOUNT_STATUS_CHOICES = (
('活跃', '活跃'),
('不活跃', '不活跃'),
('已关闭', '已关闭'),
('暂停', '暂停'),
('待处理', '待处理'),
('冻结', '冻结'),
)
account_id = models.AutoField(primary_key=True, verbose_name='账户ID')
2024-06-19 02:03:59 +08:00
company_entity = models.ForeignKey(CompanyEntity, on_delete=models.CASCADE, related_name='bank_accounts', verbose_name='公司ID', default=1)
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='账户类型')
2024-06-19 02:03:59 +08:00
account_status = models.CharField(max_length=10, choices=ACCOUNT_STATUS_CHOICES, verbose_name='账户状态', default='active')
class Meta:
verbose_name = '公司银行账户'
verbose_name_plural = '公司银行账户表'
def __str__(self):
return f"{self.company_entity.company_name} - {self.bank_name} - {self.account_number}"
2024-06-16 20:08:28 +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='描述')
class Meta:
verbose_name = '一级部门'
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='一级部门名称')
secondary_department_name = models.CharField(max_length=255, verbose_name='二级部门名称')
description = models.TextField(blank=True, null=True, verbose_name='描述')
class Meta:
verbose_name = '二级部门'
verbose_name_plural = '二级部门表'
unique_together = ('primary_department', 'secondary_department_name')
def __str__(self):
2024-06-19 02:03:59 +08:00
return self.secondary_department_name