88 lines
3.9 KiB
Python
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}"
|