首页 文章

自定义发票报表系统中未找到odoo V8外部标识

提问于
浏览
0

我正在为Odoo V8创建一个模块,用于打印自定义报告,但由于某种原因,它没有找到模块中定义的一些模板,到目前为止我不知道为什么 .

以下是报告(发票)的内容: Invoice

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
      <template id="clusterbrands_custom_report_invoice">
        <t t-call="clusterbrands_custom_report_invoice">
            <div class="page">

                <div class="spacer" style="margin-top: 40px;"></div>

                <div class="row space-bottom">

                    <div class="col-xs-2">

                        <h3>
                            <b>Razon social: </b>
                            <span t-field="o.partner_id.name"/>

                            
<span t-if="o.partner_id.vat"> <b>R.I.F.: </b> </span> <span t-esc="o.partner_id.vat[2:]"/>
<b>Telf:</b> <span t-field="o.partner_id.phone"/> </h3> </div> <div class="col-xs-3"> <h3> <b>Dirección Fiscal:</b>
<span t-field="o.partner_id.street"/> <span t-field="o.partner_id.street2"/> <span t-field="o.partner_id.city"/> <span t-field="o.partner_id.state_id"/> </h3> </div> <div class="col-xs-4 text-center"> <h4> <div t-if="o.name" class="col-xs-4"> <p><strong> Descripción: </strong></p> <span t-field="o.name"/> </div> <div t-if="o.origin" class="col-xs-4"> <strong> Doc. Origen: </strong>
<span t-field="o.origin"/> </div> <div t-if="o.partner_id.ref" class="col-xs-4"> <strong> Codigo Cliente: </strong>
<span t-field="o.partner_id.ref"/> </div> <div t-if="o.reference" class="col-xs-4"> <strong> Ref: </strong>
<span t-field="o.reference"/> </div> <div t-if="o.user_id" class="col-xs-4"> <strong> Comercial: </strong>
<span t-field="o.user_id" /> </div> </h4> </div> <div class="col-xs-3 text-right"> <h3> <strong> <span t-if="o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')">Factura</span> <span t-if="o.type == 'out_invoice' and o.state == 'proforma2'">PRO-FORMA</span> <span t-if="o.type == 'out_invoice' and o.state == 'draft'">Factura Borrador</span> <span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Factura Cancelada</span> <span t-if="o.type == 'out_refund'">Reembolso</span> <span t-if="o.type == 'in_refund'">Reembolso Proveedor</span> <span t-if="o.type == 'in_invoice'">Factura Proveedor</span> <span t-field="o.nro_ctrl"/> </strong>
<strong>Fecha emisión:</strong> <span t-field="o.date_document"/>
<strong>Fecha vcto:</strong> <span t-field="o.date_due"/> </h3> </div> </div> <table class="table table-condensed"> <thead> <tr> <th>Código</th> <th>Descripción</th> <th>Cant</th> <th>Precio Unit.</th> <th class="text-center" groups="sale.group_discount_per_so_line">Descuento (%)</th> <th class="text-center">Sub total</th> </tr> </thead> <tbody class="invoice_tbody"> <tr t-foreach="o.invoice_line" t-as="l"> <td style="width: 10%"><span t-field="l.product_id.default_code"/></td> <td style="width: 40%"><span t-field="l.name"/></td> <td> <span t-field="l.quantity"/> <span t-field="l.uos_id" groups="product.group_uom"/> </td> <td> <span t-field="l.price_unit"/> </td> <td class="text-center" groups="sale.group_discount_per_so_line"><span t-field="l.discount"/></td> <td class="text-center"> <span t-field="l.price_subtotal" /> </td> </tr> </tbody> </table> <div class="row"> <div class="col-xs-3 pull-right"> <table class="table table-condensed"> <tr> <td><strong>Sub total</strong></td> <td class="text-right"> <span t-field="o.amount_untaxed" t-field-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: &quot;o.currency_id&quot;}"/> </td> </tr> <tr> <td><strong>I.V.A. <span t-esc="o.tax_line.name[:3]"></span></strong></td> <td class="text-right"> <span t-field="o.amount_tax" t-field-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: &quot;o.currency_id&quot;}"/> </td> </tr> <tr> <td><strong>Total</strong></td> <td class="text-right"> <span t-field="o.amount_total" t-field-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: &quot;o.currency_id&quot;}"/> </td> </tr> </table> </div> </div> <p t-if="o.comment"> <strong>Observaciones:</strong> <span t-field="o.comment"/> </p> <p t-if="o.payment_term.note"> <strong>Forma de pago:</strong> <span t-field="o.payment_term.note"/> </p> <p t-if="o.fiscal_position.note"> <strong>Fiscal Position Remark:</strong> <span t-field="o.fiscal_position.note"/> </p> </div> </t> </template> <template id="report_template"> <t t-call="report.html_container"> <t t-foreach="doc_ids" t-as="doc_id"> <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'clusterbrands_custom_invoice.clusterbrands_invoice')"/> </t> </t> </template> </data> </openerp>

这是报告菜单的输入: report.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>

    <!-- form view for company -->
    <report
        id="cluster_custom_invoice"
        model="account.invoice"
        string="Proforma (Media carta)"
        report_type="qweb-pdf"
        name="clusterbrands_custom_invoice.report_template"
        file="clusterbrands_custom_invoice.report_template"
        attachment_use="True"
        attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')"
        />

        <record id="cluster_report_paperformat" model="report.paperformat">
            <field name="name">Media Carta</field>
            <field name="default" eval="True"/>
            <field name="format">custom</field>
            <field name="page_height">140</field>
            <field name="page_width">216</field>
            <field name="orientation">Portrait</field>
            <field name="margin_top">3</field>
            <field name="margin_bottom">3</field>
            <field name="margin_left">3</field>
            <field name="margin_right">3</field>
            <field name="header_line" eval="False"/>
            <field name="header_spacing">3</field>
            <field name="dpi">80</field>
        </record>

    <record id="cluster_custom_invoice" model="ir.actions.report.xml">
        <field name="paperformat_id" ref="cluster_report_paperformat"/>
    </record>

  </data>
</openerp>

以及它们在文件“ openerp .py”中定义的顺序: openerp

# any module necessary for this one to work correctly
'depends': ['base_setup', 'product', 'analytic', 'board', 'edi', 'report', 'account'],

# always loaded
'data': [
    'report/cluster_invoice.xml',
    'report/cluster_layout.xml',
    'report/cluster_footer.xml',
    'report/report.xml',
],
'css': [
    'static/src/css/style.css',
],
# only loaded in demonstration mode
'demo': [
    'data/demo.xml',
],

如何定义报告的ID并不重要Odoo一直给我一个错误:

"External ID not found in the system: clusterbrands_custom_invoice.external_layout" while evaluating "translate_doc(doc_id, doc_model, 'partner_id.lang', 'clusterbrands_custom_invoice.clusterbrands_invoice')"

2 回答

  • 0

    我不明白

    <template id="clusterbrands_custom_report_invoice">
        <t t-call="clusterbrands_custom_report_invoice">
    

    你的模板自称?我猜你的意思

    <template id="clusterbrands_custom_report_invoice">
        <t t-call="external_layout">
    

    您可以使用加载更改openerp.py的文件来处理优先级问题

    'data': [
        'report/cluster_footer.xml',
        'report/cluster_layout.xml',
        'report/cluster_invoice.xml',
        'report/report.xml',
    ],
    
  • 0

    在模板ID中你把id放在这样的:

    <template id="clusterbrands_custom_report_invoice">
    

    和报告模板

    <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'clusterbrands_custom_invoice.clusterbrands_invoice')"/>
    

    代码应该是这样的:

    <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'clusterbrands_custom_invoice.clusterbrands_custom_report_invoice')"/>
    

相关问题