Заказ на продажу Odoo: неправильный расчет qty_delivered в комплекте

Я на Odoo 11, я в конкретном случае: У меня есть товар (GRI002) с спецификацией типа "Комплект". GRI002STK является единственным компонентом: enter image description here

Когда я делаю заказ на продажу, я устанавливаю 2 GRI002 для заказанного количества. Я подтверждаю. Я иду в Доставку и устанавливаю 1 количество готово: enter image description here

Это показывает мне, что я могу сделать отложенный заказ, я нажимаю «Да». Таким образом, для первого сбора у меня есть 1 первоначальный спрос и 1 выполнено, а для отложенного заказа у меня есть 1 первоначальный спрос и 0 выполнено: enter image description here

В заказе на продажу у меня должно быть 2 заказанных количества и 1 доставлено, но проблема в том, что у меня есть 2 заказанных количества и 0 доставленных. enter image description here Я тестировал продукты без спецификации и спецификации для производства, это работает в обоих случаях.

Итак, какова функция для вычисления заказанного количества? Я исправлю это.

У вас есть эта проблема ? Я не могу отредактировать спецификацию на комплекты, потому что она делает заказы на изготовление, а моему клиенту это не нужно.

Это функциональный вопрос и не имеет ничего общего с программированием. Пожалуйста, задавайте такие вопросы в официальные форумы Odoo.

CZoellner 22.05.2019 16:14

Я думаю, мне нужно написать код для наложения исходного метода, который вычисляет, но я не нахожу, где он находится. Кстати, я не могу задавать вопросы на форуме Odoo, не знаю почему...

Kishiro 22.05.2019 17:16
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
187
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне это удалось, выполнив super() и пересчитав:

class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'


    @api.multi
    def _get_delivered_qty(self):
        self.ensure_one()

        #Hérite de sale/models/sale.py, de sale_stock/models/sale_order.py et de sale_mrp/models/sale_mrp.py
        qty = super(SaleOrderLine, self)._get_delivered_qty()

        #On recherche la nomenclature avec le produit actuel
        bom = self.env['mrp.bom']._bom_find(product=self.product_id)

        #Si c'est une nomenclature en kit
        if bom and bom.type == 'phantom':
            qty = 0   #obligé sinon les quantités seraient comptées 2x

            for move in self.move_ids:
                if move.state == 'done':
                    #on ajoute autant de quantité qu'il y en a dans le stock_move
                    qty = qty + move.quantity_done
        return qty

Другие вопросы по теме