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}"