Create PartStocktake model

Model for representing stocktake entries against any given part
This commit is contained in:
Oliver 2022-12-16 13:03:16 +11:00
parent 2082455c4e
commit 6d20a0ad23
2 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,27 @@
# Generated by Django 3.2.16 on 2022-12-16 01:59
from django.conf import settings
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('part', '0090_auto_20221115_0816'),
]
operations = [
migrations.CreateModel(
name='PartStocktake',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('quantity', models.DecimalField(decimal_places=5, help_text='Total available stock at time of stocktake', max_digits=19, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Quantity')),
('date', models.DateField(auto_now_add=True, help_text='Date stocktake was performed', verbose_name='Date')),
('part', models.ForeignKey(help_text='Part for stocktake', on_delete=django.db.models.deletion.CASCADE, related_name='stocktakes', to='part.part', verbose_name='Part')),
('user', models.ForeignKey(blank=True, help_text='User who performed this stocktake', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='part_stocktakes', to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
),
]

View File

@ -2878,6 +2878,45 @@ class PartPricing(models.Model):
)
class PartStocktake(models.Model):
"""Model representing a 'stocktake' entry for a particular Part.
A 'stocktake' is a representative count of available stock:
- Performed on a given date
- Records quantity of part in stock (across multiple stock items)
- Records user information
"""
part = models.ForeignKey(
Part,
on_delete=models.CASCADE,
related_name='stocktakes',
verbose_name=_('Part'),
help_text=_('Part for stocktake'),
)
quantity = models.DecimalField(
max_digits=19, decimal_places=5,
validators=[MinValueValidator(0)],
verbose_name=_('Quantity'),
help_text=_('Total available stock at time of stocktake'),
)
date = models.DateField(
verbose_name=_('Date'),
help_text=_('Date stocktake was performed'),
auto_now_add=True
)
user = models.ForeignKey(
User, blank=True, null=True,
on_delete=models.SET_NULL,
related_name='part_stocktakes',
verbose_name=_('User'),
help_text=_('User who performed this stocktake'),
)
class PartAttachment(InvenTreeAttachment):
"""Model for storing file attachments against a Part object."""