Merge pull request #6320 from expsa/teze

[IMP] odex_benefit: IMP benefit
This commit is contained in:
kchyounes19 2026-01-22 15:27:16 +01:00 committed by GitHub
commit 801f2e7185
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 86 additions and 18 deletions

View File

@ -9562,6 +9562,7 @@ msgstr "هل الأسرة منتجة؟"
#: model:ir.model.fields,field_description:odex_benefit.field_receive_appliances_furniture__prod_id
#: model:ir.model.fields,field_description:odex_benefit.field_receive_benefit_zkat__product_id
#: model:ir.model.fields,field_description:odex_benefit.field_receive_food_basket__product_id
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_device_line__product_id
msgid "Product"
msgstr "المنتج"
@ -9691,6 +9692,7 @@ msgstr ""
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__service_qty
#: model:ir.model.fields,field_description:odex_benefit.field_zkat_line__quantity
#: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_food_surplus_form
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_device_line__quantity
msgid "Quantity"
msgstr "الكمية"
@ -10734,12 +10736,14 @@ msgid "Service Name"
msgstr "اسم الخدمة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_branch_settings__service_producer_id
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__service_producer_id
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__service_producer_id
msgid "Service Producer"
msgstr "جهة الدفع"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_device_line__service_request_id
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_items__service_request_id
#: model:ir.model.fields,field_description:odex_benefit.field_service_attachments_settings__service_request_id
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
@ -16344,6 +16348,7 @@ msgid "Electrical Devices Service"
msgstr "الأجهزة الكهربائية"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_device_line__device_id
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__device_id
msgid "Device"
msgstr "الجهاز"
@ -18592,4 +18597,65 @@ msgstr "%s سنة"
#: code:addons/odex_benefit/models/family_members.py:0
#, python-format
msgid "0 days"
msgstr "0 يوم"
msgstr "0 يوم"
#. module: odex_benefit
#: code:addons/odex_benefit/models/service_request.py:0
#: model:ir.model,name:odex_benefit.model_electrical_device_line
#, python-format
msgid "Electrical Device Line"
msgstr "جهاز كهربائي"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_device_line__unit_price
msgid "Unit Price"
msgstr "سعر الوحدة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_device_line__subtotal
msgid "Subtotal"
msgstr "المجموع"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__electrical_device_line_ids
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_type__electrical_devices
msgid "Electrical Devices"
msgstr "أجهزة كهربائية"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__product_ids
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__allowed_product_ids
msgid "Allowed Products"
msgstr "المنتجات المسموح بها"
#. module: odex_benefit
#: code:addons/odex_benefit/models/service_request.py:0
#, python-format
msgid ""
"Device '%s': Total quantity in this request (%s) exceeds the allowed limit "
"of %s units."
msgstr "الجهاز '%s': إجمالي الكمية في هذا الطلب (%s) يتجاوز الحد المسموح به وهو %s وحدة."
#. module: odex_benefit
#: code:addons/odex_benefit/models/service_request.py:0
#, python-format
msgid ""
"Device '%s': You cannot request more than %s units within %s %s. (Previous "
"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 "لم يتم إنشاء أي بنود في الفاتورة."

View File

@ -993,24 +993,26 @@ class ServiceRequest(models.Model):
raise ValidationError(_(
"Device '%s': Total quantity in this request (%s) exceeds the allowed limit of %s units."
) % (device.device_name, current_total_qty, allowed_qty))
domain = base_domain + [
('date', '>', date_before),
('electrical_device_line_ids.device_id', '=', device_id)
]
existing_requests = Service.search(domain)
existing_device_lines = existing_requests.mapped(
'electrical_device_line_ids').filtered(
lambda l: l.device_id.id == device_id
)
total_previous_qty = sum(existing_device_lines.mapped('quantity'))
total_qty = total_previous_qty + current_total_qty
if not rec.exception_or_steal:
domain = base_domain + [
('date', '>', date_before),
('electrical_device_line_ids.device_id', '=', device_id),
('exception_or_steal', '=', False)
]
existing_requests = Service.search(domain)
existing_device_lines = existing_requests.mapped(
'electrical_device_line_ids').filtered(
lambda l: l.device_id.id == device_id
)
total_previous_qty = sum(existing_device_lines.mapped('quantity'))
total_qty = total_previous_qty + current_total_qty
if total_qty > allowed_qty:
raise ValidationError(_(
"Device '%s': You cannot request more than %s units within %s %s. "
"(Previous requests: %s, Current request: %s, Total: %s)"
) % (device.device_name, allowed_qty, interval,
period, total_previous_qty, current_total_qty, total_qty))
if total_qty > allowed_qty:
raise ValidationError(_(
"Device '%s': You cannot request more than %s units within %s %s. "
"(Previous requests: %s, Current request: %s, Total: %s)"
) % (device.device_name, allowed_qty, interval,
period, total_previous_qty, current_total_qty, total_qty))
else:
last_request = Service.search(base_domain, order='date desc', limit=1)
if last_request and last_request.date: