From 3e0d541ba40df0845ccffefdb2ecbeba612a0a9b Mon Sep 17 00:00:00 2001 From: Mohamed Eltayar Date: Thu, 13 Nov 2025 10:46:19 +0300 Subject: [PATCH] feat: add branch field to purchase.request - Add branch_id computed field to purchase.request model - Auto-populate branch from employee department - Add branch field to form view (readonly) - Add branch field to tree and search views - Add branch group by filter in search view - Add Arabic translation for branch field Synced with latest dev_odex25_purchase on Thu Nov 13 10:46:18 +03 2025 --- .../i18n/ar_001.po | 5 +++ .../models/purchase_request.py | 16 ++++++---- .../views/purchase_request.xml | 31 +++---------------- 3 files changed, 20 insertions(+), 32 deletions(-) diff --git a/odex25_purchase/purchase_requisition_custom/i18n/ar_001.po b/odex25_purchase/purchase_requisition_custom/i18n/ar_001.po index 7cabacf2a..4c8cbd298 100644 --- a/odex25_purchase/purchase_requisition_custom/i18n/ar_001.po +++ b/odex25_purchase/purchase_requisition_custom/i18n/ar_001.po @@ -1946,6 +1946,11 @@ msgstr "أوامر الشراء المبدئية" msgid "Request id" msgstr "" +#. module: purchase_requisition_custom +#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__branch_id +msgid "Branch" +msgstr "الفرع" + #. module: purchase_requisition_custom #: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__by_purchase msgid "Requested by Purchase" diff --git a/odex25_purchase/purchase_requisition_custom/models/purchase_request.py b/odex25_purchase/purchase_requisition_custom/models/purchase_request.py index 169ca18ec..de80a054e 100644 --- a/odex25_purchase/purchase_requisition_custom/models/purchase_request.py +++ b/odex25_purchase/purchase_requisition_custom/models/purchase_request.py @@ -48,6 +48,7 @@ class PurchaseRequest(models.Model): name = fields.Char(string='Name', copy=False, default=lambda self: '/') employee_id = fields.Many2one(comodel_name='hr.employee', string='Employee', default=lambda s: s._default_emp().id) department_id = fields.Many2one('hr.department', 'Department') + branch_id = fields.Many2one('hr.department', string='Branch', compute='_compute_branch_id', store=True, readonly=True) line_ids = fields.One2many(comodel_name='purchase.request.line', inverse_name='request_id', copy=True) date = fields.Date(string='Date', default=fields.Date.context_today, copy=False) state = fields.Selection( @@ -91,6 +92,15 @@ class PurchaseRequest(models.Model): ) has_approve_reject_permission = fields.Boolean(compute='_compute_permissions') + @api.depends('employee_id.department_id.branch_name', 'department_id.branch_name') + def _compute_branch_id(self): + for rec in self: + branch = False + if rec.employee_id and rec.employee_id.department_id: + branch = rec.employee_id.department_id.branch_name + elif rec.department_id: + branch = rec.department_id.branch_name + rec.branch_id = branch def _compute_permissions(self): for rec in self: @@ -409,9 +419,3 @@ class Employee(models.Model): return result else: return super(Employee, self).name_get() - - -class ProductTempInherit(models.Model): - _inherit = 'product.template' - - asset_ok = fields.Boolean(string="Asset Expensed") \ No newline at end of file diff --git a/odex25_purchase/purchase_requisition_custom/views/purchase_request.xml b/odex25_purchase/purchase_requisition_custom/views/purchase_request.xml index d0311c32e..e177f027e 100644 --- a/odex25_purchase/purchase_requisition_custom/views/purchase_request.xml +++ b/odex25_purchase/purchase_requisition_custom/views/purchase_request.xml @@ -67,6 +67,7 @@ + @@ -95,7 +96,7 @@ @@ -135,6 +136,7 @@ + @@ -148,27 +150,19 @@ purchase.request - + - - - - - - - - @@ -178,7 +172,6 @@ - - - - - - - - - + - - - -