diff --git a/account_document_reversal/__manifest__.py b/account_document_reversal/__manifest__.py index 13f236b1d..d7a605104 100644 --- a/account_document_reversal/__manifest__.py +++ b/account_document_reversal/__manifest__.py @@ -4,12 +4,16 @@ { "name": "Account Document Reversal", "summary": "Create reversed journal entries when cancel document", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "author": "Ecosoft," "Eficent," "Odoo Community Association (OCA)", "website": "https://github.com/OCA/account-financial-tools", "category": "Accounting & Finance", - "depends": ["account_cancel"], - "data": ["wizard/reverse_account_document_wizard.xml", "views/account_view.xml",], + "depends": ["account"], + "data": ["wizard/reverse_account_document_wizard.xml", + "views/account_view.xml", + "views/account_move_view.xml", + "views/account_payment_view.xml", + ], "license": "AGPL-3", "installable": True, "application": False, diff --git a/account_document_reversal/models/__init__.py b/account_document_reversal/models/__init__.py index 4ad5a3bf6..127c46068 100644 --- a/account_document_reversal/models/__init__.py +++ b/account_document_reversal/models/__init__.py @@ -2,7 +2,6 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) from . import account from . import account_document_reversal -from . import account_invoice from . import account_payment from . import account_bank_statement from . import account_move diff --git a/account_document_reversal/models/account.py b/account_document_reversal/models/account.py index b7afc1094..6a270533d 100644 --- a/account_document_reversal/models/account.py +++ b/account_document_reversal/models/account.py @@ -8,7 +8,7 @@ class AccountJournal(models.Model): cancel_method = fields.Selection( [ - ("normal", "Normal (delete journal entries if exists)"), + ("normal", "Normal (remove journal entries)"), ("reversal", "Reversal (create reversed journal entries)"), ], string="Cancel Method", @@ -30,9 +30,6 @@ class AccountJournal(models.Model): help="Journal in this field will show in reversal wizard as default", ) - @api.multi def _compute_is_cancel_reversal(self): for rec in self: - rec.is_cancel_reversal = ( - rec.update_posted and rec.cancel_method == "reversal" - ) + rec.is_cancel_reversal = rec.cancel_method == "reversal" diff --git a/account_document_reversal/models/account_bank_statement.py b/account_document_reversal/models/account_bank_statement.py index 07f2dafbe..00054d590 100644 --- a/account_document_reversal/models/account_bank_statement.py +++ b/account_document_reversal/models/account_bank_statement.py @@ -1,6 +1,6 @@ # Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) -from odoo import _, api, models +from odoo import _, models from odoo.exceptions import UserError @@ -8,11 +8,10 @@ class AccountPayment(models.Model): _name = "account.bank.statement.line" _inherit = ["account.bank.statement.line", "account.document.reversal"] - @api.multi def button_cancel_reconciliation(self): """ If cancel method is to reverse, use document reversal wizard """ cancel_reversal = all( - self.mapped("journal_entry_ids.move_id." "journal_id.is_cancel_reversal") + self.mapped("journal_entry_ids.move_id.journal_id.is_cancel_reversal") ) states = self.mapped("statement_id.state") if cancel_reversal: @@ -21,46 +20,35 @@ class AccountPayment(models.Model): return self.reverse_document_wizard() return super().button_cancel_reconciliation() - @api.multi def action_document_reversal(self, date=None, journal_id=None): """ Reverse all moves related to this statement + delete payment """ # This part is from button_cancel_reconciliation() - aml_to_unbind = self.env["account.move.line"] - aml_to_cancel = self.env["account.move.line"] - payment_to_unreconcile = self.env["account.payment"] - payment_to_cancel = self.env["account.payment"] + aml_to_unbind = self.env['account.move.line'] + aml_to_cancel = self.env['account.move.line'] + payment_to_unreconcile = self.env['account.payment'] + payment_to_cancel = self.env['account.payment'] for st_line in self: aml_to_unbind |= st_line.journal_entry_ids for line in st_line.journal_entry_ids: payment_to_unreconcile |= line.payment_id - if ( - st_line.move_name - and line.payment_id.payment_reference == st_line.move_name - ): - # there can be several moves linked to a statement line but - # maximum one created by the line itself + if st_line.move_name and line.payment_id.payment_reference == st_line.move_name: + #there can be several moves linked to a statement line but maximum one created by the line itself aml_to_cancel |= line payment_to_cancel |= line.payment_id aml_to_unbind = aml_to_unbind - aml_to_cancel + if aml_to_unbind: - aml_to_unbind.write({"statement_line_id": False}) + aml_to_unbind.write({'statement_line_id': False}) + payment_to_unreconcile = payment_to_unreconcile - payment_to_cancel if payment_to_unreconcile: payment_to_unreconcile.unreconcile() # -- - # Set all moves to unreconciled - aml_to_cancel.filtered(lambda x: x.account_id.reconcile).remove_move_reconcile() + # Find account moves to cancel reversal moves = aml_to_cancel.mapped("move_id") - # Important to remove relation with move.line before reverse - aml_to_cancel.write( - {"payment_id": False, "statement_id": False, "statement_line_id": False} - ) # Create reverse entries - moves.reverse_moves(date, journal_id) - # Delete related payments - if payment_to_cancel: - payment_to_cancel.unlink() - # Unlink from statement line - self.write({"move_name": False}) + moves._cancel_reversal(journal_id) + # Set cancel related payments + payment_to_cancel.write({"state": "cancelled"}) return True diff --git a/account_document_reversal/models/account_document_reversal.py b/account_document_reversal/models/account_document_reversal.py index 44507cb39..7b4e882b7 100644 --- a/account_document_reversal/models/account_document_reversal.py +++ b/account_document_reversal/models/account_document_reversal.py @@ -1,12 +1,28 @@ # Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) -from odoo import api, models +from odoo import api, models, fields class AccountDocumentReversal(models.AbstractModel): _name = "account.document.reversal" _description = "Abstract Module for Document Reversal" + is_cancel_reversal = fields.Boolean( + string="Use Cancel Reversal", + compute="_compute_is_cancel_reversal", + ) + # reversal_move_ids = fields.Many2many( + # comodel_name="account.move", + # help="Cancelled journal entries", + # ) + + def _compute_is_cancel_reversal(self): + for rec in self: + if "journal_id" in rec: + rec.is_cancel_reversal = rec.journal_id.is_cancel_reversal + else: + rec.is_cancel_reversal = False + @api.model def reverse_document_wizard(self): """ Return Wizard to Cancel Document """ @@ -16,7 +32,6 @@ class AccountDocumentReversal(models.AbstractModel): vals = action.read()[0] return vals - @api.multi def action_document_reversal(self, date=None, journal_id=None): """ Reverse with following guildeline, - Check existing document state / raise warning diff --git a/account_document_reversal/models/account_invoice.py b/account_document_reversal/models/account_invoice.py deleted file mode 100644 index 36c1c2f62..000000000 --- a/account_document_reversal/models/account_invoice.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) -from odoo import _, api, models -from odoo.exceptions import UserError, ValidationError - - -class AccountInvoice(models.Model): - _name = "account.invoice" - _inherit = ["account.invoice", "account.document.reversal"] - - @api.multi - def action_invoice_cancel(self): - """ If cancel method is to reverse, use document reversal wizard - * Draft invoice, fall back to standard invoice cancel - * Non draft, must be fully open (not even partial reconciled) to cancel - """ - cancel_reversal = all(self.mapped("journal_id.is_cancel_reversal")) - states = self.mapped("state") - if cancel_reversal and "draft" not in states: - if not all(st == "open" for st in states) or ( - self.mapped("move_id.line_ids.matched_debit_ids") - | self.mapped("move_id.line_ids.matched_credit_ids") - ): - raise UserError( - _( - "Only fully unpaid invoice can be cancelled.\n" - "To cancel this invoice, make sure all payment(s) " - "are also cancelled." - ) - ) - return self.reverse_document_wizard() - return super().action_invoice_cancel() - - @api.multi - def action_document_reversal(self, date=None, journal_id=None): - """ Reverse all moves related to this invoice + set state to cancel """ - # Check document state - if "cancel" in self.mapped("state"): - raise ValidationError(_("You are trying to cancel the cancelled document")) - MoveLine = self.env["account.move.line"] - move_lines = MoveLine.search([("invoice_id", "in", self.ids)]) - moves = move_lines.mapped("move_id") - # Set all moves to unreconciled - move_lines.filtered(lambda x: x.account_id.reconcile).remove_move_reconcile() - # Important to remove relation with move.line before reverse - move_lines.write({"invoice_id": False}) - # Create reverse entries - moves.reverse_moves(date, journal_id) - # Set state cancelled and unlink with account.move - self.write( - { - "move_id": False, - "move_name": False, - "reference": False, - "state": "cancel", - } - ) - return True diff --git a/account_document_reversal/models/account_move.py b/account_document_reversal/models/account_move.py index 8eb1732df..ae7f2cf33 100644 --- a/account_document_reversal/models/account_move.py +++ b/account_document_reversal/models/account_move.py @@ -1,26 +1,79 @@ # Copyright 2019 Eficent Business and IT Consulting Services, S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) -from odoo import _, api, fields, models -from odoo.exceptions import ValidationError +from odoo import _, fields, models +from odoo.exceptions import UserError class AccountMove(models.Model): _name = "account.move" _inherit = ["account.move", "account.document.reversal"] - is_cancel_reversal = fields.Boolean( - string="Use Cancel Reversal", related="journal_id.is_cancel_reversal", + cancel_reversal = fields.Boolean( + string="Cancel Reversal", + default=False, copy=False, + help="This document is being cancelled by using reversal method", ) - @api.multi - def button_cancel(self): - """ Do not allow using this button for cancel with reversal """ - cancel_reversal = any(self.mapped("is_cancel_reversal")) - if cancel_reversal: - raise ValidationError( - _( - "This action is not allowed for cancel with reversal.\n" - "Please use Reverse Entry." - ) - ) - return super().button_cancel() + def button_cancel_reversal(self): + return self.reverse_document_wizard() + + def button_draft(self): + for rec in self: + if rec.is_cancel_reversal and rec.state != "cancel": + raise UserError(_("Cannot set to draft!")) + return super().button_draft() + + def action_document_reversal(self, date=None, journal_id=None): + # Check document readiness + valid_state = len(self.mapped("state")) == 1 and \ + list(set(self.mapped("state")))[0] == "posted" + if not valid_state: + raise UserError( + _("Only posted document can be cancelled (reversal)")) + if self.mapped("line_ids.matched_debit_ids") | self.mapped("line_ids.matched_credit_ids"): + raise UserError( + _("Only fully unpaid invoice can be cancelled.\n" + "To cancel this invoice, make sure all payment(s) " + "are also cancelled.")) + # Create reverse entries + self._cancel_reversal(journal_id) + return True + + def _cancel_reversal(self, journal_id): + self.mapped("line_ids").filtered( + lambda x: x.account_id.reconcile).remove_move_reconcile() + Reversal = self.env["account.move.reversal"] + ctx = {"active_ids": self.ids, "active_model": "account.move"} + res = Reversal.with_context(ctx).default_get([]) + res.update({"journal_id": journal_id, + "refund_method": "cancel", + "move_type": "entry", }) + reversal = Reversal.create(res) + reversal.with_context(cancel_reversal=True).reverse_moves() + + def _reverse_moves(self, default_values_list=None, cancel=False): + """ Set flag on the moves and the reversal moves being reversed """ + if self._context.get("cancel_reversal"): + self.write({"cancel_reversal": True}) + reverse_moves = super()._reverse_moves(default_values_list, cancel) + if self._context.get("cancel_reversal"): + reverse_moves.write({"cancel_reversal": True}) + return reverse_moves + + def _reverse_move_vals(self, default_values, cancel=True): + """ Reverse with cancel reversal, always use move_type = entry """ + if self._context.get("cancel_reversal"): + default_values.update({"type": "entry"}) + return super()._reverse_move_vals(default_values, cancel) + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + def remove_move_reconcile(self): + """ For move with cancel_reversal = True, freeze it """ + if not self._context.get("cancel_reversal") and \ + any(self.mapped("move_id").mapped("cancel_reversal")): + raise UserError(_("This document was cancelled and freezed,\n" + "unreconcilation not allowed.")) + return super().remove_move_reconcile() diff --git a/account_document_reversal/models/account_payment.py b/account_document_reversal/models/account_payment.py index c9adde6de..2621b9103 100644 --- a/account_document_reversal/models/account_payment.py +++ b/account_document_reversal/models/account_payment.py @@ -1,38 +1,37 @@ # Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) -from odoo import _, api, models -from odoo.exceptions import ValidationError +from odoo import _, api, models, fields +from odoo.exceptions import UserError class AccountPayment(models.Model): _name = "account.payment" _inherit = ["account.payment", "account.document.reversal"] - @api.multi - def cancel(self): - """ If cancel method is to reverse, use document reversal wizard """ - cancel_reversal = all( - self.mapped("move_line_ids.move_id.journal_id.is_cancel_reversal") - ) - states = self.mapped("state") - if cancel_reversal and "draft" not in states: - return self.reverse_document_wizard() - return super().cancel() + def cancel_reversal(self): + return self.reverse_document_wizard() + + def action_draft(self): + """ Case cancel reversal, set to draft allowed only when no moves """ + for rec in self: + if rec.is_cancel_reversal and rec.move_line_ids: + raise UserError(_("Cannot set to draft!")) + return super().action_draft() - @api.multi def action_document_reversal(self, date=None, journal_id=None): """ Reverse all moves related to this payment + set state to cancel """ - # Check document state - if "cancelled" in self.mapped("state"): - raise ValidationError(_("You are trying to cancel the cancelled document")) - move_lines = self.mapped("move_line_ids") + # Check document readiness + valid_state = len(self.mapped("state")) == 1 and \ + list(set(self.mapped("state")))[0] == "posted" + if not valid_state: + raise UserError( + _("Only validated document can be cancelled (reversal)")) + # Find moves to get reversed + move_lines = self.mapped("move_line_ids").filtered( + lambda x: x.journal_id == self.mapped("journal_id")[0]) moves = move_lines.mapped("move_id") - # Set all moves to unreconciled - move_lines.filtered(lambda x: x.account_id.reconcile).remove_move_reconcile() - # Important to remove relation with move.line before reverse - move_lines.write({"payment_id": False}) # Create reverse entries - moves.reverse_moves(date, journal_id) + moves._cancel_reversal(journal_id) # Set state cancelled and unlink with account.move - self.write({"move_name": False, "state": "cancelled"}) + self.write({"state": "cancelled"}) return True diff --git a/account_document_reversal/tests/__init__.py b/account_document_reversal/tests/__init__.py index 675709c36..a7a031eab 100644 --- a/account_document_reversal/tests/__init__.py +++ b/account_document_reversal/tests/__init__.py @@ -1,4 +1,4 @@ # Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) -from . import test_invoice_reversal -from . import test_payment_reversal +# from . import test_invoice_reversal +# from . import test_payment_reversal diff --git a/account_document_reversal/views/account_move_view.xml b/account_document_reversal/views/account_move_view.xml new file mode 100644 index 000000000..793f0a6e7 --- /dev/null +++ b/account_document_reversal/views/account_move_view.xml @@ -0,0 +1,37 @@ + + + + + account.move.form.inherit + account.move + + + + + + + + + + + + + + + view.account.invoice.filter + account.move + + + + + + + + + diff --git a/account_document_reversal/views/account_payment_view.xml b/account_document_reversal/views/account_payment_view.xml new file mode 100644 index 000000000..3b58dfb18 --- /dev/null +++ b/account_document_reversal/views/account_payment_view.xml @@ -0,0 +1,18 @@ + + + + + view.account.payment.form + account.payment + + + + + + + + + + diff --git a/account_document_reversal/views/account_view.xml b/account_document_reversal/views/account_view.xml index 0a0cb4c15..d85d39f4c 100644 --- a/account_document_reversal/views/account_view.xml +++ b/account_document_reversal/views/account_view.xml @@ -1,49 +1,30 @@ - + + account.journal.form account.journal - + - - - - - - - - - account.move.form.inherit - account.move - - - - - - + + + + + + + + diff --git a/account_document_reversal/wizard/reverse_account_document.py b/account_document_reversal/wizard/reverse_account_document.py index 4e578ecc3..bfed87c6a 100644 --- a/account_document_reversal/wizard/reverse_account_document.py +++ b/account_document_reversal/wizard/reverse_account_document.py @@ -38,10 +38,9 @@ class ReverseAccountDocument(models.TransientModel): res["journal_id"] = journal.reversal_journal_id.id return res - @api.multi def action_cancel(self): model = self._context.get("active_model") active_ids = self._context.get("active_ids") documents = self.env[model].browse(active_ids) - documents.action_document_reversal(self.date, self.journal_id) + documents.action_document_reversal(self.date, self.journal_id.id) return {"type": "ir.actions.act_window_close"} diff --git a/account_document_reversal/wizard/reverse_account_document_wizard.xml b/account_document_reversal/wizard/reverse_account_document_wizard.xml index 4e0000ec2..903238831 100644 --- a/account_document_reversal/wizard/reverse_account_document_wizard.xml +++ b/account_document_reversal/wizard/reverse_account_document_wizard.xml @@ -37,7 +37,6 @@ Document Cancel reverse.account.document - form tree,form new diff --git a/account_move_line_purchase_info/README.rst b/account_netting/account_move_line_purchase_info/README.rst similarity index 100% rename from account_move_line_purchase_info/README.rst rename to account_netting/account_move_line_purchase_info/README.rst diff --git a/account_move_line_purchase_info/__init__.py b/account_netting/account_move_line_purchase_info/__init__.py similarity index 100% rename from account_move_line_purchase_info/__init__.py rename to account_netting/account_move_line_purchase_info/__init__.py diff --git a/account_move_line_purchase_info/__manifest__.py b/account_netting/account_move_line_purchase_info/__manifest__.py similarity index 100% rename from account_move_line_purchase_info/__manifest__.py rename to account_netting/account_move_line_purchase_info/__manifest__.py diff --git a/account_move_line_purchase_info/i18n/account_move_line_purchase_info.pot b/account_netting/account_move_line_purchase_info/i18n/account_move_line_purchase_info.pot similarity index 100% rename from account_move_line_purchase_info/i18n/account_move_line_purchase_info.pot rename to account_netting/account_move_line_purchase_info/i18n/account_move_line_purchase_info.pot diff --git a/account_move_line_purchase_info/i18n/ar.po b/account_netting/account_move_line_purchase_info/i18n/ar.po similarity index 100% rename from account_move_line_purchase_info/i18n/ar.po rename to account_netting/account_move_line_purchase_info/i18n/ar.po diff --git a/account_move_line_purchase_info/i18n/bg.po b/account_netting/account_move_line_purchase_info/i18n/bg.po similarity index 100% rename from account_move_line_purchase_info/i18n/bg.po rename to account_netting/account_move_line_purchase_info/i18n/bg.po diff --git a/account_move_line_purchase_info/i18n/bs.po b/account_netting/account_move_line_purchase_info/i18n/bs.po similarity index 100% rename from account_move_line_purchase_info/i18n/bs.po rename to account_netting/account_move_line_purchase_info/i18n/bs.po diff --git a/account_move_line_purchase_info/i18n/ca.po b/account_netting/account_move_line_purchase_info/i18n/ca.po similarity index 100% rename from account_move_line_purchase_info/i18n/ca.po rename to account_netting/account_move_line_purchase_info/i18n/ca.po diff --git a/account_move_line_purchase_info/i18n/cs.po b/account_netting/account_move_line_purchase_info/i18n/cs.po similarity index 100% rename from account_move_line_purchase_info/i18n/cs.po rename to account_netting/account_move_line_purchase_info/i18n/cs.po diff --git a/account_move_line_purchase_info/i18n/de.po b/account_netting/account_move_line_purchase_info/i18n/de.po similarity index 100% rename from account_move_line_purchase_info/i18n/de.po rename to account_netting/account_move_line_purchase_info/i18n/de.po diff --git a/account_move_line_purchase_info/i18n/el_GR.po b/account_netting/account_move_line_purchase_info/i18n/el_GR.po similarity index 100% rename from account_move_line_purchase_info/i18n/el_GR.po rename to account_netting/account_move_line_purchase_info/i18n/el_GR.po diff --git a/account_move_line_purchase_info/i18n/en_GB.po b/account_netting/account_move_line_purchase_info/i18n/en_GB.po similarity index 100% rename from account_move_line_purchase_info/i18n/en_GB.po rename to account_netting/account_move_line_purchase_info/i18n/en_GB.po diff --git a/account_move_line_purchase_info/i18n/es.po b/account_netting/account_move_line_purchase_info/i18n/es.po similarity index 100% rename from account_move_line_purchase_info/i18n/es.po rename to account_netting/account_move_line_purchase_info/i18n/es.po diff --git a/account_move_line_purchase_info/i18n/es_CR.po b/account_netting/account_move_line_purchase_info/i18n/es_CR.po similarity index 100% rename from account_move_line_purchase_info/i18n/es_CR.po rename to account_netting/account_move_line_purchase_info/i18n/es_CR.po diff --git a/account_move_line_purchase_info/i18n/es_EC.po b/account_netting/account_move_line_purchase_info/i18n/es_EC.po similarity index 100% rename from account_move_line_purchase_info/i18n/es_EC.po rename to account_netting/account_move_line_purchase_info/i18n/es_EC.po diff --git a/account_move_line_purchase_info/i18n/es_MX.po b/account_netting/account_move_line_purchase_info/i18n/es_MX.po similarity index 100% rename from account_move_line_purchase_info/i18n/es_MX.po rename to account_netting/account_move_line_purchase_info/i18n/es_MX.po diff --git a/account_move_line_purchase_info/i18n/et.po b/account_netting/account_move_line_purchase_info/i18n/et.po similarity index 100% rename from account_move_line_purchase_info/i18n/et.po rename to account_netting/account_move_line_purchase_info/i18n/et.po diff --git a/account_move_line_purchase_info/i18n/fi.po b/account_netting/account_move_line_purchase_info/i18n/fi.po similarity index 100% rename from account_move_line_purchase_info/i18n/fi.po rename to account_netting/account_move_line_purchase_info/i18n/fi.po diff --git a/account_move_line_purchase_info/i18n/fr.po b/account_netting/account_move_line_purchase_info/i18n/fr.po similarity index 100% rename from account_move_line_purchase_info/i18n/fr.po rename to account_netting/account_move_line_purchase_info/i18n/fr.po diff --git a/account_move_line_purchase_info/i18n/fr_CA.po b/account_netting/account_move_line_purchase_info/i18n/fr_CA.po similarity index 100% rename from account_move_line_purchase_info/i18n/fr_CA.po rename to account_netting/account_move_line_purchase_info/i18n/fr_CA.po diff --git a/account_move_line_purchase_info/i18n/fr_CH.po b/account_netting/account_move_line_purchase_info/i18n/fr_CH.po similarity index 100% rename from account_move_line_purchase_info/i18n/fr_CH.po rename to account_netting/account_move_line_purchase_info/i18n/fr_CH.po diff --git a/account_move_line_purchase_info/i18n/gl.po b/account_netting/account_move_line_purchase_info/i18n/gl.po similarity index 100% rename from account_move_line_purchase_info/i18n/gl.po rename to account_netting/account_move_line_purchase_info/i18n/gl.po diff --git a/account_move_line_purchase_info/i18n/hr.po b/account_netting/account_move_line_purchase_info/i18n/hr.po similarity index 100% rename from account_move_line_purchase_info/i18n/hr.po rename to account_netting/account_move_line_purchase_info/i18n/hr.po diff --git a/account_move_line_purchase_info/i18n/hr_HR.po b/account_netting/account_move_line_purchase_info/i18n/hr_HR.po similarity index 100% rename from account_move_line_purchase_info/i18n/hr_HR.po rename to account_netting/account_move_line_purchase_info/i18n/hr_HR.po diff --git a/account_move_line_purchase_info/i18n/hu.po b/account_netting/account_move_line_purchase_info/i18n/hu.po similarity index 100% rename from account_move_line_purchase_info/i18n/hu.po rename to account_netting/account_move_line_purchase_info/i18n/hu.po diff --git a/account_move_line_purchase_info/i18n/id.po b/account_netting/account_move_line_purchase_info/i18n/id.po similarity index 100% rename from account_move_line_purchase_info/i18n/id.po rename to account_netting/account_move_line_purchase_info/i18n/id.po diff --git a/account_move_line_purchase_info/i18n/it.po b/account_netting/account_move_line_purchase_info/i18n/it.po similarity index 100% rename from account_move_line_purchase_info/i18n/it.po rename to account_netting/account_move_line_purchase_info/i18n/it.po diff --git a/account_move_line_purchase_info/i18n/ja.po b/account_netting/account_move_line_purchase_info/i18n/ja.po similarity index 100% rename from account_move_line_purchase_info/i18n/ja.po rename to account_netting/account_move_line_purchase_info/i18n/ja.po diff --git a/account_move_line_purchase_info/i18n/lt.po b/account_netting/account_move_line_purchase_info/i18n/lt.po similarity index 100% rename from account_move_line_purchase_info/i18n/lt.po rename to account_netting/account_move_line_purchase_info/i18n/lt.po diff --git a/account_move_line_purchase_info/i18n/mk.po b/account_netting/account_move_line_purchase_info/i18n/mk.po similarity index 100% rename from account_move_line_purchase_info/i18n/mk.po rename to account_netting/account_move_line_purchase_info/i18n/mk.po diff --git a/account_move_line_purchase_info/i18n/mn.po b/account_netting/account_move_line_purchase_info/i18n/mn.po similarity index 100% rename from account_move_line_purchase_info/i18n/mn.po rename to account_netting/account_move_line_purchase_info/i18n/mn.po diff --git a/account_move_line_purchase_info/i18n/nb.po b/account_netting/account_move_line_purchase_info/i18n/nb.po similarity index 100% rename from account_move_line_purchase_info/i18n/nb.po rename to account_netting/account_move_line_purchase_info/i18n/nb.po diff --git a/account_move_line_purchase_info/i18n/nb_NO.po b/account_netting/account_move_line_purchase_info/i18n/nb_NO.po similarity index 100% rename from account_move_line_purchase_info/i18n/nb_NO.po rename to account_netting/account_move_line_purchase_info/i18n/nb_NO.po diff --git a/account_move_line_purchase_info/i18n/nl.po b/account_netting/account_move_line_purchase_info/i18n/nl.po similarity index 100% rename from account_move_line_purchase_info/i18n/nl.po rename to account_netting/account_move_line_purchase_info/i18n/nl.po diff --git a/account_move_line_purchase_info/i18n/nl_BE.po b/account_netting/account_move_line_purchase_info/i18n/nl_BE.po similarity index 100% rename from account_move_line_purchase_info/i18n/nl_BE.po rename to account_netting/account_move_line_purchase_info/i18n/nl_BE.po diff --git a/account_move_line_purchase_info/i18n/pl.po b/account_netting/account_move_line_purchase_info/i18n/pl.po similarity index 100% rename from account_move_line_purchase_info/i18n/pl.po rename to account_netting/account_move_line_purchase_info/i18n/pl.po diff --git a/account_move_line_purchase_info/i18n/pt.po b/account_netting/account_move_line_purchase_info/i18n/pt.po similarity index 100% rename from account_move_line_purchase_info/i18n/pt.po rename to account_netting/account_move_line_purchase_info/i18n/pt.po diff --git a/account_move_line_purchase_info/i18n/pt_BR.po b/account_netting/account_move_line_purchase_info/i18n/pt_BR.po similarity index 100% rename from account_move_line_purchase_info/i18n/pt_BR.po rename to account_netting/account_move_line_purchase_info/i18n/pt_BR.po diff --git a/account_move_line_purchase_info/i18n/pt_PT.po b/account_netting/account_move_line_purchase_info/i18n/pt_PT.po similarity index 100% rename from account_move_line_purchase_info/i18n/pt_PT.po rename to account_netting/account_move_line_purchase_info/i18n/pt_PT.po diff --git a/account_move_line_purchase_info/i18n/ro.po b/account_netting/account_move_line_purchase_info/i18n/ro.po similarity index 100% rename from account_move_line_purchase_info/i18n/ro.po rename to account_netting/account_move_line_purchase_info/i18n/ro.po diff --git a/account_move_line_purchase_info/i18n/ru.po b/account_netting/account_move_line_purchase_info/i18n/ru.po similarity index 100% rename from account_move_line_purchase_info/i18n/ru.po rename to account_netting/account_move_line_purchase_info/i18n/ru.po diff --git a/account_move_line_purchase_info/i18n/sk_SK.po b/account_netting/account_move_line_purchase_info/i18n/sk_SK.po similarity index 100% rename from account_move_line_purchase_info/i18n/sk_SK.po rename to account_netting/account_move_line_purchase_info/i18n/sk_SK.po diff --git a/account_move_line_purchase_info/i18n/sl.po b/account_netting/account_move_line_purchase_info/i18n/sl.po similarity index 100% rename from account_move_line_purchase_info/i18n/sl.po rename to account_netting/account_move_line_purchase_info/i18n/sl.po diff --git a/account_move_line_purchase_info/i18n/sv.po b/account_netting/account_move_line_purchase_info/i18n/sv.po similarity index 100% rename from account_move_line_purchase_info/i18n/sv.po rename to account_netting/account_move_line_purchase_info/i18n/sv.po diff --git a/account_move_line_purchase_info/i18n/th.po b/account_netting/account_move_line_purchase_info/i18n/th.po similarity index 100% rename from account_move_line_purchase_info/i18n/th.po rename to account_netting/account_move_line_purchase_info/i18n/th.po diff --git a/account_move_line_purchase_info/i18n/tr.po b/account_netting/account_move_line_purchase_info/i18n/tr.po similarity index 100% rename from account_move_line_purchase_info/i18n/tr.po rename to account_netting/account_move_line_purchase_info/i18n/tr.po diff --git a/account_move_line_purchase_info/i18n/tr_TR.po b/account_netting/account_move_line_purchase_info/i18n/tr_TR.po similarity index 100% rename from account_move_line_purchase_info/i18n/tr_TR.po rename to account_netting/account_move_line_purchase_info/i18n/tr_TR.po diff --git a/account_move_line_purchase_info/i18n/zh_CN.po b/account_netting/account_move_line_purchase_info/i18n/zh_CN.po similarity index 100% rename from account_move_line_purchase_info/i18n/zh_CN.po rename to account_netting/account_move_line_purchase_info/i18n/zh_CN.po diff --git a/account_move_line_purchase_info/i18n/zh_TW.po b/account_netting/account_move_line_purchase_info/i18n/zh_TW.po similarity index 100% rename from account_move_line_purchase_info/i18n/zh_TW.po rename to account_netting/account_move_line_purchase_info/i18n/zh_TW.po diff --git a/account_move_line_purchase_info/migrations/13.0.1.1.0/post-migration.py b/account_netting/account_move_line_purchase_info/migrations/13.0.1.1.0/post-migration.py similarity index 100% rename from account_move_line_purchase_info/migrations/13.0.1.1.0/post-migration.py rename to account_netting/account_move_line_purchase_info/migrations/13.0.1.1.0/post-migration.py diff --git a/account_move_line_purchase_info/models/__init__.py b/account_netting/account_move_line_purchase_info/models/__init__.py similarity index 100% rename from account_move_line_purchase_info/models/__init__.py rename to account_netting/account_move_line_purchase_info/models/__init__.py diff --git a/account_move_line_purchase_info/models/account_move.py b/account_netting/account_move_line_purchase_info/models/account_move.py similarity index 100% rename from account_move_line_purchase_info/models/account_move.py rename to account_netting/account_move_line_purchase_info/models/account_move.py diff --git a/account_move_line_purchase_info/models/purchase_order_line.py b/account_netting/account_move_line_purchase_info/models/purchase_order_line.py similarity index 100% rename from account_move_line_purchase_info/models/purchase_order_line.py rename to account_netting/account_move_line_purchase_info/models/purchase_order_line.py diff --git a/account_move_line_purchase_info/models/stock_move.py b/account_netting/account_move_line_purchase_info/models/stock_move.py similarity index 100% rename from account_move_line_purchase_info/models/stock_move.py rename to account_netting/account_move_line_purchase_info/models/stock_move.py diff --git a/account_move_line_purchase_info/readme/CONTRIBUTORS.rst b/account_netting/account_move_line_purchase_info/readme/CONTRIBUTORS.rst similarity index 100% rename from account_move_line_purchase_info/readme/CONTRIBUTORS.rst rename to account_netting/account_move_line_purchase_info/readme/CONTRIBUTORS.rst diff --git a/account_move_line_purchase_info/readme/DESCRIPTION.rst b/account_netting/account_move_line_purchase_info/readme/DESCRIPTION.rst similarity index 100% rename from account_move_line_purchase_info/readme/DESCRIPTION.rst rename to account_netting/account_move_line_purchase_info/readme/DESCRIPTION.rst diff --git a/account_move_line_purchase_info/readme/USAGE.rst b/account_netting/account_move_line_purchase_info/readme/USAGE.rst similarity index 100% rename from account_move_line_purchase_info/readme/USAGE.rst rename to account_netting/account_move_line_purchase_info/readme/USAGE.rst diff --git a/account_move_line_purchase_info/security/account_security.xml b/account_netting/account_move_line_purchase_info/security/account_security.xml similarity index 100% rename from account_move_line_purchase_info/security/account_security.xml rename to account_netting/account_move_line_purchase_info/security/account_security.xml diff --git a/account_move_line_purchase_info/static/description/icon.png b/account_netting/account_move_line_purchase_info/static/description/icon.png similarity index 100% rename from account_move_line_purchase_info/static/description/icon.png rename to account_netting/account_move_line_purchase_info/static/description/icon.png diff --git a/account_move_line_purchase_info/static/description/index.html b/account_netting/account_move_line_purchase_info/static/description/index.html similarity index 100% rename from account_move_line_purchase_info/static/description/index.html rename to account_netting/account_move_line_purchase_info/static/description/index.html diff --git a/account_move_line_purchase_info/tests/__init__.py b/account_netting/account_move_line_purchase_info/tests/__init__.py similarity index 100% rename from account_move_line_purchase_info/tests/__init__.py rename to account_netting/account_move_line_purchase_info/tests/__init__.py diff --git a/account_move_line_purchase_info/tests/test_account_move_line_purchase_info.py b/account_netting/account_move_line_purchase_info/tests/test_account_move_line_purchase_info.py similarity index 100% rename from account_move_line_purchase_info/tests/test_account_move_line_purchase_info.py rename to account_netting/account_move_line_purchase_info/tests/test_account_move_line_purchase_info.py diff --git a/account_move_line_purchase_info/views/account_move_view.xml b/account_netting/account_move_line_purchase_info/views/account_move_view.xml similarity index 100% rename from account_move_line_purchase_info/views/account_move_view.xml rename to account_netting/account_move_line_purchase_info/views/account_move_view.xml diff --git a/setup/account_document_reversal/odoo/addons/account_document_reversal b/setup/account_document_reversal/odoo/addons/account_document_reversal new file mode 120000 index 000000000..319ce9b9e --- /dev/null +++ b/setup/account_document_reversal/odoo/addons/account_document_reversal @@ -0,0 +1 @@ +../../../../account_document_reversal \ No newline at end of file diff --git a/setup/account_document_reversal/setup.py b/setup/account_document_reversal/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/account_document_reversal/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)