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/> <br/>
<span t-field="order_line.name"/> <span t-field="order_line.name"/>
<t t-if="order_line.delivery_date"> <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> </t>
</td> </td>
<td rowspan="2" class="text-right"> <td rowspan="2" class="text-right">

View File

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

View File

@ -1 +1,2 @@
from . import sale_order_line 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): class SaleOrderLine(models.Model):
_inherit = 'sale.order.line' _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 @api.multi
def _compute_delivery_date(self): def _compute_delivery_date(self):
@ -15,6 +15,15 @@ class SaleOrderLine(models.Model):
stock_move = self.env['stock.move'] stock_move = self.env['stock.move']
move = stock_move.search([('sale_line_id', '=', line.id), ('state', 'not in', ['cancel'])]) move = stock_move.search([('sale_line_id', '=', line.id), ('state', 'not in', ['cancel'])])
if move: if move:
line.delivery_date = move[0].date line.delivery_date = move[0].date_expected
else: else:
line.delivery_date = False 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="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/> <field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml"> <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"/> <field name="delivery_date"/>
</xpath> </xpath>
<field name="confirmation_date" position="after">
<field name="delivery_date"
attrs="{'invisible':[('state', 'in', ['draft', 'sent'])]}"/>
</field>
</field> </field>
</record> </record>