Files
odoo_source/addons/purchase/models/product.py
T
jem-odoo e38ed7c780 [MOV] purchase_stock: move code from purchase
We want to break the dependency between stock and purchase
for our furtur developpement. For more modularity, a new
bridge module 'purchase_stock' is created.
This commti move part of business code, views, data, ...
related to stock management from purchase into purchase_stock
without changing any feature.

Task #47927
2018-05-23 10:13:49 +02:00

55 lines
2.3 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.addons.base.models.res_partner import WARNING_MESSAGE, WARNING_HELP
class ProductTemplate(models.Model):
_name = 'product.template'
_inherit = 'product.template'
@api.multi
def _purchase_count(self):
for template in self:
template.purchase_count = sum([p.purchase_count for p in template.product_variant_ids])
return True
property_account_creditor_price_difference = fields.Many2one(
'account.account', string="Price Difference Account", company_dependent=True,
help="This account will be used to value price difference between purchase price and cost price.")
purchase_count = fields.Integer(compute='_purchase_count', string='# Purchases')
purchase_method = fields.Selection([
('purchase', 'On ordered quantities'),
('receive', 'On received quantities'),
], string="Control Policy", help="On ordered quantities: control bills based on ordered quantities.\n"
"On received quantities: control bills based on received quantity.", default="receive")
purchase_line_warn = fields.Selection(WARNING_MESSAGE, 'Purchase Order Line', help=WARNING_HELP, required=True, default="no-message")
purchase_line_warn_msg = fields.Text('Message for Purchase Order Line')
class ProductProduct(models.Model):
_name = 'product.product'
_inherit = 'product.product'
@api.multi
def _purchase_count(self):
domain = [
('state', 'in', ['purchase', 'done']),
('product_id', 'in', self.mapped('id')),
]
PurchaseOrderLines = self.env['purchase.order.line'].search(domain)
for product in self:
product.purchase_count = len(PurchaseOrderLines.filtered(lambda r: r.product_id == product).mapped('order_id'))
purchase_count = fields.Integer(compute='_purchase_count', string='# Purchases')
class ProductCategory(models.Model):
_inherit = "product.category"
property_account_creditor_price_difference_categ = fields.Many2one(
'account.account', string="Price Difference Account",
company_dependent=True,
help="This account will be used to value price difference between purchase price and accounting cost.")