#python #cloud #odoo
#python #облако #odoo
Вопрос:
у меня проблема с некоторой оптимизацией odoo studio. Строка накладной не должна отображаться в показе, если в ней не всего 3 строки, для большего количества все содержимое должно отображаться в другой версии. я начал создавать флажок и назвал его «Приложением», а в условии видимости под строками счетов они будут отображаться только в том случае, если флажок установлен. но мне нужно автоматическое действие для проверки приложения, если строк счетов больше 3, или любое другое предложение. (я использую облачную версию)
Комментарии:
1. Добро пожаловать в Stackoverflow. Не могли бы вы обновить свой вопрос с помощью кода попытки, текущего вывода и ожидаемого вывода?
Ответ №1:
Поскольку вы еще не предоставили никакого кода, лучшее, что я могу предложить, — это общий ответ.
Как вы, вероятно, уже сделали, annexe
поле имеет следующие атрибуты: computed=_compute_count_order_lines, store=True, readonly=True
и вы также объявили функцию, например:
@api.depends('order_line')
def _compute_count_order_lines(self):
for order in self:
order.annexe = len(order.order_line.filtered(lambda x: x.state != 'cancel')) > 3
Таким образом annexe
, будет сигнализировать, если количество строк заказа больше 3.
Затем вам нужно изменить отчет, из которого генерируется счет:
- В режиме отладки перейдите в «Настройки / Технические / Отчеты / Отчеты» и найдите «Модель:
sale.order
«. - Щелкните запись, для которой ее имя шаблона
sale.report_saleorder
- Нажмите на кнопку «QWeb Views»
- Щелкните запись, для которой ее «Внешний идентификатор» равен
sale.report_saleorder_document
- Посмотрите
<table class="table table-sm o_main_table">
, что это таблица со строками заказа. Возможно, вы захотите скопировать код внутри этого тега -
Вернитесь к «представлениям QWeb», создайте представление, которое наследует
sale.report_saleorder_document
, и егоarch
поле содержит что-то вроде:<xpath expr="//table[hasclass('o_main_table')]" позиция="заменить"> <t t-if="doc.annexe"> <!-- Code for more than 3 items --> </t> <t t-else> <класс таблицы="таблица таблицы-sm o_main_table"> <!-- Code for 3 items or less --> </table> </t> </xpath>