Qweb PDF с двумя моделями, возможно? - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь создать PDF, который включает информацию из двух разных моделей:

pos.order & pos.order.line

Мысль, которая может создать суб-шаблон и вызвать его в основном.

localdate. xml:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
       <report 
        id="pos_report_localdate"
        model="pos.order"    
        string="Informe de ventas"
        report_type="qweb-pdf"
        name="pos_localdate.local_date_document"
        attachment_use="False"
        file="pos_localdate.local_date_document"
        menu = "True"
    />

    <report 
        id="pos_report_localdate_2"
        model="pos.order.line"    
        string="Informe de ventas 2"
        report_type="qweb-pdf"
        name="pos_localdate.local_date_document"
        attachment_use="False"
        file="pos_localdate.local_date_document"
        menu = "True"
    />

</data>

pos_localdate_report. xml:

<template id="local_date_document">
<t t-call="report.html_container">
  <t t-call="report.external_layout">

    <div class="page">
        <div class="row mt32 mb32">

            <div class="col-xs-2">
                <strong>Order number</strong>:<br/>
            </div>
            <div class="col-xs-2">
                <strong>Delivery date</strong>:<br/>
            </div>  
            <div class="col-xs-2">
                <strong>Client</strong>:<br/>
            </div>
            <div class="col-xs-2">
                <strong>Product</strong>:<br/>                
            </div>
            <div class="col-xs-2">
                <strong>Quantity</strong>:<br/>
            </div>

            <t t-foreach="docs" t-as="o">
                <div class="col-xs-12">
                <!-- pos_order -->
                    <div class="col-xs-2">
                        <p t-field="o.name"/>
                    </div>
                    <div class="col-xs-2" t-if="o.x_exp_date">
                        <p t-field="o.x_exp_date"/>
                    </div>  
                    <div class="col-xs-2">
                        <p t-field="o.partner_id"/>
                    </div>

                <!-- pos_order_line ??????????  -->
                    <t t-call="pos_report_localdate_2">
                        <div class="col-xs-2">
                            <p t-field="o.product_id"/>
                        </div>
                        <div class="col-xs-2">
                            <p t-field="o.qty"/>
                        </div>
                    </t>
                </div>   
            </t>
        </div>
    </div>
</t>

продолжение pos_localdate_report. xml:

<template id="pos_report_localdate_2">
    <t t-call="report.html_container">
<!-- ............................................... -->
    </t>
</template>
</data>
</openerp>

Пожалуйста, не поймите неправильно, если в какой-то момент я поставлю плохая практика, я новый.

1 Ответ

0 голосов
/ 26 февраля 2020

Нет необходимости создавать второй шаблон,

Мне нужно изменить:

     <t t-call="pos_report_localdate_2">
       <div class="col-xs-2">
          <p t-field="o.product_id"/>
        </div>
        <div class="col-xs-2">
           <p t-field="o.qty"/>
        </div>
      </t> 

для:

     <!-- pos_order_line  -->
     <t t-foreach="request.env['pos.order.line'].search([('order_id','=',o.id)])" t-as="obj">
        <div class="col-xs-2">
           <p t-field="obj.product_id"/>
        </div>
        <div class="col-xs-2">
           <p t-field="obj.qty"/>
        </div>
     </t>
...