From 16872e63a475599cbd945f20e3f8219d5b2b9525 Mon Sep 17 00:00:00 2001 From: "John Laterre (jol)" Date: Wed, 8 Sep 2021 13:47:04 +0000 Subject: [PATCH] [IMP] account_fleet: assets/fleet/DNA/accounting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The goal is to improve the way Disallowed Expenses (DNA - Dépenses Non Admises) and Assets (vehicles in particular) work. This should help integrate the Accounting and Fleet modules. closes odoo/odoo#76684 Task: 2641494 Related: odoo/upgrade#3067 Related: odoo/enterprise#20950 Signed-off-by: William André (wan) --- addons/account_fleet/models/account_move.py | 18 +++++++++++------- addons/account_fleet/models/fleet_vehicle.py | 6 +++++- .../account_fleet/views/account_move_views.xml | 17 +++++++++++++++-- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/addons/account_fleet/models/account_move.py b/addons/account_fleet/models/account_move.py index c853fea7f1f..8b2a5e42edc 100644 --- a/addons/account_fleet/models/account_move.py +++ b/addons/account_fleet/models/account_move.py @@ -17,13 +17,7 @@ class AccountMove(models.Model): not_posted_before = self.filtered(lambda r: not r.posted_before) posted = super()._post(soft) # We need the move name to be set, but we also need to know which move are posted for the first time. for line in (not_posted_before & posted).line_ids.filtered(lambda ml: ml.vehicle_id and ml.move_id.move_type == 'in_invoice'): - val = { - 'service_type_id': vendor_bill_service.id, - 'vehicle_id': line.vehicle_id.id, - 'amount': line.price_subtotal, - 'vendor_id': line.partner_id.id, - 'description': line.name, - } + val = line._prepare_fleet_log_service() log = _('Service Vendor Bill: {move_name}').format( move_id=line.move_id.id, move_name=line.move_id.name, @@ -45,3 +39,13 @@ class AccountMoveLine(models.Model): def _compute_need_vehicle(self): self.need_vehicle = False + + def _prepare_fleet_log_service(self): + vendor_bill_service = self.env.ref('account_fleet.data_fleet_service_type_vendor_bill', raise_if_not_found=False) + return { + 'service_type_id': vendor_bill_service.id, + 'vehicle_id': self.vehicle_id.id, + 'amount': self.price_subtotal, + 'vendor_id': self.partner_id.id, + 'description': self.name, + } diff --git a/addons/account_fleet/models/fleet_vehicle.py b/addons/account_fleet/models/fleet_vehicle.py index 739dd389170..02c200b3385 100644 --- a/addons/account_fleet/models/fleet_vehicle.py +++ b/addons/account_fleet/models/fleet_vehicle.py @@ -17,7 +17,11 @@ class FleetVehicle(models.Model): return moves = self.env['account.move.line'].read_group( - domain=[('vehicle_id', 'in', self.ids), ('move_id.state', '!=', 'cancel')], + domain=[ + ('vehicle_id', 'in', self.ids), + ('move_id.state', '!=', 'cancel'), + ('move_id.move_type', 'in', self.env['account.move'].get_purchase_types()) + ], fields=['vehicle_id', 'move_id:array_agg'], groupby=['vehicle_id'], ) diff --git a/addons/account_fleet/views/account_move_views.xml b/addons/account_fleet/views/account_move_views.xml index b45c3cf035a..1d089b2b540 100644 --- a/addons/account_fleet/views/account_move_views.xml +++ b/addons/account_fleet/views/account_move_views.xml @@ -1,15 +1,16 @@ + account.move.form account.move - + - + @@ -30,4 +31,16 @@ + + + view.move.line.tree.fleet + account.move.line + + + + + + + +