From a3c616a9bc0764ebe17e1e3d1e3fb32db5ff7a0d Mon Sep 17 00:00:00 2001 From: brian10048 Date: Tue, 31 Dec 2019 07:23:09 -0500 Subject: [PATCH 1/2] [IMP] fieldservice_sale: Add Validation --- fieldservice_sale/models/sale_order.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fieldservice_sale/models/sale_order.py b/fieldservice_sale/models/sale_order.py index e51ddb9109..b827e1c517 100644 --- a/fieldservice_sale/models/sale_order.py +++ b/fieldservice_sale/models/sale_order.py @@ -3,6 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError class SaleOrder(models.Model): @@ -122,7 +123,11 @@ def _field_find_fsm_order(self): def _action_confirm(self): """ On SO confirmation, some lines generate field service orders. """ result = super(SaleOrder, self)._action_confirm() - self.order_line._field_service_generation() + if any(sol.product_id.field_service_tracking != 'no' + for sol in self): + if not self.fsm_location_id: + raise ValidationError(_("FSM Location must be set")) + self.order_line._field_service_generation() return result @api.multi From 607a881bfd5a6f5adeab6e79728826daef3a8f89 Mon Sep 17 00:00:00 2001 From: brian10048 Date: Tue, 31 Dec 2019 07:25:33 -0500 Subject: [PATCH 2/2] [FIX] fieldservice_sale: bug fixes --- fieldservice_sale/models/sale_order.py | 3 +-- fieldservice_sale/models/sale_order_line.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/fieldservice_sale/models/sale_order.py b/fieldservice_sale/models/sale_order.py index b827e1c517..12a7534dbb 100644 --- a/fieldservice_sale/models/sale_order.py +++ b/fieldservice_sale/models/sale_order.py @@ -133,8 +133,7 @@ def _action_confirm(self): @api.multi def action_invoice_create(self, grouped=False, final=False): invoice_ids = super().action_invoice_create(grouped, final) - result = [] - result.append(invoice_ids) + result = invoice_ids or [] for invoice_id in invoice_ids: invoice = self.env['account.invoice'].browse(invoice_id) diff --git a/fieldservice_sale/models/sale_order_line.py b/fieldservice_sale/models/sale_order_line.py index bda897d594..18883c8aaa 100644 --- a/fieldservice_sale/models/sale_order_line.py +++ b/fieldservice_sale/models/sale_order_line.py @@ -59,7 +59,7 @@ def _field_create_fsm_order_prepare_values(self): return { 'customer_id': self.order_id.partner_id.id, 'location_id': self.order_id.fsm_location_id.id, - 'location_directions': self.fsm_location_id.direction, + 'location_directions': self.order_id.fsm_location_id.direction, 'request_early': self.order_id.expected_date, 'scheduled_date_start': self.order_id.expected_date, 'description': self.name,