Добавить поле адреса доставки при комплектации на складе в odoo

#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?