forked from Mapan/odoo17e
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class ApprovalProductLine(models.Model):
|
|
_name = 'approval.product.line'
|
|
_description = 'Product Line'
|
|
|
|
_check_company_auto = True
|
|
|
|
approval_request_id = fields.Many2one('approval.request', required=True)
|
|
description = fields.Char(
|
|
"Description", required=True,
|
|
compute="_compute_description", store=True, readonly=False, precompute=True)
|
|
company_id = fields.Many2one(
|
|
string='Company', related='approval_request_id.company_id',
|
|
store=True, readonly=True, index=True)
|
|
product_id = fields.Many2one('product.product', string="Products", check_company=True)
|
|
product_uom_id = fields.Many2one(
|
|
'uom.uom', string="Unit of Measure",
|
|
compute="_compute_product_uom_id", store=True, readonly=False, precompute=True,
|
|
domain="[('category_id', '=', product_uom_category_id)]")
|
|
product_uom_category_id = fields.Many2one(related='product_id.uom_id.category_id')
|
|
quantity = fields.Float("Quantity", default=1.0)
|
|
|
|
@api.depends('product_id')
|
|
def _compute_description(self):
|
|
for line in self:
|
|
line.description = line.product_id.description_purchase or line.product_id.display_name
|
|
|
|
@api.depends('product_id')
|
|
def _compute_product_uom_id(self):
|
|
for line in self:
|
|
line.product_uom_id = line.product_id.uom_id
|