[IMP] odex_benefit: IMP benefit
This commit is contained in:
parent
e99af09efe
commit
03a5119483
|
|
@ -18644,18 +18644,3 @@ msgid ""
|
|||
"requests: %s, Current request: %s, Total: %s)"
|
||||
msgstr "الجهاز '%s': لا يمكنك طلب أكثر من %s وحدة خلال %s %s. (الطلبات السابقة: %s، الطلب الحالي: %s، المجموع: %s)"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Cannot create invoice: the following requests have no electrical device lines:\n"
|
||||
"%s\n"
|
||||
"All selected requests must contain at least one device line."
|
||||
msgstr "لا يمكن إنشاء الفاتورة: الطلبات التالية لا تحتوي على أجهزة كهربائية:\n"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#, python-format
|
||||
msgid "No invoice lines could be created."
|
||||
msgstr "لم يتم إنشاء أي بنود في الفاتورة."
|
||||
|
||||
|
|
|
|||
|
|
@ -1276,47 +1276,70 @@ class ServiceRequest(models.Model):
|
|||
"• Not be linked to any invoice"
|
||||
) % names)
|
||||
|
||||
empty_requests = self.filtered(lambda r: not r.electrical_device_line_ids)
|
||||
if empty_requests:
|
||||
names = ", ".join(empty_requests.mapped('name'))
|
||||
raise UserError(_(
|
||||
"Cannot create invoice: the following requests have no electrical device lines:\n%s\n"
|
||||
"All selected requests must contain at least one device line."
|
||||
) % names)
|
||||
|
||||
for rec in self:
|
||||
line_ids = []
|
||||
for line in rec.electrical_device_line_ids:
|
||||
invoice_line_vals = {
|
||||
'name': rec.name or _('Electrical Device Line'),
|
||||
'product_id': line.product_id.id or False,
|
||||
'account_id': line.device_id.account_id.id or False,
|
||||
'analytic_account_id': (
|
||||
rec.family_id.branch_family_id.branch.analytic_account_id.id
|
||||
if rec.family_id.branch_family_id
|
||||
and rec.family_id.branch_family_id.branch
|
||||
and rec.family_id.branch_family_id.branch.analytic_account_id
|
||||
else False
|
||||
),
|
||||
'quantity': line.quantity,
|
||||
'price_unit': line.unit_price,
|
||||
'benefit_family_id': rec.family_id.id,
|
||||
}
|
||||
line_ids.append((0, 0, invoice_line_vals))
|
||||
|
||||
if not line_ids:
|
||||
raise UserError(_("No invoice lines could be created."))
|
||||
invoice_lines = rec._prepare_invoice_lines()
|
||||
if not invoice_lines:
|
||||
raise UserError(_(
|
||||
"Cannot create invoice for request '%s': No invoice lines could be created."
|
||||
) % rec.name)
|
||||
vendor_bill = self.env['account.move'].create({
|
||||
'move_type': 'in_invoice',
|
||||
'partner_id': rec.service_producer_id.id,
|
||||
'partner_shipping_id': rec.family_id.partner_id.id,
|
||||
'journal_id': validation_setting.journal_id.id,
|
||||
# 'accountant_id': self.accountant_id.id,
|
||||
'invoice_line_ids': line_ids,
|
||||
'invoice_line_ids': invoice_lines,
|
||||
'ref': rec.name or False,
|
||||
})
|
||||
rec.vendor_bill = vendor_bill
|
||||
|
||||
def _prepare_invoice_lines(self):
|
||||
self.ensure_one()
|
||||
line_ids = []
|
||||
if self.service_type == 'electrical_devices':
|
||||
if not self.electrical_device_line_ids:
|
||||
return line_ids
|
||||
|
||||
for line in self.electrical_device_line_ids:
|
||||
line_ids.append((0, 0, {
|
||||
'name': self.name or _('Electrical Device Line'),
|
||||
'product_id': line.product_id.id or False,
|
||||
'account_id': line.device_id.account_id.id or False,
|
||||
'analytic_account_id': self._get_analytic_account_id(),
|
||||
'quantity': line.quantity,
|
||||
'price_unit': line.unit_price,
|
||||
'benefit_family_id': self.family_id.id,
|
||||
}))
|
||||
else:
|
||||
description_parts = []
|
||||
if self.family_id and self.family_id.name:
|
||||
description_parts.append(self.family_id.name)
|
||||
if self.description:
|
||||
description_parts.append(self.description)
|
||||
if self.name:
|
||||
description_parts.append(self.name)
|
||||
|
||||
line_name = '/'.join(description_parts) if description_parts else _('Service')
|
||||
line_ids.append((0, 0, {
|
||||
'name': line_name,
|
||||
'account_id': self.account_id.id or False,
|
||||
'analytic_account_id': self._get_analytic_account_id(),
|
||||
'quantity': self.service_qty or 1,
|
||||
'price_unit': self.requested_service_amount,
|
||||
'benefit_family_id': self.family_id.id,
|
||||
}))
|
||||
|
||||
return line_ids
|
||||
|
||||
def _get_analytic_account_id(self):
|
||||
self.ensure_one()
|
||||
if (self.family_id.branch_family_id and
|
||||
self.family_id.branch_family_id.branch and
|
||||
self.family_id.branch_family_id.branch.analytic_account_id):
|
||||
return self.family_id.branch_family_id.branch.analytic_account_id.id
|
||||
return False
|
||||
|
||||
def _get_total_move_lines(self):
|
||||
for rec in self:
|
||||
if self.service_cat.payment_method == "payment_order":
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ access_benefit_woman_commitee_record,access_benefit_record,model_grant_benefit,o
|
|||
access_benefit_branch_manager_record,access_benefit_branch_manager_record,model_grant_benefit,odex_benefit.group_benefit_branch_manager,1,1,0,1
|
||||
access_benefit_manager_record,access_benefit_manager_record,model_grant_benefit,odex_benefit.group_benefit_manager,1,1,1,1
|
||||
access_benefit_family_services_manager,access_benefit_family_services_manager,model_grant_benefit,odex_benefit.group_family_services_manager,1,1,1,1
|
||||
access_benefit_family_services_department_manager,access_benefit_family_services_department_manager,model_grant_benefit,odex_benefit.group_family_services_department_manager,1,1,1,1
|
||||
access_education_status_all,education_status,model_education_status,odex_benefit.group_benefit_info,1,1,1,1
|
||||
access_education_status_all_users,education_status_all_users,model_education_status,,1,0,0,0
|
||||
access_weak_course_all,weak_course,model_weak_course,odex_benefit.group_benefit_info,1,1,1,1
|
||||
|
|
@ -126,6 +127,8 @@ access_suspend_reason,access_suspend_reason,model_suspend_reason,,1,0,0,0
|
|||
access_suspend_reason_settings,access_suspend_reason_settings,model_suspend_reason,odex_benefit.group_benefit_settings,1,1,1,1
|
||||
access_suspend_reason_wizard,access_suspend_reason_wizard,model_suspend_reason_wizard,,1,1,1,1
|
||||
access_expense_family_services_manager,access_expense_family_services_manager,model_confirm_benefit_expense,odex_benefit.group_family_services_manager,1,1,1,1
|
||||
access_expense_family_services_department_manager,access_expense_family_services_department_manager,model_confirm_benefit_expense,odex_benefit.group_family_services_department_manager,1,1,1,1
|
||||
|
||||
access_expense_benefit_manager,access_expense_benefit_manager,model_confirm_benefit_expense,odex_benefit.group_benefit_manager,1,1,1,1
|
||||
access_expense_researcher,access_expense_researcher,model_confirm_benefit_expense,odex_benefit.group_benefit_info,1,0,0,0
|
||||
access_branch_settings,access_branch_settings,model_branch_settings,base.group_user,1,0,0,0
|
||||
|
|
@ -154,6 +157,7 @@ access_exception_reason,access_exception_reason,model_exception_reason,base.grou
|
|||
access_exception_reason_settings,access_exception_reason_settings,model_exception_reason,odex_benefit.group_benefit_settings,1,1,1,1
|
||||
access_service_request,access_service_request,model_service_request,base.group_user,1,1,1,1
|
||||
access_seasonal_service_family_services_manager,access_seasonal_service_family_services_manager,model_seasonal_service,odex_benefit.group_family_services_manager,1,1,1,1
|
||||
access_seasonal_service_family_services_department_manager,access_seasonal_service_family_services_department_manager,model_seasonal_service,odex_benefit.group_family_services_department_manager,1,1,1,1
|
||||
access_seasonal_service_benefit_manager,access_seasonal_service_benefit_manager,model_seasonal_service,odex_benefit.group_benefit_manager,1,1,1,1
|
||||
access_seasonal_service_researcher,access_seasonal_service_researcher,model_seasonal_service,odex_benefit.group_benefit_info,1,0,0,0
|
||||
access_marital_status,access_marital_status,model_marital_status,base.group_user,1,0,0,0
|
||||
|
|
@ -192,6 +196,7 @@ access_survey_user_input_line_group_benefit_info,survey.user_input.line.group_be
|
|||
access_grant_benefit_account_move_line,access_grant_benefit_account_move_line,model_account_move_line,odex_benefit.group_benefit_info,1,0,0,0
|
||||
access_grant_benefit_account_move,access_grant_benefit_account_move,model_account_move,odex_benefit.group_benefit_info,1,0,0,0
|
||||
access_expense_line_family_services_manager,access_expense_line_family_services_manager,model_benefit_expense_line,odex_benefit.group_family_services_manager,1,1,1,1
|
||||
access_expense_line_family_services_department_manager,access_expense_line_family_services_department_manager,model_benefit_expense_line,odex_benefit.group_family_services_department_manager,1,1,1,1
|
||||
access_expense_line_benefit_manager,access_expense_line_benefit_manager,model_benefit_expense_line,odex_benefit.group_benefit_manager,1,1,1,1
|
||||
access_expense_researcher,access_expense_researcher,model_benefit_expense_line,odex_benefit.group_benefit_info,1,1,0,0
|
||||
access_expense_line_payment_accountant_accept,access_expense_line_payment_accountant_accept,model_benefit_expense_line,odex_benefit.group_benefit_payment_accountant_accept,1,1,0,0
|
||||
|
|
|
|||
|
|
|
@ -115,6 +115,12 @@
|
|||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_family_services_department_manager" model="res.groups">
|
||||
<field name="name">Family Services Department Manager</field>
|
||||
<field name="category_id" ref="module_category_benefit"/>
|
||||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_service_legal_department" model="res.groups">
|
||||
<field name="name">Services - Legal Department</field>
|
||||
<field name="category_id" ref="module_category_benefit"/>
|
||||
|
|
@ -138,7 +144,7 @@
|
|||
<field name="name">Show All Benefits Profiles</field>
|
||||
<field name="model_id" ref="model_grant_benefit"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager'))]"/>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager')),(4, ref('group_family_services_department_manager'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
|
||||
|
|
@ -171,7 +177,7 @@
|
|||
<field name="name">Show All Visit Location</field>
|
||||
<field name="model_id" ref="model_visit_location"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager'))]"/>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager')),(4, ref('group_family_services_department_manager'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
|
||||
|
|
@ -220,7 +226,7 @@
|
|||
<field name="name">Show All Family Complaints</field>
|
||||
<field name="model_id" ref="model_family_complaints"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager'))]"/>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager')),(4, ref('group_family_services_department_manager'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
|
||||
|
|
@ -300,7 +306,7 @@
|
|||
<field name="name">Show All Family Members</field>
|
||||
<field name="model_id" ref="model_family_member"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager'))]"/>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager')),(4, ref('group_family_services_department_manager'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
|
||||
|
|
@ -344,7 +350,7 @@
|
|||
<field name="name">Show All Bank Return Line</field>
|
||||
<field name="model_id" ref="model_benefit_expense_line"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager'))]"/>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_manager')),(4, ref('group_benefit_supervisor')),(4, ref('group_family_services_manager')),(4, ref('group_family_services_department_manager'))]"/>
|
||||
<field name="active" eval="True" />
|
||||
</record>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue