bemade-addons/purchase_customer_requisition/models/purchase_requisition.py
2025-01-15 10:26:36 -05:00

41 lines
1.7 KiB
Python

from odoo import models, fields, api
class PurchaseRequisition(models.Model):
_inherit = 'purchase.requisition'
customer_id = fields.Many2one(
comodel_name='res.partner',
string='Customer',
domain=[('customer_rank', '>', 0)],
help='Customer for whom this requisition is created'
)
customer_requisition_ref = fields.Char(
string='Customer Requisition Ref',
compute='_compute_customer_requisition_ref',
store=True,
help='Customer requisition reference'
)
@api.depends('customer_id', 'vendor_id')
def _compute_customer_requisition_ref(self):
for requisition in self:
if requisition.customer_id and requisition.vendor_id:
ref = self.env['customer.supplier.requisition'].search([
('customer_id', '=', requisition.customer_id.id),
('supplier_id', '=', requisition.vendor_id.id)
], limit=1)
requisition.customer_requisition_ref = ref.requisition_ref if ref else False
else:
requisition.customer_requisition_ref = False
def action_in_progress(self):
res = super().action_in_progress()
for requisition in self:
if requisition.customer_requisition_ref:
# Update all related PO lines description
for po in requisition.purchase_ids:
for line in po.order_line:
if line.name and not line.name.startswith(f'[{requisition.customer_requisition_ref}]'):
line.name = f'[{requisition.customer_requisition_ref}] {line.name}'
return res