Extract methods to allow more precise overrides

This commit is contained in:
Guewen Baconnier
2020-07-03 08:21:29 +02:00
committed by Hai Lang
parent f2553e0fc3
commit 3eaf69cc48

View File

@@ -56,36 +56,41 @@ class VerticalLiftOperationPut(models.Model):
def on_barcode_scanned(self, barcode): def on_barcode_scanned(self, barcode):
self.ensure_one() self.ensure_one()
if self.step() == "scan_source": if self.step() == "scan_source":
line = self._find_move_line(barcode) self._scan_source_action(barcode)
if line:
self.current_move_line_id = line
self.next_step()
else:
self.env.user.notify_warning(
_("No move line found for barcode {}").format(barcode)
)
elif self.step() in ("scan_tray_type", "save"): elif self.step() in ("scan_tray_type", "save"):
# note: we must be able to scan a different tray type when we are # note: we must be able to scan a different tray type when we are
# in the save step too, in case we couldn't put it in the first one # in the save step too, in case we couldn't put it in the first one
# for some reason. # for some reason.
tray_type = self._find_tray_type(barcode) self._scan_tray_type_action(barcode)
if tray_type:
if self._assign_available_cell(tray_type): def _scan_source_action(self, barcode):
self.fetch_tray() line = self._find_move_line(barcode)
if self.step() == "scan_tray_type": if line:
# when we are in "save" step, stay here self.current_move_line_id = line
self.next_step() self.next_step()
else: else:
self.env.user.notify_warning( self.env.user.notify_warning(
_('No free space for tray type "{}" in this shuttle.').format( _("No move line found for barcode {}").format(barcode)
tray_type.display_name )
)
) def _scan_tray_type_action(self, barcode):
tray_type = self._find_tray_type(barcode)
if tray_type:
if self._assign_available_cell(tray_type):
self.fetch_tray()
if self.step() == "scan_tray_type":
# when we are in "save" step, stay here
self.next_step()
else: else:
self.env.user.notify_warning( self.env.user.notify_warning(
_("No tray type found for barcode {}").format(barcode) _('No free space for tray type "{}" in this shuttle.').format(
tray_type.display_name
)
) )
else:
self.env.user.notify_warning(
_("No tray type found for barcode {}").format(barcode)
)
def _find_tray_type(self, barcode): def _find_tray_type(self, barcode):
return self.env["stock.location.tray.type"].search( return self.env["stock.location.tray.type"].search(