diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po index e79eb616b..8e71eb501 100644 --- a/odex25_benefit/odex_benefit/i18n/ar_001.po +++ b/odex25_benefit/odex_benefit/i18n/ar_001.po @@ -17356,16 +17356,6 @@ msgstr "هل تحتاج موافقة مديرة خدمات المستفيدين" msgid "Third Approve" msgstr "اعتماد مديرة خدمات المستفيدين الإيقاف" -#. module: odex_benefit -#: model:ir.model.fields.selection,name:odex_benefit.selection__confirm_benefit_expense__state__waiting_processing -msgid "Waiting for Processing" -msgstr "بانتظار المعالجة" - -#. module: odex_benefit -#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__assigned_supervisor_id -msgid "Assigned Supervisor" -msgstr "المشرف" - #. module: odex_benefit #: code:addons/odex_benefit/models/family_expense.py:0 #, python-format @@ -17373,21 +17363,20 @@ msgid "Reason for Return" msgstr "سبب الإرجاع" #. module: odex_benefit -#: code:addons/odex_benefit/models/family_expense.py:0 +#: code:addons/odex_benefit/models/family_expense_line.py:0 #: model_terms:ir.ui.view,arch_db:odex_benefit.view_assign_supervisor_wizard_form -#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form #, python-format msgid "Assign to Supervisor" msgstr "إسناد للمشرف" #. module: odex_benefit -#: code:addons/odex_benefit/models/family_expense.py:0 +#: code:addons/odex_benefit/models/family_expense_line.py:0 #, python-format msgid "You can only process when status is 'Waiting for Processing'." msgstr "يمكنك المعالجة فقط عندما تكون الحالة 'بانتظار المعالجة'." #. module: odex_benefit -#: code:addons/odex_benefit/models/family_expense.py:0 +#: code:addons/odex_benefit/models/family_expense_line.py:0 #, python-format msgid "Processing Completed
Processed By: %s" msgstr "اكتملت المعالجة
تمت المعالجة بواسطة: %s" @@ -17398,11 +17387,6 @@ msgstr "اكتملت المعالجة
تمت المعالجة بو msgid "Bank Return Processing" msgstr "معالجة رجيع البنك" -#. module: odex_benefit -#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form -msgid "Process" -msgstr "تمت المعالجة" - #. module: odex_benefit #: code:addons/odex_benefit/wizards/reason_for_return_wizard.py:0 #, python-format diff --git a/odex25_benefit/odex_benefit/models/family_expense.py b/odex25_benefit/odex_benefit/models/family_expense.py index e7e9ca31a..076d43b01 100644 --- a/odex25_benefit/odex_benefit/models/family_expense.py +++ b/odex25_benefit/odex_benefit/models/family_expense.py @@ -30,7 +30,6 @@ class ConfirmBenefitExpense(models.Model): default=lambda x: _('New')) state = fields.Selection(selection=[ ('draft', 'Draft'), - ('waiting_processing', 'Waiting for Processing'), ('calculated', 'Calculated'), ('assistant_general_manager', 'Waiting For The Assistant General Manager'), ('accounting_approve', 'Accounting Approve'), @@ -99,7 +98,6 @@ class ConfirmBenefitExpense(models.Model): line_domain_ids = fields.Many2many(comodel_name='benefit.expense.line', compute='_compute_domain_ids', string="Return Line Domain", ) - assigned_supervisor_id = fields.Many2one('hr.employee',string='Assigned Supervisor',tracking=True,copy=False) @api.depends('payment_order_id', 'payment_order_id.state', 'move_id', 'move_id.state') def _compute_payment_move_state(self): @@ -180,6 +178,11 @@ class ConfirmBenefitExpense(models.Model): if not return_lines: raise UserError(_("Please select at least one return line to calculate.")) + if return_lines.filtered(lambda l: l.state == 'waiting_processing'): + raise UserError( + _("You cannot calculate because some return lines are still in 'Waiting Processing' state.")) + + self.benefit_expense_line_ids.unlink() lines = [] for line in return_lines: lines.append((0, 0, { @@ -231,7 +234,10 @@ class ConfirmBenefitExpense(models.Model): for rec in self: if rec.state != 'calculated': raise UserError(_("You can only recalculate when status is 'Calculated'.")) - rec._update_benefit_expense_lines() + if rec.is_return_calculation: + rec._calculate_return_lines() + else: + rec._update_benefit_expense_lines() @api.depends('is_return_calculation', 'branch_custom_ids', 'start_date', 'end_date') def _compute_domain_ids(self): @@ -345,28 +351,6 @@ class ConfirmBenefitExpense(models.Model): 'target': 'new', } - def action_assign_supervisor(self): - self.ensure_one() - return { - 'name': _('Assign to Supervisor'), - 'type': 'ir.actions.act_window', - 'res_model': 'assign.supervisor.wizard', - 'view_mode': 'form', - 'target': 'new', - } - - def action_process_return(self): - self.ensure_one() - if self.state != 'waiting_processing': - raise UserError(_("You can only process when status is 'Waiting for Processing'.")) - - self.message_post( - body=_('Processing Completed
Processed By: %s') % self.env.user.name, - message_type='notification', - ) - - self.state = 'calculated' - def action_open_related_move_records(self): moves = self.move_id.ids return { diff --git a/odex25_benefit/odex_benefit/models/family_expense_line.py b/odex25_benefit/odex_benefit/models/family_expense_line.py index 2c533b0f3..dd4216d98 100644 --- a/odex25_benefit/odex_benefit/models/family_expense_line.py +++ b/odex25_benefit/odex_benefit/models/family_expense_line.py @@ -9,6 +9,7 @@ class BenefitExpenseLine(models.Model): _name = 'benefit.expense.line' _description = 'Benefit Expense Line' _inherit = ['mail.thread', 'mail.activity.mixin'] + _rec_name = 'family_id' confirm_expense_id = fields.Many2one(comodel_name='confirm.benefit.expense', string='Confirm Benefit Expense', ondelete='cascade') @@ -28,6 +29,12 @@ class BenefitExpenseLine(models.Model): payment_order_id = fields.Many2one('payment.orders', string='Payment Order', ondelete="set null", copy=False) return_reason_id = fields.Many2one("return.reason", string="Return Reason") is_return = fields.Boolean(string="Is Returned?", default=False) + state = fields.Selection([ + ('draft', 'Draft'), + ('waiting_processing', 'Waiting Processing'), + ('processing_done', 'Processing Done'), + ], string="Status", default='draft', tracking=True) + assigned_supervisor_id = fields.Many2one('hr.employee', string='Assigned Supervisor', tracking=True, copy=False) @api.depends('family_monthly_income', 'family_monthly_clotting', 'family_monthly_meals') def _compute_total_family_expenses(self): @@ -47,3 +54,25 @@ class BenefitExpenseLine(models.Model): 'default_line_model': 'benefit.expense.line', } } + + def action_assign_supervisor(self): + self.ensure_one() + return { + 'name': _('Assign to Supervisor'), + 'type': 'ir.actions.act_window', + 'res_model': 'assign.supervisor.wizard', + 'view_mode': 'form', + 'target': 'new', + } + + def action_process_return(self): + self.ensure_one() + if self.state != 'waiting_processing': + raise UserError(_("You can only process when status is 'Waiting for Processing'.")) + + self.message_post( + body=_('Processing Completed
Processed By: %s') % self.env.user.name, + message_type='notification', + ) + + self.state = 'processing_done' diff --git a/odex25_benefit/odex_benefit/views/family_expense_line_view.xml b/odex25_benefit/odex_benefit/views/family_expense_line_view.xml index c800ec7b1..47518c5a9 100644 --- a/odex25_benefit/odex_benefit/views/family_expense_line_view.xml +++ b/odex25_benefit/odex_benefit/views/family_expense_line_view.xml @@ -31,6 +31,14 @@ benefit.expense.line
+
+
@@ -65,6 +73,15 @@ + + + Bank Return Processing + benefit.expense.line + tree,form + {'create': False} + [('state','=','waiting_processing')] + + Benefit Expense Lines diff --git a/odex25_benefit/odex_benefit/views/family_expense_view.xml b/odex25_benefit/odex_benefit/views/family_expense_view.xml index 38ba5c75b..06f86cfcc 100644 --- a/odex25_benefit/odex_benefit/views/family_expense_view.xml +++ b/odex25_benefit/odex_benefit/views/family_expense_view.xml @@ -49,19 +49,6 @@ groups="odex_benefit.group_family_services_manager" type="object" states="draft" class="btn btn-info"/> -