0001_initial.py 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # Generated by Django 4.1.2 on 2025-08-08 14:41
  2. from django.db import migrations, models
  3. import django.db.models.deletion
  4. class Migration(migrations.Migration):
  5. initial = True
  6. dependencies = [
  7. ('userprofile', '0002_alter_academicprofile_department_and_more'),
  8. ]
  9. operations = [
  10. migrations.CreateModel(
  11. name='InvoiceHeader',
  12. fields=[
  13. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  14. ('name', models.CharField(max_length=100, verbose_name='单位名称')),
  15. ('tax_id', models.CharField(max_length=50, verbose_name='纳税人识别号')),
  16. ('address', models.CharField(max_length=200, verbose_name='地址')),
  17. ('bank', models.CharField(max_length=100, verbose_name='开户银行')),
  18. ('account', models.CharField(max_length=50, verbose_name='银行账号')),
  19. ],
  20. options={
  21. 'verbose_name': '发票抬头信息',
  22. 'verbose_name_plural': '发票抬头信息',
  23. 'db_table': 'invoice_header',
  24. 'ordering': ['name'],
  25. },
  26. ),
  27. migrations.CreateModel(
  28. name='InvoiceRecord',
  29. fields=[
  30. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  31. ('amount', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='金额')),
  32. ('date', models.DateField(verbose_name='时间')),
  33. ('purpose', models.CharField(max_length=100, verbose_name='用途')),
  34. ('project', models.CharField(max_length=100, verbose_name='归属项目')),
  35. ('actual_paid', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='实付金额')),
  36. ('is_reported', models.BooleanField(default=False, verbose_name='是否申报')),
  37. ('invoice_attachment', models.FileField(blank=True, null=True, upload_to='invoices/', verbose_name='发票附件')),
  38. ('payment_attachment', models.FileField(blank=True, null=True, upload_to='payments/', verbose_name='支付附件')),
  39. ('status', models.CharField(choices=[('P', '待审批'), ('A', '已通过'), ('R', '已拒绝')], default='P', max_length=1, verbose_name='审批状态')),
  40. ('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
  41. ('update_time', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
  42. ('header', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='invoices', to='invoice.invoiceheader', verbose_name='单位抬头')),
  43. ('teacher', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='teacher_invoices', to='userprofile.users', verbose_name='归属老师')),
  44. ],
  45. options={
  46. 'verbose_name': '发票记录',
  47. 'verbose_name_plural': '发票记录',
  48. 'db_table': 'invoice_record',
  49. 'ordering': ['-date'],
  50. },
  51. ),
  52. ]