2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-30 04:26:44 +00:00

Part stuff

This commit is contained in:
Oliver 2018-04-30 22:30:15 +10:00
parent 4a2b6a5674
commit b24ddac0b8
5 changed files with 30 additions and 9 deletions

View File

@ -12,7 +12,6 @@ from .serializers import PartSerializer
from InvenTree.views import TreeSerializer from InvenTree.views import TreeSerializer
class PartCategoryTree(TreeSerializer): class PartCategoryTree(TreeSerializer):
title = "Parts" title = "Parts"

View File

@ -256,18 +256,19 @@ class Part(models.Model):
self.allocated_build_count, self.allocated_build_count,
]) ])
@property
def stock_entries(self):
return [loc for loc in self.locations.all() if loc.in_stock]
@property @property
def total_stock(self): def total_stock(self):
""" Return the total stock quantity for this part. """ Return the total stock quantity for this part.
Part may be stored in multiple locations Part may be stored in multiple locations
""" """
stocks = self.locations.all() return sum([loc.quantity for loc in self.stock_entries])
if len(stocks) == 0:
return 0
result = stocks.aggregate(total=Sum('quantity'))
return result['total']
@property @property
def has_bom(self): def has_bom(self):

View File

@ -22,7 +22,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for stock in part.locations.all %} {% for stock in part.stock_entries %}
<tr> <tr>
<td><a href="{% url 'stock-item-detail' stock.id %}">Click</a></td> <td><a href="{% url 'stock-item-detail' stock.id %}">Click</a></td>
<td> <td>

View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.12 on 2018-04-30 12:18
from __future__ import unicode_literals
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stock', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='stockitem',
name='quantity',
field=models.PositiveIntegerField(default=1, validators=[django.core.validators.MinValueValidator(0)]),
),
]

View File

@ -130,7 +130,7 @@ class StockItem(models.Model):
# build = models.ForeignKey('build.Build', on_delete=models.SET_NULL, blank=True, null=True) # build = models.ForeignKey('build.Build', on_delete=models.SET_NULL, blank=True, null=True)
# Quantity of this stock item. Value may be overridden by other settings # Quantity of this stock item. Value may be overridden by other settings
quantity = models.PositiveIntegerField(validators=[MinValueValidator(0)]) quantity = models.PositiveIntegerField(validators=[MinValueValidator(0)], default=1)
# Last time this item was updated (set automagically) # Last time this item was updated (set automagically)
updated = models.DateField(auto_now=True) updated = models.DateField(auto_now=True)