class Migration(migrations.Migration): dependencies = [ ('CRM', '0001_initial'), ] operations = [ migrations.AlterField( model_name='account', name='credit_card', field=models.CharField(auto_created=True, default=CRM.models.generateCreditCardNumber, max_length=16, unique=True), ), ]
class Migration(migrations.Migration): dependencies = [ ('CRM', '0002_auto_20190404_2041'), ] operations = [ migrations.AddField( model_name='transaction', name='amount', field=models.DecimalField(decimal_places=2, default=0, max_digits=10), ), migrations.AlterField( model_name='account', name='is_active', field=models.BooleanField(default=True), ), migrations.AlterField( model_name='transaction', name='number', field=models.CharField(default=CRM.models.generateTransactionId, max_length=365000), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('accounts', '0014_auto_20190227_0920'), ] operations = [ migrations.CreateModel( name='Barcode', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('GTIN', models.CharField(max_length=40, unique=True)), ('product_description', models.CharField(max_length=100)), ('brand_name', models.CharField(max_length=100)), ('name_packaging', models.CharField(blank=True, max_length=100)), ('type', models.CharField(max_length=50)), ('depth', models.CharField(blank=True, max_length=50)), ('width', models.CharField(blank=True, max_length=50)), ('height', models.CharField(blank=True, max_length=50)), ('gross_weight', models.CharField(blank=True, max_length=50)), ('net_weight', models.CharField(blank=True, max_length=50)), ('size', models.IntegerField(blank=True)), ], ), migrations.CreateModel( name='Client', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('company_name', models.CharField(max_length=100)), ('member_number', models.CharField(max_length=100, default=0)), ('member_prefix', models.CharField(max_length=20, default=0)), ('company_phone', models.IntegerField()), ('company_phone_alt', models.IntegerField()), ('company_email', models.CharField(max_length=128)), ('company_email_alt', models.CharField(max_length=128)), ('post_address', models.CharField(max_length=200)), ('physical_location', models.CharField(max_length=60)), ('director_info', models.CharField(max_length=1000)), ('sector', models.CharField(choices=[ ('Academia', 'Academia'), ('Agribusiness', 'Agribusiness'), ('Helathcare', 'Helathcare'), ('Manufacturer,trading &financial institutions', 'Manufacturer,Trading &Financial Institutions'), ('Retailer', 'Retailer'), ('Transport / communication', 'Transport / Communication'), ('Supply chain,warehousing & construction', 'Supply Chain,warehousing & construction') ], default='No sector', max_length=200)), ('category', models.CharField(choices=[('Category a', 'Category A'), ('Category b', 'Category B'), ('Category b', 'Category B'), ('Category c', 'Category C'), ('Category d', 'Category D'), ('Category e', 'Category E')], default='No category', max_length=80)), ('date_of_issue', models.DateField()), ('nature_of_business', models.CharField(max_length=100)), ('certificate_of_incorporation', models.FileField( upload_to=CRM.models.UploadFolder('documents/clients'))), ('copy_of_id', models.FileField( upload_to=CRM.models.UploadFolder('documents/clients'))), ('copy_of_blank_cheque', models.FileField( default=0, upload_to=CRM.models.UploadFolder('documents/clients'))), ('copy_of_trade_licence', models.FileField( upload_to=CRM.models.UploadFolder('documents/clients'))), ('list_of_product_barcoded', models.FileField( upload_to=CRM.models.UploadFolder('documents/clients'))), ('director_pin_number', models.FileField( upload_to=CRM.models.UploadFolder('documents/clients'))), ('company_certificate_pin', models.FileField( upload_to=CRM.models.UploadFolder('documents/clients'))), ('copy_of_kebs_certicate', models.FileField( upload_to=CRM.models.UploadFolder('documents/clients'))), ('is_me1', models.IntegerField(default=0)), ('is_me2', models.IntegerField(default=0)), ('is_ccm', models.IntegerField(default=0)), ('is_cacc_x', models.IntegerField(default=0)), ('is_accm', models.IntegerField(default=0)), ('is_cacc', models.IntegerField(default=0)), ('is_tm', models.IntegerField(default=0)), ('is_gm', models.IntegerField(default=0)), ('status', models.IntegerField(default=0)), ], ), migrations.CreateModel( name='Event', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('event_name', models.CharField(max_length=300)), ('date_time', models.DateField(default=datetime.datetime.now)), ('status', models.IntegerField(default=1)), ], ), migrations.CreateModel( name='Feedback', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('feedback', models.CharField(max_length=1000)), ('created_on', models.DateField(default=datetime.datetime.now)), ('status', models.IntegerField( choices=[(1, 'close'), (11, 'open'), (0, 'pending')])), ('client_name', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='CRM.Client')), ], ), migrations.CreateModel( name='Supplier', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('phone', models.IntegerField()), ('country', models.CharField(choices=[ ('Aruba', 'Aruba'), ('Afghanistan', 'Afghanistan'), ('Angola', 'Angola'), ('Anguilla', 'Anguilla'), ('Åland Islands', 'Åland Islands'), ('Albania', 'Albania'), ('Andorra', 'Andorra'), ('United Arab Emirates', 'United Arab Emirates'), ('Argentina', 'Argentina'), ('Armenia', 'Armenia'), ('American Samoa', 'American Samoa'), ('Antarctica', 'Antarctica'), ('French Southern Territories', 'French Southern Territories'), ('Antigua and Barbuda', 'Antigua and Barbuda'), ('Australia', 'Australia'), ('Austria', 'Austria'), ('Azerbaijan', 'Azerbaijan'), ('Burundi', 'Burundi'), ('Belgium', 'Belgium'), ('Benin', 'Benin'), ('Bonaire, Sint Eustatius and Saba', 'Bonaire, Sint Eustatius and Saba'), ('Burkina Faso', 'Burkina Faso'), ('Bangladesh', 'Bangladesh'), ('Bulgaria', 'Bulgaria'), ('Bahrain', 'Bahrain'), ('Bahamas', 'Bahamas'), ('Bosnia and Herzegovina', 'Bosnia and Herzegovina'), ('Saint Barthélemy', 'Saint Barthélemy'), ('Belarus', 'Belarus'), ('Belize', 'Belize'), ('Bermuda', 'Bermuda'), ('Bolivia, Plurinational State of', 'Bolivia, Plurinational State of'), ('Brazil', 'Brazil'), ('Barbados', 'Barbados'), ('Brunei Darussalam', 'Brunei Darussalam'), ('Bhutan', 'Bhutan'), ('Bouvet Island', 'Bouvet Island'), ('Botswana', 'Botswana'), ('Central African Republic', 'Central African Republic'), ('Canada', 'Canada'), ('Cocos (Keeling) Islands', 'Cocos (Keeling) Islands'), ('Switzerland', 'Switzerland'), ('Chile', 'Chile'), ('China', 'China'), ("Côte d'Ivoire", "Côte d'Ivoire"), ('Cameroon', 'Cameroon'), ('Congo, The Democratic Republic of the', 'Congo, The Democratic Republic of the'), ('Congo', 'Congo'), ('Cook Islands', 'Cook Islands'), ('Colombia', 'Colombia'), ('Comoros', 'Comoros'), ('Cabo Verde', 'Cabo Verde'), ('Costa Rica', 'Costa Rica'), ('Cuba', 'Cuba'), ('Curaçao', 'Curaçao'), ('Christmas Island', 'Christmas Island'), ('Cayman Islands', 'Cayman Islands'), ('Cyprus', 'Cyprus'), ('Czechia', 'Czechia'), ('Germany', 'Germany'), ('Djibouti', 'Djibouti'), ('Dominica', 'Dominica'), ('Denmark', 'Denmark'), ('Dominican Republic', 'Dominican Republic'), ('Algeria', 'Algeria'), ('Ecuador', 'Ecuador'), ('Egypt', 'Egypt'), ('Eritrea', 'Eritrea'), ('Western Sahara', 'Western Sahara'), ('Spain', 'Spain'), ('Estonia', 'Estonia'), ('Ethiopia', 'Ethiopia'), ('Finland', 'Finland'), ('Fiji', 'Fiji'), ('Falkland Islands (Malvinas)', 'Falkland Islands (Malvinas)'), ('France', 'France'), ('Faroe Islands', 'Faroe Islands'), ('Micronesia, Federated States of', 'Micronesia, Federated States of'), ('Gabon', 'Gabon'), ('United Kingdom', 'United Kingdom'), ('Georgia', 'Georgia'), ('Guernsey', 'Guernsey'), ('Ghana', 'Ghana'), ('Gibraltar', 'Gibraltar'), ('Guinea', 'Guinea'), ('Guadeloupe', 'Guadeloupe'), ('Gambia', 'Gambia'), ('Guinea-Bissau', 'Guinea-Bissau'), ('Equatorial Guinea', 'Equatorial Guinea'), ('Greece', 'Greece'), ('Grenada', 'Grenada'), ('Greenland', 'Greenland'), ('Guatemala', 'Guatemala'), ('French Guiana', 'French Guiana'), ('Guam', 'Guam'), ('Guyana', 'Guyana'), ('Hong Kong', 'Hong Kong'), ('Heard Island and McDonald Islands', 'Heard Island and McDonald Islands'), ('Honduras', 'Honduras'), ('Croatia', 'Croatia'), ('Haiti', 'Haiti'), ('Hungary', 'Hungary'), ('Indonesia', 'Indonesia'), ('Isle of Man', 'Isle of Man'), ('India', 'India'), ('British Indian Ocean Territory', 'British Indian Ocean Territory'), ('Ireland', 'Ireland'), ('Iran, Islamic Republic of', 'Iran, Islamic Republic of'), ('Iraq', 'Iraq'), ('Iceland', 'Iceland'), ('Israel', 'Israel'), ('Italy', 'Italy'), ('Jamaica', 'Jamaica'), ('Jersey', 'Jersey'), ('Jordan', 'Jordan'), ('Japan', 'Japan'), ('Kazakhstan', 'Kazakhstan'), ('Kenya', 'Kenya'), ('Kyrgyzstan', 'Kyrgyzstan'), ('Cambodia', 'Cambodia'), ('Kiribati', 'Kiribati'), ('Saint Kitts and Nevis', 'Saint Kitts and Nevis'), ('Korea, Republic of', 'Korea, Republic of'), ('Kuwait', 'Kuwait'), ("Lao People's Democratic Republic", "Lao People's Democratic Republic"), ('Lebanon', 'Lebanon'), ('Liberia', 'Liberia'), ('Libya', 'Libya'), ('Saint Lucia', 'Saint Lucia'), ('Liechtenstein', 'Liechtenstein'), ('Sri Lanka', 'Sri Lanka'), ('Lesotho', 'Lesotho'), ('Lithuania', 'Lithuania'), ('Luxembourg', 'Luxembourg'), ('Latvia', 'Latvia'), ('Macao', 'Macao'), ('Saint Martin (French part)', 'Saint Martin (French part)'), ('Morocco', 'Morocco'), ('Monaco', 'Monaco'), ('Moldova, Republic of', 'Moldova, Republic of'), ('Madagascar', 'Madagascar'), ('Maldives', 'Maldives'), ('Mexico', 'Mexico'), ('Marshall Islands', 'Marshall Islands'), ('Macedonia, Republic of', 'Macedonia, Republic of'), ('Mali', 'Mali'), ('Malta', 'Malta'), ('Myanmar', 'Myanmar'), ('Montenegro', 'Montenegro'), ('Mongolia', 'Mongolia'), ('Northern Mariana Islands', 'Northern Mariana Islands'), ('Mozambique', 'Mozambique'), ('Mauritania', 'Mauritania'), ('Montserrat', 'Montserrat'), ('Martinique', 'Martinique'), ('Mauritius', 'Mauritius'), ('Malawi', 'Malawi'), ('Malaysia', 'Malaysia'), ('Mayotte', 'Mayotte'), ('Namibia', 'Namibia'), ('New Caledonia', 'New Caledonia'), ('Niger', 'Niger'), ('Norfolk Island', 'Norfolk Island'), ('Nigeria', 'Nigeria'), ('Nicaragua', 'Nicaragua'), ('Niue', 'Niue'), ('Netherlands', 'Netherlands'), ('Norway', 'Norway'), ('Nepal', 'Nepal'), ('Nauru', 'Nauru'), ('New Zealand', 'New Zealand'), ('Oman', 'Oman'), ('Pakistan', 'Pakistan'), ('Panama', 'Panama'), ('Pitcairn', 'Pitcairn'), ('Peru', 'Peru'), ('Philippines', 'Philippines'), ('Palau', 'Palau'), ('Papua New Guinea', 'Papua New Guinea'), ('Poland', 'Poland'), ('Puerto Rico', 'Puerto Rico'), ("Korea, Democratic People's Republic of", "Korea, Democratic People's Republic of"), ('Portugal', 'Portugal'), ('Paraguay', 'Paraguay'), ('Palestine, State of', 'Palestine, State of'), ('French Polynesia', 'French Polynesia'), ('Qatar', 'Qatar'), ('Réunion', 'Réunion'), ('Romania', 'Romania'), ('Russian Federation', 'Russian Federation'), ('Rwanda', 'Rwanda'), ('Saudi Arabia', 'Saudi Arabia'), ('Sudan', 'Sudan'), ('Senegal', 'Senegal'), ('Singapore', 'Singapore'), ('South Georgia and the South Sandwich Islands', 'South Georgia and the South Sandwich Islands'), ('Saint Helena, Ascension and Tristan da Cunha', 'Saint Helena, Ascension and Tristan da Cunha'), ('Svalbard and Jan Mayen', 'Svalbard and Jan Mayen'), ('Solomon Islands', 'Solomon Islands'), ('Sierra Leone', 'Sierra Leone'), ('El Salvador', 'El Salvador'), ('San Marino', 'San Marino'), ('Somalia', 'Somalia'), ('Saint Pierre and Miquelon', 'Saint Pierre and Miquelon'), ('Serbia', 'Serbia'), ('South Sudan', 'South Sudan'), ('Sao Tome and Principe', 'Sao Tome and Principe'), ('Suriname', 'Suriname'), ('Slovakia', 'Slovakia'), ('Slovenia', 'Slovenia'), ('Sweden', 'Sweden'), ('Swaziland', 'Swaziland'), ('Sint Maarten (Dutch part)', 'Sint Maarten (Dutch part)'), ('Seychelles', 'Seychelles'), ('Syrian Arab Republic', 'Syrian Arab Republic'), ('Turks and Caicos Islands', 'Turks and Caicos Islands'), ('Chad', 'Chad'), ('Togo', 'Togo'), ('Thailand', 'Thailand'), ('Tajikistan', 'Tajikistan'), ('Tokelau', 'Tokelau'), ('Turkmenistan', 'Turkmenistan'), ('Timor-Leste', 'Timor-Leste'), ('Tonga', 'Tonga'), ('Trinidad and Tobago', 'Trinidad and Tobago'), ('Tunisia', 'Tunisia'), ('Turkey', 'Turkey'), ('Tuvalu', 'Tuvalu'), ('Taiwan, Province of China', 'Taiwan, Province of China'), ('Tanzania, United Republic of', 'Tanzania, United Republic of'), ('Uganda', 'Uganda'), ('Ukraine', 'Ukraine'), ('United States Minor Outlying Islands', 'United States Minor Outlying Islands'), ('Uruguay', 'Uruguay'), ('United States', 'United States'), ('Uzbekistan', 'Uzbekistan'), ('Holy See (Vatican City State)', 'Holy See (Vatican City State)'), ('Saint Vincent and the Grenadines', 'Saint Vincent and the Grenadines'), ('Venezuela, Bolivarian Republic of', 'Venezuela, Bolivarian Republic of'), ('Virgin Islands, British', 'Virgin Islands, British'), ('Virgin Islands, U.S.', 'Virgin Islands, U.S.'), ('Viet Nam', 'Viet Nam'), ('Vanuatu', 'Vanuatu'), ('Wallis and Futuna', 'Wallis and Futuna'), ('Samoa', 'Samoa'), ('Yemen', 'Yemen'), ('South Africa', 'South Africa'), ('Zambia', 'Zambia'), ('Zimbabwe', 'Zimbabwe') ], default='No sector', max_length=40)), ('website', models.CharField(blank=True, max_length=100)), ('description', models.CharField(max_length=1000)), ], ), migrations.CreateModel( name='Training', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('all_trainee', multiselectfield.db.fields.MultiSelectField(blank=True, choices=[ (1, 'BrugKe'), (2, 'gs1') ], max_length=3, null=True)), ('happened_on', models.DateField(default=datetime.datetime.now)), ('description', models.CharField(max_length=2000)), ('trainer', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='accounts.Employee')), ], ), migrations.AddField( model_name='event', name='training', field=models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, related_name='trian', to='CRM.Training'), ), migrations.AddField( model_name='barcode', name='client', field=models.ForeignKey( default=1, on_delete=django.db.models.deletion.CASCADE, to='CRM.Client'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0008_alter_user_username_max_length'), ] operations = [ migrations.CreateModel( name='Campuses', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=64, verbose_name='校区')), ('address', models.CharField(blank=True, max_length=512, null=True, verbose_name='详细地址')), ], ), migrations.CreateModel( name='ClassList', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('course', models.CharField(choices=[('LinuxL', 'Linux中高级'), ('PythonFullStack', 'Python高级全栈开发')], max_length=64, verbose_name='课程名称')), ('semester', models.IntegerField(verbose_name='学期')), ('price', models.IntegerField(default=10000, verbose_name='学费')), ('memo', models.CharField(blank=True, max_length=100, null=True, verbose_name='说明')), ('start_date', models.DateField(verbose_name='开班日期')), ('graduate_date', models.DateField(blank=True, null=True, verbose_name='结业日期')), ('class_type', models.CharField(blank=True, choices=[('fulltime', '脱产班'), ('online', '网络班'), ('weekend', '周末班')], max_length=64, null=True, verbose_name='班额及类型')), ('campuses', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.Campuses', verbose_name='校区')), ], ), migrations.CreateModel( name='ConsultRecord', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('note', models.TextField(verbose_name='跟进内容...')), ('status', models.CharField(choices=[('A', '近期无报名计划'), ('B', '1个月内报名'), ('C', '2周内报名'), ('D', '1周内报名'), ('E', '定金'), ('F', '到班'), ('G', '全款'), ('H', '无效')], help_text='选择客户此时的状态', max_length=8, verbose_name='跟进状态')), ('date', models.DateTimeField(auto_now_add=True, verbose_name='跟进日期')), ('delete_status', models.BooleanField(default=False, verbose_name='删除状态')), ], ), migrations.CreateModel( name='ContractTemplate', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128, unique=True, verbose_name='合同名称')), ('content', models.TextField(verbose_name='合同内容')), ('date', models.DateField(auto_now=True)), ], ), migrations.CreateModel( name='CourseRecord', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('day_num', models.IntegerField(help_text='此处填写第几节课或第几天课程...,必须为数字', verbose_name='节次')), ('date', models.DateField(auto_now_add=True, verbose_name='上课日期')), ('course_title', models.CharField(blank=True, max_length=64, null=True, verbose_name='本节课程标题')), ('course_memo', models.TextField(blank=True, max_length=300, null=True, verbose_name='本节课程内容')), ('has_homework', models.BooleanField(default=True, verbose_name='本节有作业')), ('homework_title', models.CharField(blank=True, max_length=64, null=True, verbose_name='本节作业标题')), ('homework_memo', models.TextField(blank=True, max_length=500, null=True, verbose_name='作业描述')), ('scoring_point', models.TextField(blank=True, max_length=300, null=True, verbose_name='得分点')), ('re_class', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.ClassList', verbose_name='班级')), ], ), migrations.CreateModel( name='Customer', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('qq', models.CharField(help_text='QQ号必须唯一', max_length=64, unique=True, verbose_name='QQ')), ('qq_name', models.CharField(blank=True, max_length=64, null=True, verbose_name='QQ昵称')), ('name', models.CharField(blank=True, help_text='学员报名后,请改为真实姓名', max_length=32, null=True, verbose_name='姓名')), ('sex', models.CharField(blank=True, choices=[('male', '男'), ('female', '女')], default='male', max_length=16, null=True, verbose_name='性别')), ('birthday', models.DateField(blank=True, default=None, help_text='格式yyyy-mm-dd', null=True, verbose_name='出生日期')), ('phone', models.BigIntegerField(blank=True, null=True, verbose_name='手机号')), ('source', models.CharField(choices=[('qq', 'qq群'), ('referral', '内部转介绍'), ('website', '官方网站'), ('baidu_ads', '百度推广'), ('office_direct', '直接上门'), ('WoM', '口碑'), ('public_class', '公开课'), ('website_luffy', '路飞官网'), ('others', '其它')], default='qq', max_length=64, verbose_name='客户来源')), ('course', multiselectfield.db.fields.MultiSelectField(choices=[('LinuxL', 'Linux中高级'), ('PythonFullStack', 'Python高级全栈开发')], max_length=22, verbose_name='咨询课程')), ('class_type', models.CharField(choices=[('fulltime', '脱产班'), ('online', '网络班'), ('weekend', '周末班')], default='fulltime', max_length=64, verbose_name='班级类型')), ('customer_note', models.TextField(blank=True, null=True, verbose_name='客户备注')), ('status', models.CharField(choices=[('signed', '已报名'), ('unregistered', '未报名'), ('studying', '学习中'), ('paid_in_full', '学费已交齐')], default='unregistered', help_text='选择客户此时的状态', max_length=64, verbose_name='状态')), ('network_consult_note', models.TextField(blank=True, null=True, verbose_name='网络咨询师咨询内容')), ('date', models.DateTimeField(auto_now_add=True, verbose_name='咨询日期')), ('last_consult_date', models.DateField(auto_now_add=True, verbose_name='最后跟进日期')), ('next_date', models.DateField(blank=True, null=True, verbose_name='预计再次跟进时间')), ('class_list', models.ManyToManyField(to='CRM.ClassList', verbose_name='已报班级')), ], ), migrations.CreateModel( name='Department', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=32, verbose_name='部门名称')), ('count', models.IntegerField(default=0, verbose_name='人数')), ], ), migrations.CreateModel( name='Enrollment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('why_us', models.TextField(blank=True, default=None, max_length=1024, null=True, verbose_name='为什么报名')), ('your_expectation', models.TextField(blank=True, max_length=1024, null=True, verbose_name='学完想达到的具体期望')), ('contract_agreed', models.BooleanField(default=False, verbose_name='我已认真阅读完培训协议并同意全部协议内容')), ('contract_approved', models.BooleanField(default=False, help_text='在审阅完学员的资料无误后勾选此项,合同即生效', verbose_name='审批通过')), ('enrolled_date', models.DateTimeField(auto_now_add=True, verbose_name='报名日期')), ('memo', models.TextField(blank=True, null=True, verbose_name='备注')), ('delete_status', models.BooleanField(default=False, verbose_name='删除状态')), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.Customer', verbose_name='客户名称')), ('enrolment_class', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.ClassList', verbose_name='所报班级')), ('school', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.Campuses')), ], ), migrations.CreateModel( name='PaymentRecord', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('pay_type', models.CharField(choices=[('deposit', '订金/报名费'), ('tuition', '学费'), ('transfer', '转班'), ('dropout', '退学'), ('refund', '退款')], default='deposit', max_length=64, verbose_name='费用类型')), ('paid_fee', models.IntegerField(default=0, verbose_name='费用数额')), ('note', models.TextField(blank=True, null=True, verbose_name='备注')), ('date', models.DateTimeField(auto_now_add=True, verbose_name='交款日期')), ('course', models.CharField(blank=True, choices=[('LinuxL', 'Linux中高级'), ('PythonFullStack', 'Python高级全栈开发')], default='N/A', max_length=64, null=True, verbose_name='课程名')), ('class_type', models.CharField(blank=True, choices=[('fulltime', '脱产班'), ('online', '网络班'), ('weekend', '周末班')], default='N/A', max_length=64, null=True, verbose_name='班级类型')), ('delete_status', models.BooleanField(default=False, verbose_name='删除状态')), ('status', models.IntegerField(choices=[(1, '未审核'), (2, '已审核')], default=1, verbose_name='审核')), ('confirm_date', models.DateTimeField(blank=True, null=True, verbose_name='确认日期')), ], ), migrations.CreateModel( name='StudyRecord', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('attendance', models.CharField(choices=[('checked', '已签到'), ('vacate', '请假'), ('late', '迟到'), ('absence', '缺勤'), ('leave_early', '早退')], default='checked', max_length=64, verbose_name='考勤')), ('score', models.IntegerField(choices=[(100, 'A+'), (90, 'A'), (85, 'B+'), (80, 'B'), (70, 'B-'), (60, 'C+'), (50, 'C'), (40, 'C-'), (0, ' D'), (-1, 'N/A'), (-100, 'COPY'), (-1000, 'FAIL')], default=-1, verbose_name='本节成绩')), ('homework_note', models.CharField(blank=True, max_length=255, null=True, verbose_name='作业批语')), ('date', models.DateTimeField(auto_now_add=True)), ('note', models.CharField(blank=True, max_length=255, null=True, verbose_name='备注')), ('homework', models.FileField(blank=True, default=None, null=True, upload_to='', verbose_name='作业文件')), ('course_record', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.CourseRecord', verbose_name='某节课程')), ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.Customer', verbose_name='学员')), ], ), migrations.CreateModel( name='UserProfile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('username', models.EmailField(max_length=255, unique=True)), ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_admin', models.BooleanField(default=False)), ('name', models.CharField(max_length=32, verbose_name='名字')), ('mobile', models.CharField(blank=True, default=None, max_length=32, null=True, verbose_name='手机')), ('memo', models.TextField(blank=True, default=None, null=True, verbose_name='备注')), ('date_joined', models.DateTimeField(auto_now_add=True)), ('department', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='CRM.Department')), ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), ], options={ 'verbose_name': '账户信息', 'verbose_name_plural': '账户信息', }, managers=[ ('objects', CRM.models.UserManager()), ], ), migrations.AddField( model_name='paymentrecord', name='confirm_user', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='confirms', to=settings.AUTH_USER_MODEL, verbose_name='确认人'), ), migrations.AddField( model_name='paymentrecord', name='consultant', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='销售'), ), migrations.AddField( model_name='paymentrecord', name='customer', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.Customer', verbose_name='客户'), ), migrations.AddField( model_name='paymentrecord', name='enrolment_class', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='CRM.ClassList', verbose_name='所报班级'), ), migrations.AddField( model_name='customer', name='consultant', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='customers', to=settings.AUTH_USER_MODEL, verbose_name='销售'), ), migrations.AddField( model_name='customer', name='introduce_from', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='CRM.Customer', verbose_name='转介绍自学员'), ), migrations.AddField( model_name='customer', name='network_consultant', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='network_consultant', to=settings.AUTH_USER_MODEL, verbose_name='咨询师'), ), migrations.AddField( model_name='courserecord', name='teacher', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='讲师'), ), migrations.AddField( model_name='consultrecord', name='consultant', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to=settings.AUTH_USER_MODEL, verbose_name='跟进人'), ), migrations.AddField( model_name='consultrecord', name='customer', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='CRM.Customer', verbose_name='所咨询客户'), ), migrations.AddField( model_name='classlist', name='contract', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='CRM.ContractTemplate', verbose_name='选择合同模版'), ), migrations.AddField( model_name='classlist', name='teachers', field=models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name='老师'), ), migrations.AlterUniqueTogether( name='studyrecord', unique_together=set([('course_record', 'student')]), ), migrations.AlterUniqueTogether( name='enrollment', unique_together=set([('enrolment_class', 'customer')]), ), migrations.AlterUniqueTogether( name='courserecord', unique_together=set([('re_class', 'day_num')]), ), migrations.AlterUniqueTogether( name='classlist', unique_together=set([('course', 'semester', 'campuses')]), ), ]
class Migration(migrations.Migration): dependencies = [ ('CRM', '0013_auto_20190406_0838'), ] operations = [ migrations.AlterField( model_name='account', name='expiration_date', field=models.DateField(default=datetime.datetime( 2023, 4, 5, 10, 7, 18, 361550, tzinfo=utc)), ), migrations.AlterField( model_name='transaction', name='receiver_account', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='receiver_account', to='CRM.Account'), ), migrations.AlterField( model_name='transaction', name='sender_account', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='sender_account', to='CRM.Account'), ), migrations.CreateModel( name='Withdrawal', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('number', models.CharField(default=CRM.models.generateTransactionId, max_length=365000)), ('date', models.DateTimeField(default=django.utils.timezone.now)), ('amount', models.DecimalField(decimal_places=2, default=0, max_digits=10)), ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='withdrawal_account', to='CRM.Account')), ], ), migrations.CreateModel( name='Payment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('number', models.CharField(default=CRM.models.generateTransactionId, max_length=365000)), ('date', models.DateTimeField(default=django.utils.timezone.now)), ('amount', models.DecimalField(decimal_places=2, default=0, max_digits=10)), ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payment_account', to='CRM.Account')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ] operations = [ migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ], options={ 'verbose_name_plural': 'Categories', 'default_related_name': 'Category', }, ), migrations.CreateModel( name='Check', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField(blank=True, null=True)), ('total_sum', models.FloatField(default=0, editable=False)), ], options={ 'verbose_name': 'Check', 'verbose_name_plural': 'Checks', 'default_related_name': 'checks', }, ), migrations.CreateModel( name='Department', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ], options={ 'verbose_name': 'Department', 'verbose_name_plural': 'Departments', }, ), migrations.CreateModel( name='Meal', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ('price', models.IntegerField()), ('description', models.CharField(max_length=400)), ('category', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='Meal', to='CRM.Category')), ], options={ 'verbose_name_plural': 'Meals', 'default_related_name': 'Meal', }, ), migrations.CreateModel( name='MealsToOrder', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('count', models.IntegerField(default=1)), ('meals', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='MealsToOrder', to='CRM.Meal')), ], options={ 'verbose_name_plural': 'MealsToOrders', 'default_related_name': 'MealsToOrder', }, ), migrations.CreateModel( name='Order', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date', models.DateTimeField(blank=True, null=True)), ('meals', models.ManyToManyField(related_name='Orders', through='CRM.MealsToOrder', to='CRM.Meal')), ], options={ 'verbose_name': 'Order', 'verbose_name_plural': 'Orders', 'default_related_name': 'Orders', }, ), migrations.CreateModel( name='Role', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ], options={ 'verbose_name': 'Role', 'verbose_name_plural': 'Roles', }, ), migrations.CreateModel( name='ServicePercentage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('percentages', models.FloatField()), ], options={ 'verbose_name': 'Percentage', 'verbose_name_plural': 'Percentages', }, ), migrations.CreateModel( name='Status', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ], options={ 'verbose_name': 'Status', 'verbose_name_plural': 'Statuses', }, ), migrations.CreateModel( name='Table', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ], options={ 'verbose_name': 'Table', 'verbose_name_plural': 'Tables', }, ), migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField( default=False, help_text= 'Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('name', models.CharField(max_length=200)), ('surname', models.CharField(max_length=200)), ('email', models.EmailField(max_length=40, unique=True)), ('phone', models.CharField(max_length=150)), ('is_active', models.BooleanField(default=True)), ('is_staff', models.BooleanField(default=False)), ('groups', models.ManyToManyField( blank=True, help_text= 'The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), ('role', models.ForeignKey( default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='User', to='CRM.Role')), ('user_permissions', models.ManyToManyField( blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), ], options={ 'verbose_name_plural': 'Users', 'default_related_name': 'User', }, managers=[ ('objects', CRM.models.UserManager()), ], ), migrations.AddField( model_name='order', name='tables', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='Orders', to='CRM.Table'), ), migrations.AddField( model_name='mealstoorder', name='orders', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='MealsToOrder', to='CRM.Order'), ), migrations.AddField( model_name='check', name='order', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='Checks', to='CRM.Order'), ), migrations.AddField( model_name='check', name='persentage', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='checks', to='CRM.ServicePercentage'), ), migrations.AddField( model_name='check', name='waiter', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='Checks', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='category', name='department', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='Category', to='CRM.Department'), ), ]