Как скрыть строку счета в odoo v12, если есть более 5 строк - PullRequest
0 голосов
/ 13 апреля 2019

У меня проблема с кастомизацией студии odoo.Строка счета-фактуры не должна появляться в показе, если в ней нет только 3 строк, более того, весь контент должен отображаться в другом отчете. Я начал создавать флажок и назвал его «Приложение» и в условии видимости под строками счета-фактуры,что они появятся только в том случае, если флажок установлен. Но мне нужно автоматическое действие для проверки Приложения, когда строки счетов-фактур больше 3 или любое другое предложение (я использую облачную версию)

1 Ответ

0 голосов
/ 17 апреля 2019

Поскольку вы еще не предоставили ни одного кода, лучшее, что я могу предложить, - это широкий ответ.

Как вы, вероятно, и сделали, поле 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.

Затем вам нужно изменить отчет, из которого выставлен счетсгенерировано:

  1. В режиме отладки перейдите в «Настройки / Техника / Отчеты / Отчеты» и найдите «Модель: sale.order».
  2. Нажмите на запись, для которой ее имя шаблона sale.report_saleorder
  3. Нажмите на кнопку «QWeb Views»
  4. Нажмите на запись, для которой ее «Внешний ID»это sale.report_saleorder_document
  5. Ищите <table class="table table-sm o_main_table"> это таблица со строками заказа.Возможно, вы захотите скопировать код внутри этого тега
  6. Вернитесь в «QWeb Views», создайте представление, которое наследует sale.report_saleorder_document, а его поле arch содержит что-то вроде:

    <xpath expr="//table[hasclass('o_main_table')]" position="replace">
      <t t-if="doc.annexe">
        <!-- Code for more than 3 items -->
      </t> <t t-else>
        <table class="table table-sm o_main_table">
          <!-- Code for 3 items or less --> 
        </table>
      </t>
    </xpath>
    
...