2015-07-24 5 views
0

Я работаю над Odoo 8.0 У меня есть наша система Sales and Ordering с 5473 продуктами. Я также настроил наших поставщиков, и они связаны с соответствующими продуктами. Я подтвердил, что у поставщиков введено поле адреса, и мы почти готовы к работе.Odoo Сделать заказ Конфигурация для всех продуктов

Однако, чтобы включить автоматическую закупку для запроса предложений (запрос на цитату), я обнаружил, что на любом продукте, находящемся на вкладке закупки, есть route_ids. Один из них - покупка, а один - на заказ. Мне сказали, чтобы RFQ автоматически запускался, чтобы флажки Buy and Make to Order были включены.

Я просмотрел модели, поля и базу данных и не могу найти таблицу, в которой эти флажки установлены. Может ли кто-нибудь помочь мне, с какой таблицей я могу сбросить и изменить, а затем повторно импортировать, чтобы автоматически установить оба поля флажка?

ответ

0

Чтобы быстро найти такие вещи, у Оду есть «трюк»: если вы нажмете в правом верхнем углу вашего имени пользователя и «О Odoo», вы можете нажать «Активировать режим разработчика». Теперь, когда вы переходите к просмотру продукта, нажмите «Изменить» и наведите указатель мыши на метку поля, в нем будет отображаться информация о поле.

В этом случае, зависание над «Маршрутами» говорит нам, что это поле «many2many», называемое «route_ids», приносящий объект «product.product» в отношении «stock_location_route».

Обычно соответствующую таблицу базы данных можно назвать чем-то вроде «stock_location_route_product_rel», но в этом случае нам не повезло. Однако Odoo source code (addons/stock/product.py) дает нам определение этого соотношения:

'route_ids': fields.many2many('stock.location.route', 'stock_route_product', 'product_id', 'route_id', 'Routes', domain="[('product_selectable', '=', True)]", 
           help="Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, MTO/MTS,..."), 

Который говорит нам, что имя таблицы «stock_route_product».

Следующий запрос даст вам флажки, установленные на некотором подмножестве продукции,

select pt.name, slr.name 
from stock_route_product srp 
inner join product_template pt on srp.product_id = pt.id 
inner join stock_location_route slr on srp.route_id = slr.id 
where pt.name like '%keyword%' 
and slr.name in ('Make To Order', 'Buy'); 

Или для всех продуктов,

select pt.name, slr.name 
from stock_route_product srp 
inner join product_template pt on srp.product_id = pt.id 
inner join stock_location_route slr on srp.route_id = slr.id 
where slr.name in ('Make To Order', 'Buy'); 

На самом деле, после запроса еще более проницательный, здесь вы будут видеть недостающие проверки, отображаемые как NULL,

select pt_id, slr_id, srp.route_id, srp.product_id 
from (
    select pt.id as pt_id, slr.id as slr_id 
    from stock_location_route slr, product_template pt 
    where slr.name in ('Make To Order', 'Buy') 
) q 
left join stock_route_product srp 
    on srp.route_id = q.slr_id 
    and srp.product_id = q.pt_id 

Теперь это li (с использованием INSERT или импорта/экспорта):

select pt_id, slr_id 
from (
    select pt.id as pt_id, slr.id as slr_id 
    from stock_location_route slr, product_template pt 
    where slr.name in ('Make To Order', 'Buy') 
) q 
left join stock_route_product srp 
    on srp.route_id = q.slr_id 
    and srp.product_id = q.pt_id 
where srp.route_id is null 
+0

Спасибо, это очень помогает! Можете ли вы рассказать мне, а затем использовать строку, где pt.name как «% keyword%» и slr.name в («Сделать заказ», «Купить»); если он может быть изменен для всех продуктов? –

+0

Можете ли вы мне помочь с изменением этого запроса для всех продуктов? где pt.name похоже на «% keyword%». –

+0

Предоставленный код был дан как ответ на вопрос о том, как автоматически автоматически установить два флажка (сделать заказ и купить) автоматически для каждого продукта. Вот ссылка http://stackoverflow.com/questions/31611721/odoo-make-to-order-configuration-for-all-products/31628614#31628614. В ответ на вопрос, где сейчас, я не уверен в данный момент. Мне нужна помощь. –

Смежные вопросы