Camadeus -> datenpol für die wichtigsten Module

develop
Christian Hattemer 2016-09-09 14:36:49 +02:00
parent 5db603678a
commit 5fe7633b00
10 changed files with 592 additions and 596 deletions

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 20014-2016 Camadeus GmbH (<http://www.camadeus.at>).
# Copyright (C) 20014-2016 datenpol gmbh (<http://www.datenpol.at/>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -22,4 +22,3 @@
import cam_custom
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 20014-2016 Camadeus GmbH (<http://www.camadeus.at>).
# Copyright (C) 20014-2016 datenpol gmbh (<http://www.datenpol.at/>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -21,19 +21,19 @@
{
'name': 'Camadeus Anpassungen',
'category': 'Custom',
'name': 'datenpol-Anpassungen',
'category': 'Custom',
'version': '1.0',
'description': """Individuelle Anpassungen""",
'author': 'camadeus GmbH',
'website': 'http://www.camadeus.at',
'author': 'datenpol gmbh',
'website': 'http://www.datenpol.at/',
'depends': ['sale','mail','product','account','knowledge'],
'data': [
'data': [
'cam_custom_view.xml',
'cam_custom_data.xml',
'views/custom_theme.xml',
'security/ir.model.access.csv',
],
],
'installable': True,
'auto_install': False,
}

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 20014-2016 Camadeus GmbH (<http://www.camadeus.at>).
# Copyright (C) 20014-2016 datenpol gmbh (<http://www.datenpol.at/>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -24,30 +24,29 @@ from openerp import api
from openerp.tools.translate import _
from openerp import SUPERUSER_ID
from openerp import tools
from lxml import etree
DISABLED_MENUS = [
]
class ir_ui_menu(models.Model):
_inherit = 'ir.ui.menu'
@tools.ormcache(skiparg=2)
def get_disabled_menu_ids(self, cr, uid, context=None):
data_obj = self.pool.get('ir.model.data')
menu_ids = []
for menu in DISABLED_MENUS:
module,xml_id = menu.split('.')
menu = data_obj.get_object(cr, uid, module, xml_id)
if menu:
menu_ids.append(menu.id)
return menu_ids
return menu_ids
def _filter_visible_menus(self, cr, uid, ids, context=None):
if uid != 1:
def _filter_visible_menus(self, cr, uid, ids, context=None):
if uid != 1:
disabled_ids = self.get_disabled_menu_ids(cr, uid)
ids = [id for id in ids if id not in disabled_ids]
ids = super(ir_ui_menu, self)._filter_visible_menus(cr, uid, ids, context)
@ -55,12 +54,11 @@ class ir_ui_menu(models.Model):
class res_partner(models.Model):
_inherit = 'res.partner'
@api.model
def fields_view_get_address(self, arch):
""" verhindert das Überschreiben von address_format """
return arch
class mail_notification(models.Model):
_inherit = 'mail.notification'
@ -98,7 +96,7 @@ class mail_notification(models.Model):
# else:
# company = user.company_id.name
# sent_by = _('Sent by %(company)s using %(odoo)s')
#
#
# signature_company = '<br /><small>%s</small>' % (sent_by % {
# 'company': company,
# 'odoo': "<a style='color:inherit' href='https://www.odoo.com/'>Odoo</a>"
@ -106,20 +104,20 @@ class mail_notification(models.Model):
# footer = tools.append_content_to_html(footer, signature_company, plaintext=False, container_tag='div')
return footer
# class product_product(osv.osv):
# _inherit = 'product.product'
#
#
# def name_get(self, cr, user, ids, context=None):
# if context is None:
# context = {}
# c = context.copy()
# c.update({'display_default_code': False})
# return super(product_product, self).name_get(cr, user, ids, context=c)
# return super(product_product, self).name_get(cr, user, ids, context=c)
class sale_order_line(models.Model):
_inherit = 'sale.order.line'
@api.onchange('name')
def onchange_name(self):
if self.name != False and self.product_id.id == False:
@ -131,7 +129,7 @@ class sale_order_line(models.Model):
class product_product(models.Model):
_inherit = 'product.product'
def name_get(self, cr, user, ids, context=None):
""" beim Angebot die Nummer nicht in das Feld Bezeichnung übernehmen"""
if context is None:
@ -144,5 +142,5 @@ class product_product(models.Model):
class res_country(models.Model):
_inherit = 'res.country'
active = fields.Boolean('Aktiv', default=True)
active = fields.Boolean('Aktiv', default=True)

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 20014-2016 Camadeus GmbH (<http://www.camadeus.at>).
# Copyright (C) 20014-2016 datenpol gmbh (<http://www.datenpol.at/>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -20,5 +20,5 @@
##############################################################################
import cam_reports
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 20014-2016 Camadeus GmbH (<http://www.camadeus.at>).
# Copyright (C) 20014-2016 datenpol gmbh (<http://www.datenpol.at/>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -21,14 +21,14 @@
{
'name': 'Camadeus Reports',
'category': 'Custom',
'name': 'Datenpol-Reports',
'category': 'Custom',
'version': '1.0',
'description': """Individuelle Dokumentenvorlagen""",
'author': 'camadeus GmbH',
'website': 'http://www.camadeus.at',
'author': 'datenpol gmbh',
'website': 'http://www.datenpol.at/',
'depends': ['purchase','sale','account','stock'],
'data': ['reports_data.xml',
'data': ['reports_data.xml',
],
'installable': True,
'auto_install': False,

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 20014-2016 Camadeus GmbH (<http://www.camadeus.at>).
# Copyright (C) 20014-2016 datenpol gmbh (<http://www.datenpol.at/>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -26,16 +26,15 @@ import base64
class res_company(osv.osv):
_inherit = 'res.company'
def get_image(self, img):
def _get_dir():
styles_dir = 'cam_reports/static/src/img'
adps = addons.module.ad_paths
adps = addons.module.ad_paths
for adp in adps:
dir = os.path.join(adp, styles_dir)
if os.path.isdir(dir):
return dir
if os.path.isdir(dir):
return dir
return False
def _get_file_data(filename):
@ -46,48 +45,48 @@ class res_company(osv.osv):
return data
except:
print "Error openening file '%s'." % (filename)
return False
return False
path = _get_dir()
fname = os.path.join(path, img)
fname = os.path.join(path, img)
img_data = _get_file_data(fname)
return img_data
def _get_rml_header(self, cr, uid, ids, _field_name, _args, context=None):
result = dict.fromkeys(ids, False)
# Get filename
dirname = 'cam_reports/report'
adps = addons.module.ad_paths
adps = addons.module.ad_paths
for adp in adps:
dir = os.path.join(adp, dirname)
if os.path.isdir(dir):
break
if os.path.isdir(dir):
filename = os.path.join(dir, 'briefkopf.rml')
filename = os.path.join(dir, 'briefkopf.rml')
f = open(filename , 'rb')
data = f.read()
result = dict.fromkeys(ids, data)
return result
def _get_rml_header2(self, cr, uid, ids, _field_name, _args, context=None):
result = dict.fromkeys(ids, False)
# Get filename
dirname = 'cam_reports/report'
adps = addons.module.ad_paths
adps = addons.module.ad_paths
for adp in adps:
dir = os.path.join(adp, dirname)
if os.path.isdir(dir):
break
if os.path.isdir(dir):
filename = os.path.join(dir, 'page.rml')
filename = os.path.join(dir, 'page.rml')
f = open(filename , 'rb')
data = f.read()
result = dict.fromkeys(ids, data)
return result
_columns = {
'rml_header': fields.function(_get_rml_header, type='text', string='Briefkopf',readonly=True),
'rml_header2': fields.function(_get_rml_header2, type='text', string='RML Header',readonly=True),
}
'rml_header': fields.function(_get_rml_header, type='text', string='Briefkopf', readonly=True),
'rml_header2': fields.function(_get_rml_header2, type='text', string='RML Header', readonly=True),
}

View File

@ -1,81 +1,81 @@
<?xml version="1.0"?>
<document filename="Rechnung.pdf">
<template pageSize="(595.0,842.0)" title="Sale Order" author="Camadeus Consulting" allowSplitting="20">
<template pageSize="(595.0,842.0)" title="Sale Order" author="datenpol gmbh" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>
</template>
<story>
<para>
<seqReset id="L1"/>
</para>
<para>[[repeatIn(objects,'o')]] [[ setLang(o.partner_id.commercial_partner_id.lang)]]</para>
<blockTable colWidths="270,85,145" style="Struktur">
<tr>
<td>
<section>
<para style="fett">[[ o.partner_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_id.commercial_partner_id.id != o.partner_id.id and o.partner_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_id.zip) or '' ]] [[ (o.partner_id and o.partner_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_id.state_id and o.partner_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_id.country_id and o.partner_id.country_id.name) or '' ]]</para>
<!-- Für Sichtfenster -->
<section>[[ not (o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.ref) or removeParentNode('section') ]]
<para style="normal">&#160;</para>
</section>
</section>
<para></para>
</td>
<td>
<para style="normal">Datum:</para>
<para style="normal">Quelldokument:</para>
<para style="normal">Kundenreferenz:</para>
<!--<para style="normal">Kundennummer:</para>-->
<para style="normal">Kunde UID Nr.:</para>
<para style="normal">Ansprechpartner:</para>
</td>
<td>
<para style="normal">[[ formatLang(o.date_invoice,date = True) ]]&#160;</para>
<para style="normal">[[ o.origin ]]&#160;</para>
<para style="normal">[[ o.name ]]&#160;</para>
<!--<para style="normal">[[ o.partner_id.commercial_partner_id.ref ]]&#160;</para>-->
<para style="normal">[[ o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.vat or '' ]]&#160;</para>
<para style="normal">[[ (o.user_id and o.user_id.name) or '' ]]&#160;</para>
</td>
</tr>
<!--
<tr>
<td>
<section>[[ (o.partner_shipping_id and o.partner_shipping_id.id != o.partner_id.id) or removeParentNode('section')]]
<spacer length="0.5cm"/>
<para style="normal">Lieferadresse:</para>
<para style="normal">[[ o.partner_shipping_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_shipping_id.commercial_partner_id.id != o.partner_shipping_id.id and o.partner_shipping_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_shipping_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_shipping_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_shipping_id.zip) or '' ]] [[ (o.partner_shipping_id and o.partner_shipping_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name) or '' ]]</para>
</section>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
</tr>
-->
</blockTable>
<blockTable colWidths="270,85,145" style="Struktur">
<tr>
<td>
<section>
<para style="fett">[[ o.partner_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_id.commercial_partner_id.id != o.partner_id.id and o.partner_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_id.zip) or '' ]] [[ (o.partner_id and o.partner_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_id.state_id and o.partner_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_id.country_id and o.partner_id.country_id.name) or '' ]]</para>
<!-- Für Sichtfenster -->
<section>[[ not (o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.ref) or removeParentNode('section') ]]
<para style="normal">&#160;</para>
</section>
</section>
<para></para>
</td>
<td>
<para style="normal">Datum:</para>
<para style="normal">Quelldokument:</para>
<para style="normal">Kundenreferenz:</para>
<!--<para style="normal">Kundennummer:</para>-->
<para style="normal">Kunde UID Nr.:</para>
<para style="normal">Ansprechpartner:</para>
</td>
<td>
<para style="normal">[[ formatLang(o.date_invoice,date = True) ]]&#160;</para>
<para style="normal">[[ o.origin ]]&#160;</para>
<para style="normal">[[ o.name ]]&#160;</para>
<!--<para style="normal">[[ o.partner_id.commercial_partner_id.ref ]]&#160;</para>-->
<para style="normal">[[ o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.vat or '' ]]&#160;</para>
<para style="normal">[[ (o.user_id and o.user_id.name) or '' ]]&#160;</para>
</td>
</tr>
<!--
<tr>
<td>
<section>[[ (o.partner_shipping_id and o.partner_shipping_id.id != o.partner_id.id) or removeParentNode('section')]]
<spacer length="0.5cm"/>
<para style="normal">Lieferadresse:</para>
<para style="normal">[[ o.partner_shipping_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_shipping_id.commercial_partner_id.id != o.partner_shipping_id.id and o.partner_shipping_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_shipping_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_shipping_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_shipping_id.zip) or '' ]] [[ (o.partner_shipping_id and o.partner_shipping_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name) or '' ]]</para>
</section>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
</tr>
-->
</blockTable>
<spacer length="1.0cm"/>
<para style="ueberschrift2"><b>Rechnung [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
<para style="ueberschrift2"><b>PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]</b></para>
<para style="ueberschrift2"><b>Rechnungsentwurf [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</b></para>
@ -83,134 +83,134 @@
<para style="ueberschrift2"><b>Stornorechnung [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
<para style="ueberschrift2"><b>Stornorechnung [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
<para style="ueberschrift2"><b>Rechnung [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]</b></para>
<spacer length="0.5cm"/>
<blockTable colWidths="30,57,170,75,63,40,75" repeatRows="1" style="TabelleHaupt" hAlign="LEFT">
<tr>
<td>
<para style="tabelle_header">Pos</para>
</td>
<td>
<para style="tabelle_header">Art.nr.</para>
</td>
<td>
<para style="tabelle_header_links">Bezeichnung</para>
</td>
<td>
<para style="tabelle_header_links">Menge</para>
</td>
<td>
<para style="tabelle_header_rechts">Einzelpreis</para>
</td>
<td>
<para style="tabelle_header"></para>
</td>
<td>
<para style="tabelle_header_rechts">Gesamtpreis</para>
</td>
</tr>
<tr>[[repeatIn(o.invoice_line,'line')]]
<td>
<para style="tabelle_daten_center" leftIndent="0" bulletIndent="0" size="8.0">
<seq id="L1"/>
</para>
</td>
<td>
<para style="tabelle_daten_center">[[ line.product_id and line.product_id.default_code or '']]</para>
</td>
<td>
<para style="tabelle_daten_links">[[ (line.name or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((line.name or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="tabelle_daten_links">[[ paragraphs ]]</para>
</section>
</td>
<td>
<para style="tabelle_daten_links">[[formatLang(line.quantity, digits=2)[-2:]=='00' and formatLang(line.quantity, digits=0) or formatLang(line.quantity, digits=2)]] [[ line.uos_id.name ]]</para>
</td>
<td>
<para style="tabelle_daten_rechts">[[ formatLang(line.price_unit,digits=2) ]]</para>
</td>
<td>
<para style="tabelle_daten_rechts">[[ line.discount &lt;&gt; 0 and (formatLang(line.discount) + '%') or '' ]]</para>
</td>
<td>
<para style="tabelle_daten_rechts">[[ formatLang(line.price_subtotal,digits=2 ) ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="210,200,100" style="TabelleSchlussrechnung">
<tr>
<td>
<para></para>
</td>
<td>
<para style="schlussrechnung">Zwischensumme in €</para>
</td>
<td>
<para style="schlussrechnung">[[ formatLang(o.amount_untaxed,digits=2 )]]</para>
</td>
</tr>
<tr>[[ repeatIn(o.tax_line,'tax') ]]
<td>
<para style="schlussrechnung"></para>
</td>
<td>
<para style="schlussrechnung">MwSt. [[tax.name.split(" ")[0] or ""]] in €</para>
</td>
<td>
<para style="schlussrechnung">[[ formatLang(tax.tax_amount) ]]</para>
</td>
</tr>
<tr>
<td>
<para></para>
</td>
<td>
<para style="schlussrechnung_fett">Rechnungsbetrag in €</para>
</td>
<td>
<para style="schlussrechnung_fett">[[ formatLang(o.amount_total,digits=2 ) ]]</para>
</td>
</tr>
<tr>
<td>
<para></para>
</td>
<td>
<para style="schlussrechnung">Rechnungsbetrag inkl. Skonto in €</para>
</td>
<td>
<para style="schlussrechnung">[[ (o.skonto_betrag_inkl and formatLang(o.skonto_betrag_inkl,digits=2)) or removeParentNode('tr') ]]</para>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<spacer length="0.5cm"/>
<para style="normal">[[ (o.comment or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((o.comment or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="normal">[[ paragraphs ]]</para>
</section>
<blockTable colWidths="30,57,170,75,63,40,75" repeatRows="1" style="TabelleHaupt" hAlign="LEFT">
<tr>
<td>
<para style="tabelle_header">Pos</para>
</td>
<td>
<para style="tabelle_header">Art.nr.</para>
</td>
<td>
<para style="tabelle_header_links">Bezeichnung</para>
</td>
<td>
<para style="tabelle_header_links">Menge</para>
</td>
<td>
<para style="tabelle_header_rechts">Einzelpreis</para>
</td>
<td>
<para style="tabelle_header"></para>
</td>
<td>
<para style="tabelle_header_rechts">Gesamtpreis</para>
</td>
</tr>
<spacer length="0.5cm"/>
<blockTable colWidths="110,390" style="Struktur" hAlign="LEFT">
<tr>
<td>
<para style="normal">Zahlungsbedingungen:</para>
</td>
<td>
<para style="normal">[[ (o.payment_term and o.payment_term.note) or removeParentNode('blockTable') ]]</para>
</td>
</tr>
</blockTable>
<!--
<tr>[[repeatIn(o.invoice_line,'line')]]
<td>
<para style="tabelle_daten_center" leftIndent="0" bulletIndent="0" size="8.0">
<seq id="L1"/>
</para>
</td>
<td>
<para style="tabelle_daten_center">[[ line.product_id and line.product_id.default_code or '']]</para>
</td>
<td>
<para style="tabelle_daten_links">[[ (line.name or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((line.name or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="tabelle_daten_links">[[ paragraphs ]]</para>
</section>
</td>
<td>
<para style="tabelle_daten_links">[[formatLang(line.quantity, digits=2)[-2:]=='00' and formatLang(line.quantity, digits=0) or formatLang(line.quantity, digits=2)]] [[ line.uos_id.name ]]</para>
</td>
<td>
<para style="tabelle_daten_rechts">[[ formatLang(line.price_unit,digits=2) ]]</para>
</td>
<td>
<para style="tabelle_daten_rechts">[[ line.discount &lt;&gt; 0 and (formatLang(line.discount) + '%') or '' ]]</para>
</td>
<td>
<para style="tabelle_daten_rechts">[[ formatLang(line.price_subtotal,digits=2 ) ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="210,200,100" style="TabelleSchlussrechnung">
<tr>
<td>
<para></para>
</td>
<td>
<para style="schlussrechnung">Zwischensumme in €</para>
</td>
<td>
<para style="schlussrechnung">[[ formatLang(o.amount_untaxed,digits=2 )]]</para>
</td>
</tr>
<tr>[[ repeatIn(o.tax_line,'tax') ]]
<td>
<para style="schlussrechnung"></para>
</td>
<td>
<para style="schlussrechnung">MwSt. [[tax.name.split(" ")[0] or ""]] in €</para>
</td>
<td>
<para style="schlussrechnung">[[ formatLang(tax.tax_amount) ]]</para>
</td>
</tr>
<tr>
<td>
<para></para>
</td>
<td>
<para style="schlussrechnung_fett">Rechnungsbetrag in €</para>
</td>
<td>
<para style="schlussrechnung_fett">[[ formatLang(o.amount_total,digits=2 ) ]]</para>
</td>
</tr>
<tr>
<td>
<para></para>
</td>
<td>
<para style="schlussrechnung">Rechnungsbetrag inkl. Skonto in €</para>
</td>
<td>
<para style="schlussrechnung">[[ (o.skonto_betrag_inkl and formatLang(o.skonto_betrag_inkl,digits=2)) or removeParentNode('tr') ]]</para>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<para style="normal">[[ (o.comment or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((o.comment or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="normal">[[ paragraphs ]]</para>
</section>
<spacer length="0.5cm"/>
<blockTable colWidths="110,390" style="Struktur" hAlign="LEFT">
<tr>
<td>
<para style="normal">Zahlungsbedingungen:</para>
</td>
<td>
<para style="normal">[[ (o.payment_term and o.payment_term.note) or removeParentNode('blockTable') ]]</para>
</td>
</tr>
</blockTable>
<!--
<spacer length="0.5cm"/>
<blockTable colWidths="500" style="Struktur" hAlign="LEFT">
@ -231,6 +231,6 @@
</tr>
</blockTable>
-->
</story>
</document>

View File

@ -1,123 +1,123 @@
<?xml version="1.0"?>
<document filename="Picking_Auftrag.pdf">
<template pageSize="(595.0,842.0)" title="Picking Auftrag" author="www.camadeus.at" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>
</template>
<story>
<para>
<seqReset id="L1"/>
</para>
<para>[[ repeatIn(objects,'o') ]] [[ o.partner_id and setLang(o.partner_id.lang) ]]</para>
<blockTable colWidths="260,260" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="normal">AUFTRAGSNUMMER: [[ o.origin or '' ]]</para>
</td>
<td>
<para style="normal_rechts"></para>
</td>
</tr>
</blockTable>
<blockTable colWidths="292,100,126" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="fett"></para>
<!--
<spacer length="0.5cm"/>
<para style="fett">Fertigung für:</para>
<para style="normal">KEINE partner_id in mrp.production!</para>
<spacer length="0.5cm"/>
<spacer length="0.2cm"/>
<para style="normal">[[ o.partner_id.commercial_partner_id.name ]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.commercial_partner_id.id != o.partner_id.id and o.partner_id.name) or '' ]] </para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.street ) or '']]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.street2) or removeParentNode('para') ]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.zip) or '' ]] [[ (o.partner_id and o.partner_id.city) or '' ]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.state_id and o.partner_id.state_id.name) or removeParentNode('para')]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.country_id and o.partner_id.country_id.name) or '' ]]</para>
<spacer length="0.5cm"/>
-->
</td>
<td>
<spacer length="1.0cm"/>
<para style="normal_center"></para>
</td>
<td>
<spacer length="1.0cm"/>
<para style="normal_rechts"></para>
</td>
</tr>
</blockTable>
<blockTable colWidths="292,226" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="normal_big"><b>FERTIGUNG: [[ o.name ]]</b></para>
<spacer length="0.2cm"/>
</td>
<td>
<para style="normal_rechts_big">DATUM: [[ formatLang(o.date_planned,date=True) or formatLang(time.strftime('%Y-%m-%d'),date=True) ]]</para>
<spacer length="0.2cm"/>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<blockTable colWidths="100, 210,210" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="tabelle_daten_links"></para>
</td>
<td>
<para style="tabelle_daten_links"><b>Fertigungsartikel: [[ (o.product_id.default_code and '['+o.product_id.default_code+']') or '']] [[ o.product_id.name ]]</b></para>
</td>
<td>
<para style="tabelle_daten_links"><b>Zu fertigende Menge: [[ o.product_qty ]]</b></para>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<blockTable colWidths="100, 210,210" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="tabelle_daten_links">Bestandteile:</para>
<spacer length="0.2cm"/>
</td>
<td>
<para style="tabelle_daten_links">Artikel</para>
</td>
<td>
<para style="tabelle_daten_links">Menge</para>
</td>
</tr>
<tr>[[repeatIn(o.move_lines,'line')]]
<td>
<para style="tabelle_daten_links"></para>
</td>
<td>
<para style="tabelle_daten_links">[[ (line.product_id.default_code and '['+line.product_id.default_code+']') or '']] [[ line.product_id.name]]</para>
</td>
<td>
<para style="tabelle_daten_links">[[ line.product_qty ]]</para>
</td>
</tr>
</blockTable>
</story>
</document>
<?xml version="1.0"?>
<document filename="Picking_Auftrag.pdf">
<template pageSize="(595.0,842.0)" title="Picking Auftrag" author="datenpol gmbh" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>
</template>
<story>
<para>
<seqReset id="L1"/>
</para>
<para>[[ repeatIn(objects,'o') ]] [[ o.partner_id and setLang(o.partner_id.lang) ]]</para>
<blockTable colWidths="260,260" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="normal">AUFTRAGSNUMMER: [[ o.origin or '' ]]</para>
</td>
<td>
<para style="normal_rechts"></para>
</td>
</tr>
</blockTable>
<blockTable colWidths="292,100,126" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="fett"></para>
<!--
<spacer length="0.5cm"/>
<para style="fett">Fertigung für:</para>
<para style="normal">KEINE partner_id in mrp.production!</para>
<spacer length="0.5cm"/>
<spacer length="0.2cm"/>
<para style="normal">[[ o.partner_id.commercial_partner_id.name ]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.commercial_partner_id.id != o.partner_id.id and o.partner_id.name) or '' ]] </para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.street ) or '']]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.street2) or removeParentNode('para') ]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.zip) or '' ]] [[ (o.partner_id and o.partner_id.city) or '' ]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.state_id and o.partner_id.state_id.name) or removeParentNode('para')]]</para>
<spacer length="0.1cm"/>
<para style="normal">[[ (o.partner_id.country_id and o.partner_id.country_id.name) or '' ]]</para>
<spacer length="0.5cm"/>
-->
</td>
<td>
<spacer length="1.0cm"/>
<para style="normal_center"></para>
</td>
<td>
<spacer length="1.0cm"/>
<para style="normal_rechts"></para>
</td>
</tr>
</blockTable>
<blockTable colWidths="292,226" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="normal_big"><b>FERTIGUNG: [[ o.name ]]</b></para>
<spacer length="0.2cm"/>
</td>
<td>
<para style="normal_rechts_big">DATUM: [[ formatLang(o.date_planned,date=True) or formatLang(time.strftime('%Y-%m-%d'),date=True) ]]</para>
<spacer length="0.2cm"/>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<blockTable colWidths="100, 210,210" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="tabelle_daten_links"></para>
</td>
<td>
<para style="tabelle_daten_links"><b>Fertigungsartikel: [[ (o.product_id.default_code and '['+o.product_id.default_code+']') or '']] [[ o.product_id.name ]]</b></para>
</td>
<td>
<para style="tabelle_daten_links"><b>Zu fertigende Menge: [[ o.product_qty ]]</b></para>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<blockTable colWidths="100, 210,210" style="Struktur" hAlign="RIGHT">
<tr>
<td>
<para style="tabelle_daten_links">Bestandteile:</para>
<spacer length="0.2cm"/>
</td>
<td>
<para style="tabelle_daten_links">Artikel</para>
</td>
<td>
<para style="tabelle_daten_links">Menge</para>
</td>
</tr>
<tr>[[repeatIn(o.move_lines,'line')]]
<td>
<para style="tabelle_daten_links"></para>
</td>
<td>
<para style="tabelle_daten_links">[[ (line.product_id.default_code and '['+line.product_id.default_code+']') or '']] [[ line.product_id.name]]</para>
</td>
<td>
<para style="tabelle_daten_links">[[ line.product_qty ]]</para>
</td>
</tr>
</blockTable>
</story>
</document>

View File

@ -1,130 +1,130 @@
<?xml version="1.0"?>
<document filename="Auftrag.pdf">
<template pageSize="(595.0,842.0)" title="Sale Order" author="Camadeus Consulting" allowSplitting="20">
<template pageSize="(595.0,842.0)" title="Sale Order" author="datenpol gmbh" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>
</template>
<story>
<para>
<seqReset id="L1"/>
</para>
<para>[[repeatIn(objects,'o')]] [[ setLang(o.partner_id.commercial_partner_id.lang)]]</para>
<blockTable colWidths="270,230" style="Struktur">
<tr>
<td>
<section>
<para style="fett">[[ o.partner_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_id.commercial_partner_id.id != o.partner_id.id and o.partner_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_id.zip) or '' ]] [[ (o.partner_id and o.partner_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_id.state_id and o.partner_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_id.country_id and o.partner_id.country_id.name) or '' ]]</para>
<!-- Für Sichtfenster -->
<section>[[ not (o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.ref) or removeParentNode('section') ]]
<para style="normal">&#160;</para>
</section>
<section>[[ (o.partner_shipping_id and o.partner_shipping_id.id != o.partner_id.id) or removeParentNode('section')]]
<spacer length="1.5cm"/>
<para style="normal">Lieferadresse:</para>
<para style="normal">[[ o.partner_shipping_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_shipping_id.commercial_partner_id.id != o.partner_shipping_id.id and o.partner_shipping_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_shipping_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_shipping_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_shipping_id.zip) or '' ]] [[ (o.partner_shipping_id and o.partner_shipping_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name) or '' ]]</para>
</section>
</section>
<para></para>
</td>
<td>
<blockTable colWidths="85,145" style="Struktur">
<tr>
<td>
<para style="normal">Angebotsdatum:[[ o.state not in ['draft','sent'] and removeParentNode('para') ]]</para>
<para style="normal">Bestelldatum:[[ o.state in ['draft','sent'] and removeParentNode('para') ]]</para>
</td>
<td>
<para style="normal">[[ formatLang(o.date_order,date = True) ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Quelldokument:[[ o.state not in ['draft','sent'] and removeParentNode('tr') ]]</para>
</td>
<td>
<para style="normal">[[ o.origin ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Kundennummer:</para>
</td>
<td>
<para style="normal">[[ o.client_order_ref ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Kunde UID Nr.:</para>
</td>
<td>
<para style="normal">[[ o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.vat or '' ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Ansprechpartner:</para>
</td>
<td>
<para style="normal">[[ (o.user_id and o.user_id.name) or '' ]]</para>
</td>
</tr>
</blockTable>
</td>
</tr>
<!--
<tr>
<td>
<section>[[ (o.partner_shipping_id and o.partner_shipping_id.id != o.partner_id.id) or removeParentNode('section')]]
<spacer length="0.5cm"/>
<para style="normal">Lieferadresse:</para>
<para style="normal">[[ o.partner_shipping_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_shipping_id.commercial_partner_id.id != o.partner_shipping_id.id and o.partner_shipping_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_shipping_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_shipping_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_shipping_id.zip) or '' ]] [[ (o.partner_shipping_id and o.partner_shipping_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name) or '' ]]</para>
</section>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
</tr>
-->
</blockTable>
<blockTable colWidths="270,230" style="Struktur">
<tr>
<td>
<section>
<para style="fett">[[ o.partner_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_id.commercial_partner_id.id != o.partner_id.id and o.partner_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_id.zip) or '' ]] [[ (o.partner_id and o.partner_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_id.state_id and o.partner_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_id.country_id and o.partner_id.country_id.name) or '' ]]</para>
<!-- Für Sichtfenster -->
<section>[[ not (o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.ref) or removeParentNode('section') ]]
<para style="normal">&#160;</para>
</section>
<section>[[ (o.partner_shipping_id and o.partner_shipping_id.id != o.partner_id.id) or removeParentNode('section')]]
<spacer length="1.5cm"/>
<para style="normal">Lieferadresse:</para>
<para style="normal">[[ o.partner_shipping_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_shipping_id.commercial_partner_id.id != o.partner_shipping_id.id and o.partner_shipping_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_shipping_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_shipping_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_shipping_id.zip) or '' ]] [[ (o.partner_shipping_id and o.partner_shipping_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name) or '' ]]</para>
</section>
</section>
<para></para>
</td>
<td>
<blockTable colWidths="85,145" style="Struktur">
<tr>
<td>
<para style="normal">Angebotsdatum:[[ o.state not in ['draft','sent'] and removeParentNode('para') ]]</para>
<para style="normal">Bestelldatum:[[ o.state in ['draft','sent'] and removeParentNode('para') ]]</para>
</td>
<td>
<para style="normal">[[ formatLang(o.date_order,date = True) ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Quelldokument:[[ o.state not in ['draft','sent'] and removeParentNode('tr') ]]</para>
</td>
<td>
<para style="normal">[[ o.origin ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Kundennummer:</para>
</td>
<td>
<para style="normal">[[ o.client_order_ref ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Kunde UID Nr.:</para>
</td>
<td>
<para style="normal">[[ o.partner_id.commercial_partner_id and o.partner_id.commercial_partner_id.vat or '' ]]</para>
</td>
</tr>
<tr>
<td>
<para style="normal">Ansprechpartner:</para>
</td>
<td>
<para style="normal">[[ (o.user_id and o.user_id.name) or '' ]]</para>
</td>
</tr>
</blockTable>
</td>
</tr>
<!--
<tr>
<td>
<section>[[ (o.partner_shipping_id and o.partner_shipping_id.id != o.partner_id.id) or removeParentNode('section')]]
<spacer length="0.5cm"/>
<para style="normal">Lieferadresse:</para>
<para style="normal">[[ o.partner_shipping_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (o.partner_shipping_id.commercial_partner_id.id != o.partner_shipping_id.id and o.partner_shipping_id.name) or '' ]] </para>
<para style="normal">[[ (o.partner_shipping_id.street ) or '']]</para>
<para style="normal">[[ (o.partner_shipping_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (o.partner_shipping_id.zip) or '' ]] [[ (o.partner_shipping_id and o.partner_shipping_id.city) or '' ]]</para>
<para style="normal">[[ (o.partner_shipping_id.state_id and o.partner_shipping_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (o.partner_shipping_id.country_id and o.partner_shipping_id.country_id.name) or '' ]]</para>
</section>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
<td>
<para style="normal">&#160;</para>
</td>
</tr>
-->
</blockTable>
<spacer length="1.0cm"/>
<section>
<para style="ueberschrift2"><b>[[ o.state not in ['draft','sent'] and removeParentNode('para') ]] Angebot [[ o.name ]]</b></para>
<para style="ueberschrift2"><b>[[ o.state in ['draft','sent'] and removeParentNode('para') ]] Bestellbestätigung [[ o.name ]]</b></para>
</section>
<spacer length="0.5cm"/>
<blockTable colWidths="30,57,170,75,63,40,75" repeatRows="1" style="TabelleHaupt" hAlign="LEFT">
<tr>
<td>
@ -138,7 +138,7 @@
</td>
<td>
<para style="tabelle_header_links">Menge</para>
</td>
</td>
<td>
<para style="tabelle_header_rechts">Einzelpreis</para>
</td>
@ -149,12 +149,12 @@
<para style="tabelle_header_rechts">Gesamtpreis</para>
</td>
</tr>
<tr>[[repeatIn(o.order_line,'line')]]
<td>
<para style="tabelle_daten_center" leftIndent="0" bulletIndent="0" size="8.0">
<seq id="L1"/>
</para>
</para>
</td>
<td>
<para style="tabelle_daten_center">[[ line.product_id and line.product_id.default_code or '']]</para>
@ -162,13 +162,13 @@
<td>
<para style="tabelle_daten_links">[[ (line.name or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((line.name or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="tabelle_daten_links">[[ paragraphs ]]</para>
</section>
<spacer length="0.4cm"/>
<para style="tabelle_daten_links">[[ paragraphs ]]</para>
</section>
</td>
<td>
<para style="tabelle_daten_links">[[ formatLang(line.product_uos and line.product_uos_qty or line.product_uom_qty, digits=0) ]] [[ line.product_uom.name ]]</para>
</td>
</td>
<td>
<para style="tabelle_daten_rechts">[[ formatLang(line.price_unit,digits=2) ]]</para>
</td>
@ -180,7 +180,7 @@
</td>
</tr>
</blockTable>
<blockTable colWidths="210,200,100" style="TabelleSchlussrechnung">
<tr>
<td>
@ -232,13 +232,13 @@
<para style="normal">[[ (o.note or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((o.note or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="normal">[[ paragraphs ]]</para>
</section>
<spacer length="0.4cm"/>
<para style="normal">[[ paragraphs ]]</para>
</section>
<spacer length="0.5cm"/>
<blockTable colWidths="110,390" style="Struktur" hAlign="LEFT">
<blockTable colWidths="110,390" style="Struktur" hAlign="LEFT">
<tr>
<td>
<para style="normal">Zahlungsbedingungen:</para>
@ -248,8 +248,8 @@
</td>
</tr>
</blockTable>
<!--
<!--
<spacer length="0.5cm"/>
<blockTable colWidths="500" style="Struktur" hAlign="LEFT">
@ -270,6 +270,6 @@
</tr>
</blockTable>
-->
</story>
</document>

View File

@ -1,101 +1,101 @@
<?xml version="1.0"?>
<document filename="Lieferschein.pdf">
<template pageSize="(595.0,842.0)" title="Sale Order" author="Camadeus Consulting" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>
</template>
<story>
<para>
<seqReset id="L1"/>
</para>
<para>[[ repeatIn(objects,'picking') ]] [[ picking.partner_id and setLang(picking.partner_id.lang) ]]</para>
<blockTable colWidths="270,85,145" style="Struktur">
<tr>
<td>
<section>
<para style="fett">[[ picking.partner_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (picking.partner_id.commercial_partner_id.id != picking.partner_id.id and picking.partner_id.name) or '' ]] </para>
<para style="normal">[[ (picking.partner_id.street ) or '']]</para>
<para style="normal">[[ (picking.partner_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (picking.partner_id.zip) or '' ]] [[ (picking.partner_id and picking.partner_id.city) or '' ]]</para>
<para style="normal">[[ (picking.partner_id.state_id and picking.partner_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (picking.partner_id.country_id and picking.partner_id.country_id.name) or '' ]]</para>
<!-- Für Sichtfenster -->
<section>[[ not (picking.partner_id.commercial_partner_id and picking.partner_id.commercial_partner_id.ref) or removeParentNode('section') ]]
<para style="normal">&#160;</para>
</section>
</section>
<para></para>
</td>
<td>
<para style="normal">Datum:</para>
<para style="normal">Bestellung:</para>
<para style="normal">Kundenreferenz:</para>
<para style="normal">Kundennr.:</para>
</td>
<td>
<para style="normal">[[ formatLang(picking.date_done, date=True) or formatLang(time.strftime('%Y-%m-%d'),date=True) ]]&#160;</para>
<para style="normal">[[ picking.origin ]]&#160;</para>
<para style="normal">[[ picking.sale_id and picking.sale_id.client_order_ref or '' ]]&#160;</para>
<para style="normal">[[ picking.partner_id and picking.partner_id.commercial_partner_id and picking.partner_id.commercial_partner_id.ref or '' ]]&#160;</para>
</td>
</tr>
</blockTable>
<spacer length="1.0cm"/>
<para style="ueberschrift">Lieferschein [[ picking.name ]]</para>
<spacer length="0.5cm"/>
<blockTable colWidths="30,80,304,80" repeatRows="1" style="TabelleHaupt" hAlign="LEFT">
<tr>
<td>
<para style="tabelle_header">Pos</para>
</td>
<td>
<para style="tabelle_header">Art.nr.</para>
</td>
<td>
<para style="tabelle_header_links">Bezeichnung</para>
</td>
<td>
<para style="tabelle_header">Menge</para>
</td>
</tr>
<tr>[[ repeatIn([line for line in picking.move_lines if line.state &lt;&gt; 'cancel'],'move_lines') ]]
<td>
<para style="tabelle_daten_center" leftIndent="0" bulletIndent="0" size="8.0">
<seq id="L1"/>
</para>
</td>
<td>
<para style="tabelle_daten_center">[[ move_lines.product_id.default_code ]]</para>
</td>
<td>
<para style="tabelle_daten_links">[[ (move_lines.name or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((move_lines.name or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="tabelle_daten_links">[[ paragraphs ]]</para>
</section>
</td>
<td>
<para style="tabelle_daten_center">[[ formatLang(move_lines.product_qty, digits=0) ]] </para>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<para style="normal">[[ (picking.note or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((picking.note or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="normal">[[ paragraphs ]]</para>
</section>
</story>
</document>
<?xml version="1.0"?>
<document filename="Lieferschein.pdf">
<template pageSize="(595.0,842.0)" title="Sale Order" author="datenpol gmbh" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>
</template>
<story>
<para>
<seqReset id="L1"/>
</para>
<para>[[ repeatIn(objects,'picking') ]] [[ picking.partner_id and setLang(picking.partner_id.lang) ]]</para>
<blockTable colWidths="270,85,145" style="Struktur">
<tr>
<td>
<section>
<para style="fett">[[ picking.partner_id.commercial_partner_id.name ]]</para>
<para style="normal">[[ (picking.partner_id.commercial_partner_id.id != picking.partner_id.id and picking.partner_id.name) or '' ]] </para>
<para style="normal">[[ (picking.partner_id.street ) or '']]</para>
<para style="normal">[[ (picking.partner_id.street2) or removeParentNode('para') ]]</para>
<para style="normal">[[ (picking.partner_id.zip) or '' ]] [[ (picking.partner_id and picking.partner_id.city) or '' ]]</para>
<para style="normal">[[ (picking.partner_id.state_id and picking.partner_id.state_id.name) or removeParentNode('para')]]</para>
<para style="normal">[[ (picking.partner_id.country_id and picking.partner_id.country_id.name) or '' ]]</para>
<!-- Für Sichtfenster -->
<section>[[ not (picking.partner_id.commercial_partner_id and picking.partner_id.commercial_partner_id.ref) or removeParentNode('section') ]]
<para style="normal">&#160;</para>
</section>
</section>
<para></para>
</td>
<td>
<para style="normal">Datum:</para>
<para style="normal">Bestellung:</para>
<para style="normal">Kundenreferenz:</para>
<para style="normal">Kundennr.:</para>
</td>
<td>
<para style="normal">[[ formatLang(picking.date_done, date=True) or formatLang(time.strftime('%Y-%m-%d'),date=True) ]]&#160;</para>
<para style="normal">[[ picking.origin ]]&#160;</para>
<para style="normal">[[ picking.sale_id and picking.sale_id.client_order_ref or '' ]]&#160;</para>
<para style="normal">[[ picking.partner_id and picking.partner_id.commercial_partner_id and picking.partner_id.commercial_partner_id.ref or '' ]]&#160;</para>
</td>
</tr>
</blockTable>
<spacer length="1.0cm"/>
<para style="ueberschrift">Lieferschein [[ picking.name ]]</para>
<spacer length="0.5cm"/>
<blockTable colWidths="30,80,304,80" repeatRows="1" style="TabelleHaupt" hAlign="LEFT">
<tr>
<td>
<para style="tabelle_header">Pos</para>
</td>
<td>
<para style="tabelle_header">Art.nr.</para>
</td>
<td>
<para style="tabelle_header_links">Bezeichnung</para>
</td>
<td>
<para style="tabelle_header">Menge</para>
</td>
</tr>
<tr>[[ repeatIn([line for line in picking.move_lines if line.state &lt;&gt; 'cancel'],'move_lines') ]]
<td>
<para style="tabelle_daten_center" leftIndent="0" bulletIndent="0" size="8.0">
<seq id="L1"/>
</para>
</td>
<td>
<para style="tabelle_daten_center">[[ move_lines.product_id.default_code ]]</para>
</td>
<td>
<para style="tabelle_daten_links">[[ (move_lines.name or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((move_lines.name or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="tabelle_daten_links">[[ paragraphs ]]</para>
</section>
</td>
<td>
<para style="tabelle_daten_center">[[ formatLang(move_lines.product_qty, digits=0) ]] </para>
</td>
</tr>
</blockTable>
<spacer length="0.5cm"/>
<para style="normal">[[ (picking.note or '').split('\n\n')[0] ]]</para>
<section>[[ repeatIn((picking.note or '').split('\n\n')[1:],'paragraphs') ]]
<spacer length="0.4cm"/>
<para style="normal">[[ paragraphs ]]</para>
</section>
</story>
</document>