cnas/server/apps/crm/models.py

93 lines
7.0 KiB
Python

from django.db import models
from apps.system.models import CommonBModel,CommonAModel,Dict
from simple_history.models import HistoricalRecords
from django.contrib.postgres.fields import ArrayField
import uuid
# Create your models here.
class Enterprise(CommonBModel):
parent= models.ForeignKey('self', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='')
code = models.CharField('工厂编号',unique=True, max_length=300)
name = models.CharField('工厂名称',null=True,unique=True, blank=True,max_length=1000)
ename = models.CharField('工厂英文名称',null=True, blank=True,max_length=1000)
type = models.ForeignKey(Dict, on_delete=models.SET_NULL,null=True, blank=True,verbose_name='机构类型', related_name= 'enterprise_type')
legal = models.CharField('申请单位法人代表',null=True, blank=True,max_length=300)
build_time = models.DateField('建厂时间',null=True, blank=True)
person_count = models.IntegerField('工厂人数',null=True, blank=True)
ceramics_output = models.IntegerField('陶瓷年产量',null=True, blank=True)
gassets = models.CharField('固定资产',max_length=100,null=True, blank=True)
linkman1_name = models.CharField('第1联系人',max_length=300,null=True, blank=True)
linkman1_duty = models.CharField('第1联系人职务',max_length=300,null=True, blank=True)
linkman1_email = models.EmailField('第1联系人邮箱',max_length=300,null=True, blank=True)
linkman1_tel = models.CharField('第1联系人电话',max_length=300,null=True, blank=True)
linkman1_mobile = models.CharField('第1联系人手机',max_length=300,null=True, blank=True)
linkman1_fax = models.CharField('第1联系人传真',max_length=300,null=True, blank=True)
linkman2_name = models.CharField('备用联系人',max_length=300,null=True, blank=True)
linkman2_email = models.EmailField('备用联系人邮箱',max_length=300,null=True, blank=True)
linkman2_tel = models.CharField('备用联系人电话',max_length=300,null=True, blank=True)
linkman2_duty = models.CharField('备用联系人职务',max_length=300,null=True, blank=True)
linkman2_mobile = models.CharField('备用联系人手机',max_length=300,null=True, blank=True)
linkman2_fax = models.CharField('备用联系人传真',max_length=300,null=True, blank=True)
country_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,null=True, blank=True,verbose_name='生产企业所在国家地区代码', related_name= 'enterprise_country_code')
credit_code = models.CharField('统一社会信用代码',max_length=300,null=True, blank=True)
region_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='县/区',null=True, blank=True, related_name= 'enterprise_region_code1')
professional = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='所属专业',null=True, blank=True, related_name= 'enterprise_professional')
qms_person = models.IntegerField('QMS人数',null=True, blank=True)
ems_person = models.IntegerField('EMS人数',null=True, blank=True)
pcv_person = models.IntegerField('PCV人数',null=True, blank=True)
ohs_person = models.IntegerField('OHS人数',null=True, blank=True)
all_person = models.IntegerField('组织员工数',null=True, blank=True)
economy_class = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='经济行业',null=True, blank=True, related_name= 'enterprise_economy_class')
economy_type = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='经济类型',null=True, blank=True, related_name= 'enterprise_economy_type')
business_type = models.CharField('经营范围',max_length=1000,null=True, blank=True)
credit_rate = models.CharField('企业信誉级别',max_length=300,null=True, blank=True)
credit_remark = models.CharField('企业信誉级别备注',max_length=1000,null=True, blank=True)
# xinyu_oper = models.CharField('信誉法人',null=True, blank=True, max_length=1000)
# xinyu_date = models.CharField('信誉时间',null=True, blank=True, max_length=1000)
query_code = models.CharField('组织查询码',max_length=1000,null=True, blank=True)
linkman3_name = models.CharField('ES联系人',max_length=300,null=True, blank=True)
linkman3_duty = models.CharField('ES联系人职务',max_length=300,null=True, blank=True)
linkman3_email = models.EmailField('ES联系人邮箱',max_length=300,null=True, blank=True)
linkman3_tel = models.CharField('ES联系人电话',max_length=300,null=True, blank=True)
linkman3_mobile = models.CharField('ES联系人手机',max_length=300,null=True, blank=True)
linkman3_fax = models.CharField('ES联系人传真',max_length=300,null=True, blank=True)
remarks = models.CharField('备注',max_length=1000,null=True, blank=True)
class Meta:
verbose_name = '组织信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class EnterpriseAddress(CommonAModel):
type_choices = (
('注册地址', '注册地址'),
('通信地址', '通信地址'),
('生产地址', '生产地址')
)
enterprise= models.ForeignKey(Enterprise, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='地址属性', related_name='enterpriseaddress_enterprise')
address = models.CharField('地址名称',max_length=1000,null=True, blank=True)
eaddress = models.CharField('地址英文名称',max_length=1000,null=True, blank=True)
code = models.CharField('地址邮编',max_length=1000,null=True, blank=True)
type = models.CharField('地址类型', max_length=50,choices=type_choices, default='生产地址')
county_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='县/区代码',null=True, blank=True, related_name= 'enterpriseaddress_county_code')
country_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='国家代码',null=True, blank=True, related_name= 'enterpriseaddress_country_code')
countyarry = ArrayField(models.IntegerField(),null=True, blank=True)
class Meta:
verbose_name = '组织地址'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
from apps.certset.models import ImplementRule, UnitType, Standard
class Certunit(CommonAModel):
"""
认证单元
"""
name = models.CharField('名称', max_length=200)
description = models.TextField('产品描述', null=True, blank=True)
implementrule = models.ForeignKey(ImplementRule, verbose_name='采用规则', on_delete=models.DO_NOTHING, related_name='certunit_implementrule')
unittype = models.ForeignKey(UnitType, verbose_name='单元类型', on_delete = models.DO_NOTHING, related_name='certunit_unittype')
standard = models.ForeignKey(Standard, verbose_name='采用标准', on_delete = models.DO_NOTHING, related_name='certunit_standard')
enterprise = models.ForeignKey(Enterprise, verbose_name='所属公司', on_delete = models.DO_NOTHING, related_name='certunit_enterprise')