#python-2.7 #openerp #odoo-8 #openerp-8
#python-2.7 #openerp #odoo-8 #openerp-8
Вопрос:
Когда мы conform sale
из sale order
него генерируем stock picking
all transfer
и передаем некоторые поля автоматически, например oder id
, как исходный документ, идентификатор партнера и другие вещи stock picking
, теперь я хочу перенести с ними другое поле, которое является адресом partner_shipping_id
поля. Кто-нибудь, пожалуйста, скажите мне, как я могу это сделать. Я буду очень благодарен…
Комментарии:
1. Что именно вы подразумеваете под «адресом поля partner_shipping_id»? Само поле уже используется как
partner_id
для созданной комплектации.2. Когда odoo генерирует
stock picking
иstock move
изsale order
, я хочу передать некоторые значения пользовательских полей с данными, которые odoo передает из заказа на продажуstock picking
и «перемещение запасов»…
Ответ №1:
Вы можете решить свою проблему следующим образом.
1. Установите настраиваемое поле для sale.order и stock.pirking в py, а также для просмотра.
2. Унаследуйте stock.move в своем пользовательском модуле и используйте _prepare_picking_assign() вместо метода удаления.
3. Использование super
и установка значения пользовательского поля.
4. Просмотр изменений после подтверждения документа заказа на продажу.
Например :
from openerp import models, fields, api, _
class sale_order(models.Model):
_inherit='sale.order'
customer_field=fields.Char(string='Customer Field')
class stock_picking(models.Model):
_inherit='stock.picking'
customer_field=fields.Char(string='Customer Field')
class stock_move(models.Model):
_inherit='stock.move'
def _prepare_picking_assign(self,cr, uid, move, context=None):
res=super(stock_move,self)._prepare_picking_assign(cr, uid, move, context)
if move.procurement_id and move.procurement_id.sale_line_id and move.procurement_id.sale_line_id.order_id:
sale_obj = move.procurement_id.sale_line_id.order_id
if sale_obj.dif_pick_address:
res.update({
'customer_field':sale_obj.customer_field,
})
return res
Приведенный выше код отлично работает в версии Odoo 8.0
Кроме того, вы должны установить в части просмотра, чтобы вы могли проверить, что значения заказа на продажу поступают в комплектацию на складе после подтверждения вашего заказа на продажу.
Я надеюсь, что мой ответ может быть полезен для вас 🙂
Комментарии:
1. он не передает данные, которые я ввожу
customer_field
из заказа на продажу. после нажатия кнопки подтверждения продажи поле customer_field в комплектации остается пустым.2. Приведенный выше код отлично работает в методе создания счета-фактуры, заказ на продажу — это заказ на доставку. Я хорошо протестировал, а также то же самое работает с моей базой данных клиентов. просто проверьте еще раз правильно и создайте собственное пользовательское поле, а затем сверьтесь с этим потоком доставки с документом заказа на продажу
3. @DASADIYACHAITANYA как это в odoo 12?