Добавил приложение склад и модели заготовок
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 6s
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 6s
This commit is contained in:
89
stock/migrations/0001_initial.py
Normal file
89
stock/migrations/0001_initial.py
Normal file
@@ -0,0 +1,89 @@
|
||||
# Generated by Django 6.0.2 on 2026-02-16 04:28
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='BaseMaterial',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(help_text='Лист 10мм или Труба 40х40х2', max_length=255, verbose_name='Наименование заготовки')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Заготовка',
|
||||
'verbose_name_plural': 'Заготовки',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MaterialGrade',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=50, verbose_name='Марка стали')),
|
||||
('gost', models.CharField(blank=True, max_length=100, null=True, verbose_name='ГОСТ/ТУ')),
|
||||
('density', models.PositiveIntegerField(default=7850.0, verbose_name='Плотность, кг/м³')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Марка материала',
|
||||
'verbose_name_plural': 'Марки материалов',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProfileMaterial',
|
||||
fields=[
|
||||
('basematerial_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stock.basematerial')),
|
||||
('profile_type', models.CharField(choices=[('round_tube', 'Труба круглая'), ('square_tube', 'Труба профильная'), ('channel', 'Швеллер'), ('angle', 'Уголок'), ('bar', 'Круг/Пруток'), ('other', 'Прочее')], max_length=20, verbose_name='Тип сечения')),
|
||||
('weight_per_meter', models.FloatField(help_text='Табличный вес по ГОСТ', verbose_name='Вес 1 м.п., кг')),
|
||||
('max_dimension', models.PositiveIntegerField(help_text='Для проверки входимости детали', verbose_name='Макс. габарит сечения, мм')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Профильный материал',
|
||||
'verbose_name_plural': 'Профильные материалы',
|
||||
},
|
||||
bases=('stock.basematerial',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SheetMaterial',
|
||||
fields=[
|
||||
('basematerial_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stock.basematerial')),
|
||||
('thickness', models.PositiveIntegerField(verbose_name='Толщина, мм')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Листовой материал',
|
||||
'verbose_name_plural': 'Листовые материалы',
|
||||
},
|
||||
bases=('stock.basematerial',),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='basematerial',
|
||||
name='grade',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='stock.materialgrade', verbose_name='Материал'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='StockItem',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('length', models.PositiveIntegerField(verbose_name='Длина, мм')),
|
||||
('width', models.PositiveIntegerField(blank=True, null=True, verbose_name='Ширина, мм')),
|
||||
('quantity', models.PositiveIntegerField(default=1, verbose_name='Количество, шт')),
|
||||
('order_reference', models.CharField(blank=True, max_length=100, null=True, verbose_name='Заказ/Сделка')),
|
||||
('is_scrap', models.BooleanField(default=False, verbose_name='Деловой остаток')),
|
||||
('location', models.CharField(blank=True, max_length=100, null=True, verbose_name='Место хранения')),
|
||||
('material', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='stock_items', to='stock.basematerial', verbose_name='Тип заготовки')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Складская единица',
|
||||
'verbose_name_plural': 'Склад налицо',
|
||||
},
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user