Merge pull request #5488 from expsa/ii_dev_odex25_ensan
[IMP] odex_benefit: Clean up unused code
This commit is contained in:
commit
81b07a7afb
|
|
@ -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`)
|
||||||
- إدخال سبب الرفض
|
- إدخال سبب الرفض
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -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)
|
|
||||||
if any(request.state not in 'accounting_approve' for request in seasonal_services):
|
|
||||||
raise UserError(_("All selected requests should be in Accounting Approve state"))
|
raise UserError(_("All selected requests should be in Accounting Approve state"))
|
||||||
if any(request.payment_order_id for request in seasonal_services):
|
if rec.payment_order_id:
|
||||||
raise UserError(_("There are already disbursement orders associated with the request(s)."))
|
raise UserError(_("There are already disbursement orders associated with the request(s)."))
|
||||||
else:
|
self.env['payment.orders'].create({
|
||||||
return {
|
'state': 'draft',
|
||||||
'type': 'ir.actions.act_window',
|
'accountant_id': rec.service_type_id.accountant_id.id,
|
||||||
'name': 'Exchange Order',
|
'seasonal_requests_ids': rec.ids,
|
||||||
'res_model': 'exchange.order.wizard',
|
'service_requests_ids': rec.service_requests_ids.ids,
|
||||||
'view_mode': 'form',
|
'is_seasonal': True,
|
||||||
'target': 'new',
|
'type': 'seasonal_services',
|
||||||
'context': {'default_service_ids': ids,
|
})
|
||||||
'seasonal_service': True,
|
# rec.payment_order_id = payment_order.id
|
||||||
}
|
rec.is_payment_order_done = 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}}
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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>
|
|
||||||
Loading…
Reference in New Issue