diff --git a/delivery_carrier_agency/README.rst b/delivery_carrier_agency/README.rst new file mode 100644 index 0000000000..6e07771f61 --- /dev/null +++ b/delivery_carrier_agency/README.rst @@ -0,0 +1,83 @@ +======================= +Delivery Carrier Agency +======================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:155c94c31233b8200c26d782174022e62c7ce0e6a10cd43d629f7a2d1e9cb307 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fdelivery--carrier-lightgray.png?logo=github + :target: https://github.com/OCA/delivery-carrier/tree/17.0/delivery_carrier_agency + :alt: OCA/delivery-carrier +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/delivery-carrier-17-0/delivery-carrier-17-0-delivery_carrier_agency + :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/delivery-carrier&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Add carrier agency concept A delivery carrier may have one or mutliple +agencies. The module does not add any logic around these agencies, it +will be done in dedicated carrier modules if necessary. For instance, +when generating label, sometimes, some information may depend on the +agency that will receive the package, which may depend on the warehouse + +**Table of contents** + +.. contents:: + :local: + +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 +------- + +* Akretion + +Contributors +------------ + +- Florian da Costa +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia + +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. + +This module is part of the `OCA/delivery-carrier `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/delivery_carrier_agency/__init__.py b/delivery_carrier_agency/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/delivery_carrier_agency/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/delivery_carrier_agency/__manifest__.py b/delivery_carrier_agency/__manifest__.py new file mode 100644 index 0000000000..038855d477 --- /dev/null +++ b/delivery_carrier_agency/__manifest__.py @@ -0,0 +1,23 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + + +{ + "name": "Delivery Carrier Agency", + "summary": "Add a model for Carrier Agencies", + "version": "17.0.1.0.0", + "category": "Delivery", + "website": "https://github.com/OCA/delivery-carrier", + "author": "Akretion,Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": [ + "stock_delivery", + ], + "data": [ + "security/ir.model.access.csv", + "views/delivery_carrier_agency_view.xml", + ], + "demo": [], + "qweb": [], +} diff --git a/delivery_carrier_agency/i18n/delivery_carrier_agency.pot b/delivery_carrier_agency/i18n/delivery_carrier_agency.pot new file mode 100644 index 0000000000..f66cd6d9a1 --- /dev/null +++ b/delivery_carrier_agency/i18n/delivery_carrier_agency.pot @@ -0,0 +1,109 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * delivery_carrier_agency +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__partner_id +msgid "Address" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.actions.act_window,name:delivery_carrier_agency.action_carrier_agency +#: model:ir.model,name:delivery_carrier_agency.model_delivery_carrier_agency +#: model:ir.ui.menu,name:delivery_carrier_agency.carrier_agency_menu +msgid "Carrier Agency" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__carrier_ids +msgid "Carriers" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__create_uid +msgid "Created by" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__create_date +msgid "Created on" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__delivery_type +msgid "Delivery Type" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__display_name +msgid "Display Name" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__external_reference +msgid "External Reference" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__id +msgid "ID" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency____last_update +msgid "Last Modified on" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__write_date +msgid "Last Updated on" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__name +msgid "Name" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,help:delivery_carrier_agency.field_delivery_carrier_agency__external_reference +msgid "Reference or code supplied by the carrier" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__sequence +msgid "Sequence" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,help:delivery_carrier_agency.field_delivery_carrier_agency__carrier_ids +msgid "" +"This field may be used to link an account to specific delivery methods It " +"may be usefull to find an account with more precision than with only the " +"delivery type" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model,name:delivery_carrier_agency.model_stock_picking +msgid "Transfer" +msgstr "" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__warehouse_ids +msgid "Warehouses" +msgstr "" diff --git a/delivery_carrier_agency/i18n/es.po b/delivery_carrier_agency/i18n/es.po new file mode 100644 index 0000000000..0679bf4392 --- /dev/null +++ b/delivery_carrier_agency/i18n/es.po @@ -0,0 +1,115 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * delivery_carrier_agency +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-08-03 15:09+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: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__partner_id +msgid "Address" +msgstr "Dirección" + +#. module: delivery_carrier_agency +#: model:ir.actions.act_window,name:delivery_carrier_agency.action_carrier_agency +#: model:ir.model,name:delivery_carrier_agency.model_delivery_carrier_agency +#: model:ir.ui.menu,name:delivery_carrier_agency.carrier_agency_menu +msgid "Carrier Agency" +msgstr "Agencia de transportes" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__carrier_ids +msgid "Carriers" +msgstr "Transportistas" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__delivery_type +msgid "Delivery Type" +msgstr "Tipo de entrega" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__external_reference +msgid "External Reference" +msgstr "Referencia Externa" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__write_uid +msgid "Last Updated by" +msgstr "Actualizado por última vez por" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__write_date +msgid "Last Updated on" +msgstr "Actualizado por última vez el" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__name +msgid "Name" +msgstr "Nombre" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,help:delivery_carrier_agency.field_delivery_carrier_agency__external_reference +msgid "Reference or code supplied by the carrier" +msgstr "Referencia o código facilitado por el transportista" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__sequence +msgid "Sequence" +msgstr "Secuencia" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,help:delivery_carrier_agency.field_delivery_carrier_agency__carrier_ids +msgid "" +"This field may be used to link an account to specific delivery methods It " +"may be usefull to find an account with more precision than with only the " +"delivery type" +msgstr "" +"Este campo puede utilizarse para vincular una cuenta a métodos de entrega " +"específicos Puede ser útil para encontrar una cuenta con más precisión que " +"con sólo el tipo de entrega" + +#. module: delivery_carrier_agency +#: model:ir.model,name:delivery_carrier_agency.model_stock_picking +msgid "Transfer" +msgstr "Transferencia" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__warehouse_ids +msgid "Warehouses" +msgstr "Almacenes" diff --git a/delivery_carrier_agency/i18n/it.po b/delivery_carrier_agency/i18n/it.po new file mode 100644 index 0000000000..35154cc0a6 --- /dev/null +++ b/delivery_carrier_agency/i18n/it.po @@ -0,0 +1,115 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * delivery_carrier_agency +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-21 16:06+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 5.6.2\n" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__partner_id +msgid "Address" +msgstr "Indirizzo" + +#. module: delivery_carrier_agency +#: model:ir.actions.act_window,name:delivery_carrier_agency.action_carrier_agency +#: model:ir.model,name:delivery_carrier_agency.model_delivery_carrier_agency +#: model:ir.ui.menu,name:delivery_carrier_agency.carrier_agency_menu +msgid "Carrier Agency" +msgstr "Agenzia corriere" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__carrier_ids +msgid "Carriers" +msgstr "Corrieri" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__delivery_type +msgid "Delivery Type" +msgstr "Tipo consegna" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__external_reference +msgid "External Reference" +msgstr "Riferimento esterno" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__id +msgid "ID" +msgstr "ID" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__name +msgid "Name" +msgstr "Nome" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,help:delivery_carrier_agency.field_delivery_carrier_agency__external_reference +msgid "Reference or code supplied by the carrier" +msgstr "Riferimento o codice fornito dal corriere" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__sequence +msgid "Sequence" +msgstr "Sequenza" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,help:delivery_carrier_agency.field_delivery_carrier_agency__carrier_ids +msgid "" +"This field may be used to link an account to specific delivery methods It " +"may be usefull to find an account with more precision than with only the " +"delivery type" +msgstr "" +"Questo campo può essere utilizzato per collegare un conto a metodi di " +"consegna specifici. Può essere utile per trovare un conto con più precisione " +"che con il solo tipo di consegna" + +#. module: delivery_carrier_agency +#: model:ir.model,name:delivery_carrier_agency.model_stock_picking +msgid "Transfer" +msgstr "Trasferimento" + +#. module: delivery_carrier_agency +#: model:ir.model.fields,field_description:delivery_carrier_agency.field_delivery_carrier_agency__warehouse_ids +msgid "Warehouses" +msgstr "Magazzini" diff --git a/delivery_carrier_agency/models/__init__.py b/delivery_carrier_agency/models/__init__.py new file mode 100644 index 0000000000..792558576a --- /dev/null +++ b/delivery_carrier_agency/models/__init__.py @@ -0,0 +1,2 @@ +from . import delivery_carrier_agency +from . import stock_picking diff --git a/delivery_carrier_agency/models/delivery_carrier_agency.py b/delivery_carrier_agency/models/delivery_carrier_agency.py new file mode 100644 index 0000000000..2e5c25d6b9 --- /dev/null +++ b/delivery_carrier_agency/models/delivery_carrier_agency.py @@ -0,0 +1,33 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class DeliveryCarrierAgency(models.Model): + _name = "delivery.carrier.agency" + _description = "Carrier Agency" + _order = "sequence, id" + + name = fields.Char(required=True) + external_reference = fields.Char(help="Reference or code supplied by the carrier") + delivery_type = fields.Selection( + selection=lambda self: self.env["delivery.carrier"] + ._fields["delivery_type"] + .selection, + required=True, + ) + carrier_ids = fields.Many2many( + "delivery.carrier", + "delivery_carrier_agency_rel", + "agency_id", + "carrier_id", + string="Carriers", + help=( + "This field may be used to link an account to specific delivery methods" + " It may be usefull to find an account with more precision than with " + "only the delivery type" + ), + ) + partner_id = fields.Many2one("res.partner", string="Address") + warehouse_ids = fields.Many2many("stock.warehouse", string="Warehouses") + sequence = fields.Integer() diff --git a/delivery_carrier_agency/models/stock_picking.py b/delivery_carrier_agency/models/stock_picking.py new file mode 100644 index 0000000000..0ac7d58290 --- /dev/null +++ b/delivery_carrier_agency/models/stock_picking.py @@ -0,0 +1,25 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class StockPicking(models.Model): + _inherit = "stock.picking" + + def _get_domain_agency(self): + self.ensure_one() + wh = self.location_id.warehouse_id + return [ + ("delivery_type", "=", self.carrier_id.delivery_type), + "|", + ("warehouse_ids", "=", False), + ("warehouse_ids", "in", wh.ids), + "|", + ("carrier_ids", "in", [self.carrier_id.id]), + ("carrier_ids", "=", False), + ] + + def _get_carrier_agency(self): + self.ensure_one() + domain = self._get_domain_agency() + return self.env["delivery.carrier.agency"].search(domain, limit=1) diff --git a/delivery_carrier_agency/pyproject.toml b/delivery_carrier_agency/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/delivery_carrier_agency/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/delivery_carrier_agency/readme/CONTRIBUTORS.md b/delivery_carrier_agency/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..fea5238215 --- /dev/null +++ b/delivery_carrier_agency/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- Florian da Costa \<\> +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/delivery_carrier_agency/readme/DESCRIPTION.md b/delivery_carrier_agency/readme/DESCRIPTION.md new file mode 100644 index 0000000000..2766df4e27 --- /dev/null +++ b/delivery_carrier_agency/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +Add carrier agency concept A delivery carrier may have one or mutliple +agencies. The module does not add any logic around these agencies, it +will be done in dedicated carrier modules if necessary. For instance, +when generating label, sometimes, some information may depend on the +agency that will receive the package, which may depend on the warehouse diff --git a/delivery_carrier_agency/security/ir.model.access.csv b/delivery_carrier_agency/security/ir.model.access.csv new file mode 100644 index 0000000000..c7a477a71c --- /dev/null +++ b/delivery_carrier_agency/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_delivery_carrier_agency_wh_user,delivery.carrier.agency.wh.user,model_delivery_carrier_agency,stock.group_stock_user,1,0,0,0 +access_delivery_carrier_agency_wh_manager,delivery.carrier.agency.wh.manager,model_delivery_carrier_agency,stock.group_stock_manager,1,1,1,1 diff --git a/delivery_carrier_agency/static/description/icon.png b/delivery_carrier_agency/static/description/icon.png new file mode 100644 index 0000000000..3a0328b516 Binary files /dev/null and b/delivery_carrier_agency/static/description/icon.png differ diff --git a/delivery_carrier_agency/static/description/index.html b/delivery_carrier_agency/static/description/index.html new file mode 100644 index 0000000000..7ff4895b04 --- /dev/null +++ b/delivery_carrier_agency/static/description/index.html @@ -0,0 +1,431 @@ + + + + + +Delivery Carrier Agency + + + +
+

Delivery Carrier Agency

+ + +

Beta License: AGPL-3 OCA/delivery-carrier Translate me on Weblate Try me on Runboat

+

Add carrier agency concept A delivery carrier may have one or mutliple +agencies. The module does not add any logic around these agencies, it +will be done in dedicated carrier modules if necessary. For instance, +when generating label, sometimes, some information may depend on the +agency that will receive the package, which may depend on the warehouse

+

Table of contents

+ +
+

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

+
    +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

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.

+

This module is part of the OCA/delivery-carrier project on GitHub.

+

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

+
+
+
+ + diff --git a/delivery_carrier_agency/tests/__init__.py b/delivery_carrier_agency/tests/__init__.py new file mode 100644 index 0000000000..1f4362b716 --- /dev/null +++ b/delivery_carrier_agency/tests/__init__.py @@ -0,0 +1 @@ +from . import test_carrier_agency diff --git a/delivery_carrier_agency/tests/test_carrier_agency.py b/delivery_carrier_agency/tests/test_carrier_agency.py new file mode 100644 index 0000000000..4a8717159c --- /dev/null +++ b/delivery_carrier_agency/tests/test_carrier_agency.py @@ -0,0 +1,43 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.addons.base.tests.common import BaseCommon + + +class TestCarrierAgency(BaseCommon): + def test_get_carrier_agency(self): + """Test finding the correct account for a picking""" + chicago_wh = self.env.ref("stock.stock_warehouse_shop0") + san_fransico_wh = self.env.ref("stock.warehouse0") + agency_chicago = self.env["delivery.carrier.agency"].create( + { + "name": "Normal Carrier Chicago agency", + "delivery_type": "base_on_rule", + "warehouse_ids": [(6, 0, chicago_wh.ids)], + } + ) + agency_san_fransisco = self.env["delivery.carrier.agency"].create( + { + "name": "Normal Carrier San Fransisco agency", + "delivery_type": "base_on_rule", + "warehouse_ids": [(6, 0, san_fransico_wh.ids)], + } + ) + san_fransisco_picking = self.env["stock.picking"].new( + dict( + carrier_id=self.env.ref("delivery.delivery_carrier").id, + company_id=self.env.user.company_id.id, + location_id=san_fransico_wh.lot_stock_id.id, + ) + ) + agency = san_fransisco_picking._get_carrier_agency() + self.assertEqual(agency, agency_san_fransisco) + + chicago_picking = self.env["stock.picking"].new( + dict( + carrier_id=self.env.ref("delivery.delivery_carrier").id, + company_id=self.env.user.company_id.id, + location_id=chicago_wh.lot_stock_id.id, + ) + ) + agency = chicago_picking._get_carrier_agency() + self.assertEqual(agency, agency_chicago) diff --git a/delivery_carrier_agency/views/delivery_carrier_agency_view.xml b/delivery_carrier_agency/views/delivery_carrier_agency_view.xml new file mode 100644 index 0000000000..70a4075d1e --- /dev/null +++ b/delivery_carrier_agency/views/delivery_carrier_agency_view.xml @@ -0,0 +1,56 @@ + + + + + delivery.carrier.agency + + + + + + + + + + + + delivery_base.delivery.carrier.agency.form + delivery.carrier.agency + +
+ +
+

+ +

+
+ + + + + + + +
+
+
+
+ + + Carrier Agency + delivery.carrier.agency + tree,form + + + +