XH_Digital_Management/application/org_mgnt/models.py

88 lines
3.9 KiB
Python

from django.db import models
# 公司主体信息登记表
class EntityInformationRegistration(models.Model):
entity_id = models.AutoField(primary_key=True)
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, verbose_name='公司经营状态')
scope_of_business = models.TextField(verbose_name='营业范围')
purpose_of_company = models.CharField(max_length=255, verbose_name='公司用途')
class Meta:
verbose_name = '公司主体信息登记表'
verbose_name_plural = '公司主体信息登记表'
def __str__(self):
return self.company_name
# 主体信息变更记录表
class EntityInformationChangeRecord(models.Model):
entity = models.ForeignKey(EntityInformationRegistration, on_delete=models.CASCADE, 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.entity.company_name} - {self.change_date}"
# 公司银行账户表
class BankAccounts(models.Model):
entity = models.ForeignKey(EntityInformationRegistration, 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=50, choices=[
('基本户', '基本户'),
('一般户', '一般户')
], verbose_name='账户类型')
class Meta:
verbose_name = '公司银行账户表'
verbose_name_plural = '公司银行账户表'
def __str__(self):
return f"{self.bank_name} - {self.account_number}"
class PrimaryDepartment(models.Model):
department_name = models.CharField(max_length=255, unique=True, blank=False, verbose_name='部门名称')
description = models.TextField(blank=True, verbose_name='描述')
class Meta:
verbose_name = '一级部门表'
verbose_name_plural = '一级部门表'
def __str__(self):
return self.department_name
class SecondaryDepartment(models.Model):
primary_department = models.ForeignKey('PrimaryDepartment', on_delete=models.CASCADE, verbose_name='一级部门')
department_name = models.CharField(max_length=255, blank=False, verbose_name='二级部门名称')
description = models.TextField(blank=True, verbose_name='描述')
class Meta:
verbose_name = '二级部门表'
verbose_name_plural = '二级部门表'
unique_together = (('primary_department', 'department_name'),) # 确保同一一级部门下的二级部门名称唯一
def __str__(self):
return f"{self.primary_department.department_name} - {self.department_name}"