mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
First pass of automated tracking data
- When stock item is moved - When stocktake is performed - Yes it is bad - needs improvement!
This commit is contained in:
parent
f9138f4997
commit
37b109b8fc
@ -180,6 +180,18 @@ class StockItem(models.Model):
|
||||
def has_tracking_info(self):
|
||||
return self.tracking_info.count() > 0
|
||||
|
||||
def add_transaction_note(self, title, user, notes='', system=True):
|
||||
track = StockItemTracking.objects.create(
|
||||
item=self,
|
||||
title=title,
|
||||
user=user,
|
||||
date=datetime.now().date(),
|
||||
notes=notes,
|
||||
system=system
|
||||
)
|
||||
|
||||
track.save()
|
||||
|
||||
@transaction.atomic
|
||||
def stocktake(self, count, user):
|
||||
""" Perform item stocktake.
|
||||
@ -197,6 +209,11 @@ class StockItem(models.Model):
|
||||
self.stocktake_user = user
|
||||
self.save()
|
||||
|
||||
self.add_transaction_note('Stocktake',
|
||||
user,
|
||||
notes='Counted {n} items'.format(n=count),
|
||||
system=True)
|
||||
|
||||
@transaction.atomic
|
||||
def add_stock(self, amount):
|
||||
""" Add items to stock
|
||||
|
@ -84,8 +84,8 @@
|
||||
{% for track in item.tracking_info.all %}
|
||||
<li class='list-group-item'>
|
||||
<b>{{ track.title }}</b>
|
||||
{% if track.description %}
|
||||
<br><br>{{ track.description }}</i>
|
||||
{% if track.notes %}
|
||||
<br><br>{{ track.notes }}</i>
|
||||
{% endif %}
|
||||
<span class='badge'>{{ track.date }}</span>
|
||||
</li>
|
||||
|
@ -137,6 +137,28 @@ class StockItemMove(AjaxUpdateView):
|
||||
ajax_submit_text = 'Move'
|
||||
form_class = MoveStockItemForm
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
form = self.form_class(request.POST, instance=self.get_object())
|
||||
|
||||
if form.is_valid():
|
||||
obj = form.save()
|
||||
|
||||
try:
|
||||
loc = StockLocation.objects.get(pk=form['location'].value())
|
||||
loc_path = loc.pathstring
|
||||
except StockLocation.DoesNotExist:
|
||||
loc_path = ''
|
||||
|
||||
obj.add_transaction_note("Moved item to '{where}'".format(where=loc_path),
|
||||
request.user,
|
||||
system=True)
|
||||
|
||||
data = {
|
||||
'form_valid': form.is_valid(),
|
||||
}
|
||||
|
||||
return self.renderJsonResponse(request, form, data)
|
||||
|
||||
|
||||
class StockItemStocktake(AjaxUpdateView):
|
||||
model = StockItem
|
||||
@ -150,12 +172,10 @@ class StockItemStocktake(AjaxUpdateView):
|
||||
form = self.form_class(request.POST, instance=self.get_object())
|
||||
|
||||
if form.is_valid():
|
||||
obj = form.save()
|
||||
|
||||
obj.stocktake_date = datetime.datetime.now()
|
||||
obj.stocktake_user = request.user
|
||||
obj = self.get_object()
|
||||
|
||||
obj.save()
|
||||
obj.stocktake(form.data['quantity'], request.user)
|
||||
|
||||
data = {
|
||||
'form_valid': form.is_valid()
|
||||
|
Loading…
Reference in New Issue
Block a user