This question has been flagged
3 Replies
10219 Views

I added a field in the sale.order called 'sale_notes'. And another in the stock.picking named 'delivery_notes'. I want to transfer the data from the sale_notes to the delivery_notes, when the confirm button (action_confirm) is pressed. How to accomplish that?

Avatar
Discard
Best Answer

class SaleOrder(models.Model):

    _inherit = 'sale.order'

    @api.multi

    def action_confirm(self):

        res = super(SaleOrder, self).action_confirm()

        for do_pick in self.picking_ids:

            do_pick.write({'notes': self.note})

        return res


Avatar
Discard
Best Answer

Override the action_confirm.


@api.multi
def action_confirm(self):
res = super(sale_order, self).action_confirm()
for rec in self:
rec.picking_ids.write({'delivery_note': rec.sale_note})
return res
Avatar
Discard
Best Answer

Dear Jones,

This code will help you. 

Sale Order

-------------------------------------

from odoo import fields, models

class SaleOrder(models.Model):

    _inherit = "sale.order"

    shipping_note = fields.Text(

        string="Shipping Notes"

    )

---------------------------------------------

Picking

----------------

from odoo import api, fields, models

class Picking(models.Model):

    _inherit = "stock.picking"

    delivery_shipping_note = fields.Text(

        string="Shipping Notes",

        compute="compute_shipping_note",

    )

    @api.depends('move_lines', 'state')

    def compute_shipping_note(self):

        for record in self:

            for move in record.move_lines:

                if move.sale_line_id \

                        and move.sale_line_id.order_id.\

                        shipping_note:

                    record["delivery_shipping_note"] = \

                        move.sale_line_id.order_id.shipping_note

                    break

Avatar
Discard

This was very helpful, thanks :)