Odoo установить условие ИЛИ - PullRequest
1 голос
/ 01 мая 2020

в пользовательском модуле у меня такая ситуация:

@api.onchange('barcode')
    def barcode_scanning(self):
        """Barcode decode."""
        if self.barcode:
            scan_barcode = self.barcode
            barcode = scan_barcode
            qty_position = scan_barcode.find("'")
            price_position = scan_barcode.find('/')

            if price_position > 0:
                price = scan_barcode[:price_position].replace(',','.')
                barcode = scan_barcode[price_position + 1:]
            else:
                price = 0

            if qty_position > 0:
                qty = scan_barcode[price_position + 1:qty_position].replace(',','.')
                barcode = scan_barcode[qty_position + 1:]
            else:
                if float(price) > 0:
                    qty = 0
                else:
                    qty = 1

Мне нужно: qty_position = scan_barcode.find ("'") команда find "'" ИЛИ "". Может кто-нибудь помочь мне, и напишите мне измененный код, для поиска "'" или "". Я не разработчик, но я пользователь, я не знаю, как редактировать этот код. Спасибо

1 Ответ

2 голосов
/ 02 мая 2020

Для простоты я добавил оператор if, который проверяет, нашла ли предыдущая функция find что-то, что qty_position = scan_barcode.find("'"), если оно не нашло, тогда find, если это существует qty_position = scan_barcode.find("") Пожалуйста, смотрите ниже код , если это поможет.

    def barcode_scanning(self):
        """Barcode decode."""
        if self.barcode:
            scan_barcode = self.barcode
            barcode = scan_barcode
            qty_position = scan_barcode.find("'")
            if qty_position < 0:
                qty_position = scan_barcode.find("")
            price_position = scan_barcode.find('/')

            if price_position > 0:
                price = scan_barcode[:price_position].replace(',','.')
                barcode = scan_barcode[price_position + 1:]
            else:
                price = 0

            if qty_position > 0:
                qty = scan_barcode[price_position + 1:qty_position].replace(',','.')
                barcode = scan_barcode[qty_position + 1:]
            else:
                if float(price) > 0:
                    qty = 0
                else:
                    qty = 1
...