Merge branch 'develop'

develop
Andreas Brückl 2018-12-18 16:48:03 +01:00
commit 69e2b2a973
25 changed files with 268 additions and 134 deletions

View File

@ -6,7 +6,7 @@
{ {
'name': "Web Environment Ribbon", 'name': "Web Environment Ribbon",
'version': '11.0.1.0.0', 'version': '11.0.1.0.2',
'category': 'Web', 'category': 'Web',
'author': 'Francesco OpenCode Apruzzese, ' 'author': 'Francesco OpenCode Apruzzese, '
'Tecnativa, ' 'Tecnativa, '

View File

@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-07-13 16:06+0000\n" "PO-Revision-Date: 2017-07-13 16:06+0000\n"
"Last-Translator: Niki Waibel <niki.waibel@gmail.com>, 2017\n" "Last-Translator: Niki Waibel <niki.waibel@gmail.com>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: web_environment_ribbon #. module: web_environment_ribbon

View File

@ -13,10 +13,10 @@ msgstr ""
"PO-Revision-Date: 2017-07-26 02:44+0000\n" "PO-Revision-Date: 2017-07-26 02:44+0000\n"
"Last-Translator: Quentin THEURET <odoo@kerpeo.com>, 2017\n" "Last-Translator: Quentin THEURET <odoo@kerpeo.com>, 2017\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: web_environment_ribbon #. module: web_environment_ribbon

View File

@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-Date: 2017-07-13 16:06+0000\n" "PO-Revision-Date: 2017-07-13 16:06+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2017\n" "Last-Translator: Bole <bole@dajmi5.com>, 2017\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" "Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name #: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name

View File

@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-07-13 16:06+0000\n" "POT-Creation-Date: 2017-07-13 16:06+0000\n"
"PO-Revision-Date: 2017-07-13 16:06+0000\n" "PO-Revision-Date: 2017-07-13 16:06+0000\n"
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n" "Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n"
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n" "Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/"
"teams/23907/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: nl_NL\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: web_environment_ribbon #. module: web_environment_ribbon

View File

@ -9,14 +9,16 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-13 16:06+0000\n" "POT-Creation-Date: 2017-07-13 16:06+0000\n"
"PO-Revision-Date: 2017-07-13 16:06+0000\n" "PO-Revision-Date: 2018-08-03 12:34+0000\n"
"Last-Translator: Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatic4@gmail.com>, 2017\n" "Last-Translator: Rodrigo Macedo <rmsolucoeseminformatic4@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/"
"23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Weblate 3.1.1\n"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name #: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name
@ -36,4 +38,4 @@ msgstr "Última Modificação em"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend #: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
msgid "Web Environment Ribbon Backend" msgid "Web Environment Ribbon Backend"
msgstr "" msgstr "Back-end da fita do ambiente da Web"

View File

@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-Date: 2017-07-13 16:06+0000\n" "PO-Revision-Date: 2017-07-13 16:06+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" "Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" "Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" "%100==4 ? 2 : 3);\n"
#. module: web_environment_ribbon #. module: web_environment_ribbon
#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name #: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name

View File

@ -1,7 +1,7 @@
# Copyright 2017 ACSONE SA/NV # Copyright 2017 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import api, models from odoo import api, models
class WebEnvironmentRibbonBackend(models.AbstractModel): class WebEnvironmentRibbonBackend(models.AbstractModel):
@ -17,7 +17,7 @@ class WebEnvironmentRibbonBackend(models.AbstractModel):
@api.model @api.model
def _prepare_ribbon_name(self): def _prepare_ribbon_name(self):
name_tmpl = self.env['ir.config_parameter'].get_param('ribbon.name') name_tmpl = self.env['ir.config_parameter'].sudo().get_param('ribbon.name')
vals = self._prepare_ribbon_format_vals() vals = self._prepare_ribbon_format_vals()
return name_tmpl.format(**vals) return name_tmpl.format(**vals)
@ -31,7 +31,7 @@ class WebEnvironmentRibbonBackend(models.AbstractModel):
name = self._prepare_ribbon_name() name = self._prepare_ribbon_name()
return { return {
'name': name, 'name': name,
'color': ir_config_model.get_param('ribbon.color'), 'color': ir_config_model.sudo().get_param('ribbon.color'),
'background_color': ir_config_model.get_param( 'background_color': ir_config_model.sudo().get_param(
'ribbon.background.color'), 'ribbon.background.color'),
} }

View File

@ -30,6 +30,7 @@ class MaterialType(models.Model):
print_default_code = fields.Boolean(string='Drucke Artikelnummer', required=True, help='Definiert, ob die Artikelnummer gedruckt wird') print_default_code = fields.Boolean(string='Drucke Artikelnummer', required=True, help='Definiert, ob die Artikelnummer gedruckt wird')
print_sales_pic = fields.Boolean(string='Drucke Artikelbild', default=True, required=False, help='Definiert, ob ein Artikelbild gedruckt wird (Angebot/Auftrag)') print_sales_pic = fields.Boolean(string='Drucke Artikelbild', default=True, required=False, help='Definiert, ob ein Artikelbild gedruckt wird (Angebot/Auftrag)')
print_production_pic = fields.Boolean(string='Drucke Produktionsbild', default=False, required=False, help='Definiert, ob ein Produktionsbild gedruckt wird (Produktionsauftrag)') print_production_pic = fields.Boolean(string='Drucke Produktionsbild', default=False, required=False, help='Definiert, ob ein Produktionsbild gedruckt wird (Produktionsauftrag)')
production_relevant = fields.Boolean(string='Drucke auf Produktionsschein', default=True, required=False, help='Definiert, ob ein Artikel mit diesem Materiatyp am Produktionsschein angedruckt wird. (Produktionsauftrag)')
_sql_constraints = [ _sql_constraints = [
('name_uniq', 'unique(name)', 'Die Bezeichnung muss eindeutig sein') ('name_uniq', 'unique(name)', 'Die Bezeichnung muss eindeutig sein')

View File

@ -60,6 +60,8 @@ class ProductTemplate(models.Model):
manufacturing_number = fields.Char(string='Herstellnummer') manufacturing_number = fields.Char(string='Herstellnummer')
product_color = fields.Char(string='Farbe') product_color = fields.Char(string='Farbe')
suppl_ids = fields.One2many('product.supplierinfo', 'product_tmpl_id')
@api.onchange('length', 'width', 'thickness', 'height') @api.onchange('length', 'width', 'thickness', 'height')
def _onchange_measures(self): def _onchange_measures(self):
if self.length>0 and self.width>0 and self.thickness>0: if self.length>0 and self.width>0 and self.thickness>0:
@ -80,6 +82,7 @@ class ProductTemplate(models.Model):
if product_template: if product_template:
product_template.write(vals) product_template.write(vals)
else: else:
if vals['active']:
self.create(vals) self.create(vals)
return True return True

View File

@ -28,6 +28,7 @@ class Company(models.Model):
_inherit = 'res.company' _inherit = 'res.company'
eori_nr = fields.Char(string='EORI-Nr') eori_nr = fields.Char(string='EORI-Nr')
fax = fields.Char(related='partner_id.fax')
@api.model @api.model
def set_company_logo(self, company, logo): def set_company_logo(self, company, logo):

View File

@ -26,7 +26,14 @@ from odoo.addons.queue_job.job import job
from odoo import tools, api, fields, models, _ from odoo import tools, api, fields, models, _
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
from dateutil.relativedelta import relativedelta
import dateutil.parser
import datetime
try:
import stdnum.eu.vat as stdnum_vat
except ImportError:
stdnum_vat = None
class PartnerEventListener(Component): class PartnerEventListener(Component):
_name = 'res.partner.listener' _name = 'res.partner.listener'
@ -64,16 +71,64 @@ class Partner(models.Model):
active = fields.Boolean(track_visibility='onchange') active = fields.Boolean(track_visibility='onchange')
portal_export_pending = fields.Boolean(string='Portal Export ausständig') portal_export_pending = fields.Boolean(string='Portal Export ausständig')
date_vat_check = fields.Date(string='Datum der letzten UID-Prüfung') date_vat_check = fields.Date(string='Datum der letzten UID-Prüfung')
warn_vat_date = fields.Boolean(compute='_get_warn_date', store=False, default=False)
collective_bill = fields.Boolean(string='Sammelrechnung', default=True) collective_bill = fields.Boolean(string='Sammelrechnung', default=True)
country_id = fields.Many2one('res.country', string='Country', ondelete='restrict', default=_default_country_id) country_id = fields.Many2one('res.country', string='Country', ondelete='restrict', default=_default_country_id)
commission_account_ids = fields.Many2many(comodel_name='commission.account', string='Provisionsempfänger') commission_account_ids = fields.Many2many(comodel_name='commission.account', string='Provisionsempfänger')
partner_flash = fields.Char() partner_flash = fields.Char()
fax = fields.Char(string='Fax')
_sql_constraints = [ _sql_constraints = [
('ref_uniq', 'unique(ref)', 'Die Interne Referenz muss eindeutig sein'), ('ref_uniq', 'unique(ref)', 'Die Interne Referenz muss eindeutig sein'),
('portal_id_uniq', 'unique(portal_id)', 'Die Portal-ID muss eindeutig sein') ('portal_id_uniq', 'unique(portal_id)', 'Die Portal-ID muss eindeutig sein')
] ]
@api.multi
def _get_warn_date(self):
for record in self:
if record.date_vat_check:
date_today = fields.Date.from_string(fields.Date.context_today(self))
warn_date = date_today - relativedelta(months=+3)
try:
# if record.date_vat_check < '2000-01-01':
# record.date_vat_check = '2000-01-01'
check_date = dateutil.parser.parse(record.date_vat_check).date()
except:
check_date = date_today - relativedelta(months=+36)
if check_date < warn_date:
record.warn_vat_date = True
@api.multi
def action_check_vat(self):
for record in self:
if record.vat:
vat_country, vat_number = self._split_vat(record.vat)
try:
result = stdnum_vat.check_vies_approx(vat_country+vat_number,"ATU54619104")
except Exception as ex:
# Avoid blocking the client when the service is unreachable/unavailable
raise Warning(
_("UID-Prüfung: %s Service ist nicht verfügbar") % record.vat)
return {}
if not result['valid']:
vat_valid = self.vies_vat_check(vat_country, vat_number)
if not vat_valid:
raise ValidationError(
_("UID-INVALID: Die UID '%s' ist ungültig oder hat ein falsches Format") % record.vat)
record.date_vat_check = fields.Date.today()
myresult= dict(result)
msg_post = ('<b>UID-Nr geprüft:</b><br>%s%s<br>%s<br>%s<br>%s<br>Abfrage-Nr: %s<br>Valid: %s') % \
(myresult.get('countryCode',''),myresult.get('vatNumber','')\
,myresult.get('traderName','k.A.')\
,myresult.get('traderCompanyType','k.A.')\
,myresult.get('traderAddress','k.A.')\
,myresult.get('requestIdentifier','k.A.')\
,myresult.get('valid', 'k.A.'))
record.message_post(body=msg_post)
@api.multi @api.multi
@api.constrains('is_company', 'vat') @api.constrains('is_company', 'vat')
def _check_unique_vat(self): def _check_unique_vat(self):

View File

@ -57,6 +57,7 @@ class SaleOrder(models.Model):
assembly_notes = fields.Text() assembly_notes = fields.Text()
earliest_scheduled_date = fields.Datetime(compute='_compute_earliest_scheduled_date') earliest_scheduled_date = fields.Datetime(compute='_compute_earliest_scheduled_date')
positions = fields.Integer(string='Positionen', compute='_compute_positions') positions = fields.Integer(string='Positionen', compute='_compute_positions')
production_positions = fields.Integer(string='Positionen', compute='_compute_positions', store=False)
num_items = fields.Integer(string='Anzahl der Artikel', compute='_compute_num_items') num_items = fields.Integer(string='Anzahl der Artikel', compute='_compute_num_items')
weight_total = fields.Float(string='Gesamtgewicht', compute='_compute_weight_total') weight_total = fields.Float(string='Gesamtgewicht', compute='_compute_weight_total')
confirmation_nr = fields.Char('Freigabenummer') confirmation_nr = fields.Char('Freigabenummer')
@ -113,7 +114,14 @@ class SaleOrder(models.Model):
@api.multi @api.multi
def _compute_positions(self): def _compute_positions(self):
for record in self: for record in self:
record.positions = len(record.order_line) p = 0
pp = 0
for line in record.order_line:
p += 1
if line.product_id.material_type_id.production_relevant:
pp += 1
record.positions = p
record.production_positions = pp
@api.multi @api.multi
def _compute_num_items(self): def _compute_num_items(self):

View File

@ -11,6 +11,7 @@
<field name="print_default_code"/> <field name="print_default_code"/>
<field name="print_sales_pic"/> <field name="print_sales_pic"/>
<field name="print_production_pic"/> <field name="print_production_pic"/>
<field name="production_relevant"/>
</group> </group>
</form> </form>
</field> </field>
@ -25,6 +26,7 @@
<field name="print_default_code"/> <field name="print_default_code"/>
<field name="print_sales_pic"/> <field name="print_sales_pic"/>
<field name="print_production_pic"/> <field name="print_production_pic"/>
<field name="production_relevant"/>
</tree> </tree>
</field> </field>
</record> </record>

View File

@ -110,4 +110,20 @@
name="X-Kategorien" name="X-Kategorien"
action="product_xcategory_action"/> action="product_xcategory_action"/>
<record id="product_template_search_view_tz" model="ir.ui.view">
<field name="name">product.template.search.tz</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_search_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='categ_id']" position="after">
<field name="manufacturing_number" string="Herstellnummer" filter_domain="[('manufacturing_number','ilike',self)]"/>
<field name="suppl_ids" string="Lieferanten-Bestellnummer"
filter_domain="[('suppl_ids.product_name','ilike',self)]"/>
<filter string="Produktart" domain="[]" context="{'group_by':'type'}"/>
<filter string="Interne Kategorie" domain="[]" context="{'group_by':'categ_id'}"/>
<filter string="Materialtyp" domain="[]" context="{'group_by':'material_type_id'}"/>
</xpath>
</field>
</record>
</odoo> </odoo>

View File

@ -9,6 +9,9 @@
<field name="company_registry" position="after"> <field name="company_registry" position="after">
<field name="eori_nr"/> <field name="eori_nr"/>
</field> </field>
<field name="email" position="before">
<field name="fax" string="Fax"/>
</field>
</field> </field>
</record> </record>

View File

@ -17,6 +17,25 @@
<field name="name2" placeholder="Unternehmen 2"/> <field name="name2" placeholder="Unternehmen 2"/>
</h3> </h3>
</xpath> </xpath>
<xpath expr="//field[@name='vat']" position="replace">
<label for="vat"/>
<div class="o_row" name="vat_group">
<field name="vat" placeholder="e.g. BE0477472701"/>
<field name="warn_vat_date" attrs="{'invisible':True}"/>
<field name="date_vat_check" attrs="{'readonly':True,'invisible':['|','|',('warn_vat_date','=',True),('vat','=',False),('vat','=','')]}"
style="padding-left:30px;padding-right:30px;"/>
<field name="date_vat_check" attrs="{'readonly':True,'invisible':['|','|',('warn_vat_date','=',False),('vat','=',False),('vat','=','')]}"
style="padding-left:30px;padding-right:30px;background-color:red;"/>
<button class="btn oe_read_only" attrs="{'invisible':['|','|',('warn_vat_date','=',True),('vat','=',False),('vat','=','')]}"
type="object" name="action_check_vat" string="Prüfen"/>
<button class="btn btn-primary oe_read_only" attrs="{'invisible':['|','|',('warn_vat_date','=',False),('vat','=',False),('vat','=','')]}"
type="object" name="action_check_vat" string="Prüfen"/>
</div>
</xpath>
<xpath expr="//field[@name='email']" position="before">
<field name="fax" widget="phone" string="Fax"/>
</xpath>
<field name="opt_out" position="attributes"> <field name="opt_out" position="attributes">
<attribute name="groups"/> <attribute name="groups"/>

View File

@ -97,18 +97,26 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-xs-12 text-center"> <div class="col-xs-12 text-center">
<!-- <span>AT 46 3250 1000 0200 9306</span> -->
<!-- <span>RLN WAT WW MIB</span> -->
<!-- <span>Raiffeisenbank Spannberg</span> -->
<strong> <strong>
IBAN: IBAN:
<!-- <span t-if="company.bank_ids" t-esc="company.bank_ids[0].acc_number"/> --> <span t-if="company.bank_ids" t-esc="company.bank_ids[0].acc_number"/>
<span>AT 46 3250 1000 0200 9306</span>
&#183; &#183;
BIC: BIC:
<!-- <span t-if="company.bank_ids" t-esc="company.bank_ids[0].bank_id.bic"/> --> <span t-if="company.bank_ids" t-esc="company.bank_ids[0].bank_id.bic"/>
<span>RLN WAT WW MIB</span>
&#183;
<!-- <span t-if="company.bank_ids" t-esc="company.bank_ids[0].bank_id.name"/> -->
<span>Raiffeisenbank Spannberg</span>
&#183; &#183;
<span t-if="company.bank_ids" t-esc="company.bank_ids[0].bank_id.name"/>
</strong>
</div>
</div>
<div class="row">
<div class="col-xs-12 text-center">
<!-- <span>AT 46 3250 1000 0200 9306</span> -->
<!-- <span>RLN WAT WW MIB</span> -->
<!-- <span>Raiffeisenbank Spannberg</span> -->
<strong>
UID-Nr.: UID-Nr.:
<span t-esc="company.vat"/> <span t-esc="company.vat"/>
&#183; &#183;
@ -160,8 +168,11 @@
<br/> <br/>
Phone: Phone:
<span t-esc="company.partner_id.phone"/> <span t-esc="company.partner_id.phone"/>
<t t-if="company.partner_id.fax">
<br/> <br/>
Fax: +43 2538/8628 - 400 Fax:
<span t-esc="company.partner_id.fax"/>
</t>
<br/> <br/>
E-Mail: E-Mail:
<span t-esc="company.partner_id.email"/> <span t-esc="company.partner_id.email"/>

View File

@ -1,3 +1,8 @@
div.dp_note {
margin: auto;
overflow: hidden;
}
.bold { .bold {
font-weight: bold; font-weight: bold;
} }

View File

@ -85,11 +85,12 @@
</strong> </strong>
<span class="col-xs-2" t-field="o.name"/> <span class="col-xs-2" t-field="o.name"/>
</div> </div>
<div class="row mt32"/> <div class="dp_note">
<p t-if="o.note1"> <p t-if="o.note1">
<span t-field="o.note1"/> <span t-field="o.note1"/>
</p> </p>
</div>
<div class="row mt32"/>
<t t-foreach="o.order_lines_layouted()" t-as="page" name="lines_layouted"> <t t-foreach="o.order_lines_layouted()" t-as="page" name="lines_layouted">
<table class="table table-condensed"> <table class="table table-condensed">
<t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/> <t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/>
@ -266,7 +267,7 @@
</div> </div>
</div> </div>
<div class="row" style="page-break-inside: avoid"> <div class="row dp_note" style="page-break-inside: avoid">
<p t-if="o.note2"> <p t-if="o.note2">
<span t-field="o.note2" style="page-break-inside: avoid"/> <span t-field="o.note2" style="page-break-inside: avoid"/>
</p> </p>

View File

@ -141,7 +141,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row dp_note">
<p class="col-xs-12"> <p class="col-xs-12">
<span t-field="o.notes"/> <span t-field="o.notes"/>
</p> </p>

View File

@ -124,7 +124,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row dp_note">
<p class="col-xs-12"> <p class="col-xs-12">
<span t-field="o.notes"/> <span t-field="o.notes"/>
</p> </p>

View File

@ -123,10 +123,11 @@
</strong> </strong>
<span class="col-xs-2" t-field="o.client_order_ref"/> <span class="col-xs-2" t-field="o.client_order_ref"/>
</div> </div>
<div class="row mt32"/> <div class="row mt32 dp_note">
<p t-if="o.note1"> <p t-if="o.note1">
<span t-field="o.note1"/> <span t-field="o.note1"/>
</p> </p>
</div>
<table class="table table-condensed" style="background-color: #E6E7E9;"> <table class="table table-condensed" style="background-color: #E6E7E9;">
<t t-set="discount_is_set" t-value="field_set_in_lines(o.order_line, 'discount')"/> <t t-set="discount_is_set" t-value="field_set_in_lines(o.order_line, 'discount')"/>
<thead class="table-header"> <thead class="table-header">
@ -254,13 +255,13 @@
</div> </div>
</div> </div>
<div class="row" style="page-break-inside: avoid"> <div class="row dp_note" style="page-break-inside: avoid">
<p t-if="o.note2"> <p t-if="o.note2">
<span t-field="o.note2" style="page-break-inside: avoid"/> <span t-field="o.note2" style="page-break-inside: avoid"/>
</p> </p>
</div> </div>
<div class="row"> <div class="row dp_note">
<p class="col-xs-12"> <p class="col-xs-12">
<span t-field="o.note"/> <span t-field="o.note"/>
</p> </p>

View File

@ -290,9 +290,9 @@
</span> </span>
</div> </div>
</div> </div>
<p class="col-xs-12"> <div class="col-xs-12 dp_note">
<span t-field="o.note"/> <span t-field="o.note"/>
</p> </div>
<p t-if="o.backorder_id"> <p t-if="o.backorder_id">
This shipment is a backorder of<t t-esc="o.backorder_id.name"/>. This shipment is a backorder of<t t-esc="o.backorder_id.name"/>.

View File

@ -39,7 +39,7 @@
<strong> <strong>
<span class="col-xs-2">Positionen:</span> <span class="col-xs-2">Positionen:</span>
</strong> </strong>
<span class="col-xs-2" t-field="o.positions"/> <span class="col-xs-2" t-field="o.production_positions"/>
</div> </div>
<div class="row height-20"> <div class="row height-20">
<div class="col-xs-3" style="padding-right: 4px"> <div class="col-xs-3" style="padding-right: 4px">
@ -77,10 +77,11 @@
</strong> </strong>
<span class="col-xs-2" t-field="o.client_order_ref"/> <span class="col-xs-2" t-field="o.client_order_ref"/>
</div> </div>
<div class="row mt32"/> <div class="row mt32 dp_note">
<p t-if="o.note1"> <p t-if="o.note1">
<span t-field="o.note1"/> <span t-field="o.note1"/>
</p> </p>
</div>
<table class="table table-condensed" style="background-color: #E6E7E9;"> <table class="table table-condensed" style="background-color: #E6E7E9;">
<thead class="table-header"> <thead class="table-header">
<tr> <tr>
@ -100,6 +101,7 @@
<tbody class="sale-tbody"> <tbody class="sale-tbody">
<t t-set="pos_nr" t-value="0"/> <t t-set="pos_nr" t-value="0"/>
<t t-foreach="o.order_line" t-as="order_line"> <t t-foreach="o.order_line" t-as="order_line">
<t t-if="order_line.product_id.material_type_id.production_relevant">
<tr> <tr>
<t t-set="pos_nr" t-value="pos_nr+1"/> <t t-set="pos_nr" t-value="pos_nr+1"/>
<td class="text-center"> <td class="text-center">
@ -179,6 +181,7 @@
</td> </td>
</tr> </tr>
</t> </t>
</t>
</tbody> </tbody>
</table> </table>
@ -222,7 +225,7 @@
</div> </div>
</div> </div>
<div class="row" style="page-break-inside: avoid"> <div class="row dp_note" style="page-break-inside: avoid">
<p t-if="o.note2"> <p t-if="o.note2">
<span t-field="o.note2" style="page-break-inside: avoid"/> <span t-field="o.note2" style="page-break-inside: avoid"/>
</p> </p>