mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-16 20:15:44 +00:00
Create PartStocktake model
Model for representing stocktake entries against any given part
This commit is contained in:
27
InvenTree/part/migrations/0091_partstocktake.py
Normal file
27
InvenTree/part/migrations/0091_partstocktake.py
Normal 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')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
@ -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):
|
class PartAttachment(InvenTreeAttachment):
|
||||||
"""Model for storing file attachments against a Part object."""
|
"""Model for storing file attachments against a Part object."""
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user