XH_Digital_Management/application/mkt_mgnt/models.py

91 lines
3.8 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):
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='资源维护人')
class Meta:
verbose_name = '项目资源表'
verbose_name_plural = '项目资源表'
def __str__(self):
return self.name
# 项目资源送礼表
class ProjectResourceGift(models.Model):
resource = models.ForeignKey(EmployeeInformation, on_delete=models.CASCADE, verbose_name='项目资源')
gift_date = models.DateField(verbose_name='送礼日期')
giver = models.IntegerField(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 = '客户合作项目表'