From cc5bd4fc7997c6c824597ff4731b89553213cc42 Mon Sep 17 00:00:00 2001 From: younes Date: Wed, 7 Jan 2026 13:39:45 +0100 Subject: [PATCH] [IMP] odex_benefit: IMP benefit --- odex25_benefit/odex_benefit/__manifest__.py | 1 + odex25_benefit/odex_benefit/i18n/ar_001.po | 9 +++- .../odex_benefit/models/account_move_line.py | 52 ++++++++++++++++++- .../odex_benefit/models/payment_order.py | 25 +++++++++ .../odex_benefit/views/account_move_view.xml | 20 +++++++ .../views/benefit_config_view.xml | 36 +++++++++++++ .../odex_benefit/views/payment_order.xml | 7 +++ 7 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 odex25_benefit/odex_benefit/views/account_move_view.xml diff --git a/odex25_benefit/odex_benefit/__manifest__.py b/odex25_benefit/odex_benefit/__manifest__.py index 69012d6b4..8b1c243d9 100644 --- a/odex25_benefit/odex_benefit/__manifest__.py +++ b/odex25_benefit/odex_benefit/__manifest__.py @@ -67,6 +67,7 @@ 'wizards/family_bank_report_wizard.xml', 'views/visit_survey.xml', 'views/res_partner_view.xml', + 'views/account_move_view.xml', 'views/actions_and_menus.xml', 'reports/family_bank_report.xml', ], diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po index 41936a7bc..a21d05bfd 100644 --- a/odex25_benefit/odex_benefit/i18n/ar_001.po +++ b/odex25_benefit/odex_benefit/i18n/ar_001.po @@ -18436,4 +18436,11 @@ msgstr "موافقة مدير الفرع للاستثناء" #, python-format msgid "" "She has a physical or intellectual disability but is over %s years of age." -msgstr "لديها إعاقة جسدية أو عقلية ولكنها تجاوزت %s سنة من العمر." \ No newline at end of file +msgstr "لديها إعاقة جسدية أو عقلية ولكنها تجاوزت %s سنة من العمر." + +#. module: odex_benefit +#: code:addons/odex_benefit/models/payment_order.py:0 +#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form +#, python-format +msgid "Moves" +msgstr "القيد المحاسبي" \ No newline at end of file diff --git a/odex25_benefit/odex_benefit/models/account_move_line.py b/odex25_benefit/odex_benefit/models/account_move_line.py index e741ede00..1362ca3a1 100644 --- a/odex25_benefit/odex_benefit/models/account_move_line.py +++ b/odex25_benefit/odex_benefit/models/account_move_line.py @@ -1,4 +1,4 @@ -from odoo import models,fields +from odoo import models,fields,_ class AccountMoveLine(models.Model): @@ -11,4 +11,52 @@ class AccountMove(models.Model): _inherit = 'account.move' family_confirm_id = fields.Many2one(comodel_name='confirm.benefit.expense', string='Benefit Family') benefit_family_ids = fields.Many2many(comodel_name='grant.benefit',relation='account_move_grant_family_rel', - column1='move_id',column2='family_id', string='Benefit Family') \ No newline at end of file + column1='move_id',column2='family_id', string='Benefit Family') + required_attachment_line_count = fields.Integer(string="Required Attachments",compute='_compute_required_attachment_line_count',store=False,) + + def _compute_required_attachment_line_count(self): + for move in self: + payment_order = self.env['payment.orders'].search([ + ('move_id', '=', move.id), + ('type', '=', 'services') + ], limit=1) + + if not payment_order or not payment_order.service_requests_ids: + move.required_attachment_line_count = 0 + continue + all_lines = payment_order.service_requests_ids.mapped('attachment_lines') + move.required_attachment_line_count = len(all_lines) + + def action_view_service_attachments(self): + + payment_order = self.env['payment.orders'].search([ + ('move_id', '=', self.id), + ('type', '=', 'services') + ], limit=1) + + if not payment_order: + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'title': _('Error'), + 'message': _('Cannot find the originating payment order.'), + 'type': 'warning', + } + } + attachment_ids = payment_order.service_requests_ids.mapped('attachment_lines').ids + + ctx = self.env.context.copy() + ctx.update({ + 'create': False, 'edit': False, 'delete': False, + }) + + return { + 'name': _('Service Required Attachments'), + 'type': 'ir.actions.act_window', + 'res_model': 'service.attachments.settings', + 'view_mode': 'tree,form', + 'domain': [('id', 'in', attachment_ids)], + 'context': ctx, + 'target': 'current', + } \ No newline at end of file diff --git a/odex25_benefit/odex_benefit/models/payment_order.py b/odex25_benefit/odex_benefit/models/payment_order.py index 389c4cd88..39fd3fb12 100644 --- a/odex25_benefit/odex_benefit/models/payment_order.py +++ b/odex25_benefit/odex_benefit/models/payment_order.py @@ -53,6 +53,31 @@ class PaymentOrders(models.Model): currency_id = fields.Many2one('res.currency', string='Currency', related='company_id.currency_id') can_user_act = fields.Boolean(compute='_compute_can_user_act', store=False) + attachment_line_count = fields.Integer(string="Required Attachments",compute='_compute_attachment_lines',store=False) + + def _compute_attachment_lines(self): + for record in self: + if not record.service_requests_ids: + record.attachment_line_count = 0 + continue + all_lines = record.service_requests_ids.mapped('attachment_lines') + record.attachment_line_count = len(all_lines) + + def action_view_all_required_attachments(self): + self.ensure_one() + ctx = self.env.context.copy() + ctx.update({ + 'create': False, 'edit': False, 'delete': False, + }) + return { + 'name': _('Service Required Attachments'), + 'type': 'ir.actions.act_window', + 'res_model': 'service.attachments.settings', + 'view_mode': 'tree,form', + 'domain': [('id', 'in', self.service_requests_ids.mapped('attachment_lines').ids)], + 'context': ctx, + 'target': 'current', + } @api.depends('state') @api.depends_context('uid') diff --git a/odex25_benefit/odex_benefit/views/account_move_view.xml b/odex25_benefit/odex_benefit/views/account_move_view.xml new file mode 100644 index 000000000..acb133504 --- /dev/null +++ b/odex25_benefit/odex_benefit/views/account_move_view.xml @@ -0,0 +1,20 @@ + + + + account.move.inherit.form + account.move + + + + + + + + diff --git a/odex25_benefit/odex_benefit/views/benefit_config_view.xml b/odex25_benefit/odex_benefit/views/benefit_config_view.xml index 1e9069a9d..3553bf92c 100644 --- a/odex25_benefit/odex_benefit/views/benefit_config_view.xml +++ b/odex25_benefit/odex_benefit/views/benefit_config_view.xml @@ -1572,5 +1572,41 @@ + + service.attachments.settings.tree + service.attachments.settings + + + + + + + + + + + service.attachments.settings.form + service.attachments.settings + +
+ +
+

+ +

+
+ + + + + + + + + +
+
+
+
diff --git a/odex25_benefit/odex_benefit/views/payment_order.xml b/odex25_benefit/odex_benefit/views/payment_order.xml index 1af9fa5d7..da98a7f48 100644 --- a/odex25_benefit/odex_benefit/views/payment_order.xml +++ b/odex25_benefit/odex_benefit/views/payment_order.xml @@ -60,6 +60,13 @@ type="object" attrs="{'invisible': [('move_count','=',0)]}"> +