Coverage for src/backend/InvenTree/order/migrations/0020_auto_20200420_0940.py: 100%
9 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
1# Generated by Django 3.0.5 on 2020-04-20 09:40
3import InvenTree.fields
4import InvenTree.models
5from django.conf import settings
6import django.core.validators
7from django.db import migrations, models
8import django.db.models.deletion
11class Migration(migrations.Migration):
13 dependencies = [
14 ('company', '0021_remove_supplierpart_manufacturer_name'),
15 migrations.swappable_dependency(settings.AUTH_USER_MODEL),
16 ('order', '0019_purchaseorder_supplier_reference'),
17 ]
19 operations = [
20 migrations.CreateModel(
21 name='SalesOrder',
22 fields=[
23 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
24 ('reference', models.CharField(help_text='Order reference', max_length=64, unique=True)),
25 ('description', models.CharField(help_text='Order description', max_length=250)),
26 ('link', models.URLField(blank=True, help_text='Link to external page')),
27 ('creation_date', models.DateField(blank=True, null=True)),
28 ('status', models.PositiveIntegerField(choices=[(10, 'Pending'), (20, 'Placed'), (30, 'Complete'), (40, 'Cancelled'), (50, 'Lost'), (60, 'Returned')], default=10, help_text='Order status')),
29 ('issue_date', models.DateField(blank=True, null=True)),
30 ('complete_date', models.DateField(blank=True, null=True)),
31 ('notes', models.TextField(blank=True, help_text='Order notes')),
32 ('customer_reference', models.CharField(blank=True, help_text='Customer order reference code', max_length=64)),
33 ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
34 ('customer', models.ForeignKey(help_text='Customer', limit_choices_to={True, 'is_supplier'}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sales_orders', to='company.Company')),
35 ],
36 options={
37 'abstract': False,
38 'verbose_name': 'Sales Order',
39 },
40 ),
41 migrations.AlterField(
42 model_name='purchaseorder',
43 name='supplier',
44 field=models.ForeignKey(help_text='Supplier', limit_choices_to={'is_supplier': True}, on_delete=django.db.models.deletion.CASCADE, related_name='purchase_orders', to='company.Company'),
45 ),
46 migrations.AlterField(
47 model_name='purchaseorder',
48 name='supplier_reference',
49 field=models.CharField(blank=True, help_text='Supplier order reference code', max_length=64),
50 ),
51 migrations.CreateModel(
52 name='SalesOrderLineItem',
53 fields=[
54 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
55 ('quantity', InvenTree.fields.RoundingDecimalField(decimal_places=5, default=1, help_text='Item quantity', max_digits=15, validators=[django.core.validators.MinValueValidator(0)])),
56 ('reference', models.CharField(blank=True, help_text='Line item reference', max_length=100)),
57 ('notes', models.CharField(blank=True, help_text='Line item notes', max_length=500)),
58 ('order', models.ForeignKey(help_text='Sales Order', on_delete=django.db.models.deletion.CASCADE, related_name='lines', to='order.SalesOrder')),
59 ],
60 options={
61 'abstract': False,
62 'verbose_name': 'Sales Order Line Item',
63 },
64 ),
65 migrations.CreateModel(
66 name='SalesOrderAttachment',
67 fields=[
68 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
69 ('attachment', models.FileField(help_text='Select file to attach', upload_to='attachments')),
70 ('comment', models.CharField(help_text='File comment', max_length=100)),
71 ('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='order.SalesOrder')),
72 ],
73 options={
74 'abstract': False,
75 },
76 ),
77 ]