100 lines
4.2 KiB
Python
100 lines
4.2 KiB
Python
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 = '客户合作项目表'
|