from django.db import models from application.hrm_mgnt.models import EmployeeInformation from application.pjt_mgnt.models import ProjectLedger # 项目资源表 class ProjectResources(models.Model): COOPERATION_CHOICES = ( ('是', '是'), ('否', '否'), ) resource_id = models.AutoField(primary_key=True, verbose_name='项目资源ID') name = models.CharField(max_length=255, verbose_name='姓名') unit = models.CharField(max_length=255, verbose_name='单位') position = models.CharField(max_length=255, verbose_name='职务') contact_phone = models.CharField(max_length=20, verbose_name='联系电话') contact_address = models.CharField(max_length=255, verbose_name='联系地址') resource_manager = models.ForeignKey(EmployeeInformation, on_delete=models.CASCADE, verbose_name='资源维护人') is_enter = models.CharField(max_length=2, choices=COOPERATION_CHOICES, verbose_name='是否录入项目信息', default='否') project_name = models.ForeignKey(ProjectLedger, on_delete=models.CASCADE, verbose_name='项目名称') class Meta: verbose_name = '项目资源表' verbose_name_plural = '项目资源表' def __str__(self): return self.name # 项目资源送礼表 class ProjectResourceGift(models.Model): resource = models.ForeignKey(ProjectResources, on_delete=models.CASCADE, verbose_name='项目资源') gift_date = models.DateField(verbose_name='送礼日期') giver = models.ForeignKey(EmployeeInformation, on_delete=models.CASCADE, verbose_name='送礼人') gift_description = models.TextField(verbose_name='送礼说明') class Meta: verbose_name = '项目资源送礼表' verbose_name_plural = '项目资源送礼表' def __str__(self): return f"{self.resource.name} - {self.gift_date}" # 项目资源维护表 class ProjectResourceMaintenance(models.Model): resource = models.ForeignKey(ProjectResources, on_delete=models.CASCADE, verbose_name='项目资源') project = models.ForeignKey(ProjectLedger, on_delete=models.CASCADE, verbose_name='项目ID') settled_income = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='已落地收入(元)') estimated_pending_income = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='未落地预估收入(元)') class Meta: verbose_name = '项目资源维护表' verbose_name_plural = '项目资源维护表' def __str__(self): return f"项目资源维护记录 ID: {self.pk}" # 客户表 class Customer(models.Model): RELATIONSHIP_CHOICES = ( ('资源方', '资源方'), ('客户', '客户'), ) COOPERATION_CHOICES = ( ('是', '是'), ('否', '否'), ) customer_id = models.AutoField(primary_key=True, verbose_name='客户ID') relationship_type = models.CharField(max_length=20, choices=RELATIONSHIP_CHOICES, verbose_name='关系类型') detailed_description = models.CharField(max_length=255, verbose_name='详细说明') name = models.CharField(max_length=255, verbose_name='姓名') unit = models.CharField(max_length=255, verbose_name='单位') position = models.CharField(max_length=255, verbose_name='职务') residence = models.CharField(max_length=255, verbose_name='常住地') cooperation = models.CharField(max_length=2, choices=COOPERATION_CHOICES, verbose_name='是否合作') main_organizer = models.ForeignKey(EmployeeInformation, related_name='main_organizer', on_delete=models.CASCADE, verbose_name='主办人') assistant = models.ForeignKey(EmployeeInformation, related_name='assistant', on_delete=models.CASCADE, verbose_name='辅助人') class Meta: verbose_name = '客户' verbose_name_plural = '客户' def __str__(self): return self.name # 客户合作项目表 class CustomerProject(models.Model): customer = models.ForeignKey(Customer, on_delete=models.CASCADE, verbose_name='客户ID') project = models.ForeignKey(ProjectLedger, on_delete=models.CASCADE, verbose_name='项目ID') class Meta: verbose_name = '客户合作项目表' verbose_name_plural = '客户合作项目表'