From fcbfb11b56266c3e4cb448150be20ac4e0f7bf13 Mon Sep 17 00:00:00 2001 From: esam Date: Mon, 5 Jan 2026 16:42:04 -0500 Subject: [PATCH] model --- .../abs_customer_validation/__init__.py | 3 + .../abs_customer_validation/__manifest__.py | 18 + .../models/__init__.py | 21 + .../models/res_partner.py | 49 + .../security/security.xml | 10 + .../static/description/banner.png | Bin 0 -> 52107 bytes .../static/description/company-logo.png | Bin 0 -> 33323 bytes .../static/description/icon.png | Bin 0 -> 99549 bytes .../static/description/index.html | 60 + .../abs_customer_validation/tests/__init__.py | 3 + .../tests/test_customer_validation.py | 72 ++ .../account_attachments/__init__.py | 1 + .../account_attachments/__manifest__.py | 20 + .../account_attachments/i18n/ar_001.po | 49 + .../account_attachments/models/__init__.py | 1 + .../models/account_move.py | 133 +++ .../static/description/icon.png | Bin 0 -> 32929 bytes .../views/account_move_view.xml | 22 + .../__init__.py | 2 + .../__manifest__.py | 17 + .../i18n/ar.po | 49 + .../models/__init__.py | 6 + .../models/account_move_line.py | 13 + .../models/account_tax.py | 30 + .../models/bank_rec_widget.py | 18 + .../models/bank_rec_widget_line.py | 34 + .../bank_reconciliation/bank_rec_form.xml | 39 + .../components/bank_reconciliation/kanban.js | 19 + .../tests/__init__.py | 2 + .../tests/test_account_fleet_tax_report.py | 62 + .../__init__.py | 3 + .../__manifest__.py | 27 + ...x30_account_disallowed_expenses_report.xml | 27 + .../i18n/ar.po | 227 ++++ .../models/__init__.py | 3 + .../models/odex30_account_account.py | 13 + .../odex30_account_disallowed_expenses.py | 78 ++ .../report/__init__.py | 2 + ...ex30_account_disallowed_expenses_report.py | 356 ++++++ .../security/ir.model.access.csv | 5 + ...0_account_disallowed_expenses_security.xml | 11 + .../disallowed_expenses_report/warnings.xml | 6 + .../views/odex30_account_account_views.xml | 25 + ...unt_disallowed_expenses_category_views.xml | 103 ++ ...count_disallowed_expenses_report_views.xml | 16 + .../__init__.py | 3 + .../__manifest__.py | 22 + ...count_disallowed_expenses_fleet_report.xml | 7 + .../i18n/ar.po | 144 +++ .../models/__init__.py | 6 + .../models/account_move.py | 25 + .../models/bank_rec_widget_line.py | 11 + .../models/fleet_vehicle.py | 18 + .../models/odex30_account_deferred_reports.py | 30 + .../odex30_account_disallowed_expenses.py | 15 + .../report/__init__.py | 4 + .../account_disallowed_expenses_report.py | 289 +++++ .../security/ir.model.access.csv | 4 + .../components/bank_reconciliation/kanban.js | 14 + .../filter_extra_options.xml | 14 + .../disallowed_expenses_report/filters.js | 8 + .../disallowed_expenses_report/filters.xml | 8 + .../disallowed_expenses_report/warnings.xml | 8 + .../tests/__init__.py | 5 + .../tests/test_account_move_fleet.py | 66 ++ .../tests/test_bank_rec_widget.py | 104 ++ .../tests/test_deferred_fleet.py | 154 +++ .../tests/test_disallowed_expenses_fleet.py | 476 ++++++++ ...unt_disallowed_expenses_category_views.xml | 25 + .../views/fleet_vehicle_views.xml | 21 + .../__init__.py | 2 + .../__manifest__.py | 23 + .../data/account_reports_data.xml | 39 + .../i18n/ar.po | 62 + .../models/__init__.py | 6 + .../models/account_move.py | 41 + .../models/account_move_line.py | 19 + .../models/account_report.py | 214 ++++ .../filter_extra_options.xml | 16 + .../components/cash_basis_report/filters.js | 23 + .../tests/__init__.py | 4 + .../tests/test_account_reports_cash_basis.py | 1049 +++++++++++++++++ .../views/account_report_view.xml | 13 + .../odex30_account_saft/__init__.py | 2 + .../odex30_account_saft/__manifest__.py | 25 + .../odex30_account_saft/data/saft_report.xml | 255 ++++ .../odex30_account_saft/i18n/ar.po | 109 ++ .../odex30_account_saft/models/__init__.py | 2 + .../models/account_general_ledger.py | 375 ++++++ .../general_ledger/filters/warnings.xml | 12 + .../odex30_account_saft/tests/__init__.py | 2 + .../odex30_account_saft/tests/common.py | 18 + 92 files changed, 5447 insertions(+) create mode 100644 dev_odex30_accounting/abs_customer_validation/__init__.py create mode 100644 dev_odex30_accounting/abs_customer_validation/__manifest__.py create mode 100644 dev_odex30_accounting/abs_customer_validation/models/__init__.py create mode 100644 dev_odex30_accounting/abs_customer_validation/models/res_partner.py create mode 100644 dev_odex30_accounting/abs_customer_validation/security/security.xml create mode 100644 dev_odex30_accounting/abs_customer_validation/static/description/banner.png create mode 100644 dev_odex30_accounting/abs_customer_validation/static/description/company-logo.png create mode 100644 dev_odex30_accounting/abs_customer_validation/static/description/icon.png create mode 100644 dev_odex30_accounting/abs_customer_validation/static/description/index.html create mode 100644 dev_odex30_accounting/abs_customer_validation/tests/__init__.py create mode 100644 dev_odex30_accounting/abs_customer_validation/tests/test_customer_validation.py create mode 100755 dev_odex30_accounting/account_attachments/__init__.py create mode 100755 dev_odex30_accounting/account_attachments/__manifest__.py create mode 100755 dev_odex30_accounting/account_attachments/i18n/ar_001.po create mode 100755 dev_odex30_accounting/account_attachments/models/__init__.py create mode 100755 dev_odex30_accounting/account_attachments/models/account_move.py create mode 100644 dev_odex30_accounting/account_attachments/static/description/icon.png create mode 100755 dev_odex30_accounting/account_attachments/views/account_move_view.xml create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/__manifest__.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/i18n/ar.po create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/models/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/models/account_move_line.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/models/account_tax.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget_line.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/bank_rec_form.xml create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/kanban.js create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/tests/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_accountant_fleet/tests/test_account_fleet_tax_report.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/__manifest__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/data/odex30_account_disallowed_expenses_report.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/i18n/ar.po create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/models/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_account.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_disallowed_expenses.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/report/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/report/odex30_account_disallowed_expenses_report.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/security/ir.model.access.csv create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/security/odex30_account_disallowed_expenses_security.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/static/src/components/disallowed_expenses_report/warnings.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_account_views.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_disallowed_expenses_category_views.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_disallowed_expenses_report_views.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/__manifest__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/data/account_disallowed_expenses_fleet_report.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/i18n/ar.po create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/models/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/models/account_move.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/models/bank_rec_widget_line.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/models/fleet_vehicle.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/models/odex30_account_deferred_reports.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/models/odex30_account_disallowed_expenses.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/report/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/report/account_disallowed_expenses_report.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/security/ir.model.access.csv create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/static/src/components/bank_reconciliation/kanban.js create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/static/src/components/disallowed_expenses_report/filter_extra_options.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/static/src/components/disallowed_expenses_report/filters.js create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/static/src/components/disallowed_expenses_report/filters.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/static/src/components/disallowed_expenses_report/warnings.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/tests/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/tests/test_account_move_fleet.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/tests/test_bank_rec_widget.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/tests/test_deferred_fleet.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/tests/test_disallowed_expenses_fleet.py create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/views/account_disallowed_expenses_category_views.xml create mode 100644 dev_odex30_accounting/odex30_account_disallowed_expenses_fleet/views/fleet_vehicle_views.xml create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/__manifest__.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/data/account_reports_data.xml create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/i18n/ar.po create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/models/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/models/account_move.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/models/account_move_line.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/models/account_report.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/static/src/components/cash_basis_report/filter_extra_options.xml create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/static/src/components/cash_basis_report/filters.js create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/tests/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/tests/test_account_reports_cash_basis.py create mode 100644 dev_odex30_accounting/odex30_account_reports_cash_basis/views/account_report_view.xml create mode 100644 dev_odex30_accounting/odex30_account_saft/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_saft/__manifest__.py create mode 100644 dev_odex30_accounting/odex30_account_saft/data/saft_report.xml create mode 100644 dev_odex30_accounting/odex30_account_saft/i18n/ar.po create mode 100644 dev_odex30_accounting/odex30_account_saft/models/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_saft/models/account_general_ledger.py create mode 100644 dev_odex30_accounting/odex30_account_saft/static/src/components/general_ledger/filters/warnings.xml create mode 100644 dev_odex30_accounting/odex30_account_saft/tests/__init__.py create mode 100644 dev_odex30_accounting/odex30_account_saft/tests/common.py diff --git a/dev_odex30_accounting/abs_customer_validation/__init__.py b/dev_odex30_accounting/abs_customer_validation/__init__.py new file mode 100644 index 0000000..fd46080 --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/__init__.py @@ -0,0 +1,3 @@ + +from . import models + diff --git a/dev_odex30_accounting/abs_customer_validation/__manifest__.py b/dev_odex30_accounting/abs_customer_validation/__manifest__.py new file mode 100644 index 0000000..5c062af --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/__manifest__.py @@ -0,0 +1,18 @@ + +{ + 'name': "Customer duplicate validation", + 'author': 'Ascetic Business Solution', + 'category': 'Odex30-Accounting/Odex25-Accounting', + 'summary': """Notify about duplicate while creating partner""", + 'website': 'http://www.asceticbs.com', + 'license': 'AGPL-3', + 'description': """ +""", + 'version': '18.0', + 'depends': ['base', 'sale'], + 'data': ['security/security.xml'], + 'images': ['static/description/banner.png'], + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/dev_odex30_accounting/abs_customer_validation/models/__init__.py b/dev_odex30_accounting/abs_customer_validation/models/__init__.py new file mode 100644 index 0000000..baed701 --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/models/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +################################################################################# +# +# Odoo, Open Source Management Solution +# Copyright (C) 2022-today Ascetic Business Solution +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################# +from . import res_partner diff --git a/dev_odex30_accounting/abs_customer_validation/models/res_partner.py b/dev_odex30_accounting/abs_customer_validation/models/res_partner.py new file mode 100644 index 0000000..94fa7f7 --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/models/res_partner.py @@ -0,0 +1,49 @@ + +from odoo import api,fields,models,_ +from odoo.exceptions import ValidationError + +class ResPartner(models.Model): + _inherit="res.partner" + + def get_partner_list(self,partner_objs): + partner_list = '' + for partner in partner_objs: + partner_list = partner_list + ' || ' + partner.name + return partner_list + + @api.onchange('name') + def onchange_name(self): + if self.name and self.env.user.has_group("abs_customer_validation.group_activate_customer_validation"): + if self.env['res.partner'].search([('name','=',self.name)]): + raise ValidationError(_('The record ' +self.name+' is already exist ')) + + @api.onchange('phone') + def onchange_phonenumber(self): + if self.phone and self.env.user.has_group("abs_customer_validation.group_activate_customer_validation"): + partner_objs = self.env['res.partner'].search([('phone','=',self.phone)]) + if self.get_partner_list(partner_objs): + raise ValidationError(_('Phone number '+str(self.phone)+' is already exist in the following records:' + '\n' + self.get_partner_list(partner_objs))) + + @api.onchange('mobile') + def onchange_mobilenumber(self): + if self.mobile and self.env.user.has_group("abs_customer_validation.group_activate_customer_validation"): + partner_objs = self.env['res.partner'].search([('mobile','=',self.mobile)]) + if self.get_partner_list(partner_objs): + raise ValidationError(_('Mobile number '+str(self.mobile)+' is already exist in the following records:' + '\n' + self.get_partner_list(partner_objs))) + + @api.onchange('email') + def onchange_email(self): + if self.email and self.env.user.has_group("abs_customer_validation.group_activate_customer_validation"): + partner_objs = self.env['res.partner'].search([('email','=',self.email)]) + if self.get_partner_list(partner_objs): + raise ValidationError(_('Email number '+str(self.email)+' is already exist in the following records:' + '\n' + self.get_partner_list(partner_objs))) + + @api.onchange('website') + def onchange_website(self): + if self.website and self.env.user.has_group("abs_customer_validation.group_activate_customer_validation"): + website_id = "http://"+str(self.website) + partner_objs = self.env['res.partner'].search([('website','=',website_id)]) + if self.get_partner_list(partner_objs): + raise ValidationError(_('Website number '+str(self.website)+' is already exist in the following records:' + '\n' + self.get_partner_list(partner_objs))) + + diff --git a/dev_odex30_accounting/abs_customer_validation/security/security.xml b/dev_odex30_accounting/abs_customer_validation/security/security.xml new file mode 100644 index 0000000..aa7b1fa --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/security/security.xml @@ -0,0 +1,10 @@ + + + + + Activate customer validation + + + + + diff --git a/dev_odex30_accounting/abs_customer_validation/static/description/banner.png b/dev_odex30_accounting/abs_customer_validation/static/description/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..c9360f5bd0316d435e622a928610d90996e0ad52 GIT binary patch literal 52107 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�W0X+?iYMD2j+b+%~##1Rk8%U!ab-y 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 M07*qoM6N<$f&?3)Z2$lO literal 0 HcmV?d00001 diff --git a/dev_odex30_accounting/abs_customer_validation/static/description/company-logo.png b/dev_odex30_accounting/abs_customer_validation/static/description/company-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fee9f34aec2c7a893bf7eac8d8cbe107414350a0 GIT binary patch literal 33323 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%0D6O3W+&zW%~d?V7sirI)`oOatAUW$GuHD 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%0A%F}ey_`a zA38fjbZx>lQLW z8Ow;Rt*uvpxDdBRfAQja$*PuI^mh#g(r3(MaCmq=v~g)^$+~ollzpz@p_E=8Nkl|M z95QXGYiCs~Hc0sC!~aZcO{rCT&?_rLY|*MJDiWSm=T_Sa50#O}LGylu?S6g9xuu=6 zAt~dfV_OjTJ4&*>bo;u~Z5Lg^$i13x-y*e&kfmM6HQpjM zAn0Vzt^=GR0dD{6OwU`_-3USdhci`_heyGgf$TPk{;s;tPDB?qKVNXQ!0)?i`S)?j z@{$qVbmMN#l19INIj}a++JNnGDn~q}|2nrfD7Az^TL)G45k@y~P9WKl~(t zTkmM)X)U`a8a9gTl`;>WEQ+`tIACGQ6|d8M@JC2uYNsAO)?sxyWZf$q8Ln=~5n2?? P9{A}~Rwi#Sj(7eCbn(vw literal 0 HcmV?d00001 diff --git a/dev_odex30_accounting/abs_customer_validation/static/description/index.html b/dev_odex30_accounting/abs_customer_validation/static/description/index.html new file mode 100644 index 0000000..3b5d081 --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/static/description/index.html @@ -0,0 +1,60 @@ + + + +

+
+
+

Notify about duplicate while creating partner

+
+
+

+ This module will help you to activate the validation on the partner. Check 'Activate customer validation' access group from the user. This validation helps to take preventive steps to stop creating the duplicate partners. Odoo will notify the user instantly with the list of records which are potentially duplicate while they are adding information (like Name, Phone, Mobile, Fax, Email, Website) on the customer. Please note, this moduel is not to stop creating duplicate partner but notify the user so they should be aware about possible duplication while creating the partner. +

+ +
+
+
+ +
+ +

Need help?

+ +
+ + + +
+ +
+ +
+ + + + +
+ + +
+ + + diff --git a/dev_odex30_accounting/abs_customer_validation/tests/__init__.py b/dev_odex30_accounting/abs_customer_validation/tests/__init__.py new file mode 100644 index 0000000..ead79c9 --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/tests/__init__.py @@ -0,0 +1,3 @@ + +from . import test_customer_validation + diff --git a/dev_odex30_accounting/abs_customer_validation/tests/test_customer_validation.py b/dev_odex30_accounting/abs_customer_validation/tests/test_customer_validation.py new file mode 100644 index 0000000..cc51d81 --- /dev/null +++ b/dev_odex30_accounting/abs_customer_validation/tests/test_customer_validation.py @@ -0,0 +1,72 @@ +from odoo.tests import common, tagged +from odoo.exceptions import ValidationError + + +@tagged('post_install', '-at_install') +class TestCustomerValidation(common.TransactionCase): + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.user_no_group = cls.env['res.users'].sudo().create({ + 'name': 'User No Group', 'login': 'no_group', 'email': 'no@group.com' + }) + cls.user_with_group = cls.env['res.users'].sudo().create({ + 'name': 'User With Group', 'login': 'with_group', 'email': 'with@group.com' + }) + + cls.group = cls.env.ref('abs_customer_validation.group_activate_customer_validation') + cls.group.sudo().users |= cls.user_with_group + + cls.existing_partner1 = cls.env['res.partner'].sudo().create({ + 'name': 'Existing Partner 1', 'phone': '+1234567890', 'mobile': '+1987654321', + 'email': 'test@example.com', 'website': 'http://test.com' + }) + cls.existing_partner2 = cls.env['res.partner'].sudo().create({ + 'name': 'Existing Partner 2', 'phone': '+1234567890' + }) + + def test_onchange_name_no_group(self): + partner = self.env['res.partner'].with_user(self.user_no_group.id).new({'name': 'Existing Partner 1'}) + partner.onchange_name() # لا خطأ + + def test_onchange_name_with_group(self): + partner = self.env['res.partner'].with_user(self.user_with_group.id).new({'name': 'Existing Partner 1'}) + with self.assertRaises(ValidationError): + partner.onchange_name() + + def test_onchange_phone_no_group(self): + partner = self.env['res.partner'].with_user(self.user_no_group.id).new({'phone': '+1234567890'}) + partner.onchange_phonenumber() # لا خطأ + + def test_onchange_phone_with_group(self): + partner = self.env['res.partner'].with_user(self.user_with_group.id).new({'phone': '+1234567890'}) + with self.assertRaises(ValidationError) as cm: + partner.onchange_phonenumber() + self.assertIn('Existing Partner 1', str(cm.exception)) + self.assertIn('Existing Partner 2', str(cm.exception)) + + def test_onchange_phone_unique(self): + partner = self.env['res.partner'].with_user(self.user_with_group.id).new({'phone': '+9999999999'}) + partner.onchange_phonenumber() # يمر + + def test_onchange_mobile_with_group(self): + partner = self.env['res.partner'].with_user(self.user_with_group.id).new({'mobile': '+1987654321'}) + with self.assertRaises(ValidationError): + partner.onchange_mobilenumber() + + def test_onchange_email_with_group(self): + partner = self.env['res.partner'].with_user(self.user_with_group.id).new({'email': 'test@example.com'}) + with self.assertRaises(ValidationError): + partner.onchange_email() + + def test_onchange_website_with_group(self): + partner = self.env['res.partner'].with_user(self.user_with_group.id).new({'website': 'test.com'}) + with self.assertRaises(ValidationError): + partner.onchange_website() + + def test_empty_fields(self): + partner = self.env['res.partner'].with_user(self.user_with_group.id).new({}) + partner.onchange_name() + partner.onchange_phonenumber() + partner.onchange_email() # كلها تمر diff --git a/dev_odex30_accounting/account_attachments/__init__.py b/dev_odex30_accounting/account_attachments/__init__.py new file mode 100755 index 0000000..0650744 --- /dev/null +++ b/dev_odex30_accounting/account_attachments/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/dev_odex30_accounting/account_attachments/__manifest__.py b/dev_odex30_accounting/account_attachments/__manifest__.py new file mode 100755 index 0000000..8eac71b --- /dev/null +++ b/dev_odex30_accounting/account_attachments/__manifest__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +{ + 'name': "Account Attachments", + 'version': '18.0.1.0.0', + 'category': 'Account', + 'summary': 'Helps to view all documents attached to account', + 'description': """account Attachments module allows user to view + all the documents attached to account.""", + 'company': 'Expert', + 'website': 'https://www.expert.com', + 'depends': ['base','account'], + 'data': [ + 'views/account_move_view.xml' + ], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/dev_odex30_accounting/account_attachments/i18n/ar_001.po b/dev_odex30_accounting/account_attachments/i18n/ar_001.po new file mode 100755 index 0000000..3389398 --- /dev/null +++ b/dev_odex30_accounting/account_attachments/i18n/ar_001.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_attachments +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-01-05 15:34+0000\n" +"PO-Revision-Date: 2026-01-05 15:34+0000\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: account_attachments +#: model:ir.model.fields,field_description:account_attachments.field_account_bank_statement_line__attach_no +#: model:ir.model.fields,field_description:account_attachments.field_account_move__attach_no +msgid "Attach No" +msgstr "مرفق" + +#. module: account_attachments +#: model_terms:ir.ui.view,arch_db:account_attachments.account_move_view +msgid "Documents" +msgstr "المرفقات" + +#. module: account_attachments +#: model:ir.model,name:account_attachments.model_account_move +msgid "Journal Entry" +msgstr "قيد اليومية" + +#. module: account_attachments +#: model_terms:ir.ui.view,arch_db:account_attachments.account_move_view +msgid "Model Info" +msgstr "" + +#. module: account_attachments +#: model:ir.model.fields,field_description:account_attachments.field_account_bank_statement_line__res_id +#: model:ir.model.fields,field_description:account_attachments.field_account_move__res_id +msgid "Res" +msgstr "" + +#. module: account_attachments +#: model:ir.model.fields,field_description:account_attachments.field_account_bank_statement_line__res_model +#: model:ir.model.fields,field_description:account_attachments.field_account_move__res_model +msgid "Res Model" +msgstr "" \ No newline at end of file diff --git a/dev_odex30_accounting/account_attachments/models/__init__.py b/dev_odex30_accounting/account_attachments/models/__init__.py new file mode 100755 index 0000000..9c0a421 --- /dev/null +++ b/dev_odex30_accounting/account_attachments/models/__init__.py @@ -0,0 +1 @@ +from . import account_move diff --git a/dev_odex30_accounting/account_attachments/models/account_move.py b/dev_odex30_accounting/account_attachments/models/account_move.py new file mode 100755 index 0000000..7aebf76 --- /dev/null +++ b/dev_odex30_accounting/account_attachments/models/account_move.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- +from odoo import api, fields, models + +class AccountMove(models.Model): + + _inherit = 'account.move' + + attach_no = fields.Integer(compute='get_attachments') + res_id = fields.Integer() + res_model = fields.Char() + + def get_attachments(self): + print("=== get_attachments START ===") + Attachment = self.env['ir.attachment'] + action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment') + + if len(self) > 1: + print("Multiple records mode - len:", len(self)) + all_models_ids = set() + + for record in self: + related_pairs = set() + related_pairs.add((record._name, record.id)) + + # PO مباشر أو تلقائي من origin/ref + po_id = record.purchase_id.id if record.purchase_id else False + if not po_id and record.invoice_origin: + po = self.env['purchase.order'].search([('name', '=', record.invoice_origin)], limit=1) + if po: + po_id = po.id + print("Auto-found PO by origin:", po_id) + elif not po_id and record.ref: + po = self.env['purchase.order'].search([('name', '=', record.ref)], limit=1) + if po: + po_id = po.id + print("Auto-found PO by ref:", po_id) + + if po_id: + po = self.env['purchase.order'].browse(po_id) + related_pairs.add((po._name, po.id)) + print("Added PO:", (po._name, po.id)) + + # Request ID - آمن + if hasattr(po, 'request_id') and po.request_id: + related_pairs.add((po.request_id._name, po.request_id.id)) + print("Added request:", (po.request_id._name, po.request_id.id)) + else: + print("NO request_id") + + # Requisition ID - آمن + if hasattr(po, + 'requisition_id') and po.requisition_id and po.requisition_id._name == 'purchase.requisition': + related_pairs.add(('purchase.requisition', po.requisition_id.id)) + print("Added requisition:", ('purchase.requisition', po.requisition_id.id)) + else: + print("NO requisition_id") + + # Confirmation IDs - آمن + if hasattr(po, 'confirmation_ids') and po.confirmation_ids: + for conf in po.confirmation_ids: + related_pairs.add(('budget.confirmation', conf.id)) + print("Added confirmation:", ('budget.confirmation', conf.id)) + else: + print("NO confirmation_ids") + + print("Record related_pairs:", related_pairs) + all_models_ids.update(related_pairs) + + # Build domain... + domain = [] + pairs = list(all_models_ids) + if pairs: + domain = ['|'] * (len(pairs) - 1) + for model, res_id in pairs: + domain.extend(['&', ('res_model', '=', model), ('res_id', '=', res_id)]) + + action['domain'] = domain + action['context'] = {'default_res_model': self[0]._name, 'default_res_id': self[0].id} + + for record in self: + record.attach_no = Attachment.search_count( + [('res_model', '=', record._name), ('res_id', '=', record.id)]) + print("=== MULTIPLE END ===") + return action + + # Single record - تلقائي + self.ensure_one() + print("SINGLE RECORD ID:", self.id) + print("invoice_origin:", self.invoice_origin, "ref:", self.ref) + + related_pairs = [(self._name, self.id)] + + # PO تلقائي + po_id = self.purchase_id.id if self.purchase_id else False + if not po_id and self.invoice_origin: + po = self.env['purchase.order'].search([('name', '=', self.invoice_origin)], limit=1) + if po: po_id = po.id + elif not po_id and self.ref: + po = self.env['purchase.order'].search([('name', '=', self.ref)], limit=1) + if po: po_id = po.id + + if po_id: + po = self.env['purchase.order'].browse(po_id) + related_pairs.append((po._name, po.id)) + print("Auto-linked PO:", po_id) + + if hasattr(po, 'request_id') and po.request_id: + related_pairs.append((po.request_id._name, po.request_id.id)) + if hasattr(po, + 'requisition_id') and po.requisition_id and po.requisition_id._name == 'purchase.requisition': + related_pairs.append(('purchase.requisition', po.requisition_id.id)) + if hasattr(po, 'confirmation_ids') and po.confirmation_ids: + for conf in po.confirmation_ids: + related_pairs.append(('budget.confirmation', conf.id)) + + # Domain + domain = [] + if len(related_pairs) > 1: + domain = ['|'] * (len(related_pairs) - 1) + for model, res_id in related_pairs: + domain.extend(['&', ('res_model', '=', model), ('res_id', '=', res_id)]) + else: + domain = [('res_model', '=', self._name), ('res_id', '=', self.id)] + + action['domain'] = domain + action['context'] = {'default_res_model': self._name, 'default_res_id': self.id} + self.attach_no = Attachment.search_count(domain) + print("attach_no:", self.attach_no, "Domain covers:", related_pairs) + print("=== END ===") + return action + + + diff --git a/dev_odex30_accounting/account_attachments/static/description/icon.png b/dev_odex30_accounting/account_attachments/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4141f52daab6a780510b5f4e3dd762511add78fa GIT binary patch literal 32929 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 OgtWK + + account.move.inherit.form.attachment + account.move + + + + + + + + + + + + + + diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/__init__.py b/dev_odex30_accounting/odex30_account_accountant_fleet/__init__.py new file mode 100644 index 0000000..a9e3372 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/__init__.py @@ -0,0 +1,2 @@ + +from . import models diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/__manifest__.py b/dev_odex30_accounting/odex30_account_accountant_fleet/__manifest__.py new file mode 100644 index 0000000..f76193b --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/__manifest__.py @@ -0,0 +1,17 @@ + +{ + 'name': 'Fleet bridge', + 'category': 'Odex30-Accounting/Odex30-Accounting', + 'author': "Expert Co. Ltd.", + 'website': "http://www.exp-sa.com", + 'summary': 'Manage accounting with fleet features', + 'version': '1.0', + 'depends': ['account_fleet', 'odex30_account_accountant'], + 'assets': { + 'web.assets_backend': [ + 'odex30_account_accountant_fleet/static/src/components/**/*', + ], + }, + 'license': 'OEEL-1', + 'auto_install': True, +} diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/i18n/ar.po b/dev_odex30_accounting/odex30_account_accountant_fleet/i18n/ar.po new file mode 100644 index 0000000..927dfa2 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/i18n/ar.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * odex30_account_accountant_fleet +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-01-05 17:12+0000\n" +"PO-Revision-Date: 2026-01-05 17:12+0000\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: odex30_account_accountant_fleet +#: model:ir.model,name:odex30_account_accountant_fleet.model_bank_rec_widget +msgid "Bank reconciliation widget for a single statement line" +msgstr "أداة التسوية البنكية لبند كشف حساب واحد " + +#. module: odex30_account_accountant_fleet +#: model:ir.model,name:odex30_account_accountant_fleet.model_account_move_line +msgid "Journal Item" +msgstr "عنصر اليومية" + +#. module: odex30_account_accountant_fleet +#: model:ir.model,name:odex30_account_accountant_fleet.model_bank_rec_widget_line +msgid "Line of the bank reconciliation widget" +msgstr "بند أداة التسوية البنكية " + +#. module: odex30_account_accountant_fleet +#: model:ir.model,name:odex30_account_accountant_fleet.model_account_tax +msgid "Tax" +msgstr "الضريبة" + +#. module: odex30_account_accountant_fleet +#. odoo-javascript +#: code:addons/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/bank_rec_form.xml:0 +#: code:addons/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/kanban.js:0 +#: model:ir.model.fields,field_description:odex30_account_accountant_fleet.field_bank_rec_widget_line__vehicle_id +msgid "Vehicle" +msgstr "" + +#. module: odex30_account_accountant_fleet +#: model:ir.model.fields,field_description:odex30_account_accountant_fleet.field_bank_rec_widget_line__vehicle_required +msgid "Vehicle Required" +msgstr "" \ No newline at end of file diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/models/__init__.py b/dev_odex30_accounting/odex30_account_accountant_fleet/models/__init__.py new file mode 100644 index 0000000..9aacc58 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/models/__init__.py @@ -0,0 +1,6 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import account_move_line +from . import account_tax +from . import bank_rec_widget +from . import bank_rec_widget_line diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/models/account_move_line.py b/dev_odex30_accounting/odex30_account_accountant_fleet/models/account_move_line.py new file mode 100644 index 0000000..e04624d --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/models/account_move_line.py @@ -0,0 +1,13 @@ + +from odoo import api, models +from odoo.tools import SQL + + +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' + + @api.model + def _get_extra_query_base_tax_line_mapping(self) -> SQL: + + query = super()._get_extra_query_base_tax_line_mapping() + return SQL("%s AND COALESCE(base_line.vehicle_id, 0) = COALESCE(account_move_line.vehicle_id, 0)", query) diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/models/account_tax.py b/dev_odex30_accounting/odex30_account_accountant_fleet/models/account_tax.py new file mode 100644 index 0000000..695fd28 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/models/account_tax.py @@ -0,0 +1,30 @@ + +from odoo import models + +class AccountTax(models.Model): + _inherit = 'account.tax' + + def _prepare_base_line_for_taxes_computation(self, record, **kwargs): + results = super()._prepare_base_line_for_taxes_computation(record, **kwargs) + results['vehicle_id'] = self._get_base_line_field_value_from_record(record, 'vehicle_id', kwargs, self.env['fleet.vehicle']) + return results + + def _prepare_tax_line_for_taxes_computation(self, record, **kwargs): + results = super()._prepare_tax_line_for_taxes_computation(record, **kwargs) + results['vehicle_id'] = self._get_base_line_field_value_from_record(record, 'vehicle_id', kwargs, self.env['fleet.vehicle']) + return results + + def _prepare_base_line_grouping_key(self, base_line): + results = super()._prepare_base_line_grouping_key(base_line) + results['vehicle_id'] = base_line['vehicle_id'].id + return results + + def _prepare_base_line_tax_repartition_grouping_key(self, base_line, base_line_grouping_key, tax_data, tax_rep_data): + results = super()._prepare_base_line_tax_repartition_grouping_key(base_line, base_line_grouping_key, tax_data, tax_rep_data) + results['vehicle_id'] = base_line_grouping_key['vehicle_id'] if not tax_rep_data['tax_rep'].use_in_tax_closing else False + return results + + def _prepare_tax_line_repartition_grouping_key(self, tax_line): + results = super()._prepare_tax_line_repartition_grouping_key(tax_line) + results['vehicle_id'] = tax_line['vehicle_id'].id + return results diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget.py b/dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget.py new file mode 100644 index 0000000..2536f99 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget.py @@ -0,0 +1,18 @@ + +from odoo import models + + +class BankRecWidget(models.Model): + _inherit = 'bank.rec.widget' + + def _lines_prepare_tax_line(self, tax_line_vals): + results = super()._lines_prepare_tax_line(tax_line_vals) + results['vehicle_id'] = tax_line_vals['vehicle_id'] + return results + + def _line_value_changed_vehicle_id(self, line): + self.ensure_one() + self._lines_turn_auto_balance_into_manual_line(line) + + if line.flag != 'tax_line': + self._lines_recompute_taxes() diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget_line.py b/dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget_line.py new file mode 100644 index 0000000..01d93e7 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/models/bank_rec_widget_line.py @@ -0,0 +1,34 @@ + +from odoo import api, fields, models + + +class BankRecWidgetLine(models.Model): + _inherit = 'bank.rec.widget.line' + + vehicle_id = fields.Many2one( + comodel_name='fleet.vehicle', + compute='_compute_vehicle_id', + store=True, + readonly=False, + domain="[('company_id', '=', company_id)]" + ) + vehicle_required = fields.Boolean( + compute='_compute_vehicle_required', + ) + + @api.depends('source_aml_id') + def _compute_vehicle_id(self): + for line in self: + if line.flag == 'aml': + line.vehicle_id = line.source_aml_id.vehicle_id + else: + line.vehicle_id = line.vehicle_id + + def _compute_vehicle_required(self): + self.vehicle_required = False + + def _get_aml_values(self, **kwargs): + return super()._get_aml_values( + **kwargs, + vehicle_id=self.vehicle_id.id, + ) diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/bank_rec_form.xml b/dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/bank_rec_form.xml new file mode 100644 index 0000000..02b0a05 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/bank_rec_form.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + +
+
+ +
+
+
+ +
+
+
+
+
+
diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/kanban.js b/dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/kanban.js new file mode 100644 index 0000000..5cc2be4 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/static/src/components/bank_reconciliation/kanban.js @@ -0,0 +1,19 @@ +/** @odoo-module **/ + +import { _t } from "@web/core/l10n/translation"; +import { patch } from "@web/core/utils/patch"; + +import { BankRecKanbanController } from "@odex30_account_accountant/components/bank_reconciliation/kanban"; + +patch(BankRecKanbanController.prototype, { + getOne2ManyColumns() { + const columns = super.getOne2ManyColumns(...arguments); + const lineIdsRecords = this.state.bankRecRecordData.line_ids.records; + + if (lineIdsRecords.some((r) => r.data.vehicle_id || r.data.vehicle_required)) { + const debit_col_index = columns.findIndex((col) => col[0] === "debit"); + columns.splice(debit_col_index, 0, ["vehicle", _t("Vehicle")]); + } + return columns; + } +}); diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/tests/__init__.py b/dev_odex30_accounting/odex30_account_accountant_fleet/tests/__init__.py new file mode 100644 index 0000000..8bb973b --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/tests/__init__.py @@ -0,0 +1,2 @@ + +from . import test_account_fleet_tax_report diff --git a/dev_odex30_accounting/odex30_account_accountant_fleet/tests/test_account_fleet_tax_report.py b/dev_odex30_accounting/odex30_account_accountant_fleet/tests/test_account_fleet_tax_report.py new file mode 100644 index 0000000..10c8560 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_accountant_fleet/tests/test_account_fleet_tax_report.py @@ -0,0 +1,62 @@ + +from odoo import Command +from odoo.addons.account.tests.test_account_move_line_tax_details import TestAccountTaxDetailsReport +from odoo.tests import tagged + + +@tagged('post_install', '-at_install') +class TestAccountFleet(TestAccountTaxDetailsReport): + + def test_tax_report_with_vehicle_split_repartition(self): + + self.env.user.groups_id += self.env.ref('fleet.fleet_group_manager') + brand = self.env["fleet.vehicle.model.brand"].create({"name": "Audi"}) + model = self.env["fleet.vehicle.model"].create({"brand_id": brand.id, "name": "A3"}) + cars = self.env["fleet.vehicle"].create([ + {"model_id": model.id, "plan_to_change_car": False}, + {"model_id": model.id, "plan_to_change_car": False}, + ]) + + expense_account = self.company_data['default_account_expense'] + asset_account = self.company_data['default_account_deferred_expense'] + + tax = self.env['account.tax'].create({ + 'name': 'Split Tax', + 'amount': 10, + 'invoice_repartition_line_ids': [ + Command.create({'repartition_type': 'base', 'factor_percent': 100}), + Command.create({'repartition_type': 'tax', 'factor_percent': 50, 'account_id': expense_account.id}), + Command.create({'repartition_type': 'tax', 'factor_percent': 50, 'account_id': asset_account.id}), + ], + 'refund_repartition_line_ids': [ + Command.create({'repartition_type': 'base', 'factor_percent': 100}), + Command.create({'repartition_type': 'tax', 'factor_percent': 50, 'account_id': expense_account.id}), + Command.create({'repartition_type': 'tax', 'factor_percent': 50, 'account_id': asset_account.id}), + ], + }) + + bill = self.init_invoice('in_invoice', invoice_date='2025-10-16', post=False) + bill.write({ + 'invoice_line_ids': [ + Command.create({ + 'product_id': self.product_a.id, + 'account_id': expense_account.id, + 'price_unit': 100, + 'tax_ids': [Command.set(tax.ids)], + 'vehicle_id': cars[0].id + }), + Command.create({ + 'product_id': self.product_a.id, + 'account_id': expense_account.id, + 'price_unit': 100, + 'tax_ids': [Command.set(tax.ids)], + 'vehicle_id': cars[1].id + }), + ] + }) + bill.action_post() + + tax_details = self._get_tax_details() + self.assertEqual(len(tax_details), 2) + for line in tax_details: + self.assertEqual(line['tax_amount'], 5) diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/__init__.py b/dev_odex30_accounting/odex30_account_disallowed_expenses/__init__.py new file mode 100644 index 0000000..ba41f76 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/__init__.py @@ -0,0 +1,3 @@ + +from . import models +from . import report diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/__manifest__.py b/dev_odex30_accounting/odex30_account_disallowed_expenses/__manifest__.py new file mode 100644 index 0000000..8e89c4c --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/__manifest__.py @@ -0,0 +1,27 @@ + +{ + 'name': 'Disallowed Expenses', + 'category': 'Odex23-Accounting/Odex23-Accounting', + 'author': "Expert Co. Ltd.", + 'website': "http://www.exp-sa.com", + 'summary': 'Manage disallowed expenses', + 'description': 'Manage disallowed expenses', + 'version': '1.0', + 'depends': ['odex30_account_reports'], + 'data': [ + 'data/odex30_account_disallowed_expenses_report.xml', + 'security/ir.model.access.csv', + 'security/odex30_account_disallowed_expenses_security.xml', + 'views/odex30_account_account_views.xml', + 'views/odex30_account_disallowed_expenses_category_views.xml', + 'views/odex30_account_disallowed_expenses_report_views.xml', + ], + 'installable': True, + 'auto_install': True, + 'license': 'OEEL-1', + 'assets': { + 'web.assets_backend': [ + 'odex30_account_disallowed_expenses/static/src/components/**/*', + ], + }, +} diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/data/odex30_account_disallowed_expenses_report.xml b/dev_odex30_accounting/odex30_account_disallowed_expenses/data/odex30_account_disallowed_expenses_report.xml new file mode 100644 index 0000000..514c926 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/data/odex30_account_disallowed_expenses_report.xml @@ -0,0 +1,27 @@ + + + + Disallowed Expenses Report + selector + + + previous_year + + + + + Total Amount + total_amount + + + Rate + rate + percentage + + + Disallowed Amount + disallowed_amount + + + + diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/i18n/ar.po b/dev_odex30_accounting/odex30_account_disallowed_expenses/i18n/ar.po new file mode 100644 index 0000000..eda4213 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/i18n/ar.po @@ -0,0 +1,227 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * odex30_account_disallowed_expenses +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-01-05 16:46+0000\n" +"PO-Revision-Date: 2026-01-05 16:46+00:00\n" +"Last-Translator: Expert SA\n" +"Language-Team: Arabic Team\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n<3?n%10==1?0:n%10>=3?1:n%10==2?2:n==0?3:n==1?4:5:3;\n" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model,name:odex30_account_disallowed_expenses.model_account_account +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__account_ids +msgid "Account" +msgstr "الحساب" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__active +msgid "Active" +msgstr "نشط" + +#. module: odex30_account_disallowed_expenses +#: model_terms:ir.actions.act_window,help:odex30_account_disallowed_expenses.action_odex30_account_disallowed_expenses_category_list +msgid "Add a Disallowed Expenses Category" +msgstr "إضافة فئة مصروفات ممنوعة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__category_id +msgid "Category" +msgstr "الفئة" + +#. module: odex30_account_disallowed_expenses +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_form +msgid "Category Name" +msgstr "اسم الفئة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__code +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_form +msgid "Code" +msgstr "الرمز" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__company_id +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__company_id +msgid "Company" +msgstr "الشركة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__create_uid +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__create_uid +msgid "Created by" +msgstr "أُنشئ بواسطة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__create_date +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__create_date +msgid "Created on" +msgstr "تاريخ الإنشاء" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__current_rate +msgid "Current Rate" +msgstr "المعدل الحالي" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__rate +msgid "Disallowed %" +msgstr "نسبة الممنوع %" + +#. module: odex30_account_disallowed_expenses +#: model:account.report.column,name:odex30_account_disallowed_expenses.disallowed_expenses_report_disallowed_amount +msgid "Disallowed Amount" +msgstr "المبلغ الممنوع" + +#. module: odex30_account_disallowed_expenses +#: model:ir.ui.menu,name:odex30_account_disallowed_expenses.menu_action_account_report_de +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_account_form +msgid "Disallowed Expenses" +msgstr "المصروفات الممنوعة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.actions.act_window,name:odex30_account_disallowed_expenses.action_odex30_account_disallowed_expenses_category_list +#: model:ir.ui.menu,name:odex30_account_disallowed_expenses.menu_action_odex30_account_disallowed_expenses_category_list +msgid "Disallowed Expenses Categories" +msgstr "فئات المصروفات الممنوعة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model,name:odex30_account_disallowed_expenses.model_account_disallowed_expenses_category +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_account__disallowed_expenses_category_id +msgid "Disallowed Expenses Category" +msgstr "فئة المصروفات الممنوعة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model,name:odex30_account_disallowed_expenses.model_account_disallowed_expenses_report_handler +msgid "Disallowed Expenses Custom Handler" +msgstr "معالج مخصص للمصروفات الممنوعة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model,name:odex30_account_disallowed_expenses.model_account_disallowed_expenses_rate +msgid "Disallowed Expenses Rate" +msgstr "معدل المصروفات الممنوعة" + +#. module: odex30_account_disallowed_expenses +#: model:account.report,name:odex30_account_disallowed_expenses.disallowed_expenses_report +#: model:ir.actions.client,name:odex30_account_disallowed_expenses.action_account_report_de +msgid "Disallowed Expenses Report" +msgstr "تقرير المصروفات الممنوعة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.constraint,message:odex30_account_disallowed_expenses.constraint_account_disallowed_expenses_category_unique_code +msgid "Disallowed expenses category code should be unique." +msgstr "رمز فئة المصروفات الممنوعة يجب أن يكون فريداً." + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__display_name +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__display_name +msgid "Display Name" +msgstr "اسم العرض" + +#. module: odex30_account_disallowed_expenses +#. odoo-python +#: code:addons/odex30_account_disallowed_expenses/report/odex30_account_disallowed_expenses_report.py:0 +msgid "General Ledger" +msgstr "الدفتر الرئيسي" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__id +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__id +msgid "ID" +msgstr "المعرف" + +#. module: odex30_account_disallowed_expenses +#. odoo-python +#: code:addons/odex30_account_disallowed_expenses/report/odex30_account_disallowed_expenses_report.py:0 +msgid "Journal Items" +msgstr "عناصر اليومية" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__write_uid +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__write_uid +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__write_date +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__write_date +msgid "Last Updated on" +msgstr "تاريخ آخر تحديث" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__name +msgid "Name" +msgstr "الاسم" + +#. module: odex30_account_disallowed_expenses +#. odoo-python +#: code:addons/odex30_account_disallowed_expenses/models/odex30_account_disallowed_expenses.py:0 +msgid "No Rate" +msgstr "لا يوجد معدل" + +#. module: odex30_account_disallowed_expenses +#: model:account.report.column,name:odex30_account_disallowed_expenses.disallowed_expenses_report_rate +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__rate_ids +msgid "Rate" +msgstr "المعدل" + +#. module: odex30_account_disallowed_expenses +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_form +msgid "Rates" +msgstr "المعدلات" + +#. module: odex30_account_disallowed_expenses +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_form +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_tree +msgid "Related Account(s)" +msgstr "الحسابات المرتبطة" + +#. module: odex30_account_disallowed_expenses +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_tree +msgid "Set Rates" +msgstr "تعيين المعدلات" + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,help:odex30_account_disallowed_expenses.field_account_disallowed_expenses_category__active +msgid "Set active to false to hide the category without removing it." +msgstr "اضبط النشط على كاذب لإخفاء الفئة دون حذفها." + +#. module: odex30_account_disallowed_expenses +#: model:ir.model.fields,field_description:odex30_account_disallowed_expenses.field_account_disallowed_expenses_rate__date_from +msgid "Start Date" +msgstr "تاريخ البدء" + +#. module: odex30_account_disallowed_expenses +#. odoo-javascript +#: code:addons/odex30_account_disallowed_expenses/static/src/components/disallowed_expenses_report/warnings.xml:0 +msgid "There are multiple disallowed expenses rates in this period" +msgstr "هناك معدلات متعددة للمصروفات الممنوعة في هذه الفترة" + +#. module: odex30_account_disallowed_expenses +#. odoo-python +#: code:addons/odex30_account_disallowed_expenses/report/odex30_account_disallowed_expenses_report.py:0 +msgid "Total" +msgstr "الإجمالي" + +#. module: odex30_account_disallowed_expenses +#: model:account.report.column,name:odex30_account_disallowed_expenses.disallowed_expenses_report_total_amount +msgid "Total Amount" +msgstr "المبلغ الإجمالي" + +#. module: odex30_account_disallowed_expenses +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_form +msgid "e.g. 1201" +msgstr "مثال: 1201" + +#. module: odex30_account_disallowed_expenses +#: model_terms:ir.ui.view,arch_db:odex30_account_disallowed_expenses.view_odex30_account_disallowed_expenses_category_form +msgid "e.g. Non-Deductible Tax" +msgstr "مثال: ضريبة غير قابلة للخصم" diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/models/__init__.py b/dev_odex30_accounting/odex30_account_disallowed_expenses/models/__init__.py new file mode 100644 index 0000000..e3e66cb --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/models/__init__.py @@ -0,0 +1,3 @@ + +from . import odex30_account_account +from . import odex30_account_disallowed_expenses diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_account.py b/dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_account.py new file mode 100644 index 0000000..7f30016 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_account.py @@ -0,0 +1,13 @@ + +from odoo import models, fields, api + + +class AccountAccount(models.Model): + _inherit = "account.account" + + disallowed_expenses_category_id = fields.Many2one('account.disallowed.expenses.category', string='Disallowed Expenses Category', check_company=True) + + @api.onchange('internal_group') + def _onchange_internal_group(self): + if self.internal_group not in ('income', 'expense'): + self.disallowed_expenses_category_id = None diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_disallowed_expenses.py b/dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_disallowed_expenses.py new file mode 100644 index 0000000..3713d06 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/models/odex30_account_disallowed_expenses.py @@ -0,0 +1,78 @@ + +from odoo import fields, models, api, _ +from odoo.osv import expression + + +class AccountDisallowedExpensesCategory(models.Model): + _name = 'account.disallowed.expenses.category' + _description = "Disallowed Expenses Category" + + name = fields.Char(string='Name', required=True, translate=True) + code = fields.Char(string='Code', required=True) + active = fields.Boolean(default=True, help="Set active to false to hide the category without removing it.") + rate_ids = fields.One2many('account.disallowed.expenses.rate', 'category_id', string='Rate') + company_id = fields.Many2one('res.company') + account_ids = fields.One2many('account.account', 'disallowed_expenses_category_id', check_company=True) + current_rate = fields.Char(compute='_compute_current_rate', string='Current Rate') + + _sql_constraints = [ + ('unique_code', 'UNIQUE(code)', 'Disallowed expenses category code should be unique.') + ] + + @api.depends('current_rate', 'code') + def _compute_display_name(self): + for record in self: + rate = record.current_rate or _('No Rate') + name = f'{record.code} - {record.name} ({rate})' + record.display_name = name + + @api.depends('rate_ids') + def _compute_current_rate(self): + rates = self._get_current_rates() + for rec in self: + rec.current_rate = ('%g%%' % rates[rec.id]) if rates.get(rec.id) else None + + def _get_current_rates(self): + sql = """ + SELECT + DISTINCT category_id, + first_value(rate) OVER (PARTITION BY category_id ORDER BY date_from DESC) + FROM account_disallowed_expenses_rate + WHERE date_from < CURRENT_DATE + AND category_id IN %(ids)s + """ + self.env.cr.execute(sql, {'ids': tuple(self.ids)}) + return dict(self.env.cr.fetchall()) + + @api.model + def _search_display_name(self, operator, value): + if value and isinstance(value, str): + code_value = value.split(' ')[0] + is_negative = operator in expression.NEGATIVE_TERM_OPERATORS + positive_operator = expression.TERM_OPERATORS_NEGATION[operator] if is_negative else operator + domain = ['|', ('code', '=ilike', f'{code_value}%'), ('name', positive_operator, value)] + if is_negative: + domain = ['!', *domain] + return domain + return super()._search_display_name(operator, value) + + def action_read_category(self): + self.ensure_one() + return { + 'name': self.display_name, + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'account.disallowed.expenses.category', + 'res_id': self.id, + } + +class AccountDisallowedExpensesRate(models.Model): + _name = 'account.disallowed.expenses.rate' + _description = "Disallowed Expenses Rate" + _order = 'date_from desc' + + rate = fields.Float(string='Disallowed %', required=True) + date_from = fields.Date(string='Start Date', required=True) + category_id = fields.Many2one('account.disallowed.expenses.category', string='Category', required=True, ondelete='cascade') + company_id = fields.Many2one('res.company', string='Company', required=True, default=lambda self: self.env.company) diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/report/__init__.py b/dev_odex30_accounting/odex30_account_disallowed_expenses/report/__init__.py new file mode 100644 index 0000000..98a52ea --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/report/__init__.py @@ -0,0 +1,2 @@ + +from . import odex30_account_disallowed_expenses_report diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/report/odex30_account_disallowed_expenses_report.py b/dev_odex30_accounting/odex30_account_disallowed_expenses/report/odex30_account_disallowed_expenses_report.py new file mode 100644 index 0000000..36b40a1 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/report/odex30_account_disallowed_expenses_report.py @@ -0,0 +1,356 @@ + +from odoo import models, _ +from odoo.tools import SQL, Query + + +class DisallowedExpensesCustomHandler(models.AbstractModel): + _name = 'account.disallowed.expenses.report.handler' + _inherit = 'account.report.custom.handler' + _description = 'Disallowed Expenses Custom Handler' + + def _dynamic_lines_generator(self, report, options, all_column_groups_expression_totals, warnings=None): + results = self._get_query_results(options, primary_fields=['category_id']) + lines = [] + + totals = { + column_group_key: {key: 0.0 for key in ['total_amount', 'disallowed_amount']} + for column_group_key in options['column_groups'] + } + + for group_key, result in results.items(): + current = self._parse_hierarchy_group_key(group_key) + lines.append((0, self._get_category_line(options, result, current, len(current)))) + self._update_total_values(totals, options, result) + + if (lines): + lines.append((0, self._get_total_line(report, options, totals))) + + return lines + + def _custom_options_initializer(self, report, options, previous_options): + super()._custom_options_initializer(report, options, previous_options=previous_options) + period_domain = [('date_from', '>=', options['date']['date_from']), ('date_from', '<=', options['date']['date_to'])] + rg = self.env['account.disallowed.expenses.rate']._read_group( + period_domain, + ['category_id'], + having=[('__count', '>', 1)], + limit=1, + ) + options['multi_rate_in_period'] = bool(rg) + + def _customize_warnings(self, report, options, all_column_groups_expression_totals, warnings): + if options['multi_rate_in_period']: + warnings['odex30_account_disallowed_expenses.warning_multi_rate'] = {} + + def _caret_options_initializer(self): + return { + 'account.account': [ + {'name': _("General Ledger"), 'action': 'caret_option_open_general_ledger'}, + {'name': _("Journal Items"), 'action': 'open_journal_items'}, + ], + } + + def open_journal_items(self, options, params): + ctx = { + 'search_default_group_by_account': 1, + 'search_default_posted': 0 if options.get('all_entries') else 1, + 'date_from': options.get('date', {}).get('date_from'), + 'date_to': options.get('date', {}).get('date_to'), + 'expand': 1, + } + + if options.get('date', {}).get('date_from'): + ctx['search_default_date_between'] = 1 + else: + ctx['search_default_date_before'] = 1 + + domain = [('display_type', 'not in', ('line_section', 'line_note'))] + + model_to_domain = { + 'account.disallowed.expenses.category': 'account_id.disallowed_expenses_category_id', + 'account.account': 'account_id', + 'fleet.vehicle': 'vehicle_id', + } + + vehicle_audit = False + account_audit = False + for markup, res_model, res_id in self.env['account.report']._parse_line_id(params.get('line_id')): + if model_to_domain.get(res_model): + domain.append((model_to_domain[res_model], '=', res_id)) + if markup: + ctx['search_default_account_id'] = int(markup) + if res_model == 'fleet.vehicle': + vehicle_audit = True + if res_model == 'account.account': + account_audit = True + + if options.get('vehicle_split') and account_audit and not vehicle_audit: + domain.append(('vehicle_id', '=', False)) + + return { + 'name': 'Journal Items', + 'view_mode': 'list', + 'res_model': 'account.move.line', + 'views': [(False, 'list')], + 'type': 'ir.actions.act_window', + 'domain': domain, + 'context': ctx, + } + + def _get_query(self, options, line_dict_id=None) -> tuple[SQL, SQL, SQL, SQL, SQL, SQL]: + + company_ids = tuple(self.env['account.report'].get_report_company_ids(options)) + current = self._parse_line_id(options, line_dict_id) + category_name = self.env['account.disallowed.expenses.category']._field_to_sql('category', 'name') + + query = Query(self.env, alias='aml', table=SQL.identifier('account_move_line')) + query.add_join('LEFT JOIN', alias='account', table='account_account', condition=SQL('aml.account_id = account.id')) + account_code = self.env['account.account']._field_to_sql('account', 'code', query) + + select = SQL( + """ + SELECT + SUM(aml.balance) AS total_amount, + ARRAY_AGG(%(account_name)s) account_name, + ARRAY_AGG(%(account_code)s) account_code, + ARRAY_AGG(category.id) category_id, + ARRAY_AGG(%(category_name)s) category_name, + ARRAY_AGG(category.code) category_code, + ARRAY_AGG(aml.company_id) company_id, + ARRAY_AGG(aml.account_id) account_id, + ARRAY_AGG(rate.rate) account_rate, + SUM(aml.balance * rate.rate) / 100 AS account_disallowed_amount + """, + account_name=self.env['account.account']._field_to_sql('account', 'name'), + account_code=account_code, + category_name=category_name, + ) + + from_ = SQL( + """ + FROM %(from_clause)s + JOIN account_move move ON aml.move_id = move.id + JOIN account_disallowed_expenses_category category ON account.disallowed_expenses_category_id = category.id + LEFT JOIN account_disallowed_expenses_rate rate ON rate.id = ( + SELECT r2.id FROM account_disallowed_expenses_rate r2 + LEFT JOIN account_disallowed_expenses_category c2 ON r2.category_id = c2.id + WHERE r2.date_from <= aml.date + AND c2.id = category.id + ORDER BY r2.date_from DESC LIMIT 1 + ) + """, + from_clause=query.from_clause, + ) + where = SQL( + """ + WHERE aml.company_id in %(company_ids)s + AND aml.date >= %(date_from)s AND aml.date <= %(date_to)s + AND move.state != 'cancel' + %(category_condition)s + %(account_condition)s + %(account_rate_condition)s + %(not_all_entries_condition)s + """, + company_ids=company_ids, + date_from=options['date']['date_from'], + date_to=options['date']['date_to'], + category_condition=SQL("AND category.id = %s", current['category_id']) if current.get('category_id') else SQL(), + account_condition=SQL("AND aml.account_id = %s", current['account_id']) if current.get('account_id') else SQL(), + account_rate_condition=SQL("AND rate.rate = %s", current['account_rate']) if current.get('account_rate') else SQL(), + not_all_entries_condition=SQL("AND move.state = 'posted'") if not options.get('all_entries') else SQL(), + ) + + group_by = SQL( + """GROUP BY category.id %s%s""", + current.get('category_id') and SQL(", account_id") or SQL(), + current.get('account_id') and options['multi_rate_in_period'] and SQL(", rate.rate") or SQL(), + ) + + order_by = SQL("ORDER BY category_id, account_id") + order_by_rate = SQL(", account_rate") + + return select, from_, where, group_by, order_by, order_by_rate + + def _parse_line_id(self, options, line_id): + current = {'category_id': None} + + if not line_id: + return current + + for dummy, model, record_id in self.env['account.report']._parse_line_id(line_id): + if model == 'account.disallowed.expenses.category': + current['category_id'] = record_id + if model == 'account.account': + current['account_id'] = record_id + if model == 'account.disallowed.expenses.rate': + current['account_rate'] = record_id + + return current + + def _build_line_id(self, options, current, level, parent=False, markup=None): + report = self.env['account.report'].browse(options['report_id']) + parent_line_id = None + line_id = report._get_generic_line_id('account.disallowed.expenses.category', current['category_id']) + if current.get('account_id'): + parent_line_id = line_id + line_id = report._get_generic_line_id('account.account', current['account_id'], parent_line_id=line_id) + + if len(current) != level and not current.get('account_rate'): + parent_line_id = line_id + line_id = report._get_generic_line_id('account.account', current['account_id'], parent_line_id=line_id) + if current.get('account_rate'): + parent_line_id = line_id + line_id = report._get_generic_line_id('account.disallowed.expenses.rate', current['account_rate'], markup=markup, parent_line_id=line_id) + + return parent_line_id if parent else line_id + + def _get_query_results(self, options, line_dict_id=None, primary_fields=None, secondary_fields=None, selector=None): + grouped_results = {} + + for column_group_key, column_group_options in self.env['account.report']._split_options_per_column_group(options).items(): + select, from_, where, group_by, order_by, order_by_rate = self._get_query(column_group_options, line_dict_id) + select = SQL("%s, %s AS column_group_key", select, column_group_key) + self.env.cr.execute(SQL(' ').join([select, from_, where, group_by, order_by, order_by_rate])) + + for results in self.env.cr.dictfetchall(): + key = self._get_group_key(results, primary_fields, secondary_fields, selector) + grouped_results.setdefault(key, {})[column_group_key] = results + + return grouped_results + + def _get_group_key(self, results, primary_fields, secondary_fields, selector): + fields = [] + if selector is None or self._get_single_value(results, selector): + fields = primary_fields + elif secondary_fields is not None: + fields = secondary_fields + + group_key_list = [] + for group_key in fields: + group_key_id = self._get_single_value(results, group_key) + if group_key_id: + group_key_list.append(group_key + '~' + (group_key_id and str(group_key_id) or '')) + + return '|'.join(group_key_list) + + def _parse_hierarchy_group_key(self, group_key): + return { + item: int(float(item_id)) + for item, item_id + in [ + full_id.split('~') + for full_id + in (group_key.split('|')) + ] + } + + def _report_expand_unfoldable_line_category_line(self, line_dict_id, groupby, options, progress, offset, unfold_all_batch_data=None): + results = self._get_query_results(options, line_dict_id, ['category_id', 'account_id']) + lines = [] + + for group_key, result in results.items(): + current = self._parse_hierarchy_group_key(group_key) + level = len(self._parse_line_id(options, line_dict_id)) + 1 + lines.append(self._get_account_line(options, result, current, level)) + + return {'lines': lines} + + def _report_expand_unfoldable_line_account_line(self, line_dict_id, groupby, options, progress, offset, unfold_all_batch_data=None): + results = self._get_query_results(options, line_dict_id, ['category_id', 'account_id', 'account_rate']) + lines = [] + + for group_key, result in results.items(): + current = self._parse_hierarchy_group_key(group_key) + level = len(self._parse_line_id(options, line_dict_id)) + 1 + base_line_values = list(result.values())[0] + account_id = self._get_single_value(base_line_values, 'account_id') + lines.append(self._get_rate_line(options, result, current, level, account_id)) + + return {'lines': lines} + + def _get_column_values(self, options, values, is_total_line=False): + column_values = [] + + report = self.env['account.report'].browse(options['report_id']) + for column in options['columns']: + vals = values.get(column['column_group_key'], {}) + if vals and not is_total_line: + vals['rate'] = self._get_current_rate(vals) + vals['disallowed_amount'] = self._get_current_disallowed_amount(vals) + col_val = vals.get(column['expression_label']) + + column_values.append(report._build_column_dict( + col_val, + column, + options=options, + digits=2 if column['figure_type'] == 'percentage' else None, + )) + + return column_values + + def _update_total_values(self, total, options, values): + for column_group_key in options['column_groups']: + for key in total[column_group_key]: + total[column_group_key][key] += values.get(column_group_key, {}).get(key) or 0.0 + + def _get_total_line(self, report, options, totals): + return { + 'id': report._get_generic_line_id(None, None, markup='total'), + 'name': _('Total'), + 'level': 1, + 'columns': self._get_column_values(options, totals, is_total_line=True), + } + + def _get_category_line(self, options, values, current, level): + base_line_values = list(values.values())[0] + return { + **self._get_base_line(options, current, level), + 'name': '%s %s' % (base_line_values['category_code'][0], base_line_values['category_name'][0]), + 'columns': self._get_column_values(options, values), + 'level': level, + 'unfoldable': True, + 'expand_function': '_report_expand_unfoldable_line_category_line', + } + + def _get_account_line(self, options, values, current, level): + base_line_values = list(values.values())[0] + unfoldable = options.get('multi_rate_in_period') + return { + **self._get_base_line(options, current, level), + 'name': '%s %s' % (base_line_values['account_code'][0], base_line_values['account_name'][0]), + 'columns': self._get_column_values(options, values), + 'level': level, + 'unfoldable': unfoldable, + 'caret_options': False if unfoldable else 'account.account', + 'account_id': base_line_values['account_id'][0], + 'expand_function': unfoldable and '_report_expand_unfoldable_line_account_line', + } + + def _get_rate_line(self, options, values, current, level, markup=None): + base_line_values = list(values.values())[0] + return { + **self._get_base_line(options, current, level, markup), + 'name': f"{base_line_values['account_code'][0]} {base_line_values['account_name'][0]}", + 'columns': self._get_column_values(options, values), + 'level': level, + 'unfoldable': False, + 'caret_options': 'account.account', + 'account_id': base_line_values['account_id'][0], + } + + def _get_base_line(self, options, current, level, markup=None): + current_line_id = self._build_line_id(options, current, level, markup=markup) + return { + 'id': current_line_id, + 'parent_id': self._build_line_id(options, current, level, parent=True, markup=markup, ), + 'unfolded': current_line_id in options.get('unfolded_lines') or options.get('unfold_all'), + } + + def _get_single_value(self, values, key): + return all(values[key][0] == x for x in values[key]) and values[key][0] + + def _get_current_rate(self, values): + return self._get_single_value(values, 'account_rate') or None + + def _get_current_disallowed_amount(self, values): + return values['account_disallowed_amount'] diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/security/ir.model.access.csv b/dev_odex30_accounting/odex30_account_disallowed_expenses/security/ir.model.access.csv new file mode 100644 index 0000000..f5c8cc2 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/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_odx30_account_disallowed_expenses_category","access.odex30.account.disallowed.expenses.category","model_account_disallowed_expenses_category","account.group_account_manager",1,1,1,1 +"access_odx30_account_disallowed_expenses_category_readonly","access.odex30.account.disallowed.expenses.category.readonly","model_account_disallowed_expenses_category","account.group_account_readonly",1,0,0,0 +"access_odx30_account_disallowed_expenses_rate","access.odex30.account.disallowed.expenses.rate","model_account_disallowed_expenses_rate","account.group_account_manager",1,1,1,1 +"access_odx30_account_disallowed_expenses_rate_readonly","access.odex30.account.disallowed.expenses.rate.readonly","model_account_disallowed_expenses_rate","account.group_account_readonly",1,0,0,0 diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/security/odex30_account_disallowed_expenses_security.xml b/dev_odex30_accounting/odex30_account_disallowed_expenses/security/odex30_account_disallowed_expenses_security.xml new file mode 100644 index 0000000..991049a --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/security/odex30_account_disallowed_expenses_security.xml @@ -0,0 +1,11 @@ + + + + + Account disallowed expenses multi-country + + + [('company_id', 'in', company_ids + [False])] + + + diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/static/src/components/disallowed_expenses_report/warnings.xml b/dev_odex30_accounting/odex30_account_disallowed_expenses/static/src/components/disallowed_expenses_report/warnings.xml new file mode 100644 index 0000000..9ebd801 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/static/src/components/disallowed_expenses_report/warnings.xml @@ -0,0 +1,6 @@ + + + + There are multiple disallowed expenses rates in this period + + diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_account_views.xml b/dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_account_views.xml new file mode 100644 index 0000000..ffe6f91 --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_account_views.xml @@ -0,0 +1,25 @@ + + + + account.account.form + account.account + + + + + + + + + + account.account.search + account.account + + + + + + + + diff --git a/dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_disallowed_expenses_category_views.xml b/dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_disallowed_expenses_category_views.xml new file mode 100644 index 0000000..e4deabc --- /dev/null +++ b/dev_odex30_accounting/odex30_account_disallowed_expenses/views/odex30_account_disallowed_expenses_category_views.xml @@ -0,0 +1,103 @@ + + + + account.disallowed.expenses.rate.list + account.disallowed.expenses.rate + + + + + + + + + + account.disallowed.expenses.category.list + account.disallowed.expenses.category + + + + + + + +