Merge branch 'develop'
commit
4456e292c9
|
|
@ -24,6 +24,7 @@ from odoo import fields, models, api, _
|
|||
from odoo.exceptions import ValidationError
|
||||
from odoo.addons.queue_job.job import job
|
||||
|
||||
|
||||
class ProductXCategory(models.Model):
|
||||
_name = 'product.xcategory'
|
||||
_description = 'X-Kategorie'
|
||||
|
|
@ -59,6 +60,13 @@ class ProductTemplate(models.Model):
|
|||
manufacturing_number = fields.Char(string='Herstellnummer')
|
||||
product_color = fields.Char(string='Farbe')
|
||||
|
||||
@api.onchange('length', 'width', 'thickness', 'height')
|
||||
def _onchange_measures(self):
|
||||
if self.length>0 and self.width>0 and self.thickness>0:
|
||||
self.volume = self.length*self.width*self.thickness / (1000*1000*1000)
|
||||
elif self.length>0 and self.width>0 and self.height>0:
|
||||
self.volume = self.length*self.width*self.height / (1000*1000*1000)
|
||||
|
||||
@api.model
|
||||
def create_product(self, vals):
|
||||
"""
|
||||
|
|
@ -174,8 +182,12 @@ class ProductPricelistItem(models.Model):
|
|||
@api.multi
|
||||
@job
|
||||
def job_mark_partner_for_export(self, pricelist_id):
|
||||
partners = self.env['res.partner'].search([('company_type','=','company'),('portal_id','!=',False)])
|
||||
partners = self.env['res.partner'].search([('portal_id', '!=', False)])
|
||||
todo_partner = self.env['res.partner']
|
||||
for partner in partners:
|
||||
# Search ist auf die Preisliste nicht möglich, daher wird jeder Partner einzeln verglichen
|
||||
if partner.property_product_pricelist.id == pricelist_id:
|
||||
partner.portal_export_pending = True
|
||||
if partner.property_product_pricelist.id == pricelist_id and partner.company_type == 'company':
|
||||
todo_partner |= partner
|
||||
todo_partner.write({
|
||||
'portal_export_pending': True
|
||||
})
|
||||
|
|
|
|||
|
|
@ -353,6 +353,8 @@ class Partner(models.Model):
|
|||
name = dict(self.fields_get(['type'])['type']['selection'])[partner.type]
|
||||
if not partner.is_company:
|
||||
name = "%s, %s" % (partner.commercial_company_name or partner.parent_id.name, name)
|
||||
if partner.is_company and self._context.get('name_search'):
|
||||
name += ' - %s - %s' % (partner.zip, partner.street)
|
||||
if self._context.get('show_address_only'):
|
||||
name = partner._display_address(without_company=True)
|
||||
if self._context.get('show_address'):
|
||||
|
|
@ -366,6 +368,11 @@ class Partner(models.Model):
|
|||
res.append((partner.id, name))
|
||||
return res
|
||||
|
||||
@api.model
|
||||
def name_search(self, name='', args=None, operator='ilike', limit=100):
|
||||
return super(Partner, self.with_context(name_search=True)).name_search(name=name, args=args, operator=operator,
|
||||
limit=limit)
|
||||
|
||||
@api.model
|
||||
def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None):
|
||||
for context_element in self.env.context:
|
||||
|
|
@ -394,6 +401,8 @@ class Partner(models.Model):
|
|||
return res
|
||||
|
||||
|
||||
|
||||
|
||||
class PartnerSector(models.Model):
|
||||
_name = 'res.partner.sector'
|
||||
_description = 'Branche'
|
||||
|
|
|
|||
|
|
@ -52,6 +52,13 @@ class StockProductionLot(models.Model):
|
|||
class StockPicking(models.Model):
|
||||
_inherit = 'stock.picking'
|
||||
|
||||
dlv_partner_ref = fields.Text(compute='_get_partner_ref', store=False, string='Interne Referenz')
|
||||
|
||||
@api.multi
|
||||
def _get_partner_ref(self):
|
||||
for record in self:
|
||||
record.dlv_partner_ref = record.partner_id.ref
|
||||
|
||||
@api.model
|
||||
def _formatLang(self, value):
|
||||
lang = self.partner_id.lang
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<field name="inherit_id" ref="account.invoice_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='invoice_line_ids']/tree//field[@name='name']" position="after">
|
||||
<field name="intrastat_id"/>
|
||||
<field name="intrastat_id" options="{'no_quick_create':True}"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//field[@name='invoice_line_ids']/tree//field[@name='product_id']" position="after">
|
||||
|
|
|
|||
|
|
@ -51,9 +51,11 @@
|
|||
<field name="assembly_notes"/>
|
||||
</group>
|
||||
</field>
|
||||
<!--
|
||||
<xpath expr="//field[@name='order_line']/form//field[@name='name']" position="after">
|
||||
<field name="intrastat_id"/>
|
||||
<field name="intrastat_id" options="{'no_create': True}"/>
|
||||
</xpath>
|
||||
-->
|
||||
<!--
|
||||
<xpath expr="//field[@name='order_line']/form//field[@name='product_id']" position="replace">
|
||||
<field name="product_id" options="{'no_create': True}"/>
|
||||
|
|
@ -71,7 +73,7 @@
|
|||
<field name="from_designbox"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']/tree//field[@name='name']" position="after">
|
||||
<field name="intrastat_id"/>
|
||||
<field name="intrastat_id" options="{'no_quick_create':True}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']/tree//field[@name='product_id']" position="after">
|
||||
<field name="item_notes" invisible="1"/>
|
||||
|
|
@ -160,6 +162,7 @@
|
|||
</field>
|
||||
<field name="name" position="after">
|
||||
<field name="order_type"/>
|
||||
<field name="team_id"/>
|
||||
<field name="confirmation_nr"/>
|
||||
</field>
|
||||
</field>
|
||||
|
|
@ -176,6 +179,7 @@
|
|||
</field>
|
||||
<field name="name" position="after">
|
||||
<field name="order_type"/>
|
||||
<field name="team_id"/>
|
||||
<field name="confirmation_nr"/>
|
||||
</field>
|
||||
<field name="invoice_status" position="after">
|
||||
|
|
@ -195,6 +199,8 @@
|
|||
<field name="confirmation_nr"/>
|
||||
<field name="assembly_state"/>
|
||||
<field name="order_type"/>
|
||||
<filter string="IR Heizpaneele" domain="[('team_id.name','=', 'IR Heizpaneele')]" name="from_website_ir_heizpaneele"/>
|
||||
<filter string="Heizpaneele" domain="[('team_id.name','=', 'Heizpaneele')]" name="from_website_heizpaneele"/>
|
||||
</field>
|
||||
<!--
|
||||
<field name="partner_id" position="after">
|
||||
|
|
@ -209,6 +215,7 @@
|
|||
<filter string="PG Status" domain="[]" context="{'group_by':'assembly_state'}"/>
|
||||
<filter string="Rechnungsadresse" domain="[]" context="{'group_by':'partner_invoice_id'}"/>
|
||||
<filter string="Auftragsart" domain="[]" context="{'group_by':'order_type'}"/>
|
||||
<filter string="Vertriebskanal" domain="[]" context="{'group_by':'team_id'}"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<field name="ref" position="after">
|
||||
<field name="assembled" string="Zusammengebaut"/>
|
||||
<field name="weight"/>
|
||||
<field name="intrastat_id"/>
|
||||
<field name="intrastat_id" options="{'no_quick_create':True}"/>
|
||||
<field name="notes"/>
|
||||
</field>
|
||||
<div class="oe_title" position="before">
|
||||
|
|
@ -27,6 +27,9 @@
|
|||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="partner_id" position="after">
|
||||
<field name="dlv_partner_ref" string="Interne Referenz"/>
|
||||
</field>
|
||||
<xpath expr="//field[@name='move_lines']/tree//field[@name='product_id']" position="after">
|
||||
<field name="manu_lots_visible" invisible="1"/>
|
||||
<button name="action_show_lot" string="Lot for manufactoring parts" type="object" icon="fa-list" attrs="{'invisible': [('manu_lots_visible', '=', False)]}" options="{"warn": true}"/>
|
||||
|
|
|
|||
|
|
@ -47,9 +47,9 @@
|
|||
<t t-if="not (env.context.get('proforma', False) or is_pro_forma)">
|
||||
<!--
|
||||
-->
|
||||
<span t-if="not data.get('tz_report_production', False) and o.state not in ['draft','sent']">Auftragsbestätigung</span>
|
||||
<span t-if="not data.get('tz_report_production', False) and o.state in ['draft','sent']">Angebot</span>
|
||||
<span t-if="data.get('tz_report_production',False)">Produktionsschein</span>
|
||||
<span t-if="not (data or {}).get('tz_report_production', False) and o.state not in ['draft','sent']">Auftragsbestätigung</span>
|
||||
<span t-if="not (data or {}).get('tz_report_production', False) and o.state in ['draft','sent']">Angebot</span>
|
||||
<span t-if="(data or {}).get('tz_report_production',False)">Produktionsschein</span>
|
||||
</t>
|
||||
<t t-if="env.context.get('proforma', False) or is_pro_forma">
|
||||
<span>Proformarechnung</span>
|
||||
|
|
@ -187,6 +187,10 @@
|
|||
</t>
|
||||
<span t-esc="o.partner_id.street"/>
|
||||
<br/>
|
||||
<t t-if="o.partner_id.street2">
|
||||
<span t-esc="o.partner_id.street2"/>
|
||||
<br/>
|
||||
</t>
|
||||
<span t-esc="o.partner_id.zip"/>
|
||||
<span t-esc="o.partner_id.city"/>
|
||||
<br/>
|
||||
|
|
|
|||
|
|
@ -11,8 +11,16 @@
|
|||
<div class="partner-data">
|
||||
<span t-esc="o.partner_id.name"/>
|
||||
<br/>
|
||||
<t t-if="o.partner_id.name2">
|
||||
<span t-esc="o.partner_id.name2"/>
|
||||
<br/>
|
||||
</t>
|
||||
<span t-esc="o.partner_id.street"/>
|
||||
<br/>
|
||||
<t t-if="o.partner_id.street2">
|
||||
<span t-esc="o.partner_id.street2"/>
|
||||
<br/>
|
||||
</t>
|
||||
<span t-esc="o.partner_id.zip"/>
|
||||
<span t-esc="o.partner_id.city"/>
|
||||
<br/>
|
||||
|
|
@ -258,9 +266,11 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<p t-if="o.note2">
|
||||
<span t-field="o.note2"/>
|
||||
</p>
|
||||
<div class="row" style="page-break-inside: avoid">
|
||||
<p t-if="o.note2">
|
||||
<span t-field="o.note2" style="page-break-inside: avoid"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<p class="col-xs-12">
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@
|
|||
<div class="partner-data">
|
||||
<span t-esc="o.partner_shipping_id.name"/>
|
||||
<br/>
|
||||
<t t-if="o.partner_shipping_id.name2">
|
||||
<span t-esc="o.partner_shipping_id.name2"/>
|
||||
<br/>
|
||||
</t>
|
||||
<span t-esc="o.partner_shipping_id.street"/>
|
||||
<br/>
|
||||
<span t-esc="o.partner_shipping_id.zip"/>
|
||||
|
|
@ -27,6 +31,10 @@
|
|||
<div class="partner-data">
|
||||
<span t-esc="o.partner_invoice_id.name"/>
|
||||
<br/>
|
||||
<t t-if="o.partner_invoice_id.name2">
|
||||
<span t-esc="o.partner_invoice_id.name2"/>
|
||||
<br/>
|
||||
</t>
|
||||
<span t-esc="o.partner_invoice_id.street"/>
|
||||
<br/>
|
||||
<span t-esc="o.partner_invoice_id.zip"/>
|
||||
|
|
@ -91,11 +99,20 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-3" style="padding-right: 4px">
|
||||
<strong>
|
||||
<span class="col-xs-8" style="padding: 0px;width: 58%;">Lieferdatum:</span>
|
||||
</strong>
|
||||
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.earliest_scheduled_date"
|
||||
t-options='{"widget": "date"}'/>
|
||||
<t t-if="o.state not in ['draft','sent']">
|
||||
<strong>
|
||||
<span class="col-xs-8" style="padding: 0px;width: 58%;">Lieferdatum:</span>
|
||||
</strong>
|
||||
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.earliest_scheduled_date"
|
||||
t-options='{"widget": "date"}'/>
|
||||
</t>
|
||||
<t t-if="o.state in ['draft','sent'] and o.validity_date">
|
||||
<strong>
|
||||
<span class="col-xs-8" style="padding: 0px;width: 58%;">Gültig bis:</span>
|
||||
</strong>
|
||||
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.validity_date"
|
||||
t-options='{"widget": "date"}'/>
|
||||
</t>
|
||||
</div>
|
||||
<strong>
|
||||
<span class="col-xs-2">Telefon:</span>
|
||||
|
|
@ -237,9 +254,11 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<p t-if="o.note2">
|
||||
<span t-field="o.note2"/>
|
||||
</p>
|
||||
<div class="row" style="page-break-inside: avoid">
|
||||
<p t-if="o.note2">
|
||||
<span t-field="o.note2" style="page-break-inside: avoid"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<p class="col-xs-12">
|
||||
|
|
@ -268,9 +287,17 @@
|
|||
Austausch.
|
||||
</p>
|
||||
<t t-if="o.state in ['draft','sent']">
|
||||
<p class="col-xs-12">
|
||||
Gültigkeit: 14 Tage ab Ausstellungsdatum
|
||||
</p>
|
||||
<t t-if="o.validity_date">
|
||||
<p class="col-xs-12">
|
||||
Angebot gültig bis:
|
||||
<span t-field="o.validity_date"/>
|
||||
</p>
|
||||
</t>
|
||||
<t t-if="not o.validity_date">
|
||||
<p class="col-xs-12">
|
||||
Gültigkeit: 14 Tage ab Ausstellungsdatum
|
||||
</p>
|
||||
</t>
|
||||
<p class="col-xs-12">
|
||||
Auftrag erteilt am: ____________________
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@
|
|||
<div class="partner-data">
|
||||
<span t-esc="o.partner_id.name"/>
|
||||
<br/>
|
||||
<t t-if="o.partner_id.name2">
|
||||
<span t-esc="o.partner_id.name2"/>
|
||||
<br/>
|
||||
</t>
|
||||
<span t-esc="o.partner_id.street"/>
|
||||
<br/>
|
||||
<span t-esc="o.partner_id.zip"/>
|
||||
|
|
@ -40,6 +44,10 @@
|
|||
<div class="partner-data">
|
||||
<span t-esc="o.sale_id.partner_id.name"/>
|
||||
<br/>
|
||||
<t t-if="o.sale_id.partner_id.name2">
|
||||
<span t-esc="o.sale_id.partner_id.name2"/>
|
||||
<br/>
|
||||
</t>
|
||||
<span t-esc="o.sale_id.partner_id.street"/>
|
||||
<br/>
|
||||
<span t-esc="o.sale_id.partner_id.zip"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
<!-- Sale Order Body -->
|
||||
<!-- Production Order Body -->
|
||||
<template id="report_production_document">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/>
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
<div class="row height-20">
|
||||
<div class="col-xs-3" style="padding-right: 4px">
|
||||
<strong>
|
||||
<span class="col-xs-8" style="padding: 0px;width: 58%;">Angebotsdatum:</span>
|
||||
<span class="col-xs-8" style="padding: 0px;width: 58%;">Auftragsdatum:</span>
|
||||
</strong>
|
||||
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.date_order"
|
||||
<span class="col-xs-4" style="padding: 0px;width: 42%;" t-field="o.confirmation_date"
|
||||
t-options='{"widget": "date"}'/>
|
||||
</div>
|
||||
<strong>
|
||||
|
|
@ -222,9 +222,11 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<p t-if="o.note2">
|
||||
<span t-field="o.note2"/>
|
||||
</p>
|
||||
<div class="row" style="page-break-inside: avoid">
|
||||
<p t-if="o.note2">
|
||||
<span t-field="o.note2" style="page-break-inside: avoid"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="row">
|
||||
|
|
|
|||
Loading…
Reference in New Issue