odoo/ext/custom-addons/dp_reports_sale/reports/sale.xml

405 lines
21 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Sale Order Body -->
<template id="report_saleorder_document">
<t t-call="web.external_layout">
<t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/>
<div class="page">
<div class="row">
<div class="col-xs-3">
<t t-call="dp_reports.partner_data"/>
</div>
<div class="col-xs-3">
<strong>Delivery Address</strong>
<div class="partner-data">
<span t-esc="o.partner_shipping_id.name"/>
<br/>
<t t-if="o.partner_shipping_id.name2">
<span t-esc="o.partner_shipping_id.name2"/>
<br/>
</t>
<span t-esc="o.partner_shipping_id.street"/>
<br/>
<span t-esc="o.partner_shipping_id.zip"/>
<span t-esc="o.partner_shipping_id.city"/>
<br/>
<span t-esc="o.partner_shipping_id.country_id.name"/>
</div>
</div>
<div class="col-xs-3">
<strong>Invoice Address</strong>
<div class="partner-data">
<span t-esc="o.partner_invoice_id.name"/>
<br/>
<t t-if="o.partner_invoice_id.name2">
<span t-esc="o.partner_invoice_id.name2"/>
<br/>
</t>
<span t-esc="o.partner_invoice_id.street"/>
<br/>
<span t-esc="o.partner_invoice_id.zip"/>
<span t-esc="o.partner_invoice_id.city"/>
<br/>
<t t-if="o.partner_invoice_id.country_id">
<span t-esc="o.partner_invoice_id.country_id.name"/>
<br/>
</t>
<t t-if="o.partner_invoice_id.email">
<span t-esc="o.partner_invoice_id.email"/>
<br/>
</t>
<t t-if="o.partner_invoice_id.phone">
<span t-esc="o.partner_invoice_id.phone"/>
<br/>
</t>
<t t-if="o.partner_invoice_id.vat">UID-Nr.:
<span t-esc="o.partner_invoice_id.vat"/>
</t>
</div>
</div>
<div class="col-xs-3">
<t t-call="dp_reports.company_data"/>
</div>
</div>
<div class="row mt32"/>
<div class="row height-20">
<div class="col-xs-3" style="padding-right: 4px">
<strong>
<span class="col-xs-8" style="padding: 0px;width: 58%;">Cust-No.:</span>
</strong>
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.partner_id.ref"/>
</div>
<strong>
<span class="col-xs-2">Contact Person:</span>
</strong>
<span class="col-xs-3" t-field="o.editor_id"/>
<strong>
<span class="col-xs-2">Positions:</span>
</strong>
<span class="col-xs-2" t-field="o.positions"/>
</div>
<div class="row height-20">
<div class="col-xs-3" style="padding-right: 4px">
<strong>
<span class="col-xs-8" style="padding: 0px;width: 58%;">Offer date:</span>
</strong>
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.date_order"
t-options='{"widget": "date"}'/>
</div>
<strong>
<span class="col-xs-2">Email:</span>
</strong>
<span class="col-xs-3" t-field="res_company.email"/>
<p t-if="o.origin">
<strong>
<span class="col-xs-2">Shopping basket/Ref:</span>
</strong>
<span class="col-xs-2" t-field="o.origin"/>
</p>
</div>
<div class="row">
<div class="col-xs-3" style="padding-right: 4px">
<t t-if="o.state not in ['draft','sent']">
<strong>
<span class="col-xs-8" style="padding: 0px;width: 58%;font-size:12px;padding-top: 3px;">Delivery date ex works:</span>
</strong>
<t t-if="o.earliest_scheduled_date">
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.earliest_scheduled_date"
t-options='{"widget": "date"}'/>
</t>
<t t-else="">
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.delivery_date"
t-options='{"widget": "date"}'/>
</t>
</t>
<t t-if="o.state in ['draft','sent'] and o.validity_date">
<strong>
<span class="col-xs-8" style="padding: 0px;width: 58%;">Valid untill:</span>
</strong>
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.validity_date"
t-options='{"widget": "date"}'/>
</t>
</div>
<strong>
<span class="col-xs-2">Phone:</span>
</strong>
<span class="col-xs-3" t-field="o.editor_id.phone"/>
<strong>
<span class="col-xs-2">Authorization Number:</span>
</strong>
<span class="col-xs-2" t-field="o.confirmation_nr"/>
</div>
<div class="row height-20">
<div class="col-xs-3" style="padding-right: 4px">
</div>
<p t-if="o.user_id">
<strong>
<span class="col-xs-2">Supervisor:</span>
</strong>
<span class="col-xs-6">
<span style="padding-right: 10px;" t-field="o.user_id"/>(<span style="font-size:11px;padding-top: 4px;" t-field="o.user_id.mobile"/>)
</span>
</p>
</div>
<br/>
<div class="row">
<strong>
<span class="col-xs-2">Description:</span>
</strong>
<span class="col-xs-10" t-field="o.client_order_ref"/>
</div>
<p t-if="o.note1 != '&lt;p&gt;&lt;br&gt;&lt;/p&gt;' and o.note1 != ''">
<div class="row mt32 dp_note">
<span t-field="o.note1"/>
</div>
</p>
<p t-else="">
<br/>
</p>
<table class="table table-condensed">
<t t-set="discount_is_set" t-value="field_set_in_lines(o.order_line, 'discount')"/>
<thead class="table-header">
<tr>
<th class="text-center">Pos.</th>
<th class="text-right">Quantity</th>
<th class="text-right">Weight</th>
<th class="text-right"/>
<th class="text-left">Item</th>
<th class="text-right">EP</th>
<th class="text-right" t-if="discount_is_set">Discount</th>
<th class="text-right">Total Value</th>
</tr>
</thead>
<tbody class="sale-tbody">
<t t-set="pos_nr" t-value="0"/>
<t t-foreach="o.order_line" t-as="order_line">
<tr>
<t t-set="pos_nr" t-value="pos_nr+1"/>
<td class="text-center">
<span t-esc="pos_nr"/>
</td>
<td class="text-right">
<t t-if="order_line.product_uom_qty">
<span t-esc="o._formatLang(order_line.product_uom_qty, False).strip('0').strip(',').strip('.')"/>
</t>
</td>
<td class="text-right">
<t t-if="order_line.weight">
<span t-esc="round(order_line.weight,2)"/>
kg
</t>
</td>
<td class="text-right"/>
<td rowspan="2" class="text-left">
<t t-if="order_line.product_id.default_code and order_line.product_id.material_type_id.print_default_code">
<strong>
<span t-field="order_line.product_id.default_code"/>
</strong>
<br/>
</t>
<t t-if="order_line.intrastat_id">
<span>
<strong>Customs Tariff:</strong>
<span t-field="order_line.intrastat_id"/>
</span>
<br/>
</t>
<span t-field="order_line.name"/>
<t t-if="order_line.delivery_date and (order_line.delivery_date != o.delivery_date)">
<br/>
<strong>Estimated delivery date:</strong>
<span t-field="order_line.delivery_date"/>
</t>
<p t-if="order_line.lot_id.notes">
<span t-field="order_line.lot_id.notes"/>
</p>
<p t-if="o.note_line">
<span t-field="o.note_line"/>
</p>
</td>
<td rowspan="2" class="text-right">
<span t-if="order_line.hide_discount"
t-field="order_line.price_reduce"/>
<span t-if="not order_line.hide_discount"
t-field="order_line.price_unit"/>
</td>
<td rowspan="2" class="text-right" t-if="discount_is_set">
<t t-if="not order_line.hide_discount and order_line.discount">
<span t-esc="o._formatLang(order_line.discount, False).strip('0').strip(',').strip('.')"/>
%
</t>
</td>
<td rowspan="2" class="text-right">
<span t-field="order_line.price_subtotal"/>
</td>
</tr>
<tr>
<td colspan="4" style="border: 0;text-align: center;">
<img t-if="order_line.lot_id.image_medium"
t-att-src="'data:image/png;base64,%s' % order_line.lot_id.image_medium.decode()" style="max-width: 120px;"/>
<img t-if="not order_line.lot_id.image_medium and order_line.product_id.image_medium"
t-att-src="'data:image/png;base64,%s' % order_line.product_id.image_medium.decode()" style="max-width: 120px;"/>
</td>
</tr>
</t>
</tbody>
</table>
<div class="row">
<div class="col-xs-4 pull-right">
<table class="table table-condensed">
<tbody class="totals-tbody">
<tr>
<td>
Net Amount
</td>
<td class="text-right">
<span t-field="o.amount_untaxed"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
<t t-set="tax_groups_length" t-value="len(o._get_tax_amount_by_group())"/>
<t t-foreach="o._get_tax_amount_by_group()" t-as="amount_by_group">
<tr style="border-bottom:1px solid #dddddd;">
<t t-if="amount_by_group[1] &gt; 0">
<t t-if="amount_by_group[3] == 1 and o.amount_untaxed == amount_by_group[2]">
<!-- <span>Loop 1</span> -->
<td>
<span t-esc="amount_by_group[0]"/>
</td>
<td class="text-right">
<span t-esc="amount_by_group[1]"
t-options='{"widget": "monetary", "display_currency": o.pricelist_id.currency_id}'/>
</td>
</t>
<t t-else="">
<!-- <span>Loop 2</span> -->
<td>
<span t-esc="amount_by_group[0]"/>
<span>&amp;nbsp;<span>on</span>&amp;nbsp;
<t t-esc="amount_by_group[2]"
t-options='{"widget": "monetary", "display_currency": o.pricelist_id.currency_id}'/>
</span>
</td>
<td class="text-right">
<span t-esc="amount_by_group[1]"
t-options='{"widget": "monetary", "display_currency": o.pricelist_id.currency_id}'/>
</td>
</t>
</t>
</tr>
</t>
<!-- <tr>
<td>
<span>USt.</span>
</td>
<td class="text-right">
<span t-field="o.amount_tax"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
-->
<tr class="amount-total">
<td>
<strong>Total Amount</strong>
</td>
<td class="text-right">
<strong>
<span t-field="o.amount_total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</strong>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row dp_note" style="page-break-inside: avoid">
<p t-if="o.note2">
<span t-field="o.note2" style="page-break-inside: avoid"/>
</p>
</div>
<div class="row dp_note">
<p class="col-xs-12">
<span t-field="o.note"/>
</p>
<p class="col-xs-12">
Weight total:
<span t-esc="round(o.weight_total, 2)"/>
kg
<br/>
</p>
<p class="col-xs-12" t-if="o.incoterm.name">
Terms of Delivery:
<span t-esc="o.incoterm.name"/>
<br/>
</p>
<p class="col-xs-12" t-if="o.payment_term_id and not o.partner_invoice_id.is_retailer">
Terms of Payment:
<span t-esc="o.payment_term_id.name"/>
<br/>
</p>
<p class="col-xs-12" t-if="o.state not in ['draft','sent']">
Please check the packaging or goods for damage immediately upon delivery!
<br/>
If the damaged goods are accepted, there is no entitlement to reimbursement or replacement.
</p>
<t t-if="o.state in ['draft','sent']">
<t t-if="o.validity_date">
<p class="col-xs-12">
Offer valid until:
<span t-field="o.validity_date"/>
</p>
</t>
<t t-if="not o.validity_date">
<p class="col-xs-12">
Validity: 14 days from the date of issue
</p>
</t>
<p class="col-xs-12">
Order placed on: ____________________
</p>
<p class="col-xs-12">
Signature: ____________________
</p>
</t>
<t t-if="o.fiscal_position_id and o.fiscal_position_id.note">
<br/>
</t>
<p id="fiscal_position_remark" t-if="o.fiscal_position_id and o.fiscal_position_id.note">
<strong>Fiscal Position Remark:</strong>
<span t-field="o.fiscal_position_id.note"/>
</p>
</div>
</div>
</t>
</template>
<template id="sale.report_saleorder">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="dp_reports_sale.report_saleorder_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
<template id="sale.report_saleorder_pro_forma">
<t t-call="web.html_container">
<t t-set="is_pro_forma" t-value="True"/>
<t t-foreach="docs" t-as="o">
<t t-call="dp_reports_sale.report_saleorder_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
<record id="sale.action_report_saleorder" model="ir.actions.report">
<field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
</record>
<record id="sale.action_report_pro_forma_invoice" model="ir.actions.report">
<field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
</record>
</odoo>