added setup funktion remove_standard_translations

added new modules for the reports of account, sale, purchase and stock
develop
Ahmed Aly 2017-09-27 10:51:21 +02:00
parent aeee2e58b8
commit 3d8176991f
49 changed files with 1289 additions and 384 deletions

View File

@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# datenpol gmbh
# Copyright (C) 2013-TODAY 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
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,40 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# datenpol gmbh
# Copyright (C) 2013-TODAY 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
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Max. Width for Form View',
'category': 'Custom',
'version': '1.0',
'description': """
""",
'author': 'datenpol GmbH',
'website': 'http://www.datenpol.at',
'depends': [],
'data': [
'views/max_width.xml',
],
'installable': True,
'sequence': 150,
'auto_install': False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,13 +0,0 @@
.o_followers .o_invite {
float: none !important;
display: block;
padding-left: 0px;
}
.o_form_sheet {
max-width: 95% !important;
}
.o_form_view .o_group.o_inner_group > tbody > tr > td.o_td_label {
min-width: 200px !important;
}

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- vim:fdn=3:
-->
<openerp>
<data>
<template id="assets_backend" name="mail assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/dp_max_width/static/src/css/max_width.css"/>
</xpath>
</template>
</data>
</openerp>

View File

@ -1,84 +0,0 @@
<odoo>
<data>
<template id="stock.external_layout_barcode_right" inherit_id="report.external_layout" primary="True">
<xpath expr="//t[@t-call='dp_report.external_layout_header']" position="attributes">
<attribute name="t-call">stock.external_layout_header_barcode_right</attribute>
</xpath>
</template>
<!-- Delivery Body -->
<template id="report_delivery_document" inherit_id="delivery.report_delivery_document2">
<h2 position="replace">
<h2>
LIEFERSCHEIN <span t-field="o.name"/>
</h2>
</h2>
<table class="table table-condensed" position="replace">
<table class="table table-condensed">
<thead>
<tr>
<th name="td_sched_date_h"><strong>Scheduled Date</strong></th>
<th><strong>Weight</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td name="td_sched_date">
<span t-field="o.min_date"/>
</td>
<td>
<span t-field="o.weight"/> kg
</td>
</tr>
</tbody>
</table>
</table>
<xpath expr="//table[@t-if='not o.pack_operation_ids']/thead" position="replace">
<thead>
<tr>
<th><strong>Product</strong></th>
<th><strong>Location</strong></th>
<th class="text-right"><strong>Quantity</strong></th>
</tr>
</thead>
</xpath>
<xpath expr="//table[@t-if='not o.pack_operation_ids']/tbody/tr/td/span[@t-field='move.state']" position="replace"/>
<xpath expr="//table[@t-if='o.pack_operation_ids']/thead" position="replace">
<thead>
<tr>
<th><strong>Product</strong></th>
<th t-if="has_serial_number"><strong>Serial Number</strong></th>
<th><strong>Location</strong></th>
<th class="text-right"><strong>Quantity</strong></th>
</tr>
</thead>
</xpath>
<xpath expr="//table[@t-if='o.pack_operation_ids']/tbody/tr/td[2]" position="replace"/>
</template>
<!-- Render Report with Header -->
<template id="stock.report_deliveryslip">
<t t-set="header" t-value="1"/>
<t t-foreach="docs" t-as="o">
<t t-call="dp_report.report_delivery_document" t-lang="o.partner_id.lang"/>
</t>
</template>
<!-- Render Report without Header -->
<template id="report_deliveryslip_blank">
<t t-set="header" t-value="0"/>
<t t-foreach="docs" t-as="o">
<t t-call="dp_report.report_delivery_document" t-lang="o.partner_id.lang"/>
</t>
</template>
<!-- Create new Report -->
<report id="dp_report_deliveryslip_blank"
string="Lieferschein Ohne Logo"
model="stock.picking"
report_type="qweb-pdf"
name="dp_report.report_deliveryslip_blank"
file="dp_report.report_deliveryslip_blank"/>
</data>
</odoo>

View File

@ -1,65 +0,0 @@
<odoo>
<data>
<!-- Invoice Body -->
<template id="report_invoice_document" inherit_id="account.report_invoice_document">
<th t-if="display_discount" position="replace">
<th t-if="display_discount and o.sale_order_id.print_discount" class="text-right" groups="sale.group_discount_per_so_line">Disc.(%)</th>
</th>
<td t-if="display_discount" position="replace">
<td t-if="display_discount and o.sale_order_id.print_discount" class="text-right" groups="sale.group_discount_per_so_line">
<span t-field="l.discount"/>
</td>
</td>
<div t-if="o.date_invoice" position="replace">
<div class="col-xs-2" t-if="o.date_invoice">
<strong>Invoice Date:</strong>
<p t-field="o.date_invoice"/>
</div>
</div>
<div t-if="o.origin" position="replace">
<div class="col-xs-2" t-if="o.origin">
<strong>Source:</strong>
<p t-field="o.origin"/>
</div>
</div>
<div t-if="o.date_due and o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')" position="replace"/>
<xpath expr="//table[@class='table table-condensed']/thead/tr/th" position='replace'>
<th>Description</th>
</xpath>
<div t-if="o.tax_line_ids" position="replace"/>
<p t-if="o.payment_term_id" position="replace">
<p t-if="o.payment_term_id">
<strong><span t-field="o.payment_term_id.note"/></strong>
</p>
</p>
</template>
<!-- Render Report with Header -->
<template id="account.report_invoice">
<t t-call="report.html_container">
<t t-set="header" t-value="1"/>
<t t-foreach="docs" t-as="o">
<t t-call="dp_report.report_invoice_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
<!-- Render Report without Header -->
<template id="report_invoice_blank">
<t t-call="report.html_container">
<t t-set="header" t-value="0"/>
<t t-foreach="docs" t-as="o">
<t t-call="dp_report.report_invoice_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
<!-- Create new Report -->
<report id="dp_report_invoice_blank"
string="Rechnung Ohne Logo"
model="account.invoice"
report_type="qweb-pdf"
name="dp_report.report_invoice_blank"
file="dp_report.report_invoice_blank"/>
</data>
</odoo>

View File

@ -1,58 +0,0 @@
<odoo>
<data>
<template id="report.external_layout">
<!-- Multicompany -->
<t t-if="not o and doc">
<t t-set="o" t-value="doc"/>
</t>
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"/>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"/>
</t>
<t t-if="header == 1">
<t t-call="dp_report.external_layout_header"/>
</t>
<t t-if="header == 0">
<t t-call="dp_report.external_layout_header_blank"/>
</t>
<t t-raw="0"/>
<t t-call="report.external_layout_footer"/>
<t t-esc="header"/>
</template>
<!-- Report Header Full -->
<template id="external_layout_header">
<div class="header">
<div class="row">
<div class="col-xs-3" name="company_address">
<div t-field="company.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'
style="border-bottom: 1px solid black;"/>
</div>
<div class="col-xs-9 text-right">
<img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % company.logo" style="max-height: 105px;"/>
</div>
</div>
</div>
</template>
<!-- Report Header Blank -->
<template id="external_layout_header_blank">
<div class="header">
<div class="row">
<div class="col-xs-12" style="height: 45px;">
</div>
</div>
<div class="row">
<div class="col-xs-3" name="company_address">
<div t-field="company.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'
style="border-bottom: 1px solid black;"/>
</div>
</div>
</div>
</template>
</data>
</odoo>

View File

@ -1,85 +0,0 @@
<odoo>
<data>
<!-- Sale Order Body -->
<template id="report_saleorder_document" inherit_id="sale.report_saleorder_document">
<th t-if="display_discount" position="replace">
<th t-if="display_discount and doc.print_discount" class="text-right" groups="sale.group_discount_per_so_line">Disc.(%)</th>
</th>
<td t-if="display_discount" position="replace">
<td t-if="display_discount and doc.print_discount" class="text-right" groups="sale.group_discount_per_so_line">
<span t-field="l.discount"/>
</td>
</td>
<xpath expr="//div[@class='page']/h2" position='replace'>
<h2>
<span t-if="doc.state not in ['draft','sent']">Order # </span>
<span t-if="doc.state in ['draft','sent']">Quotation # </span>
<span t-field="doc.name"/>
</h2>
</xpath>
<xpath expr="//div[@t-if='doc.user_id.name']" position='replace'/>
<xpath expr="//div[@name='payment_term']" position='attributes'>
<attribute name="style">display:none</attribute>
</xpath>
<div name="total" position="replace">
<div class="row" name="total">
<div class="col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td><strong>Total Without Taxes</strong></td>
<td class="text-right">
<span t-field="doc.amount_untaxed"
t-field-options='{"widget": "monetary", "display_currency": "doc.pricelist_id.currency_id"}'/>
</td>
</tr>
<tr>
<td>Taxes</td>
<td class="text-right">
<span t-field="doc.amount_tax"
t-field-options='{"widget": "monetary", "display_currency": "doc.pricelist_id.currency_id"}'/>
</td>
</tr>
<tr class="border-black">
<td><strong>Total</strong></td>
<td class="text-right">
<span t-field="doc.amount_total"
t-field-options='{"widget": "monetary", "display_currency": "doc.pricelist_id.currency_id"}'/>
</td>
</tr>
</table>
</div>
</div>
</div>
</template>
<!-- Render Report with Header -->
<template id="sale.report_saleorder">
<t t-call="report.html_container">
<t t-set="header" t-value="1"/>
<t t-foreach="docs" t-as="doc">
<t t-call="dp_report.report_saleorder_document" t-lang="doc.partner_id.lang"/>
</t>
</t>
</template>
<!-- Render Report without Header -->
<template id="report_saleorder_blank">
<t t-call="report.html_container">
<t t-set="header" t-value="0"/>
<t t-foreach="docs" t-as="doc">
<t t-call="dp_report.report_saleorder_document" t-lang="doc.partner_id.lang"/>
</t>
</t>
</template>
<!-- Create new Report -->
<report id="dp_report_saleorder_blank"
string="Angebot / Bestellung Ohne Logo"
model="sale.order"
report_type="qweb-pdf"
name="dp_report.report_saleorder_blank"
file="dp_report.report_saleorder_blank"/>
</data>
</odoo>

View File

@ -11,13 +11,11 @@
'website': 'http://www.datenpol.at/',
'depends': [
'base',
'report'
],
'data': [
# 'security/ir.model.access.csv',
'views/layouts.xml',
'views/saleorder.xml',
'views/invoice.xml',
'views/delivery.xml',
'data/paperformat.xml',
'reports/layouts.xml',
],
# only loaded in demonstration mode
'demo': [],

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="paperformat_a4_european" model="report.paperformat">
<field name="name">European A4</field>
<field name="default" eval="True"/>
<field name="format">A4</field>
<field name="page_height">0</field>
<field name="page_width">0</field>
<field name="orientation">Portrait</field>
<field name="margin_top">55</field>
<field name="margin_bottom">20</field>
<field name="margin_left">10</field>
<field name="margin_right">10</field>
<field name="header_line" eval="False"/>
<field name="header_spacing">40</field>
<field name="dpi">90</field>
</record>
</odoo>

View File

@ -1 +1,3 @@
# -*- coding: utf-8 -*-
import report_helper

View File

@ -0,0 +1,51 @@
from odoo import api, models
from odoo.report import report_sxw
class ReportHelper(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(ReportHelper, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'field_set_in_lines': self._field_set_in_lines,
'formatLang': self._formatLang,
})
@api.model
def _field_set_in_lines(self, lines, field):
fields = field.split('.')
for line in lines:
temp = None
for idx, field in enumerate(fields):
if not temp and idx == 0:
temp = line.__getattribute__(field)
elif not temp and idx != 0:
return False
else:
temp = temp.__getattribute__(field)
if not temp:
return False
return True
@api.model
def _formatLang(self, value, currency=True):
lang = self.partner_id.lang
lang_objs = self.env['res.lang'].search([('code', '=', lang)])
if not lang_objs:
lang_objs = self.env['res.lang'].search([], limit=1)
lang_obj = lang_objs[0]
res = lang_obj.format('%.' + str(2) + 'f', value, grouping=True, monetary=True)
currency_obj = self.currency_id
if currency_obj and currency_obj.symbol and currency:
if currency_obj.position == 'after':
res = '%s %s' % (res, currency_obj.symbol)
elif currency_obj and currency_obj.position == 'before':
res = '%s %s' % (currency_obj.symbol, res)
return res
class AbstractReport(models.AbstractModel):
_inherit = 'report.abstract_report'
_wrapped_report_class = ReportHelper

View File

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="assets_common" inherit_id="report.assets_common">
<xpath expr="." position="inside">
<link rel="stylesheet" type="text/less" href="/dp_reports/static/src/less/report_backend.less"/>
</xpath>
</template>
<template id="report.external_layout">
<!-- Multicompany -->
<t t-if="not o and doc">
<t t-set="o" t-value="doc"/>
</t>
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"/>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"/>
</t>
<t t-call="report.external_layout_header"/>
<t t-raw="0"/>
<t t-call="dp_reports.external_layout_footer"/>
</template>
<!-- Report Header Full -->
<template id="report.external_layout_header">
<div class="header" style="font-size:10pt;">
<div class="row">
<div class="col-xs-7">
<img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % company.logo"
style="max-height: 85px;"/>
<div style="margin-top: 15mm;">
<div name="company_address"
style="font-weight: lighter; font-size: 9pt;">
<span style="border-bottom: 1px solid black;">
<span t-esc="company.partner_id.name"/>
|
<span t-esc="company.partner_id.street"/>
|
<span t-esc="company.partner_id.zip"/>
<span t-esc="company.partner_id.city"/>
</span>
</div>
</div>
</div>
<div class="col-xs-5 text-right">
<strong>
<span t-esc="company.partner_id.name"/>
</strong>
<div>
<div class="col-xs-12" style="padding-right:0px;">
<t t-esc="company.partner_id.street"/>
</div>
<div class="col-xs-12" style="padding-right:0px;">
<t t-esc="company.partner_id.zip"/>
<t t-esc="company.partner_id.city"/>
</div>
<div class="col-xs-12" style="padding-right:0px;">
<t t-esc="company.partner_id.country_id.name"/>
</div>
<div class="oe_mt16 col-xs-12" style="padding-right:0px;">
<t t-esc="company.partner_id.email"/>
</div>
<div class="col-xs-12" style="padding-right:0px;">
<t t-esc="company.partner_id.website"/>
</div>
</div>
</div>
</div>
</div>
</template>
<template id="external_layout_footer">
<div class="footer" style="font-size:10pt;">
<div style="border-top: 2px solid black;">
<div class="col-xs-4">
<span t-esc="company.name"/>
<br/>
<span t-esc="company.vat"/>
<br/>
<span t-esc="company.company_registry"/>
</div>
<div class="col-xs-4">
<div t-if="company.bank_ids">
<span t-esc="company.bank_ids[0].bank_id.name"/>
<br/>
IBAN:
<span t-esc="company.bank_ids[0].acc_number"/>
<br/>
SWIFT-BIC:
<span t-esc="company.bank_ids[0].bank_id.bic"/>
</div>
</div>
<div class="col-xs-4 text-right">
<ul class="list-inline">
<li>Seite:</li>
<li>
<span class="page"/>
</li>
<li>/</li>
<li>
<span class="topage"/>
</li>
</ul>
</div>
</div>
</div>
</template>
</data>
</odoo>

View File

@ -0,0 +1,7 @@
.bold {
font-weight: bold;
}
td.noborder, td.noborder{
border: 0;
}

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# noinspection PyStatementEffect
{
'name': 'datepol Report-Anpassungen',
'category': 'Custom',
'version': '1.0',
'summary': """Individuelle Report Anpassungen""",
'description': """Individuelle Report Anpassungen""",
'author': 'datenpol gmbh',
'website': 'http://www.datenpol.at/',
'depends': [
'dp_reports',
'account'
],
'data': [
'reports/invoice.xml',
],
# only loaded in demonstration mode
'demo': [],
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,19 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * dp_report
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-12 09:17+0000\n"
"PO-Revision-Date: 2016-10-13 11:58+0000\n"
"Last-Translator: datenpol\n"
"Language-Team: German (http://www.transifex.com/odoo/odoo-9/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
import report_helper

View File

@ -0,0 +1,10 @@
from odoo import api, models
class AccountInvoice(models.AbstractModel):
_name = 'report.account.report_invoice'
_inherit = 'report.abstract_report'
_template = 'account.report_invoice'

View File

@ -0,0 +1,184 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Invoice Body -->
<template id="report_invoice_document">
<t t-call="report.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-6" name="invoice_address">
<strong>
<span t-esc="o.partner_id.name"/>
</strong>
<br/>
<span t-esc="o.partner_id.street"/>
<br/>
<span t-esc="o.partner_id.zip"/>
<span t-esc="o.partner_id.city"/>
<br/>
<span t-esc="o.partner_id.country_id.name"/>
</div>
</div>
<div class="row">
<div class="col-xs-offset-6 col-xs-6 text-right" style="padding-right:0;">
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_id.ref">
<span class="col-xs-6 text-left">Kundennr.:</span>
<span class="col-xs-6" t-field="o.partner_id.ref"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_id.vat">
<span class="col-xs-6 text-left">Ihre UID:</span>
<span class="col-xs-6" t-field="o.partner_id.vat"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.name">
<span class="col-xs-6 text-left">Ihre Referenz:</span>
<span class="col-xs-6" t-field="o.name"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.origin">
<span class="col-xs-6 text-left">Referenzbeleg:</span>
<span class="col-xs-6" t-field="o.origin"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.date_invoice">
<span class="col-xs-6 text-left">Rechnungsdatum:</span>
<span class="col-xs-6" t-field="o.date_invoice"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.user_id">
<span class="col-xs-6 text-left">Ansprechpartner:</span>
<span class="col-xs-6" t-field="o.user_id"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.user_id and o.user_id.email">
<span class="col-xs-6 text-left">Email:</span>
<span class="col-xs-6" t-field="o.user_id.email"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.user_id and o.user_id.phone">
<span class="col-xs-6 text-left">Telefon:</span>
<span class="col-xs-6" t-field="o.user_id.phone"/>
</div>
</div>
</div>
<div class="row oe_mt32">
<div class="col-xs-12 text-left">
<h4>
<span t-if="o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')">
Rechnung
</span>
<span t-if="o.type == 'out_invoice' and o.state == 'proforma2'">Proforma Rechnung</span>
<span t-if="o.type == 'out_invoice' and o.state == 'draft'">Rechnungsentwurf</span>
<span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Stornierte Rechnung</span>
<span t-if="o.type == 'out_refund'">Gutschrift</span>
<span t-if="o.type == 'in_refund'">Lieferantenstorno</span>
<span t-if="o.type == 'in_invoice'">Eingangsrechnungen</span>
<span t-field="o.number"/>
</h4>
</div>
</div>
<table class="oe_mt32 table table-condensed">
<t t-set="art_number_is_set"
t-value="field_set_in_lines(o.invoice_line_ids, 'product_id.default_code')"/>
<t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/>
<thead>
<tr>
<th class="text-center">Pos</th>
<th class="text-center" t-if="art_number_is_set">Art-Nr.</th>
<th class="text-left">Bezeichnung</th>
<th class="text-center">Menge</th>
<th class="text-right">Einzelpreis</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"/>
<tr t-foreach="o.invoice_line_ids" t-as="invoice_line">
<t t-set="pos_nr" t-value="pos_nr+1"/>
<td class="text-center">
<span t-esc="pos_nr"/>
</td>
<td class="text-center" t-if="art_number_is_set">
<span t-field="invoice_line.product_id.default_code"/>
</td>
<td class="text-left">
<span t-field="invoice_line.name"/>
</td>
<td class="text-center">
<span t-field="invoice_line.quantity"/>
</td>
<td class="text-right">
<span t-field="invoice_line.price_unit"/>
</td>
<td class="text-right" t-if="discount_is_set">
<span t-field="invoice_line.discount"/>
</td>
<td class="text-right">
<span t-field="invoice_line.price_subtotal"/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="oe_mt32 col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td>
<strong>Zwischensumme</strong>
</td>
<td class="text-right">
<span t-field="o.amount_untaxed"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
<tr t-foreach="o.tax_line_ids" t-as="tax_line">
<td>
<span t-field="tax_line.name"/>
</td>
<td class="text-right">
<span t-field="tax_line.amount"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
<tr class="border-black">
<td>
<strong>Rechnungsbetrag</strong>
</td>
<td class="text-right">
<span t-field="o.amount_total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
</table>
</div>
</div>
<div class="row">
<p class="col-xs-12">
<span t-field="o.comment"/>
</p>
<p class="col-xs-12">
<t t-if="o.payment_term_id.note">
<t t-esc="o.payment_term_id.note"/>
<br/>
</t>
</p>
</div>
</div>
</t>
</template>
<template id="account.report_invoice">
<t t-call="report.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="dp_reports_account.report_invoice_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
</data>
<record id="account.account_invoices" model="ir.actions.report.xml">
<field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
</record>
</odoo>

View File

@ -0,0 +1 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# noinspection PyStatementEffect
{
'name': 'datepol Report-Anpassungen',
'category': 'Custom',
'version': '1.0',
'summary': """Individuelle Report Anpassungen""",
'description': """Individuelle Report Anpassungen""",
'author': 'datenpol gmbh',
'website': 'http://www.datenpol.at/',
'depends': [
'dp_reports',
'purchase'
],
'data': [
'reports/purchase.xml',
'reports/purchasequotation.xml',
],
# only loaded in demonstration mode
'demo': [],
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,19 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * dp_report
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-12 09:17+0000\n"
"PO-Revision-Date: 2016-10-13 11:58+0000\n"
"Last-Translator: datenpol\n"
"Language-Team: German (http://www.transifex.com/odoo/odoo-9/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
import report_helper

View File

@ -0,0 +1,16 @@
from odoo import api, models
class PurchaseQuotation(models.AbstractModel):
_name = 'report.purchase.report_purchasequotation'
_inherit = 'report.abstract_report'
_template = 'purchase.report_purchasequotation'
class PurchaseOrder(models.AbstractModel):
_name = 'report.purchase.report_purchaseorder'
_inherit = 'report.abstract_report'
_template = 'purchase.report_purchaseorder'

View File

@ -0,0 +1,174 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="report_purchaseorder_document">
<t t-call="report.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-6">
<strong>
<span t-esc="o.partner_id.name"/>
</strong>
<br/>
<span t-esc="o.partner_id.street"/>
<br/>
<span t-esc="o.partner_id.zip"/>
<span t-esc="o.partner_id.city"/>
<br/>
<span t-esc="o.partner_id.country_id.name"/>
</div>
</div>
<div class="row">
<div class="col-xs-offset-6 col-xs-6 text-right" style="padding-right:0;">
<div t-if="o.state not in ['draft','sent', 'bid', 'confirmed'] and o.date_order"
class="col-xs-12"
style="padding-right:2px;">
<span class="col-xs-6 text-left">Bestelldatum:</span>
<span class="col-xs-6" t-field="o.date_order"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_ref">
<span class="col-xs-6 text-left">Lieferantenreferenz:</span>
<span class="col-xs-6" t-field="o.partner_ref"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.date_planned">
<span class="col-xs-6 text-left">Geplantes Lieferdatum:</span>
<span class="col-xs-6" t-field="o.date_planned"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="user.partner_id">
<span class="col-xs-6 text-left">Ansprechpartner:</span>
<span class="col-xs-6" t-field="user.partner_id"/>
</div>
<div class="col-xs-12" style="padding-right:2px;"
t-if="user.partner_id and user.partner_id.email">
<span class="col-xs-6 text-left">Email:</span>
<span class="col-xs-6" t-field="user.partner_id.email"/>
</div>
<div class="col-xs-12" style="padding-right:2px;"
t-if="user.partner_id and user.partner_id.phone">
<span class="col-xs-6 text-left">Telefon:</span>
<span class="col-xs-6" t-field="user.partner_id.phone"/>
</div>
</div>
</div>
<div class="row oe_mt32">
<div class="col-xs-12 text-left">
<h4>
<t t-if="o.state != 'draft'">Bestellbestätigung #
<span t-field="o.name"/>
</t>
<t t-if="o.state == 'draft'">Angebotsanfrage #
<span t-field="o.name"/>
</t>
</h4>
</div>
</div>
<table class="oe_mt32 table table-condensed">
<t t-set="art_number_is_set"
t-value="field_set_in_lines(o.order_line, 'product_id.default_code')"/>
<thead>
<tr>
<th class="text-center">Pos</th>
<th class="text-center" t-if="art_number_is_set">Art-Nr.</th>
<th class="text-left">Bezeichnung</th>
<th class="text-center">Menge</th>
<th class="text-right">Einzelpreis</th>
<th class="text-right">Gesamtpreis</th>
</tr>
</thead>
<tbody>
<t t-set="pos_nr" t-value="0"/>
<tr t-foreach="o.order_line" t-as="order_line">
<t t-set="pos_nr" t-value="pos_nr+1"/>
<td class="text-center">
<span t-esc="pos_nr"/>
</td>
<td class="text-center" t-if="art_number_is_set">
<span t-field="order_line.product_id.default_code"/>
</td>
<td class="text-left">
<span t-field="order_line.name"/>
</td>
<td class="text-center">
<span t-field="order_line.product_qty"/>
</td>
<td class="text-right">
<span t-field="order_line.price_unit"/>
</td>
<td class="text-right">
<span t-field="order_line.price_subtotal"/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="oe_mt32 col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td>
<strong>Zwischensumme</strong>
</td>
<td class="text-right">
<span t-field="o.amount_untaxed"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
<tr>
<td>
<span>MwSt.</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="border-black">
<td>
<strong>Gesamtsumme</strong>
</td>
<td class="text-right">
<span t-field="o.amount_total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
</table>
</div>
</div>
<div class="row">
<p class="col-xs-12">
<span t-field="o.notes"/>
</p>
<p class="col-xs-12">
<t t-if="o.incoterm_id.name">
Lieferbedingung:
<t t-esc="o.incoterm_id.name"/>
<br/>
</t>
</p>
</div>
</div>
</t>
</template>
<template id="purchase.report_purchaseorder">
<t t-call="report.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="dp_reports_purchase.report_purchaseorder_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
</data>
<record id="purchase.action_report_purchase_order" model="ir.actions.report.xml">
<field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
</record>
</odoo>

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="report_purchasequotation_document">
<t t-call="report.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-6">
<strong>
<span t-esc="o.partner_id.name"/>
</strong>
<br/>
<span t-esc="o.partner_id.street"/>
<br/>
<span t-esc="o.partner_id.zip"/>
<span t-esc="o.partner_id.city"/>
<br/>
<span t-esc="o.partner_id.country_id.name"/>
</div>
</div>
<div class="row">
<div class="col-xs-offset-6 col-xs-6 text-right" style="padding-right:0;">
<div t-if="o.state in ['draft','sent', 'bid', 'confirmed', 'cancel'] and o.date_order"
class="col-xs-12"
style="padding-right:2px;">
<span class="col-xs-6 text-left">Belegdatum:</span>
<span class="col-xs-6" t-field="o.date_order"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_ref">
<span class="col-xs-6 text-left">Lieferantenreferenz:</span>
<span class="col-xs-6" t-field="o.partner_ref"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="user.partner_id">
<span class="col-xs-6 text-left">Ansprechpartner:</span>
<span class="col-xs-6" t-field="user.partner_id"/>
</div>
<div class="col-xs-12" style="padding-right:2px;"
t-if="user.partner_id and user.partner_id.email">
<span class="col-xs-6 text-left">Email:</span>
<span class="col-xs-6" t-field="user.partner_id.email"/>
</div>
<div class="col-xs-12" style="padding-right:2px;"
t-if="user.partner_id and user.partner_id.phone">
<span class="col-xs-6 text-left">Telefon:</span>
<span class="col-xs-6" t-field="user.partner_id.phone"/>
</div>
</div>
</div>
<div class="row oe_mt32">
<div class="col-xs-12 text-left">
<h4>
Angebotsanfrage #
<span t-field="o.name"/>
</h4>
</div>
</div>
<table class="oe_mt32 table table-condensed">
<t t-set="art_number_is_set"
t-value="field_set_in_lines(o.order_line, 'product_id.default_code')"/>
<thead>
<tr>
<th class="text-center">Pos</th>
<th class="text-center" t-if="art_number_is_set">Art-Nr.</th>
<th class="text-left">Bezeichnung</th>
<th class="text-center">Menge</th>
</tr>
</thead>
<tbody>
<t t-set="pos_nr" t-value="0"/>
<tr t-foreach="o.order_line" t-as="order_line">
<t t-set="pos_nr" t-value="pos_nr+1"/>
<td class="text-center">
<span t-esc="pos_nr"/>
</td>
<td class="text-center" t-if="art_number_is_set">
<span t-field="order_line.product_id.default_code"/>
</td>
<td class="text-left">
<span t-field="order_line.name"/>
</td>
<td class="text-center">
<span t-field="order_line.product_qty"/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="oe_mt32 col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td>
<strong>Zwischensumme</strong>
</td>
<td class="text-right">
<span t-field="o.amount_untaxed"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
<tr>
<td>
<span>MwSt.</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="border-black">
<td>
<strong>Gesamtsumme</strong>
</td>
<td class="text-right">
<span t-field="o.amount_total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
</table>
</div>
</div>
<div class="row">
<p class="col-xs-12">
<span t-field="o.notes"/>
</p>
<p class="col-xs-12">
<t t-if="o.incoterm_id.name">
Lieferbedingung:
<t t-esc="o.incoterm_id.name"/>
<br/>
</t>
</p>
</div>
</div>
</t>
</template>
<template id="purchase.report_purchasequotation">
<t t-call="report.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="dp_reports_purchase.report_purchasequotation_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
</data>
<record id="purchase.report_purchase_quotation" model="ir.actions.report.xml">
<field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
</record>
</odoo>

View File

@ -0,0 +1 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# noinspection PyStatementEffect
{
'name': 'datepol Report-Anpassungen',
'category': 'Custom',
'version': '1.0',
'summary': """Individuelle Report Anpassungen""",
'description': """Individuelle Report Anpassungen""",
'author': 'datenpol gmbh',
'website': 'http://www.datenpol.at/',
'depends': [
'dp_reports',
'sale'
],
'data': [
'reports/sale.xml',
],
# only loaded in demonstration mode
'demo': [],
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,19 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * dp_report
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-12 09:17+0000\n"
"PO-Revision-Date: 2016-10-13 11:58+0000\n"
"Last-Translator: datenpol\n"
"Language-Team: German (http://www.transifex.com/odoo/odoo-9/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
import report_helper

View File

@ -0,0 +1,10 @@
from odoo import api, models
class SaleOrder(models.AbstractModel):
_name = 'report.sale.report_saleorder'
_inherit = 'report.abstract_report'
_template = 'sale.report_saleorder'

View File

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Sale Order Body -->
<template id="report_saleorder_document">
<t t-call="report.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-6">
<strong>
<span t-esc="o.partner_id.name"/>
</strong>
<br/>
<span t-esc="o.partner_id.street"/>
<br/>
<span t-esc="o.partner_id.zip"/>
<span t-esc="o.partner_id.city"/>
<br/>
<span t-esc="o.partner_id.country_id.name"/>
</div>
</div>
<div class="row">
<div class="col-xs-offset-6 col-xs-6 text-right" style="padding-right:0;">
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_id.ref">
<span class="col-xs-6 text-left">Kundennr.:</span>
<span class="col-xs-6" t-field="o.partner_id.ref"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_id.vat">
<span class="col-xs-6 text-left">Ihre UID:</span>
<span class="col-xs-6" t-field="o.partner_id.vat"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.client_order_ref">
<span class="col-xs-6 text-left">Ihre Referenz:</span>
<span class="col-xs-6" t-field="o.client_order_ref"/>
</div>
<div t-if="o.state in ['draft','sent'] and o.date_order" class="col-xs-12"
style="padding-right:2px;">
<span class="col-xs-6 text-left">Angebotsdatum:</span>
<span class="col-xs-6" t-field="o.date_order"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
<div t-if="o.state in ['draft','sent'] and o.validity_date" class="col-xs-12"
style="padding-right:2px;">
<span class="col-xs-6 text-left">Gültig bis:</span>
<span class="col-xs-6" t-field="o.validity_date"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
<div t-if="o.state not in ['draft','sent'] and o.confirmation_date" class="col-xs-12"
style="padding-right:2px;">
<span class="col-xs-6 text-left">Bestelldatum:</span>
<span class="col-xs-6" t-field="o.confirmation_date"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.user_id">
<span class="col-xs-6 text-left">Ansprechpartner:</span>
<span class="col-xs-6" t-field="o.user_id"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.user_id and o.user_id.email">
<span class="col-xs-6 text-left">Email:</span>
<span class="col-xs-6" t-field="o.user_id.email"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.user_id and o.user_id.phone">
<span class="col-xs-6 text-left">Telefon:</span>
<span class="col-xs-6" t-field="o.user_id.phone"/>
</div>
</div>
</div>
<div class="row oe_mt32">
<div class="col-xs-12 text-left">
<h4>
<span t-if="o.state not in ['draft','sent']">Auftragsbestätigung</span>
<span t-if="o.state in ['draft','sent']">Angebot</span>
<span t-field="o.name"/>
</h4>
</div>
</div>
<table class="oe_mt32 table table-condensed">
<t t-set="art_number_is_set"
t-value="field_set_in_lines(o.order_line, 'product_id.default_code')"/>
<t t-set="discount_is_set" t-value="field_set_in_lines(o.order_line, 'discount')"/>
<thead>
<tr>
<th class="text-center">Pos</th>
<th class="text-center" t-if="art_number_is_set">Art-Nr.</th>
<th class="text-left">Bezeichnung</th>
<th class="text-center">Menge</th>
<th class="text-right">Einzelpreis</th>
<th class="text-right" t-if="discount_is_set">Rabatt</th>
<th class="text-right">Gesamtpreis</th>
</tr>
</thead>
<tbody class="sale_tbody">
<t t-set="pos_nr" t-value="0"/>
<tr t-foreach="o.order_line" t-as="order_line">
<t t-set="pos_nr" t-value="pos_nr+1"/>
<td class="text-center">
<span t-esc="pos_nr"/>
</td>
<td class="text-center" t-if="art_number_is_set">
<span t-field="order_line.product_id.default_code"/>
</td>
<td class="text-left">
<span t-field="order_line.name"/>
</td>
<td class="text-center">
<span t-field="order_line.product_uom_qty"/>
</td>
<td class="text-right">
<span t-field="order_line.price_unit"/>
</td>
<td class="text-right" t-if="discount_is_set">
<span t-field="order_line.discount"/>
</td>
<td class="text-right">
<span t-field="order_line.price_subtotal"/>
</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="oe_mt32 col-xs-4 pull-right">
<table class="table table-condensed">
<tr class="border-black">
<td>
<strong>Zwischensumme</strong>
</td>
<td class="text-right">
<span t-field="o.amount_untaxed"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
<tr>
<td>
<span>MwSt.</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="border-black">
<td>
<strong>Gesamtsumme</strong>
</td>
<td class="text-right">
<span t-field="o.amount_total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
</table>
</div>
</div>
<div class="row">
<p class="col-xs-12">
<span t-field="o.note"/>
</p>
<p class="col-xs-12">
<t t-if="o.payment_term_id.note">
<t t-esc="o.payment_term_id.note"/>
<br/>
</t>
</p>
</div>
</div>
</t>
</template>
<template id="sale.report_saleorder">
<t t-call="report.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>
</data>
<record id="sale.report_sale_order" model="ir.actions.report.xml">
<field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
</record>
</odoo>

View File

@ -0,0 +1 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# noinspection PyStatementEffect
{
'name': 'datepol Report-Anpassungen',
'category': 'Custom',
'version': '1.0',
'summary': """Individuelle Report Anpassungen""",
'description': """Individuelle Report Anpassungen""",
'author': 'datenpol gmbh',
'website': 'http://www.datenpol.at/',
'depends': [
'dp_reports',
'stock'
],
'data': [
'reports/stock.xml',
],
# only loaded in demonstration mode
'demo': [],
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,19 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * dp_report
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-12 09:17+0000\n"
"PO-Revision-Date: 2016-10-13 11:58+0000\n"
"Last-Translator: datenpol\n"
"Language-Team: German (http://www.transifex.com/odoo/odoo-9/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
import report_helper

View File

@ -0,0 +1,10 @@
from odoo import api, models
class StockPicking(models.AbstractModel):
_name = 'report.stock.report_deliveryslip'
_inherit = 'report.abstract_report'
_template = 'stock.report_deliveryslip'

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Sale Order Body -->
<template id="report_stockpicking_document">
<t t-call="report.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-6">
<strong>
<span t-esc="o.partner_id.name"/>
</strong>
<br/>
<span t-esc="o.partner_id.street"/>
<br/>
<span t-esc="o.partner_id.zip"/>
<span t-esc="o.partner_id.city"/>
<br/>
<span t-esc="o.partner_id.country_id.name"/>
</div>
</div>
<div class="row">
<div class="col-xs-offset-6 col-xs-6 text-right" style="padding-right:0;">
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_id.ref">
<span class="col-xs-6 text-left">Kundennr.:</span>
<span class="col-xs-6" t-field="o.partner_id.ref"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.partner_id.vat">
<span class="col-xs-6 text-left">Ihre UID:</span>
<span class="col-xs-6" t-field="o.partner_id.vat"/>
</div>
<div class="col-xs-12" style="padding-right:2px;" t-if="o.origin">
<span class="col-xs-6 text-left">Ihre Referenz:</span>
<span class="col-xs-6" t-field="o.origin"/>
</div>
<div t-if="o.state in ['draft','sent'] and o.date_order" class="col-xs-12"
style="padding-right:2px;">
<span class="col-xs-6 text-left">Lieferdatum:</span>
<span class="col-xs-6" t-field="o.min_date"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
<div t-if="o.state in ['draft','sent'] and o.date_order" class="col-xs-12"
style="padding-right:2px;">
<span class="col-xs-6 text-left">Auftragsnummer:</span>
<span class="col-xs-6" t-field="o.name"
t-field-options='{"format": "dd.MM.yyyy"}'/>
</div>
</div>
</div>
<div class="row oe_mt32">
<div class="col-xs-12 text-left">
<h4>
Lieferschein
<span t-field="o.name"/>
</h4>
</div>
</div>
<table class="oe_mt32 table table-condensed">
<t t-set="art_number_is_set"
t-value="field_set_in_lines(o.move_lines, 'product_id.default_code')"/>
<t t-set="lot_ids_is_set"
t-value="field_set_in_lines(o, 'pack_operation_product_ids.pack_lot_ids')"/>
<thead>
<tr>
<th class="text-center">Pos</th>
<th class="text-center" t-if="art_number_is_set">Art-Nr.</th>
<th class="text-left">Bezeichnung</th>
<th class="text-center">Menge</th>
<th class="text-right" t-if="lot_ids_is_set">Fertigungslos</th>
</tr>
</thead>
<tbody class="">
<t t-set="pos_nr" t-value="0"/>
<tr t-foreach="o.move_lines" t-as="move_line">
<t t-set="pos_nr" t-value="pos_nr+1"/>
<td class="text-center">
<span t-esc="pos_nr"/>
</td>
<td class="text-center" t-if="art_number_is_set">
<span t-field="move_line.product_id.default_code"/>
</td>
<td class="text-left">
<span t-field="move_line.name"/>
</td>
<td class="text-center">
<span t-field="move_line.product_uom_qty"/>
</td>
<td class="text-right" t-if="lot_ids_is_set">
<t t-foreach="o.pack_operation_product_ids.pack_lot_ids" t-as="pack_lot">
<div class="co-xs-12" t-field="pack_lot.lot_id.name"/>
</t>
</td>
</tr>
</tbody>
</table>
<div class="row">
<p class="col-xs-12">
<span t-field="o.note"/>
</p>
</div>
</div>
</t>
</template>
<template id="stock.report_deliveryslip">
<t t-call="report.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="dp_reports_stock.report_stockpicking_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
</data>
<record id="stock.action_report_delivery" model="ir.actions.report.xml">
<field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/>
</record>
</odoo>

View File

@ -0,0 +1 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink

View File

@ -205,6 +205,12 @@ def main():
'invalidate_email',
]
if cmd == 'remove_standard_translations':
methods = [
'login',
'remove_standard_translations'
]
if not methods:
print 'Unbekanntes Kommando'
_usage()

View File

@ -950,3 +950,20 @@ class DatenpolFunctions():
planner_ids = self._execute('web.planner', 'search', [])
return self._execute('web.planner', 'write', planner_ids, {'active': False})
def remove_standard_translations(self):
"""entferne standard odoo ueberseztungen"""
res_ids = []
res_ids += self._execute('ir.translation', 'search',
[('name', '=', 'stock.location,name'),
('src', '=', 'Stock'),
('value', '=', 'Lager')])
res = True
if res_ids:
res = self._execute('ir.translation', 'unlink', res_ids)
return res