Skip to content

Commit

Permalink
[ADD] #676 allow to cascade per company category
Browse files Browse the repository at this point in the history
  • Loading branch information
hbrunn committed Aug 27, 2024
1 parent acc2f4c commit cf57001
Show file tree
Hide file tree
Showing 18 changed files with 921 additions and 0 deletions.
99 changes: 99 additions & 0 deletions company_cascade_category/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
===================
Cascading companies
===================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |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%2Fmulti--company-lightgray.png?logo=github
:target: https://github.com/OCA/multi-company/tree/16.0/company_cascade
:alt: OCA/multi-company
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/multi-company-16-0/multi-company-16-0-company_cascade
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/webui/builds.html?repo=OCA/multi-company&target_branch=16.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module maintains relations between company specific records (think accounts, journals) of parent and child companies, enabling users to configure things in the parent company and then copy (=cascade) this configuration to child companies.

Originally conceived for financial hosting, this mechanism is useful for any setting where Odoo is used to manage multiple organizations that have a very similar financial configuration, but organizational units are a bad fit because the companies are different (legal) entities, or just need more independence from the parent company than OUs provide.

.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
:local:

Usage
=====

To use this module, you need to:

#. Go to an account/journal/etc in your parent company
#. Click Actions/Cascade to child companies
#. If not existing yet, an equivalent record will be created in the child company
#. If an equivalent record exists already, it will be overwritten with the parent company's values

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/multi-company/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/multi-company/issues/new?body=module:%20company_cascade%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* Hunki Enterprises BV
* Moshchot Coop

Contributors
~~~~~~~~~~~~

* Holger Brunn <[email protected]> (https://hunki-enterprises.com)

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-hbrunn| image:: https://github.com/hbrunn.png?size=40px
:target: https://github.com/hbrunn
:alt: hbrunn

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-hbrunn|

This module is part of the `OCA/multi-company <https://github.com/OCA/multi-company/tree/16.0/company_cascade>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions company_cascade_category/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from . import wizards
21 changes: 21 additions & 0 deletions company_cascade_category/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2023 Hunki Enterprises BV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0)

{
"name": "Cascading companies (company category support)",
"summary": "Sync configuration from parent companies to children",
"version": "16.0.1.0.0",
"development_status": "Alpha",
"category": "Technical",
"website": "https://github.com/moshchot/BANKayma",
"author": "Hunki Enterprises BV, Odoo Community Association (OCA), Moshchot Coop",
"maintainers": ["hbrunn"],
"license": "AGPL-3",
"application": False,
"installable": True,
"preloadable": True,
"depends": ["company_cascade", "res_company_category"],
"data": [
"wizards/company_cascade_wizard.xml",
],
}
247 changes: 247 additions & 0 deletions company_cascade_category/i18n/he_IL.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * company_cascade
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-07-12 09:38+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: he_IL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_account
msgid "Account"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_fiscal_position_account
msgid "Accounts Mapping of Fiscal Position"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_ir_actions_actions
msgid "Actions"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_analytic_account
msgid "Analytic Account"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_analytic_plan
msgid "Analytic Plans"
msgstr ""

#. module: company_cascade
#: model_terms:ir.ui.view,arch_db:company_cascade.view_company_cascade_wizard_form
msgid "Cancel"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_res_company__company_cascade_from_parent
msgid "Cascade from parent"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_company_cascade_wizard
msgid "Cascade records to child companies"
msgstr ""

#. module: company_cascade
#: model:ir.actions.act_window,name:company_cascade.action_company_cascade_wizard
#: model_terms:ir.ui.view,arch_db:company_cascade.view_company_cascade_wizard_form
msgid "Cascade to child companies"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_company_cascade_mixin
msgid "Cascade values to child companies"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_res_company
msgid "Companies"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_account_payment_method_line__company_id
#: model:ir.model.fields,field_description:company_cascade.field_res_company__company_id
msgid "Company"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_account_account__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_analytic_account__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_analytic_plan__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_fiscal_position__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_fiscal_position_account__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_fiscal_position_tax__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_journal__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_payment_method_line__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_payment_mode__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_payment_term__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_tax__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_account_tax_repartition_line__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_mixin__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_ir_property__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_ir_sequence__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_payment_provider__company_cascade_child_ids
#: model:ir.model.fields,field_description:company_cascade.field_res_company__company_cascade_child_ids
msgid "Company Cascade Child"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_account_account__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_analytic_account__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_analytic_plan__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_fiscal_position__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_fiscal_position_account__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_fiscal_position_tax__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_journal__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_payment_method_line__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_payment_mode__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_payment_term__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_tax__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_account_tax_repartition_line__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_mixin__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_ir_property__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_ir_sequence__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_payment_provider__company_cascade_parent_id
#: model:ir.model.fields,field_description:company_cascade.field_res_company__company_cascade_parent_id
msgid "Company Cascade Parent"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_ir_property
msgid "Company Property"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,help:company_cascade.field_account_payment_method_line__company_id
msgid "Company related to this journal"
msgstr ""

#. module: company_cascade
#: model_terms:ir.ui.view,arch_db:company_cascade.view_company_cascade_wizard_form
msgid "Create/Overwrite equivalent records of child companies?"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__create_uid
msgid "Created by"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__create_date
msgid "Created on"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__display_name
msgid "Display Name"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__field_ids
msgid "Fields to cascade"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_fiscal_position
msgid "Fiscal Position"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__id
msgid "ID"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_journal
msgid "Journal"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard____last_update
msgid "Last Modified on"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__write_uid
msgid "Last Updated by"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__write_date
msgid "Last Updated on"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,field_description:company_cascade.field_company_cascade_wizard__model_id
msgid "Model"
msgstr ""

#. module: company_cascade
#. odoo-python
#: code:addons/company_cascade/wizards/company_cascade_wizard.py:0
#, python-format
msgid "Only admin can cascade companies"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_payment_method_line
msgid "Payment Methods"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_payment_mode
msgid "Payment Modes"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_payment_provider
msgid "Payment Provider"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_payment_term
msgid "Payment Terms"
msgstr ""

#. module: company_cascade
#: model_terms:ir.ui.view,arch_db:company_cascade.view_company_cascade_wizard_form
msgid "Select fields to cascade"
msgstr ""

#. module: company_cascade
#: model:ir.model.fields,help:company_cascade.field_company_cascade_wizard__field_ids
msgid "Select fields to cascade, otherwise all fields will be cascaded"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_ir_sequence
msgid "Sequence"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_tax
msgid "Tax"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_fiscal_position_tax
msgid "Tax Mapping of Fiscal Position"
msgstr ""

#. module: company_cascade
#: model:ir.model,name:company_cascade.model_account_tax_repartition_line
msgid "Tax Repartition Line"
msgstr ""
1 change: 1 addition & 0 deletions company_cascade_category/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import company_cascade_mixin
Loading

0 comments on commit cf57001

Please sign in to comment.