Skip to content

Commit

Permalink
[ADD] fieldservice_account_analytic: Route analytic plan
Browse files Browse the repository at this point in the history
  • Loading branch information
EdgarRetes committed Nov 27, 2024
1 parent a66b529 commit 7a88542
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 27 deletions.
1 change: 1 addition & 0 deletions fieldservice_account_analytic/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"fieldservice_account",
"analytic",
"product",
"fieldservice_route",
],
"data": [
"data/ir_rule.xml",
Expand Down
1 change: 1 addition & 0 deletions fieldservice_account_analytic/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
analytic_account,
fsm_location,
fsm_order,
fsm_route,
res_company,
res_config_settings,
res_partner,
Expand Down
1 change: 1 addition & 0 deletions fieldservice_account_analytic/models/analytic_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,4 @@ class AnalyticAccount(models.Model):

fsm_order_id = fields.One2many("fsm.order", "analytic_account_id", copy=False)
fsm_location_id = fields.One2many("fsm.location", "analytic_account_id", copy=False)
fsm_route_id = fields.One2many("fsm.route", "analytic_account_id", copy=False)
27 changes: 14 additions & 13 deletions fieldservice_account_analytic/models/fsm_location.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,18 @@ def _search(
order=order,
)

@api.model
def create(self, vals):
record = super().create(vals)
analytic_account = self.env["account.analytic.account"].create(
{
"name": vals.get("name"),
"plan_id": self.env.ref(
"fieldservice_account_analytic.fsm_location_analytic_plan"
).id,
"fsm_location_id": record,
}
)
record.analytic_account_id = analytic_account
@api.model_create_multi
def create(self, vals_list):
record = super().create(vals_list)
for vals in vals_list:
analytic_account = self.env["account.analytic.account"].create(
{
"name": vals.get("name"),
"plan_id": self.env.ref(
"fieldservice_account_analytic.fsm_location_analytic_plan"
).id,
"fsm_location_id": record,
}
)
record.analytic_account_id = analytic_account
return record
27 changes: 14 additions & 13 deletions fieldservice_account_analytic/models/fsm_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,18 @@ def write(self, vals):
order.customer_id = order.location_id.customer_id.id
return res

@api.model
def create(self, vals):
record = super().create(vals)
analytic_account = self.env["account.analytic.account"].create(
{
"name": vals.get("name"),
"plan_id": self.env.ref(
"fieldservice_account_analytic.fsm_order_analytic_plan"
).id,
"fsm_order_id": record,
}
)
record.analytic_account_id = analytic_account
@api.model_create_multi
def create(self, vals_list):
record = super().create(vals_list)
for vals in vals_list:
analytic_account = self.env["account.analytic.account"].create(
{
"name": vals.get("name"),
"plan_id": self.env.ref(
"fieldservice_account_analytic.fsm_order_analytic_plan"
).id,
"fsm_order_id": record,
}
)
record.analytic_account_id = analytic_account
return record
28 changes: 28 additions & 0 deletions fieldservice_account_analytic/models/fsm_route.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Copyright (C) 2018 - TODAY, Open Source Integrators
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import api, fields, models


class FSMRoute(models.Model):
_inherit = "fsm.route"

analytic_account_id = fields.Many2one(
"account.analytic.account", string="Analytic Account", company_dependent=True
)

@api.model_create_multi
def create(self, vals_list):
record = super().create(vals_list)
for vals in vals_list:
analytic_account = self.env["account.analytic.account"].create(
{
"name": vals.get("name"),
"plan_id": self.env.ref(
"fieldservice_account_analytic.fsm_route_analytic_plan"
).id,
"fsm_route_id": record,
}
)
record.analytic_account_id = analytic_account
return record
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,8 @@ def test_fsm_orders_1(self):
self.move_line.create(
{
"account_id": self.default_account_revenue.id,
"analytic_account_id": {self.test_analytic_account.id: 100},
"move_id": general_move1.id,
"analytic_distribution": {self.test_analytic_account.id: 100},
"fsm_order_ids": [(6, 0, order.ids)],
}
)
Expand Down

0 comments on commit 7a88542

Please sign in to comment.