From 34552888f51d97fd8a4db899a67eb9540beda842 Mon Sep 17 00:00:00 2001 From: Roman Widmann Date: Wed, 7 Mar 2018 16:51:51 +0100 Subject: [PATCH] =?UTF-8?q?Fall=205030:=20Globales=20Lieferdatum=20f=C3=BC?= =?UTF-8?q?r=20AN=20/=20AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dp_reports_sale/reports/sale.xml | 3 ++- .../dp_sale_delivery_date/__manifest__.py | 2 +- .../dp_sale_delivery_date/models/__init__.py | 1 + .../models/sale_order.py | 23 +++++++++++++++++++ .../models/sale_order_line.py | 13 +++++++++-- .../{sale_order_line.xml => sale_order.xml} | 6 ++++- 6 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 ext/custom-addons/dp_sale_delivery_date/models/sale_order.py rename ext/custom-addons/dp_sale_delivery_date/views/{sale_order_line.xml => sale_order.xml} (72%) diff --git a/ext/custom-addons/dp_reports_sale/reports/sale.xml b/ext/custom-addons/dp_reports_sale/reports/sale.xml index 4cf92dd1..3f166628 100644 --- a/ext/custom-addons/dp_reports_sale/reports/sale.xml +++ b/ext/custom-addons/dp_reports_sale/reports/sale.xml @@ -113,7 +113,8 @@
-
Lieferdatum: +
Voraussichtliches Lieferdatum: +
diff --git a/ext/custom-addons/dp_sale_delivery_date/__manifest__.py b/ext/custom-addons/dp_sale_delivery_date/__manifest__.py index 327cf980..4f770682 100644 --- a/ext/custom-addons/dp_sale_delivery_date/__manifest__.py +++ b/ext/custom-addons/dp_sale_delivery_date/__manifest__.py @@ -15,7 +15,7 @@ 'sale_stock', ], 'data': [ - 'views/sale_order_line.xml', + 'views/sale_order.xml', ], 'installable': True, 'auto_install': False, diff --git a/ext/custom-addons/dp_sale_delivery_date/models/__init__.py b/ext/custom-addons/dp_sale_delivery_date/models/__init__.py index 8eb9d1d4..e7e9273f 100644 --- a/ext/custom-addons/dp_sale_delivery_date/models/__init__.py +++ b/ext/custom-addons/dp_sale_delivery_date/models/__init__.py @@ -1 +1,2 @@ from . import sale_order_line +from . import sale_order diff --git a/ext/custom-addons/dp_sale_delivery_date/models/sale_order.py b/ext/custom-addons/dp_sale_delivery_date/models/sale_order.py new file mode 100644 index 00000000..9ab022ae --- /dev/null +++ b/ext/custom-addons/dp_sale_delivery_date/models/sale_order.py @@ -0,0 +1,23 @@ +# Copyright 2018-Today datenpol gmbh () +# 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 diff --git a/ext/custom-addons/dp_sale_delivery_date/models/sale_order_line.py b/ext/custom-addons/dp_sale_delivery_date/models/sale_order_line.py index 3d70b805..50ee03cb 100644 --- a/ext/custom-addons/dp_sale_delivery_date/models/sale_order_line.py +++ b/ext/custom-addons/dp_sale_delivery_date/models/sale_order_line.py @@ -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 diff --git a/ext/custom-addons/dp_sale_delivery_date/views/sale_order_line.xml b/ext/custom-addons/dp_sale_delivery_date/views/sale_order.xml similarity index 72% rename from ext/custom-addons/dp_sale_delivery_date/views/sale_order_line.xml rename to ext/custom-addons/dp_sale_delivery_date/views/sale_order.xml index b8be899d..42f9894b 100644 --- a/ext/custom-addons/dp_sale_delivery_date/views/sale_order_line.xml +++ b/ext/custom-addons/dp_sale_delivery_date/views/sale_order.xml @@ -9,9 +9,13 @@ sale.order - + + + +