Fixes for stock modal and notes propagation to tracking items

This commit is contained in:
eeintech 2021-07-05 17:36:10 -04:00
parent 1d0dd04ca4
commit 6687661928
2 changed files with 29 additions and 31 deletions

View File

@ -1211,7 +1211,7 @@ class StockItem(MPTTModel):
# We need to split the stock!
# Split the existing StockItem in two
self.splitStock(quantity, location, user)
self.splitStock(quantity, location, user, **{'notes': notes})
return True

View File

@ -810,6 +810,20 @@ class StockAdjust(AjaxView, FormMixin):
return items
def get_stock_action_titles(self):
# Choose form title and action column based on the action
titles = {
'move': [_('Move Stock Items'), _('Move')],
'count': [_('Count Stock Items'), _('Count')],
'take': [_('Remove From Stock'), _('Take')],
'add': [_('Add Stock Items'), _('Add')],
'delete': [_('Delete Stock Items'), _('Delete')],
}
self.ajax_form_title = titles[self.stock_action][0]
self.stock_action_title = titles[self.stock_action][1]
def get_context_data(self):
context = super().get_context_data()
@ -818,6 +832,7 @@ class StockAdjust(AjaxView, FormMixin):
context['stock_action'] = self.stock_action.strip().lower()
self.get_stock_action_titles()
context['stock_action_title'] = self.stock_action_title
# Quantity column will be read-only in some circumstances
@ -846,18 +861,6 @@ class StockAdjust(AjaxView, FormMixin):
if self.stock_action not in ['move', 'count', 'take', 'add', 'delete']:
self.stock_action = 'count'
# Choose form title and action column based on the action
titles = {
'move': [_('Move Stock Items'), _('Move')],
'count': [_('Count Stock Items'), _('Count')],
'take': [_('Remove From Stock'), _('Take')],
'add': [_('Add Stock Items'), _('Add')],
'delete': [_('Delete Stock Items'), _('Delete')],
}
self.ajax_form_title = titles[self.stock_action][0]
self.stock_action_title = titles[self.stock_action][1]
# Save list of items!
self.stock_items = self.get_GET_items()
@ -908,7 +911,7 @@ class StockAdjust(AjaxView, FormMixin):
}
if valid:
result = self.do_action()
result = self.do_action(note=form.cleaned_data['note'])
data['success'] = result
@ -925,9 +928,9 @@ class StockAdjust(AjaxView, FormMixin):
# Instruct the form to redirect
data['url'] = reverse('stock-index')
return self.renderJsonResponse(request, form, data=data)
return self.renderJsonResponse(request, form, data=data, context=self.get_context_data())
def do_action(self):
def do_action(self, note=None):
""" Perform stock adjustment action """
if self.stock_action == 'move':
@ -942,27 +945,26 @@ class StockAdjust(AjaxView, FormMixin):
except ValueError:
pass
return self.do_move(destination, set_default_loc)
return self.do_move(destination, set_default_loc, note=note)
elif self.stock_action == 'add':
return self.do_add()
return self.do_add(note=note)
elif self.stock_action == 'take':
return self.do_take()
return self.do_take(note=note)
elif self.stock_action == 'count':
return self.do_count()
return self.do_count(note=note)
elif self.stock_action == 'delete':
return self.do_delete()
return self.do_delete(note=note)
else:
return _('No action performed')
def do_add(self):
def do_add(self, note=None):
count = 0
note = self.request.POST['note']
for item in self.stock_items:
if item.new_quantity <= 0:
@ -974,10 +976,9 @@ class StockAdjust(AjaxView, FormMixin):
return _('Added stock to {n} items').format(n=count)
def do_take(self):
def do_take(self, note=None):
count = 0
note = self.request.POST['note']
for item in self.stock_items:
if item.new_quantity <= 0:
@ -989,10 +990,9 @@ class StockAdjust(AjaxView, FormMixin):
return _('Removed stock from {n} items').format(n=count)
def do_count(self):
def do_count(self, note=None):
count = 0
note = self.request.POST['note']
for item in self.stock_items:
@ -1002,13 +1002,11 @@ class StockAdjust(AjaxView, FormMixin):
return _("Counted stock for {n} items".format(n=count))
def do_move(self, destination, set_loc=None):
def do_move(self, destination, set_loc=None, note=None):
""" Perform actual stock movement """
count = 0
note = self.request.POST['note']
for item in self.stock_items:
# Avoid moving zero quantity
if item.new_quantity <= 0: