Fall 5041: Anpassungen Rechnungsreport, US01 umgesetzt
parent
f8c775176a
commit
06c0d8f1a9
|
|
@ -2,3 +2,4 @@
|
|||
|
||||
|
||||
from . import report_helper
|
||||
from . import account_invoice
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
# Copyright 2018-Today datenpol gmbh (<http://www.datenpol.at>)
|
||||
# License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses).
|
||||
|
||||
from odoo import api, models
|
||||
|
||||
|
||||
class AccountInvoice(models.Model):
|
||||
_inherit = 'account.invoice'
|
||||
|
||||
@api.multi
|
||||
def order_lines_layouted(self):
|
||||
res = super(AccountInvoice, self).order_lines_layouted()
|
||||
uncategorized = False
|
||||
# Rechnungszeilen ohne Kategorie löschen und an den Anfang stellen
|
||||
for idx1, page in enumerate(res):
|
||||
for idx2, category in enumerate(page):
|
||||
if category.get('name') == 'Uncategorized':
|
||||
uncategorized = page.pop(idx2)
|
||||
if uncategorized:
|
||||
res[idx1] = [uncategorized] + res[idx1]
|
||||
return res
|
||||
|
|
@ -67,73 +67,83 @@
|
|||
<span class="col-xs-2" t-field="o.name"/>
|
||||
</div>
|
||||
<div class="row mt32"/>
|
||||
<table class="table table-condensed">
|
||||
<t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/>
|
||||
<thead class="table-header">
|
||||
<tr>
|
||||
<th class="text-center">Pos.</th>
|
||||
<th class="text-center">Anzahl</th>
|
||||
<th class="text-right">Gewicht</th>
|
||||
<th class="text-right"></th>
|
||||
<th class="text-left">Artikel</th>
|
||||
<th class="text-right">EP</th>
|
||||
<th class="text-right" t-if="discount_is_set">Rabatt</th>
|
||||
<th class="text-right">Gesamtpreis</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody class="invoice-tbody">
|
||||
<t t-set="pos_nr" t-value="0"/>
|
||||
<t t-foreach="o.invoice_line_ids" t-as="invoice_line">
|
||||
<t t-foreach="o.order_lines_layouted()" t-as="page" name="lines_layouted">
|
||||
<table class="table table-condensed">
|
||||
<t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/>
|
||||
<thead class="table-header">
|
||||
<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">
|
||||
<span t-field="invoice_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="invoice_line.product_id.weight"/> kg
|
||||
</td>
|
||||
<td class="text-right">
|
||||
</td>
|
||||
<td rowspan="2" class="text-left">
|
||||
<t t-if="invoice_line.product_id.default_code">
|
||||
<strong>
|
||||
<span t-field="invoice_line.product_id.default_code"/>
|
||||
</strong>
|
||||
<br/>
|
||||
</t>
|
||||
<span>
|
||||
<strong>Zolltarif Nr.:</strong>
|
||||
<span t-field="invoice_line.product_id.intrastat_id"/>
|
||||
</span>
|
||||
<br/>
|
||||
<span t-field="invoice_line.name"/>
|
||||
</td>
|
||||
<td rowspan="2" class="text-right">
|
||||
<span t-field="invoice_line.price_unit"/>
|
||||
</td>
|
||||
<td rowspan="2" class="text-right" t-if="discount_is_set">
|
||||
<span t-field="invoice_line.discount"/>
|
||||
</td>
|
||||
<td rowspan="2" class="text-right">
|
||||
<span t-field="invoice_line.price_subtotal"/>
|
||||
</td>
|
||||
<th class="text-center">Pos.</th>
|
||||
<th class="text-center">Anzahl</th>
|
||||
<th class="text-right">Gewicht</th>
|
||||
<th class="text-right"></th>
|
||||
<th class="text-left">Artikel</th>
|
||||
<th class="text-right">EP</th>
|
||||
<th class="text-right" t-if="discount_is_set">Rabatt</th>
|
||||
<th class="text-right">Gesamtpreis</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tr>
|
||||
<td colspan="4" style="border: 0;text-align: center;">
|
||||
<!-- Fall 5078, Rechnung - keine Bilder mehr
|
||||
<img t-if="invoice_line.product_id.image_medium"
|
||||
t-att-src="'data:image/png;base64,%s' % invoice_line.product_id.image_medium.decode()"/>
|
||||
-->
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
<tbody class="invoice-tbody">
|
||||
<t t-set="pos_nr" t-value="0"/>
|
||||
<t t-foreach="page" t-as="layout_category">
|
||||
<tr t-if="layout_category['name'] != 'Uncategorized'">
|
||||
<td colspan="7">
|
||||
<strong><t t-esc="layout_category['name']"/></strong>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-foreach="layout_category['lines']" t-as="invoice_line">
|
||||
<!-- <t t-foreach="o.invoice_line_ids" t-as="invoice_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">
|
||||
<span t-field="invoice_line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="invoice_line.product_id.weight"/> kg
|
||||
</td>
|
||||
<td class="text-right">
|
||||
</td>
|
||||
<td rowspan="2" class="text-left">
|
||||
<t t-if="invoice_line.product_id.default_code">
|
||||
<strong>
|
||||
<span t-field="invoice_line.product_id.default_code"/>
|
||||
</strong>
|
||||
<br/>
|
||||
</t>
|
||||
<span>
|
||||
<strong>Zolltarif Nr.:</strong>
|
||||
<span t-field="invoice_line.product_id.intrastat_id"/>
|
||||
</span>
|
||||
<br/>
|
||||
<span t-field="invoice_line.name"/>
|
||||
</td>
|
||||
<td rowspan="2" class="text-right">
|
||||
<span t-field="invoice_line.price_unit"/>
|
||||
</td>
|
||||
<td rowspan="2" class="text-right" t-if="discount_is_set">
|
||||
<span t-field="invoice_line.discount"/>
|
||||
</td>
|
||||
<td rowspan="2" class="text-right">
|
||||
<span t-field="invoice_line.price_subtotal"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="4" style="border: 0;text-align: center;">
|
||||
<!-- Fall 5078, Rechnung - keine Bilder mehr
|
||||
<img t-if="invoice_line.product_id.image_medium"
|
||||
t-att-src="'data:image/png;base64,%s' % invoice_line.product_id.image_medium.decode()"/>
|
||||
-->
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</t>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 pull-right">
|
||||
<table class="table table-condensed">
|
||||
|
|
|
|||
Loading…
Reference in New Issue