diff --git a/fieldservice_account_analytic/README.rst b/fieldservice_account_analytic/README.rst new file mode 100644 index 0000000000..0dbde0b314 --- /dev/null +++ b/fieldservice_account_analytic/README.rst @@ -0,0 +1,123 @@ +=================================== +Field Service - Analytic Accounting +=================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:187502c73f589c1c69cf504b3bb83cd50ca38eee87433bde51306e12d8cad645 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ffield--service-lightgray.png?logo=github + :target: https://github.com/OCA/field-service/tree/18.0/fieldservice_account_analytic + :alt: OCA/field-service +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/field-service-18-0/field-service-18-0-fieldservice_account_analytic + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/field-service&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds the ability to track your analytic accounts on field +service orders. It also adds the option to track the billing partner for +field service locations and orders. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +No special installation instructions + +Configuration +============= + +To configure this module, you need to: + +- Go to Field Service > Master Data > Locations +- Create or select a location and set their analytic account + +Usage +===== + + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Open Source Integrators + +Contributors +------------ + +- Michael Allen +- Serpent Consulting Services Pvt. Ltd. +- Brian McMaster +- Freni Patel +- `APSL `__: + + - Antoni Marroig + +Other credits +------------- + +The development of this module has been financially supported by: + +- Open Source Integrators + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-osimallen| image:: https://github.com/osimallen.png?size=40px + :target: https://github.com/osimallen + :alt: osimallen +.. |maintainer-brian10048| image:: https://github.com/brian10048.png?size=40px + :target: https://github.com/brian10048 + :alt: brian10048 +.. |maintainer-bodedra| image:: https://github.com/bodedra.png?size=40px + :target: https://github.com/bodedra + :alt: bodedra + +Current `maintainers `__: + +|maintainer-osimallen| |maintainer-brian10048| |maintainer-bodedra| + +This module is part of the `OCA/field-service `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/fieldservice_account_analytic/__init__.py b/fieldservice_account_analytic/__init__.py new file mode 100644 index 0000000000..a60aec2546 --- /dev/null +++ b/fieldservice_account_analytic/__init__.py @@ -0,0 +1,6 @@ +# Copyright (C) 2018 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models +from . import wizard +from .init_hook import pre_init_hook diff --git a/fieldservice_account_analytic/__manifest__.py b/fieldservice_account_analytic/__manifest__.py new file mode 100644 index 0000000000..63efe24e2d --- /dev/null +++ b/fieldservice_account_analytic/__manifest__.py @@ -0,0 +1,38 @@ +# Copyright (C) 2018 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Field Service - Analytic Accounting", + "summary": """Track analytic accounts on Field Service locations + and orders""", + "version": "18.0.1.0.0", + "category": "Field Service", + "author": "Open Source Integrators, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/field-service", + "depends": [ + "fieldservice_account", + "analytic", + "product", + "fieldservice_route", + ], + "data": [ + "data/ir_rule.xml", + "data/analytic_plan.xml", + "security/ir.model.access.csv", + "report/fsm_order_report_template.xml", + "views/fsm_location.xml", + "views/fsm_order.xml", + "views/res_config_settings.xml", + ], + "demo": [ + "demo/fsm_location.xml", + ], + "pre_init_hook": "pre_init_hook", + "license": "AGPL-3", + "development_status": "Beta", + "maintainers": [ + "osimallen", + "brian10048", + "bodedra", + ], +} diff --git a/fieldservice_account_analytic/data/analytic_plan.xml b/fieldservice_account_analytic/data/analytic_plan.xml new file mode 100644 index 0000000000..7823ce6664 --- /dev/null +++ b/fieldservice_account_analytic/data/analytic_plan.xml @@ -0,0 +1,11 @@ + + + FSM Orders + + + FSM Locations + + + FSM Routes + + diff --git a/fieldservice_account_analytic/data/ir_rule.xml b/fieldservice_account_analytic/data/ir_rule.xml new file mode 100644 index 0000000000..cebe54e330 --- /dev/null +++ b/fieldservice_account_analytic/data/ir_rule.xml @@ -0,0 +1,24 @@ + + + account.analytic.line.fsm.manager + + + [(1, '=', 1)] + + + + + + + + account.analytic.line.fsm.dispatcher + + + [(1, '=', 1)] + + + + + + + diff --git a/fieldservice_account_analytic/demo/fsm_location.xml b/fieldservice_account_analytic/demo/fsm_location.xml new file mode 100644 index 0000000000..713b1d2a7c --- /dev/null +++ b/fieldservice_account_analytic/demo/fsm_location.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/fieldservice_account_analytic/i18n/es.po b/fieldservice_account_analytic/i18n/es.po new file mode 100644 index 0000000000..ea2aa38a41 --- /dev/null +++ b/fieldservice_account_analytic/i18n/es.po @@ -0,0 +1,138 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-11-15 20:37+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "Contabilidad" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "Cuenta Analítica" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "Linea Analitica" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "Contacto de Facturación" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "Dirección de Facturación" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "Facturar a" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "Facturado a Cliente" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "Configurar Ajustes" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "Contacto" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "Cliente" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "Pedido FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "Conversión de Registro FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "Ubicación del Servicio de Campo" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "Orden de Servicio de Campo" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "Filtrar contactos por Localización" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "Filtrar la ubicación en un pedido FSM por el Contacto" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "Artículo Diario" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "No hay una cuenta analítica establecida en la ubicación del pedido." + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "Tipo de Tiempo" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "Coste Total" + +#~ msgid "Bill to" +#~ msgstr "Facturar a" + +#~ msgid "Invoice Line" +#~ msgstr "Línea de factura" + +#~ msgid "Field Service Location Person Info" +#~ msgstr "Servicio de campo Ubicación Información de la persona" diff --git a/fieldservice_account_analytic/i18n/es_AR.po b/fieldservice_account_analytic/i18n/es_AR.po new file mode 100644 index 0000000000..6e088cfe43 --- /dev/null +++ b/fieldservice_account_analytic/i18n/es_AR.po @@ -0,0 +1,147 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-11-12 04:46+0000\n" +"Last-Translator: Ignacio Buioli \n" +"Language-Team: none\n" +"Language: es_AR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.14.1\n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "Contabilidad" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "Cuenta Analítica" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "Línea Analítica" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "Factura de Contacto" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "Ubicación de Factura" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "Facturar A" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "Cliente Facturado" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "Configurar Ajustes" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "Contacto" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "Cliente" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "Pedido FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "Conversión a Registro FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "Ubicación del Servicio de Campo" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "Pedido de Servicio de Campo" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "Filtrar Contactos con Ubicación" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "Filtrar la Ubicación por Contacto en un Pedido FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "Apunte Contable" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "No hay una cuenta analítica establecida en la Ubicación del pedido." + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "Tipo de Tiempo" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "Costo Total" + +#~ msgid "Bill to" +#~ msgstr "Facturar a" + +#~ msgid "Display Name" +#~ msgstr "Mostrar Nombre" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Última Modificación el" + +#~ msgid "Order" +#~ msgstr "Pedido" + +#~ msgid "Invoice Line" +#~ msgstr "Línea de Factura" diff --git a/fieldservice_account_analytic/i18n/es_CL.po b/fieldservice_account_analytic/i18n/es_CL.po new file mode 100644 index 0000000000..32a3c17fdb --- /dev/null +++ b/fieldservice_account_analytic/i18n/es_CL.po @@ -0,0 +1,129 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-01-15 06:13+0000\n" +"Last-Translator: Nelson Ramírez Sánchez \n" +"Language-Team: none\n" +"Language: es_CL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "Contabilidad" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "Cuenta Analítica" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "" diff --git a/fieldservice_account_analytic/i18n/fieldservice_account_analytic.pot b/fieldservice_account_analytic/i18n/fieldservice_account_analytic.pot new file mode 100644 index 0000000000..eb7961da4c --- /dev/null +++ b/fieldservice_account_analytic/i18n/fieldservice_account_analytic.pot @@ -0,0 +1,126 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "" diff --git a/fieldservice_account_analytic/i18n/it.po b/fieldservice_account_analytic/i18n/it.po new file mode 100644 index 0000000000..648c4609f8 --- /dev/null +++ b/fieldservice_account_analytic/i18n/it.po @@ -0,0 +1,129 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-12-13 13:33+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "Contabilità" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "Conto analitico" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "Riga analitica" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "Contatto fattura" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "Località fattura" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "Fatturare a" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "Cliente fatturato" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "Aziende" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "Impostazioni configurazione" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "Contatto" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "Cliente" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "Ordine FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "Conversione record FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "Località assistenza sul campo" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "Ordine assistenza sul campo" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "Filtra contatti con la località" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "Filtra la località in un ordine FSM dal contatto" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "Movimento contabile" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "Nessun conto analitico impostato nella località dell'ordine." + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "Tipo orario" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "Costo totale" diff --git a/fieldservice_account_analytic/i18n/pt_BR.po b/fieldservice_account_analytic/i18n/pt_BR.po new file mode 100644 index 0000000000..5ddaff5918 --- /dev/null +++ b/fieldservice_account_analytic/i18n/pt_BR.po @@ -0,0 +1,148 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-12-05 12:35+0000\n" +"Last-Translator: Adriano Prado \n" +"Language-Team: none\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "Contabilidade" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "Conta Analítica" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "Linha Analitica" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "Conta do Contato" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "Localização de Conta" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "Faturar para" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "Cliente Faturado" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "Empresas" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "Definições de configuração" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "Contato" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "Cliente" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "Ordem FSM (Field Service Management)" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "Conversão do Registro FSM" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "Localização do Serviço de Campo" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "Ordem de Serviço de Campo" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "Filtrar contatos de acordo com o Local" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "" +"Filtrar por contato o local em um pedido do FSM (Field Services Management)" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "Item de Diário" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "Nenhuma conta analítica definida na Localização do ordem." + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "Tipo de Tempo" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "Custo Total" + +#~ msgid "Bill to" +#~ msgstr "Conta para" + +#~ msgid "Display Name" +#~ msgstr "Nome exibido" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificação em" + +#~ msgid "Order" +#~ msgstr "Pedido" + +#~ msgid "Invoice Line" +#~ msgstr "Linha de Fatura" diff --git a/fieldservice_account_analytic/i18n/pt_PT.po b/fieldservice_account_analytic/i18n/pt_PT.po new file mode 100644 index 0000000000..cf4642ff06 --- /dev/null +++ b/fieldservice_account_analytic/i18n/pt_PT.po @@ -0,0 +1,129 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-07-21 10:19+0000\n" +"Last-Translator: Daniel Reis \n" +"Language-Team: none\n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "Local do Serviço de Campo" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "Ordem de Serviço" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "" diff --git a/fieldservice_account_analytic/i18n/tr.po b/fieldservice_account_analytic/i18n/tr.po new file mode 100644 index 0000000000..efcb1c8412 --- /dev/null +++ b/fieldservice_account_analytic/i18n/tr.po @@ -0,0 +1,141 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_account_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-07-09 21:48+0000\n" +"Last-Translator: Ediz Duman \n" +"Language-Team: none\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_form_view_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_order_form_analytic +msgid "Accounting" +msgstr "Muhasebe" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__analytic_account_id +msgid "Analytic Account" +msgstr "Analitik Hesap" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "Analitik Satır" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__contact +msgid "Bill Contact" +msgstr "Fatura Kontak" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields.selection,name:fieldservice_account_analytic.selection__fsm_order__bill_to__location +msgid "Bill Location" +msgstr "Fatura Konum" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__bill_to +msgid "Bill To" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_location__customer_id +msgid "Billed Customer" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_company +msgid "Companies" +msgstr "Şirketler" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_config_settings +msgid "Config Settings" +msgstr "Yapılandırma Ayarları" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_res_partner +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__customer_id +msgid "Contact" +msgstr "Kontak" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.fsm_location_search_view_analytic +msgid "Customer" +msgstr "Müşteri" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__fsm_order_id +msgid "FSM Order" +msgstr "FSM Siparişi" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_wizard +msgid "FSM Record Conversion" +msgstr "FSM Kayıt Dönüştürme" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_location +msgid "Field Service Location" +msgstr "Saha Servis Konumu" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_fsm_order +msgid "Field Service Order" +msgstr "Saha Servis Siparişi" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_company__fsm_filter_location_by_contact +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_res_config_settings__fsm_filter_location_by_contact +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter Contacts with Location" +msgstr "" + +#. module: fieldservice_account_analytic +#: model_terms:ir.ui.view,arch_db:fieldservice_account_analytic.res_config_settings_view_form_filter +msgid "Filter the Location on an FSM Order by the Contact" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model,name:fieldservice_account_analytic.model_account_move_line +msgid "Journal Item" +msgstr "Yevmiye Öğesi" + +#. module: fieldservice_account_analytic +#. odoo-python +#: code:addons/fieldservice_account_analytic/models/account_move.py:0 +#: code:addons/fieldservice_account_analytic/models/analytic_account.py:0 +#, python-format +msgid "No analytic account set on the order's Location." +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_account_analytic_line__product_id +msgid "Time Type" +msgstr "" + +#. module: fieldservice_account_analytic +#: model:ir.model.fields,field_description:fieldservice_account_analytic.field_fsm_order__total_cost +msgid "Total Cost" +msgstr "Toplam Tutar" + +#~ msgid "Display Name" +#~ msgstr "Görünüm Adı" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Son Düzenlenme" + +#~ msgid "Order" +#~ msgstr "Sipariş" diff --git a/fieldservice_account_analytic/init_hook.py b/fieldservice_account_analytic/init_hook.py new file mode 100644 index 0000000000..11dcaed476 --- /dev/null +++ b/fieldservice_account_analytic/init_hook.py @@ -0,0 +1,10 @@ +# Copyright (C) 2019 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +def pre_init_hook(env): + env.cr.execute("""ALTER TABLE "fsm_location" ADD "customer_id" INT;""") + env.cr.execute( + """UPDATE "fsm_location" SET customer_id = owner_id + WHERE customer_id IS NULL;""" + ) diff --git a/fieldservice_account_analytic/models/__init__.py b/fieldservice_account_analytic/models/__init__.py new file mode 100644 index 0000000000..9846360f61 --- /dev/null +++ b/fieldservice_account_analytic/models/__init__.py @@ -0,0 +1,12 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import ( + account_move, + analytic_account, + fsm_location, + fsm_order, + fsm_route, + res_company, + res_config_settings, + res_partner, +) diff --git a/fieldservice_account_analytic/models/account_move.py b/fieldservice_account_analytic/models/account_move.py new file mode 100644 index 0000000000..3b69cb6bf9 --- /dev/null +++ b/fieldservice_account_analytic/models/account_move.py @@ -0,0 +1,25 @@ +# Copyright (C) 2018 - TODAY, Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import _, api, models +from odoo.exceptions import ValidationError + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + if vals.get("fsm_order_ids") and len(vals.get("fsm_order_ids")[0]) > 2: + fsm_orders = vals.get("fsm_order_ids")[0][2] + for order in self.env["fsm.order"].browse(fsm_orders).exists(): + if order.location_id.analytic_account_id: + vals["analytic_distribution"] = { + order.location_id.analytic_account_id.id: 100 + } + else: + raise ValidationError( + _("No analytic account " "set on the order's Location.") + ) + return super().create(vals_list) diff --git a/fieldservice_account_analytic/models/analytic_account.py b/fieldservice_account_analytic/models/analytic_account.py new file mode 100644 index 0000000000..f0e0b029eb --- /dev/null +++ b/fieldservice_account_analytic/models/analytic_account.py @@ -0,0 +1,37 @@ +# 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 +from odoo.exceptions import ValidationError + + +class AccountAnalyticLine(models.Model): + _inherit = "account.analytic.line" + + fsm_order_id = fields.Many2one("fsm.order", string="FSM Order") + product_id = fields.Many2one("product.product", string="Time Type") + + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + order = self.env["fsm.order"].browse(vals.get("fsm_order_id")) + if order: + if order.location_id.analytic_account_id: + vals["account_id"] = order.location_id.analytic_account_id.id + else: + raise ValidationError( + _("No analytic account set " "on the order's Location.") + ) + return super().create(vals_list) + + @api.onchange("product_id") + def onchange_product_id(self): + self.name = self.product_id.name if self.product_id else False + + +class AnalyticAccount(models.Model): + _inherit = "account.analytic.account" + + 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) diff --git a/fieldservice_account_analytic/models/fsm_location.py b/fieldservice_account_analytic/models/fsm_location.py new file mode 100644 index 0000000000..617bcc0dd4 --- /dev/null +++ b/fieldservice_account_analytic/models/fsm_location.py @@ -0,0 +1,72 @@ +# 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 FSMLocation(models.Model): + _inherit = "fsm.location" + + analytic_account_id = fields.Many2one( + "account.analytic.account", string="Analytic Account", company_dependent=True + ) + + @api.model + def get_default_customer(self): + if self.fsm_parent_id: + return self.fsm_parent_id.customer_id.id + return self.owner_id.id + + customer_id = fields.Many2one( + "res.partner", + string="Billed Customer", + required=True, + ondelete="restrict", + auto_join=True, + tracking=True, + default=get_default_customer, + ) + + @api.onchange("fsm_parent_id") + def _onchange_fsm_parent_id_account(self): + self.customer_id = self.fsm_parent_id.customer_id or False + + @api.model + def _search( + self, + args, + offset=0, + limit=None, + order=None, + ): + args = args or [] + context = dict(self._context) or {} + if context.get("customer_id"): + partner = self.env["res.partner"].browse(context.get("customer_id")) + args.extend( + [ + ("partner_id", "=", partner.id), + ] + ) + return super()._search( + args, + offset=offset, + limit=limit, + order=order, + ) + + @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 diff --git a/fieldservice_account_analytic/models/fsm_order.py b/fieldservice_account_analytic/models/fsm_order.py new file mode 100644 index 0000000000..d5664555b0 --- /dev/null +++ b/fieldservice_account_analytic/models/fsm_order.py @@ -0,0 +1,58 @@ +# 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 FSMOrder(models.Model): + _inherit = "fsm.order" + + total_cost = fields.Float(compute="_compute_total_cost") + bill_to = fields.Selection( + [("location", "Bill Location"), ("contact", "Bill Contact")], + required=True, + default="location", + ) + customer_id = fields.Many2one( + "res.partner", + string="Contact", + change_default=True, + index="btree", + tracking=True, + ) + + analytic_account_id = fields.Many2one("account.analytic.account", copy=False) + + def _compute_total_cost(self): + """To be overridden as needed from other modules""" + for order in self: + order.total_cost = 0.0 + + @api.onchange("customer_id") + def _onchange_customer_id_location(self): + self.location_id = ( + self.customer_id.service_location_id if self.customer_id else False + ) + + def write(self, vals): + res = super().write(vals) + for order in self: + if "customer_id" not in vals and not order.customer_id: + order.customer_id = order.location_id.customer_id.id + return res + + @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 diff --git a/fieldservice_account_analytic/models/fsm_route.py b/fieldservice_account_analytic/models/fsm_route.py new file mode 100644 index 0000000000..fe77142acd --- /dev/null +++ b/fieldservice_account_analytic/models/fsm_route.py @@ -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 diff --git a/fieldservice_account_analytic/models/res_company.py b/fieldservice_account_analytic/models/res_company.py new file mode 100644 index 0000000000..5ddb6b8f8d --- /dev/null +++ b/fieldservice_account_analytic/models/res_company.py @@ -0,0 +1,12 @@ +# Copyright (C) 2020 - TODAY, Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + fsm_filter_location_by_contact = fields.Boolean( + string="Filter Contacts with Location" + ) diff --git a/fieldservice_account_analytic/models/res_config_settings.py b/fieldservice_account_analytic/models/res_config_settings.py new file mode 100644 index 0000000000..8d37084ce9 --- /dev/null +++ b/fieldservice_account_analytic/models/res_config_settings.py @@ -0,0 +1,14 @@ +# Copyright (C) 2020, Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + fsm_filter_location_by_contact = fields.Boolean( + string="Filter Contacts with Location", + related="company_id.fsm_filter_location_by_contact", + readonly=False, + ) diff --git a/fieldservice_account_analytic/models/res_partner.py b/fieldservice_account_analytic/models/res_partner.py new file mode 100644 index 0000000000..99464a45f5 --- /dev/null +++ b/fieldservice_account_analytic/models/res_partner.py @@ -0,0 +1,35 @@ +# Copyright (C) 2022 - TODAY, Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + @api.model + def _search( + self, + args, + offset=0, + limit=None, + order=None, + ): + args = args or [] + context = dict(self._context) or {} + if ( + context.get("location_id") + and self.env.user.company_id.fsm_filter_location_by_contact + ): + location = self.env["fsm.location"].browse(context.get("location_id")) + args.extend( + [ + ("service_location_id", "=", location.id), + ] + ) + return super()._search( + args, + offset=offset, + limit=limit, + order=order, + ) diff --git a/fieldservice_account_analytic/pyproject.toml b/fieldservice_account_analytic/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/fieldservice_account_analytic/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/fieldservice_account_analytic/readme/CONFIGURE.md b/fieldservice_account_analytic/readme/CONFIGURE.md new file mode 100644 index 0000000000..5cdbd33906 --- /dev/null +++ b/fieldservice_account_analytic/readme/CONFIGURE.md @@ -0,0 +1,4 @@ +To configure this module, you need to: + +- Go to Field Service \> Master Data \> Locations +- Create or select a location and set their analytic account diff --git a/fieldservice_account_analytic/readme/CONTRIBUTORS.md b/fieldservice_account_analytic/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..3a8fd31199 --- /dev/null +++ b/fieldservice_account_analytic/readme/CONTRIBUTORS.md @@ -0,0 +1,6 @@ +- Michael Allen \<\> +- Serpent Consulting Services Pvt. Ltd. \<\> +- Brian McMaster \<\> +- Freni Patel \<\> +- [APSL](https://apsl.tech): + - Antoni Marroig \<\> diff --git a/fieldservice_account_analytic/readme/CREDITS.md b/fieldservice_account_analytic/readme/CREDITS.md new file mode 100644 index 0000000000..7e4827b0a8 --- /dev/null +++ b/fieldservice_account_analytic/readme/CREDITS.md @@ -0,0 +1,3 @@ +The development of this module has been financially supported by: + +- Open Source Integrators \<\> diff --git a/fieldservice_account_analytic/readme/DESCRIPTION.md b/fieldservice_account_analytic/readme/DESCRIPTION.md new file mode 100644 index 0000000000..004a1c52e9 --- /dev/null +++ b/fieldservice_account_analytic/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +This module adds the ability to track your analytic accounts on field +service orders. It also adds the option to track the billing partner for +field service locations and orders. diff --git a/fieldservice_account_analytic/readme/INSTALL.md b/fieldservice_account_analytic/readme/INSTALL.md new file mode 100644 index 0000000000..54fea7becb --- /dev/null +++ b/fieldservice_account_analytic/readme/INSTALL.md @@ -0,0 +1 @@ +No special installation instructions diff --git a/fieldservice_account_analytic/readme/USAGE.md b/fieldservice_account_analytic/readme/USAGE.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/fieldservice_account_analytic/readme/USAGE.md @@ -0,0 +1 @@ + diff --git a/fieldservice_account_analytic/report/fsm_order_report_template.xml b/fieldservice_account_analytic/report/fsm_order_report_template.xml new file mode 100644 index 0000000000..701c934f27 --- /dev/null +++ b/fieldservice_account_analytic/report/fsm_order_report_template.xml @@ -0,0 +1,19 @@ + + + diff --git a/fieldservice_account_analytic/security/ir.model.access.csv b/fieldservice_account_analytic/security/ir.model.access.csv new file mode 100644 index 0000000000..07c8b38ef7 --- /dev/null +++ b/fieldservice_account_analytic/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_account_analytic_line_fsm_manager,account.analytic.line.manager,model_account_analytic_line,fieldservice.group_fsm_manager,1,1,1,1 +access_account_analytic_line_fsm_dispatcher,account.analytic.line.dispatcher,model_account_analytic_line,fieldservice.group_fsm_dispatcher,1,1,1,0 +access_analytic_account_fsm_manager,account.analytic.account.manager,analytic.model_account_analytic_account,fieldservice.group_fsm_manager,1,1,1,1 +access_analytic_account_fsm_dispatcher,account.analytic.account.dispatcher,analytic.model_account_analytic_account,fieldservice.group_fsm_dispatcher,1,1,1,0 diff --git a/fieldservice_account_analytic/static/description/icon.png b/fieldservice_account_analytic/static/description/icon.png new file mode 100644 index 0000000000..e3757caa15 Binary files /dev/null and b/fieldservice_account_analytic/static/description/icon.png differ diff --git a/fieldservice_account_analytic/static/description/icon.svg b/fieldservice_account_analytic/static/description/icon.svg new file mode 100644 index 0000000000..c27c090fda --- /dev/null +++ b/fieldservice_account_analytic/static/description/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fieldservice_account_analytic/static/description/index.html b/fieldservice_account_analytic/static/description/index.html new file mode 100644 index 0000000000..09690df65a --- /dev/null +++ b/fieldservice_account_analytic/static/description/index.html @@ -0,0 +1,460 @@ + + + + + +Field Service - Analytic Accounting + + + +
+

Field Service - Analytic Accounting

+ + +

Beta License: AGPL-3 OCA/field-service Translate me on Weblate Try me on Runboat

+

This module adds the ability to track your analytic accounts on field +service orders. It also adds the option to track the billing partner for +field service locations and orders.

+

Table of contents

+ +
+

Installation

+

No special installation instructions

+
+
+

Configuration

+

To configure this module, you need to:

+
    +
  • Go to Field Service > Master Data > Locations
  • +
  • Create or select a location and set their analytic account
  • +
+
+
+

Usage

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Open Source Integrators
  • +
+
+
+

Contributors

+ +
+
+

Other credits

+

The development of this module has been financially supported by:

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainers:

+

osimallen brian10048 bodedra

+

This module is part of the OCA/field-service project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/fieldservice_account_analytic/tests/__init__.py b/fieldservice_account_analytic/tests/__init__.py new file mode 100644 index 0000000000..3eb82c6555 --- /dev/null +++ b/fieldservice_account_analytic/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2019 Brian McMaster +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) + +from . import test_fsm_account_wizard diff --git a/fieldservice_account_analytic/tests/test_fsm_account_wizard.py b/fieldservice_account_analytic/tests/test_fsm_account_wizard.py new file mode 100644 index 0000000000..e73b62f562 --- /dev/null +++ b/fieldservice_account_analytic/tests/test_fsm_account_wizard.py @@ -0,0 +1,193 @@ +# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) + +from datetime import timedelta + +from odoo import fields +from odoo.exceptions import ValidationError +from odoo.tests.common import TransactionCase + + +class FSMAccountAnalyticCase(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.Wizard = cls.env["fsm.wizard"] + cls.WorkOrder = cls.env["fsm.order"] + cls.AccountInvoice = cls.env["account.move"] + cls.AccountInvoiceLine = cls.env["account.move.line"] + # create a Res Partner + cls.test_partner = cls.env["res.partner"].create( + {"name": "Test Partner", "phone": "123", "email": "tp@email.com"} + ) + # create a Res Partner to be converted to FSM Location/Person + cls.test_loc_partner = cls.env["res.partner"].create( + {"name": "Test Loc Partner", "phone": "ABC", "email": "tlp@email.com"} + ) + cls.test_loc_partner2 = cls.env["res.partner"].create( + {"name": "Test Loc Partner 2", "phone": "123", "email": "tlp@example.com"} + ) + # create expected FSM Location to compare to converted FSM Location + cls.test_location = cls.env["fsm.location"].create( + { + "name": "Test Location", + "phone": "123", + "email": "tp@email.com", + "partner_id": cls.test_loc_partner.id, + "owner_id": cls.test_loc_partner.id, + "customer_id": cls.test_loc_partner.id, + } + ) + cls.location = cls.env["fsm.location"].create( + { + "name": "Location 1", + "phone": "123", + "email": "tp@email.com", + "partner_id": cls.test_loc_partner.id, + "owner_id": cls.test_loc_partner.id, + "customer_id": cls.test_loc_partner.id, + } + ) + cls.test_analytic_plan = cls.env["account.analytic.plan"].create( + {"name": "test_analytic_plan"} + ) + cls.test_analytic_account = cls.env["account.analytic.account"].create( + { + "name": "test_analytic_account", + "plan_id": cls.test_analytic_plan.id, + } + ) + cls.test_location2 = cls.env["fsm.location"].create( + { + "name": "Test Location 2", + "phone": "123", + "email": "tp@email.com", + "partner_id": cls.test_loc_partner2.id, + "owner_id": cls.test_loc_partner2.id, + "customer_id": cls.test_loc_partner2.id, + "fsm_parent_id": cls.test_location.id, + "analytic_account_id": cls.test_analytic_account.id, + } + ) + cls.default_account_revenue = cls.env["account.account"].search( + [ + ("company_ids", "in", cls.env.user.company_id.id), + ("account_type", "=", "income"), + ], + limit=1, + ) + cls.move_line = cls.env["account.move.line"] + cls.analytic_line = cls.env["account.analytic.line"] + cls.product1 = cls.env["product.product"].create( + { + "name": "Product A", + "type": "consu", + } + ) + + def test_convert_contact_to_fsm_loc(self): + """ + Test converting a contact to a location to make sure the customer_id + and owner_id get set correctly + :return: + """ + self.Wizard._prepare_fsm_location(self.test_partner) + # check if there is a new FSM Location with the same name + self.wiz_location = self.env["fsm.location"].search( + [("name", "=", self.test_loc_partner2.name)] + ) + + # check if location is created successfully and fields copied over + self.assertEqual(self.test_loc_partner2, self.wiz_location.customer_id) + self.assertEqual(self.test_loc_partner2, self.wiz_location.owner_id) + + def test_fsm_orders_1(self): + """Test creating new workorders, and test following functions.""" + # Create an Orders + hours_diff = 100 + date_start = fields.Datetime.today() + order = self.WorkOrder.create( + { + "location_id": self.test_location.id, + "date_start": date_start, + "customer_id": self.test_partner.id, + "date_end": date_start + timedelta(hours=hours_diff), + "request_early": fields.Datetime.today(), + } + ) + order2 = self.env["fsm.order"].create( + { + "location_id": self.test_location2.id, + "date_start": fields.datetime.today(), + "date_end": fields.datetime.today() + timedelta(hours=2), + "request_early": fields.datetime.today(), + } + ) + order4 = self.env["fsm.order"].create( + { + "location_id": self.location.id, + "date_start": fields.datetime.today(), + "date_end": fields.datetime.today() + timedelta(hours=2), + "request_early": fields.datetime.today(), + } + ) + order._compute_total_cost() + order4._compute_total_cost() + self.env.user.company_id.fsm_filter_location_by_contact = True + self.test_location2.get_default_customer() + general_journal = self.env["account.journal"].search( + [ + ("company_id", "=", self.env.user.company_id.id), + ("type", "=", "general"), + ], + limit=1, + ) + general_move1 = self.env["account.move"].create( + { + "name": "general1", + "journal_id": general_journal.id, + } + ) + self.move_line.create( + [ + { + "account_id": self.default_account_revenue.id, + "analytic_distribution": {self.test_analytic_account.id: 100}, + "fsm_order_ids": [(6, 0, order2.ids)], + "move_id": general_move1.id, + } + ] + ) + with self.assertRaises(ValidationError): + self.move_line.create( + { + "account_id": self.default_account_revenue.id, + "move_id": general_move1.id, + "analytic_distribution": {self.test_analytic_account.id: 100}, + "fsm_order_ids": [(6, 0, order.ids)], + } + ) + + self.analytic_line.create( + { + "fsm_order_id": order2.id, + "name": "Test01", + "product_id": self.product1.id, + } + ) + self.analytic_line.onchange_product_id() + with self.assertRaises(ValidationError): + self.analytic_line.create( + { + "fsm_order_id": order.id, + "name": "Test01", + } + ) + order._onchange_customer_id_location() + self.test_location2._onchange_fsm_parent_id_account() + self.env["res.partner"].with_context(location_id=self.test_location2.id).search( + [] + ) + self.env["fsm.location"].with_context(customer_id=self.test_partner.id).search( + [] + ) diff --git a/fieldservice_account_analytic/views/fsm_location.xml b/fieldservice_account_analytic/views/fsm_location.xml new file mode 100644 index 0000000000..d28616a45e --- /dev/null +++ b/fieldservice_account_analytic/views/fsm_location.xml @@ -0,0 +1,52 @@ + + + + fsm.location.list.accounting + fsm.location + + + + + + + + + + fsm.location.form.accounting + fsm.location + + + + + + + + + + + + + + + + + + + fsm.location.search + fsm.location + + + + + + + + + + + diff --git a/fieldservice_account_analytic/views/fsm_order.xml b/fieldservice_account_analytic/views/fsm_order.xml new file mode 100644 index 0000000000..73b9480814 --- /dev/null +++ b/fieldservice_account_analytic/views/fsm_order.xml @@ -0,0 +1,64 @@ + + + fsm.order.form.account + fsm.order + + + + + + + + + + + + + + {"customer_id": customer_id} + + + + + fsm.order.list + fsm.order + + + + + + + + + + fsm.order.kanban + fsm.order + + + + + + +
+ + + +
+
+
+
+ + Orders + fsm.order + + + + + + + +
diff --git a/fieldservice_account_analytic/views/res_config_settings.xml b/fieldservice_account_analytic/views/res_config_settings.xml new file mode 100644 index 0000000000..1f1e36e874 --- /dev/null +++ b/fieldservice_account_analytic/views/res_config_settings.xml @@ -0,0 +1,18 @@ + + + res.config.settings.view.form.fsm.filter + res.config.settings + + + + + + + + + + + diff --git a/fieldservice_account_analytic/wizard/__init__.py b/fieldservice_account_analytic/wizard/__init__.py new file mode 100644 index 0000000000..c013f4b7c3 --- /dev/null +++ b/fieldservice_account_analytic/wizard/__init__.py @@ -0,0 +1 @@ +from . import fsm_wizard diff --git a/fieldservice_account_analytic/wizard/fsm_wizard.py b/fieldservice_account_analytic/wizard/fsm_wizard.py new file mode 100644 index 0000000000..3b69d1c6af --- /dev/null +++ b/fieldservice_account_analytic/wizard/fsm_wizard.py @@ -0,0 +1,13 @@ +# Copyright (C) 2018 Open Source Integrators +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import models + + +class FSMWizard(models.TransientModel): + _inherit = "fsm.wizard" + + def _prepare_fsm_location(self, partner): + res = super()._prepare_fsm_location(partner) + res["customer_id"] = partner.id + res["owner_id"] = partner.id + return res