Fall 5030: Globales Lieferdatum für AN / AB

develop
Roman Widmann 2018-03-07 16:51:51 +01:00
parent 06c0d8f1a9
commit 34552888f5
6 changed files with 43 additions and 5 deletions

View File

@ -113,7 +113,8 @@
<br/>
<span t-field="order_line.name"/>
<t t-if="order_line.delivery_date">
<br/><strong>Lieferdatum: </strong><span t-field="order_line.delivery_date"/>
<br/><strong>Voraussichtliches Lieferdatum: </strong>
<span t-field="order_line.delivery_date"/>
</t>
</td>
<td rowspan="2" class="text-right">

View File

@ -15,7 +15,7 @@
'sale_stock',
],
'data': [
'views/sale_order_line.xml',
'views/sale_order.xml',
],
'installable': True,
'auto_install': False,

View File

@ -1 +1,2 @@
from . import sale_order_line
from . import sale_order

View File

@ -0,0 +1,23 @@
# Copyright 2018-Today datenpol gmbh (<http://www.datenpol.at>)
# License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses).
from odoo import api, fields, models, _
class SaleOrder(models.Model):
_inherit = 'sale.order'
delivery_date = fields.Date('Lieferdatum', compute='_compute_delivery_date', inverse='_inverse_delivery_date')
@api.multi
def _compute_delivery_date(self):
for order in self:
lines = order.order_line.sorted(key=lambda d: d.delivery_date)
if lines:
order.delivery_date = lines[0].delivery_date
@api.multi
def _inverse_delivery_date(self):
for order in self:
for line in order.order_line:
line.delivery_date = order.delivery_date

View File

@ -7,7 +7,7 @@ from odoo import api, fields, models, _
class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'
delivery_date = fields.Date('Lieferdatum', compute='_compute_delivery_date')
delivery_date = fields.Date('Lieferdatum', compute='_compute_delivery_date', inverse='_inverse_delivery_date')
@api.multi
def _compute_delivery_date(self):
@ -15,6 +15,15 @@ class SaleOrderLine(models.Model):
stock_move = self.env['stock.move']
move = stock_move.search([('sale_line_id', '=', line.id), ('state', 'not in', ['cancel'])])
if move:
line.delivery_date = move[0].date
line.delivery_date = move[0].date_expected
else:
line.delivery_date = False
@api.multi
def _inverse_delivery_date(self):
for line in self:
stock_move = self.env['stock.move']
move = stock_move.search([('sale_line_id', '=', line.id), ('state', 'not in', ['cancel'])])
if move:
move.date = line.delivery_date
move.date_expected = line.delivery_date

View File

@ -9,9 +9,13 @@
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='order_line']/tree//field[@name='discount']" position="after">
<xpath expr="//field[@name='order_line']/tree//field[@name='price_subtotal']" position="before">
<field name="delivery_date"/>
</xpath>
<field name="confirmation_date" position="after">
<field name="delivery_date"
attrs="{'invisible':[('state', 'in', ['draft', 'sent'])]}"/>
</field>
</field>
</record>