[IMP] odex_benefit: Clean up unused code

This commit is contained in:
younes 2025-11-23 08:09:13 +01:00
parent bf6f7a20e6
commit 46ccc891ab
10 changed files with 34 additions and 217 deletions

View File

@ -486,9 +486,6 @@
### 3. **Exception Wizard** (`exception_wizard.py`) ### 3. **Exception Wizard** (`exception_wizard.py`)
- إدخال معلومات الاستثناء - إدخال معلومات الاستثناء
### 4. **Exchange Order Wizard** (`exchange_order_wizard.py`)
- إنشاء أمر صرف لطلبات متعددة
### 5. **Entity Refused Wizard** (`entity_refused_wizard.py`) ### 5. **Entity Refused Wizard** (`entity_refused_wizard.py`)
- إدخال سبب الرفض - إدخال سبب الرفض

View File

@ -30,7 +30,6 @@
'wizards/researcher_wizard.xml', 'wizards/researcher_wizard.xml',
'wizards/suspend_reason_wizard.xml', 'wizards/suspend_reason_wizard.xml',
'wizards/exception_wizard.xml', 'wizards/exception_wizard.xml',
'wizards/exchange_order_wizard.xml',
'views/visit.xml', 'views/visit.xml',
'views/main_service.xml', 'views/main_service.xml',

View File

@ -2752,7 +2752,6 @@ msgstr "بإمكانه النشر "
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_return_reason_wizard_form #: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_return_reason_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_member_wizard_form #: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_member_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_wizard_form #: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exchange_order_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_reason_for_return_wizard #: model_terms:ir.ui.view,arch_db:odex_benefit.view_reason_for_return_wizard
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_refuse_reason_wizard #: model_terms:ir.ui.view,arch_db:odex_benefit.view_refuse_reason_wizard
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form #: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
@ -3192,7 +3191,6 @@ msgstr "إعدادات ملف الأسرة"
#: model_terms:ir.ui.view,arch_db:odex_benefit.return_reason_wizard_form #: model_terms:ir.ui.view,arch_db:odex_benefit.return_reason_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form #: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_search #: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_search
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exchange_order_wizard_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_reason_for_return_wizard #: model_terms:ir.ui.view,arch_db:odex_benefit.view_reason_for_return_wizard
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_refuse_reason_wizard #: model_terms:ir.ui.view,arch_db:odex_benefit.view_refuse_reason_wizard
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_visit_skip_otp_wizard_form #: model_terms:ir.ui.view,arch_db:odex_benefit.view_visit_skip_otp_wizard_form
@ -12363,7 +12361,6 @@ msgstr ""
#: code:addons/odex_benefit/models/benefit.py:0 #: code:addons/odex_benefit/models/benefit.py:0
#: code:addons/odex_benefit/models/family_members.py:0 #: code:addons/odex_benefit/models/family_members.py:0
#: code:addons/odex_benefit/models/service_request.py:0 #: code:addons/odex_benefit/models/service_request.py:0
#: code:addons/odex_benefit/models/payment_order.py:0
#: code:addons/odex_benefit/models/visit.py:0 #: code:addons/odex_benefit/models/visit.py:0
#, python-format #, python-format
msgid "You cannot delete this record" msgid "You cannot delete this record"
@ -14323,12 +14320,6 @@ msgstr "بانتظار استلام"
msgid "Family Received Device" msgid "Family Received Device"
msgstr "تم" msgstr "تم"
#. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.action_exchange_order_wizard
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exchange_order_wizard_form
msgid "Exchange Order"
msgstr "إنشاء أمر صرف"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__name #: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__name
msgid "Reference" msgid "Reference"
@ -14340,7 +14331,6 @@ msgid "Request Date"
msgstr "تاريخ الطلب" msgstr "تاريخ الطلب"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__service_type_id
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__service_type_id #: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__service_type_id
msgid "Seasonal Service Type" msgid "Seasonal Service Type"
msgstr "بند الخدمة" msgstr "بند الخدمة"
@ -14352,13 +14342,11 @@ msgstr " الفروع"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__family_category_id #: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__family_category_id
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__family_category
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__family_category_ids #: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__family_category_ids
msgid "Family Category" msgid "Family Category"
msgstr "فئة الأسرة" msgstr "فئة الأسرة"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__aid_amount
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__aid_amount #: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__aid_amount
msgid "Aid Amount" msgid "Aid Amount"
msgstr "قيمة الخدمة" msgstr "قيمة الخدمة"
@ -14378,17 +14366,6 @@ msgstr "عدد الأفراد المستفيدين"
msgid "Total Family Disbursement Amount" msgid "Total Family Disbursement Amount"
msgstr "الأجمالي" msgstr "الأجمالي"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__family_id
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__family_ids
msgid "Family"
msgstr "الأسرة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__branch_custom_id
msgid "Branch"
msgstr "الفرع"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__service_number #: model:ir.model.fields,field_description:odex_benefit.field_services_settings__service_number
#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form #: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form
@ -14403,7 +14380,6 @@ msgid "Service Amount"
msgstr "مبلغ الخدمة" msgstr "مبلغ الخدمة"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__account_id
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__account_id #: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__account_id
msgid "Expenses Account" msgid "Expenses Account"
msgstr "حساب المصروف" msgstr "حساب المصروف"
@ -14416,7 +14392,6 @@ msgstr "أمر الصرف"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__payment_order_id #: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__payment_order_id
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__payment_order_id #: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__payment_order_id
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__payment_order_id
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__payment_order_id #: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__payment_order_id
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__payment_order_id #: model:ir.model.fields,field_description:odex_benefit.field_service_request__payment_order_id
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__payment_method__payment_order #: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__payment_method__payment_order
@ -14459,7 +14434,6 @@ msgstr "هل هي خدمة موسمية"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__seasonal_service_id #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__seasonal_service_id
#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__seasonal_service_id
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__seasonal_service_id #: model:ir.model.fields,field_description:odex_benefit.field_service_request__seasonal_service_id
#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view #: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view
msgid "Seasonal Service" msgid "Seasonal Service"
@ -14475,7 +14449,6 @@ msgstr "طلبات الخدمات الموسمية"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.actions.act_window,name:odex_benefit.seasonal_service_action #: model:ir.actions.act_window,name:odex_benefit.seasonal_service_action
#: model:ir.ui.menu,name:odex_benefit.seasonal_service_menu #: model:ir.ui.menu,name:odex_benefit.seasonal_service_menu
#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form
#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_tree_view #: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_tree_view
msgid "Seasonal Services" msgid "Seasonal Services"
msgstr "الخدمات الموسمية" msgstr "الخدمات الموسمية"
@ -16975,7 +16948,6 @@ msgid "Accounting Transfer"
msgstr "الترحيل المالي" msgstr "الترحيل المالي"
#. module: odex_benefit #. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_exchange_order_wizard__accountant_id
#: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__accountant_id #: model:ir.model.fields,field_description:odex_benefit.field_family_validation_setting__accountant_id
#: model:ir.model.fields,field_description:odex_benefit.field_payment_orders__accountant_id #: model:ir.model.fields,field_description:odex_benefit.field_payment_orders__accountant_id
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__accountant_id #: model:ir.model.fields,field_description:odex_benefit.field_service_request__accountant_id

View File

@ -14,9 +14,11 @@ class PaymentOrders(models.Model):
return setting.payment_journal_id.id if setting and setting.journal_id else False return setting.payment_journal_id.id if setting and setting.journal_id else False
name = fields.Char(string="Code", copy=False, readonly=True, default=lambda x: _('New')) name = fields.Char(string="Code", copy=False, readonly=True, default=lambda x: _('New'))
# todo handel _compute_ref_num
ref_num = fields.Many2one('seasonal.service', string='Ref. Number', compute='_compute_ref_num') ref_num = fields.Many2one('seasonal.service', string='Ref. Number', compute='_compute_ref_num')
payment_order_date = fields.Datetime(string="Payment Order Date", default=fields.Datetime.now) payment_order_date = fields.Datetime(string="Payment Order Date", default=fields.Datetime.now)
accountant_id = fields.Many2one('res.users', string='Accountant') accountant_id = fields.Many2one('res.users', string='Accountant')
# todo remove _compute_service_type_id and _inverse_service_type_id
payment_order_description = fields.Many2one('services.settings', payment_order_description = fields.Many2one('services.settings',
string='Payment Order Description', string='Payment Order Description',
compute='_compute_service_type_id', compute='_compute_service_type_id',
@ -28,10 +30,8 @@ class PaymentOrders(models.Model):
string='Service Requests', ) string='Service Requests', )
benefit_expense_line_ids = fields.One2many('benefit.expense.line', 'payment_order_id', benefit_expense_line_ids = fields.One2many('benefit.expense.line', 'payment_order_id',
string='Benefit Expense Lines') string='Benefit Expense Lines')
# todo need to remove seasonal_requests_ids
seasonal_requests_ids = fields.One2many('seasonal.service', 'payment_order_id', string='Seasonal Requests') seasonal_requests_ids = fields.One2many('seasonal.service', 'payment_order_id', string='Seasonal Requests')
family_seasonal_requests_ids = fields.One2many('seasonal.grant.benefit', 'payment_order_id',
string='Seasonal Requests')
total_moves = fields.Integer(string="Total Move Lines", compute='_get_total_moves')
state = fields.Selection(string='Status', state = fields.Selection(string='Status',
selection=[('draft', 'Draft'), selection=[('draft', 'Draft'),
('waiting_head', 'Waiting for Head of Expenses Department'), ('waiting_head', 'Waiting for Head of Expenses Department'),
@ -51,7 +51,8 @@ class PaymentOrders(models.Model):
], ],
string='Payment Order Type', required=True, default='services', ) string='Payment Order Type', required=True, default='services', )
move_id = fields.Many2one('account.move', ondelete='cascade') move_id = fields.Many2one('account.move', ondelete='cascade')
total_amount = fields.Float(string="Total Amount", compute='_compute_total_amount') move_count = fields.Integer(string="Move Count", compute='_compute_move_count')
total_amount = fields.Float(string="Total Amount", compute='_compute_total_amount', store=True)
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company) company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company)
currency_id = fields.Many2one('res.currency', string='Currency', currency_id = fields.Many2one('res.currency', string='Currency',
related='company_id.currency_id') related='company_id.currency_id')
@ -87,7 +88,6 @@ class PaymentOrders(models.Model):
line_ids = rec.get_lines() line_ids = rec.get_lines()
move_vals = { move_vals = {
'journal_id': rec.journal_id.id, 'journal_id': rec.journal_id.id,
# 'payment_order_id': rec.id, # bug
'line_ids': line_ids, 'line_ids': line_ids,
'ref': rec.name + '/' + rec.type, 'ref': rec.name + '/' + rec.type,
} }
@ -156,9 +156,13 @@ class PaymentOrders(models.Model):
def unlink(self): def unlink(self):
for payment in self: for payment in self:
if payment.state not in ['draft']: if payment.state not in ['draft']:
raise ValidationError(_('You cannot delete this record')) raise ValidationError(_(
"You cannot delete this payment order.\n"
"Only records in the *Draft* state may be deleted."
))
return super(PaymentOrders, self).unlink() return super(PaymentOrders, self).unlink()
# todo remove search override
@api.model @api.model
def search(self, args, offset=0, limit=None, order=None, count=False): def search(self, args, offset=0, limit=None, order=None, count=False):
if self.env.user and self.env.user.id and self.env.user.has_group( if self.env.user and self.env.user.id and self.env.user.has_group(
@ -166,22 +170,17 @@ class PaymentOrders(models.Model):
args += [('accountant_id', '=', self.env.user.id)] args += [('accountant_id', '=', self.env.user.id)]
return super(PaymentOrders, self).search(args, offset, limit, order, count) return super(PaymentOrders, self).search(args, offset, limit, order, count)
def _get_total_moves(self): def _compute_move_count(self):
for rec in self: for rec in self:
rec.total_moves = self.env['account.move'].search_count([ rec.move_count = 1 if rec.move_id else 0
('payment_order_id', '=', rec.id), ('move_type', '!=', 'in_invoice')])
def action_open_related_move_records(self): def action_open_related_move_records(self):
""" Opens a tree view with related records filtered by a dynamic domain """
moves = self.env['account.move'].search([
('payment_order_id', '=', self.id), ('move_type', '!=', 'in_invoice')
]).ids
return { return {
'name': _('Moves'), 'name': _('Moves'),
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'res_model': 'account.move', 'res_model': 'account.move',
'view_mode': 'tree,form', 'view_mode': 'tree,form',
'domain': [('id', 'in', moves)], 'domain': [('id', 'in', self.move_id.ids)],
} }
def _prepare_entry_lines(self, line, validation_setting): def _prepare_entry_lines(self, line, validation_setting):
@ -226,7 +225,7 @@ class PaymentOrders(models.Model):
for request in self.service_requests_ids: for request in self.service_requests_ids:
lines.append( lines.append(
{ {
'name': f'{"Family code"}{request.family_id.code}-{request.description}-{request.payment_order_id.name}-{request.payment_order_id.ref_num}', 'name': f'{_("Family code")}-{request.family_id.code}-{request.description}-{request.payment_order_id.name}-{request.payment_order_id.ref_num}',
'benefit_family_id': request.family_id.id, 'benefit_family_id': request.family_id.id,
'account_id': request.account_id.id, 'account_id': request.account_id.id,
'partner_id': request.family_id.partner_id.id, 'partner_id': request.family_id.partner_id.id,
@ -243,9 +242,10 @@ class PaymentOrders(models.Model):
total_credit += credit_total total_credit += credit_total
lines += sum_line lines += sum_line
payment_type = dict(self._fields['type']._description_selection(self.env)).get(self.type)
lines.append({ lines.append({
'account_id': self.journal_id.default_account_id.id, 'account_id': self.journal_id.default_account_id.id,
'name': f'{self.name}-{self.type}', 'name': f'{self.name}-{payment_type}',
'credit': total_credit, 'credit': total_credit,
'debit': 0.0, 'debit': 0.0,
}) })

View File

@ -26,7 +26,6 @@ class SeasonalService(models.Model):
'category_id', 'category_id',
string='Family Category', string='Family Category',
compute='_compute_family_category_ids', ) compute='_compute_family_category_ids', )
family_ids = fields.One2many('seasonal.grant.benefit', 'seasonal_service_id', string='Family')
aid_amount = fields.Float(string="Aid Amount", compute="_compute_amounts", store=True, readonly=False) aid_amount = fields.Float(string="Aid Amount", compute="_compute_amounts", store=True, readonly=False)
benefit_member_count = fields.Integer(string="Benefit Member count", compute="compute_family_benefit", store=True) benefit_member_count = fields.Integer(string="Benefit Member count", compute="compute_family_benefit", store=True)
family_count = fields.Integer(string="Family count", compute="compute_family_benefit", store=True) family_count = fields.Integer(string="Family count", compute="compute_family_benefit", store=True)
@ -117,27 +116,22 @@ class SeasonalService(models.Model):
if self.member_ids: if self.member_ids:
self.member_ids = [(5, 0, 0)] self.member_ids = [(5, 0, 0)]
def action_open_exchange_order_wizard(self): def action_create_payment_order(self):
ids = []
for rec in self: for rec in self:
ids.append(rec.id) if rec.state != 'accounting_approve':
seasonal_services = self.env['seasonal.service'].browse(ids) raise UserError(_("All selected requests should be in Accounting Approve state"))
if any(request.state not in 'accounting_approve' for request in seasonal_services): if rec.payment_order_id:
raise UserError(_("All selected requests should be in Accounting Approve state")) raise UserError(_("There are already disbursement orders associated with the request(s)."))
if any(request.payment_order_id for request in seasonal_services): self.env['payment.orders'].create({
raise UserError(_("There are already disbursement orders associated with the request(s).")) 'state': 'draft',
else: 'accountant_id': rec.service_type_id.accountant_id.id,
return { 'seasonal_requests_ids': rec.ids,
'type': 'ir.actions.act_window', 'service_requests_ids': rec.service_requests_ids.ids,
'name': 'Exchange Order', 'is_seasonal': True,
'res_model': 'exchange.order.wizard', 'type': 'seasonal_services',
'view_mode': 'form', })
'target': 'new', # rec.payment_order_id = payment_order.id
'context': {'default_service_ids': ids, rec.is_payment_order_done = True
'seasonal_service': True,
}
}
@api.depends('service_requests_ids') @api.depends('service_requests_ids')
def compute_family_benefit(self): def compute_family_benefit(self):
@ -199,19 +193,6 @@ class SeasonalService(models.Model):
rec.state = 'done' rec.state = 'done'
rec.service_requests_ids.write({'state': 'family_received_device'}) rec.service_requests_ids.write({'state': 'family_received_device'})
def action_create_payment_order(self):
for rec in self:
self.env['payment.orders'].create({
'state': 'draft',
'accountant_id': rec.service_type_id.accountant_id.id,
'seasonal_requests_ids': rec.ids,
'service_requests_ids': rec.service_requests_ids.ids,
'is_seasonal': True,
'type': 'seasonal_services',
})
# rec.payment_order_id = payment_order.id
rec.is_payment_order_done = True
def action_calculate(self): def action_calculate(self):
for rec in self: for rec in self:
rec._generate_service_requests() rec._generate_service_requests()
@ -284,61 +265,3 @@ class SeasonalService(models.Model):
for rec in self: for rec in self:
rec.service_requests_ids.write({'state': 'draft'}) rec.service_requests_ids.write({'state': 'draft'})
rec.state = 'calculated' rec.state = 'calculated'
class SeasonalGrantBenefit(models.Model):
_name = 'seasonal.grant.benefit'
family_id = fields.Many2one('grant.benefit', string='Family', required=True)
family_category = fields.Many2one('benefit.category', string='Family Category',
related='family_id.benefit_category_id')
branch_custom_id = fields.Many2one('branch.settings', string="Branch", related='family_id.branch_custom_id',
store=True)
aid_amount = fields.Float(string="Aid Amount", compute="_compute_aid_amount", store=True)
account_id = fields.Many2one('account.account', string='Expenses Account', related='seasonal_service_id.account_id')
name = fields.Char(string='Reference', related='seasonal_service_id.name')
service_type_id = fields.Many2one('services.settings', related='seasonal_service_id.service_type_id',
string="Seasonal Service Type")
seasonal_service_id = fields.Many2one('seasonal.service', string='Seasonal Service')
payment_order_id = fields.Many2one('payment.orders', string='Payment Order')
@api.depends('family_id', 'service_type_id')
def _compute_aid_amount(self):
""" Compute Aid Amount based on service_type_id """
for record in self:
aid_amount = 0.0
# benefit_members = 1
if record.service_type_id:
if record.service_type_id.service_type == 'ramadan_basket':
aid_amount = record.service_type_id.max_amount
elif record.service_type_id.service_type == 'eid_gift' and record.family_id:
benefit_members = len(record.family_id.member_ids.filtered(
lambda x: x.member_status == 'benefit' and x.age <= record.service_type_id.max_age))
aid_amount = record.service_type_id.max_amount * benefit_members
elif record.service_type_id.service_type == 'winter_clothing' and record.family_id:
benefit_members = record.family_id.mapped('benefit_member_count')[0]
aid_amount = record.service_type_id.max_amount * benefit_members
record.write({'aid_amount': aid_amount})
@api.onchange('family_id')
def get_family_id_domain(self):
domain = ['|', ('state', '=', 'second_approve'), '&', ('state', 'in', ('waiting_approve', 'first_approve')),
('action_type', '=', 'suspended')]
if self.seasonal_service_id:
if self.seasonal_service_id.branch_ids:
domain.append(
('branch_custom_id', 'in', self.seasonal_service_id.branch_ids.ids)) # Filter by selected branches
if self.seasonal_service_id.family_category_ids:
domain.append(('benefit_category_id', 'in',
self.seasonal_service_id.family_category_ids.ids)) # Filter by selected family categories
if self.service_type_id and self.service_type_id.service_type == 'eid_gift':
family_ids = self.env['family.member'].search(
[('age', '<=', self.service_type_id.max_age),
('member_status', '=', 'benefit')]).benefit_id
domain.append(('id', 'in', family_ids.ids)) # Append the filtered family IDs to domain
families = self.seasonal_service_id.family_ids.mapped('family_id')
domain.append(('id', 'not in', families.ids))
return {'domain': {'family_id': domain}}

View File

@ -132,13 +132,11 @@ access_exception_wizard,access_exception_wizard,model_exception_wizard,base.grou
access_exception_reason,access_exception_reason,model_exception_reason,base.group_user,1,1,1,1 access_exception_reason,access_exception_reason,model_exception_reason,base.group_user,1,1,1,1
access_service_request,access_service_request,model_service_request,base.group_user,1,1,1,1 access_service_request,access_service_request,model_service_request,base.group_user,1,1,1,1
access_seasonal_service,access_seasonal_services,model_seasonal_service,base.group_user,1,1,1,1 access_seasonal_service,access_seasonal_services,model_seasonal_service,base.group_user,1,1,1,1
access_seasonal_grant_benefit,access_seasonal_grant_benefits,model_seasonal_grant_benefit,base.group_user,1,1,1,1
access_marital_status,access_marital_status,model_marital_status,base.group_user,1,1,1,1 access_marital_status,access_marital_status,model_marital_status,base.group_user,1,1,1,1
access_service_attachments_settings,access_service_attachments_settings,model_service_attachments_settings,base.group_user,1,1,1,1 access_service_attachments_settings,access_service_attachments_settings,model_service_attachments_settings,base.group_user,1,1,1,1
access_category_amount_line,access_category_amount_line,model_category_amount_line,base.group_user,1,1,1,1 access_category_amount_line,access_category_amount_line,model_category_amount_line,base.group_user,1,1,1,1
access_home_maintenance_lines,access_home_maintenance_lines,model_home_maintenance_lines,base.group_user,1,1,1,1 access_home_maintenance_lines,access_home_maintenance_lines,model_home_maintenance_lines,base.group_user,1,1,1,1
access_home_maintenance_items,access_home_maintenance_items,model_home_maintenance_items,base.group_user,1,1,1,1 access_home_maintenance_items,access_home_maintenance_items,model_home_maintenance_items,base.group_user,1,1,1,1
access_exchange_order_wizard,access_exchange_order_wizard,model_exchange_order_wizard,base.group_user,1,1,1,1
access_payment_orders,access_payment_orders,model_payment_orders,base.group_user,1,1,1,1 access_payment_orders,access_payment_orders,model_payment_orders,base.group_user,1,1,1,1
access_electrical_devices,access_electrical_devices,model_electrical_devices,base.group_user,1,1,1,1 access_electrical_devices,access_electrical_devices,model_electrical_devices,base.group_user,1,1,1,1
access_home_furnishing_lines,access_home_furnishing_lines,model_home_furnishing_lines,base.group_user,1,1,1,1 access_home_furnishing_lines,access_home_furnishing_lines,model_home_furnishing_lines,base.group_user,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
132 access_exception_reason access_exception_reason model_exception_reason base.group_user 1 1 1 1
133 access_service_request access_service_request model_service_request base.group_user 1 1 1 1
134 access_seasonal_service access_seasonal_services model_seasonal_service base.group_user 1 1 1 1
access_seasonal_grant_benefit access_seasonal_grant_benefits model_seasonal_grant_benefit base.group_user 1 1 1 1
135 access_marital_status access_marital_status model_marital_status base.group_user 1 1 1 1
136 access_service_attachments_settings access_service_attachments_settings model_service_attachments_settings base.group_user 1 1 1 1
137 access_category_amount_line access_category_amount_line model_category_amount_line base.group_user 1 1 1 1
138 access_home_maintenance_lines access_home_maintenance_lines model_home_maintenance_lines base.group_user 1 1 1 1
139 access_home_maintenance_items access_home_maintenance_items model_home_maintenance_items base.group_user 1 1 1 1
access_exchange_order_wizard access_exchange_order_wizard model_exchange_order_wizard base.group_user 1 1 1 1
140 access_payment_orders access_payment_orders model_payment_orders base.group_user 1 1 1 1
141 access_electrical_devices access_electrical_devices model_electrical_devices base.group_user 1 1 1 1
142 access_home_furnishing_lines access_home_furnishing_lines model_home_furnishing_lines base.group_user 1 1 1 1

View File

@ -49,8 +49,8 @@
<sheet> <sheet>
<div class="oe_button_box" name="button_box"> <div class="oe_button_box" name="button_box">
<button icon="fa-usd" name="action_open_related_move_records" <button icon="fa-usd" name="action_open_related_move_records"
type="object" attrs="{'invisible': [('total_moves','=',0)]}"> type="object" attrs="{'invisible': [('move_count','=',0)]}">
<field name="total_moves" string="Moves" widget="statinfo"/> <field name="move_count" string="Moves" widget="statinfo"/>
</button> </button>
</div> </div>
<group> <group>
@ -70,7 +70,7 @@
<field name="payment_order_description" readonly="1"/> <field name="payment_order_description" readonly="1"/>
<field name="ref_num" readonly="1"/> <field name="ref_num" readonly="1"/>
<field name="is_seasonal" invisible="1"/> <field name="is_seasonal" invisible="1"/>
<field name="move_id" attrs="{'invisible':[('move_id','=',False)]}" readonly="1"/> <field name="move_id" invisible="1"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="currency_id" groups="base.group_multi_currency" invisible="1"/> <field name="currency_id" groups="base.group_multi_currency" invisible="1"/>
<field name="total_amount" widget="monetary" <field name="total_amount" widget="monetary"
@ -107,19 +107,6 @@
</tree> </tree>
</field> </field>
</page> </page>
<page string="Seasonal Services" invisible="1">
<field name="family_seasonal_requests_ids" widget="one2many_list"
readonly="1">
<tree>
<field name="family_id"/>
<field name="branch_custom_id"/>
<field name="account_id"/>
<field name="name" string="Service Number"/>
<field name="aid_amount" string="Service Amount"/>
</tree>
</field>
</page>
<page string="Confirm Benefit Expenses" <page string="Confirm Benefit Expenses"
attrs="{'invisible':[('type','!=','benefit_expense')]}"> attrs="{'invisible':[('type','!=','benefit_expense')]}">
<field name="benefit_expense_line_ids" widget="one2many_list" <field name="benefit_expense_line_ids" widget="one2many_list"

View File

@ -4,7 +4,6 @@ from . import entity_black_list_wizard
from . import researcher_wizard from . import researcher_wizard
from . import suspend_reason_wizard from . import suspend_reason_wizard
from . import exception_wizard from . import exception_wizard
from . import exchange_order_wizard
from . import service_refuse_reason_wizard from . import service_refuse_reason_wizard
from . import reason_for_return_wizard from . import reason_for_return_wizard
from . import visit_location_otp_wizard from . import visit_location_otp_wizard

View File

@ -1,33 +0,0 @@
from odoo import models, fields, api
class ExchangeOrderWizard(models.TransientModel):
_name = 'exchange.order.wizard'
_description = 'Wizard to Assign Accounting that Exchange Orders'
accountant_id = fields.Many2one('res.users',string='Accountant')
def create_payment_order(self):
active_ids = self.env.context.get('default_service_ids')
if self.env.context.get('seasonal_service') == True:
seasonal_service = self.env['seasonal.service'].browse(active_ids)
for service in seasonal_service:
service.is_payment_order_done = True
self.env['payment.orders'].create({
'state': 'draft',
'accountant_id': self.accountant_id.id,
'seasonal_requests_ids': service.ids,
'family_seasonal_requests_ids': service.family_ids.ids,
'is_seasonal': True,
})
else:
service_requests = self.env['service.request'].browse(active_ids)
for service in service_requests:
service.is_payment_order_done = True
self.env['payment.orders'].create({
'state': 'draft',
'accountant_id': self.accountant_id.id,
'service_requests_ids': service_requests.ids
})

View File

@ -1,25 +0,0 @@
<odoo>
<record id="view_exchange_order_wizard_form" model="ir.ui.view">
<field name="name">exchange.order.wizard.form</field>
<field name="model">exchange.order.wizard</field>
<field name="arch" type="xml">
<form string="Exchange Order">
<group>
<field name="accountant_id"/>
</group>
<footer>
<button string="Confirm" type="object" name="create_payment_order" class="btn-primary"/>
<button string="Cancel" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
<!-- Action to open the wizard -->
<record id="action_exchange_order_wizard" model="ir.actions.act_window">
<field name="name">Exchange Order</field>
<field name="res_model">exchange.order.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</odoo>