Files
stock-rma/rma_purchase/models/purchase_order_line.py
2023-07-07 17:26:14 +02:00

79 lines
2.6 KiB
Python

# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html)
from odoo import api, fields, models
class PurchaseOrderLine(models.Model):
_inherit = "purchase.order.line"
rma_line_id = fields.Many2one(
comodel_name="rma.order.line",
string="RMA",
)
@api.model
def name_search(self, name="", args=None, operator="ilike", limit=100):
"""Allows to search by PO reference."""
if not args:
args = []
args += [
"|",
(self._rec_name, operator, name),
("order_id.name", operator, name),
]
return super(PurchaseOrderLine, self).name_search(
name=name, args=args, operator=operator, limit=limit
)
@api.model
def _name_search(
self, name="", args=None, operator="ilike", limit=100, name_get_uid=None
):
"""Typed text is cleared here for better extensibility."""
return super(PurchaseOrderLine, self)._name_search(
name="",
args=args,
operator=operator,
limit=limit,
name_get_uid=name_get_uid,
)
def name_get(self):
res = []
if self.env.context.get("rma"):
for purchase in self:
invoices = self.env["account.move.line"].search(
[("purchase_line_id", "=", purchase.id)]
)
if purchase.order_id.name:
res.append(
(
purchase.id,
"%s %s %s qty:%s"
% (
purchase.order_id.name,
" ".join(
str(x)
for x in [
inv.name for inv in invoices.mapped("move_id")
]
),
purchase.product_id.name,
purchase.product_qty,
),
)
)
else:
res.append(super(PurchaseOrderLine, purchase).name_get()[0])
return res
else:
return super(PurchaseOrderLine, self).name_get()
@api.model
def create(self, vals):
rma_line_id = self.env.context.get("rma_line_id")
if rma_line_id:
vals["rma_line_id"] = rma_line_id
return super(PurchaseOrderLine, self).create(vals)