代码之家  ›  专栏  ›  技术社区  ›  Chaban33

如何打印销售订单的POS收据?

  •  2
  • Chaban33  · 技术社区  · 6 年前

    我需要打印销售订单的POS收据,产品数量相同等。

    在销售订单中,我创建了一个按钮“打印POS收据”。用这个按钮,我想触发一个方法,打印出一个收据,上面有销售订单行。

    所以我需要找到创建POS收据并将销售订单行值传递给它的方法。

    那么,在POS机上打印收据的方法是什么?我怎样才能触发它呢?在里面吗 models.js ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   ChesuCR Ayansplatt    6 年前

    在这些Odoo版本中,POS中打印的收据是JavaScript生成的屏幕截图(实际上只有收据div)。但是不能在Sale Order视图中使用这种方法。

    不过,还有另一种方法可以用普通的Qweb报告将门票打印成PDF。如果您点击POS菜单,您将在左边空白处找到“订单”菜单选项。在窗体和列表视图的“打印”菜单下有打印选项。

    print receipt

    如果你去 point_of_sale 模块您将找到 report_receipt.xml 用Qweb语言编写的文件。您可以自定义它,使其与 sale.order 模型。但是考虑到文件格式应该是 point_of_sale.paperformat_posreceipt ,您将在下面的代码中找到paperformat assignment:

    <template id="report_receipt">
        <t t-call="report.html_container">
            <t t-foreach="docs" t-as="o">
                <div class="page">
                    <div class="row">
                        <div class="col-xs-12 text-center">
                            <h2 t-esc="o.user_id.company_id.name"/>
                            <div t-field="o.partner_id"
                                t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
                            User: <span t-field="o.user_id"/><br/>
                            Date: <span t-field="o.date_order"/><br/>
                        </div>
                    </div>
    
                    <div class="row">
                    </div>
    
                    <table class="table table-condensed">
                        <thead>
                            <tr>
                                <th>Description</th>
                                <th class="text-right">Quantity</th>
                                <th class="text-right">Price</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr t-foreach="o.lines" t-as="line">
                                <td><span t-field="line.product_id"/></td>
                                <td class="text-right">
                                    <t t-if="o.state != 'cancel' and o.statement_ids">
                                        <span t-field="line.qty"/>
                                    </t>
                                </td>
                                <td class="text-right">
                                    <t t-if="o.state != 'cancel' and o.statement_ids">
                                        <span t-esc="formatLang(net(line.id), currency_obj=res_company.currency_id)"/>
                                    </t>
                                    <t t-if="line.discount != 0.0">
                                        <span t-esc="line.discount"/>%
                                    </t>
                                </td>
                            </tr>
                        </tbody>
                    </table>
    
                    <div class="row">
                        <div class="col-xs-12 pull-right">
                            <table class="table table-condensed">
                                <tr class="border-black">
                                    <td><strong>Taxes</strong></td>
                                    <td class="text-right">
                                        <strong t-esc="formatLang(o.amount_tax, currency_obj=res_company.currency_id)"/>
                                    </td>
                                </tr>
                                <tr>
                                    <td><strong>Total</strong></td>
                                    <td class="text-right">
                                        <strong t-esc="formatLang(o.amount_total, currency_obj=res_company.currency_id)"/>
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </div>
    
                    <table class="table table-condensed">
                        <thead>
                            <tr>
                                <th>Payment Mode</th>
                                <th>Amount</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr t-foreach="get_journal_amt(o)" t-as="d">
                                <td>
                                    <span t-esc="d['name']"/>
                                </td>
                                <td>
                                    <span t-esc="formatLang(d['amt'], currency_obj=res_company.currency_id)"/>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </t>
        </t>
    </template>
    
    <report
        id="action_report_pos_receipt"
        string="Receipt"
        model="pos.order"
        report_type="qweb-pdf"
        name="point_of_sale.report_receipt"
        file="point_of_sale.report_receipt"
    />
    
    <record id="action_report_pos_receipt" model="ir.actions.report.xml">
        <field name="paperformat_id" ref="point_of_sale.paperformat_posreceipt"/>
    </record>