Contributors mailing list archives

contributors@odoo-community.org

Avatar

Re: How to propagate custom info/note from Sale Order Line to Purchase Order Line using MTO

by
Radovan Skolnik
- 14/11/2020 16:55:13
Thanx Ivan, will have a look and adapt if needed.

Best regards

	Radovan

On piatok 13. novembra 2020 16:12:26 CET Iván Todorovich wrote:

> Forgot to mention that’s 12.0

> Le ven. 13 nov. 2020 à 12:00, Iván Todorovich < ivan.todorovich@gmail.com

> [1] > a écrit : Hi Radovan,

> We've done something similar like this:

> class PurchaseOrderLine(models.Model):

> _inherit = 'purchase.order.line'

> def _merge_in_existing_line(

> self, product_id, product_qty, product_uom,

> location_id, name, origin, values):

> """ Avoid merging lines if they have different names """

> line_name = ', '.join(values['move_dest_ids'].mapped('name'))

> if self.name [2] != line_name:

> return False

> return super()._merge_in_existing_line(

> product_id, product_qty, product_uom, location_id,

> name, origin, values)

> 

> class StockRule(models.Model):

> _inherit = 'stock.rule'

> def _make_po_get_domain(self, values, partner):

> """ We want to create one purchase order per origin """

> res = super(StockRule, self)._make_po_get_domain(values, partner)

> if 'move_dest_ids' in values:

> origin = ', '.join(values['move_dest_ids'].mapped('origin'))

> res += (('origin', '=', origin),)

> return res

> def _prepare_purchase_order_line(

> self, product_id, product_qty, product_uom,

> values, po, partner):

> """ Replace the name with the name in the destination movement,

> this way we translate custom attribute values """

> res = super()._prepare_purchase_order_line(

> product_id, product_qty, product_uom, values, po, partner)

> # Copy name from move_ids, if available

> if 'move_dest_ids' in values:

> name = ', '.join(values['move_dest_ids'].mapped('name'))

> if name:

> res.update({'name': name})

> # Copy name from sale order (needed for dropshipping)

> elif 'sale_line_id' in values:

> sol_id = self.env['sale.order.line'].browse(values['sale_line_id'])

> if sol_id:

> res.update({'name': sol_id.name [3] })

> return res

> Best,

> * Iván Todorovich *

> El vie., 13 nov. 2020 a las 11:58, Radovan Skolnik (< radovan@skolnik.info

> [4] >) escribió: Hello Daniel,

> but isn't this used for Services only? I have tried it but it never gets

> called with Products. With Products the flow goes through Procurements.

> Best regards

> Radovan

> 

> On piatok 13. novembra 2020 15:46:48 CET Daniel Reis wrote:

> > Hello,

> > 

> > You can extend the "_purchase_service_prepare_order_values" method,

> > originally declared at addons/sale_purchase/models/sale_order.py.

> > That prepares the data used to create the POL.

> > 

> > Thanks

> > Daniel

> > 

> > On 13/11/2020 14:37, Radovan Skolnik

> > wrote:

> > 

> > 

> > Hello,

> > for our customers we offer standard products but also one-off custom-made

> > stuff that we order from our suppliers. These are for example special

> > tables with individual dimensions for each project.

> > So we have a "template" product (not in the Odoo meaning) that we put into

> > Sale Order and in the special SOL field we specify the dimensions. Now if

> > the customer accepts the offer, Purchase Order is automatically created as

> > we have MTO setup. We do not group POs nor POLs, so each SOL gets its own

> > POL. Now how would I be able to propagate contents of that special SOL

> > field into its apropriate POL? Or should I use any other approach?

> > Thank you very much. Best regards

> > Radovan Skolnik

> > 

> > 

> > _______________________________________________

> > Mailing-List:  https://odoo-community.org/groups/contributors-15 [5] [1]

> > Post to: mailto: contributors@odoo-community.org [6] [2]

> > Unsubscribe:  https://odoo-community.org/groups?unsubscribe [7] [3]

> > 

> > 

> > 

> > 

> > _______________________________________________

> > Mailing-List:  https://odoo-community.org/groups/contributors-15 [8] [4]

> > Post to: mailto: contributors@odoo-community.org [9]

> > Unsubscribe:  https://odoo-community.org/groups?unsubscribe [10] [5]

> > 

> > 

> > 

> > [1]  https://odoo-community.org/groups/contributors-15 [11]

> > [2] mailto: contributors@odoo-community.org [12]

> > [3]  https://odoo-community.org/groups?unsubscribe [13]

> > [4]  https://odoo-community.org/groups/contributors-15 [14]

> > [5]  https://odoo-community.org/groups?unsubscribe [15]

> 

> _______________________________________________

> Mailing-List: https://odoo-community.org/groups/contributors-15 [16]

> Post to: mailto: contributors@odoo-community.org [17]

> Unsubscribe: https://odoo-community.org/groups?unsubscribe [18]

> 

> --

> 

> * Iván Todorovich *

> _______________________________________________

> Mailing-List: https://odoo-community.org/groups/contributors-15 [19]

> Post to: mailto:contributors@odoo-community.org

> Unsubscribe: https://odoo-community.org/groups?unsubscribe [20]

> 

> 

> 

> [1] mailto:ivan.todorovich@gmail.com

> [2] http://self.name

> [3] http://sol_id.name

> [4] mailto:radovan@skolnik.info

> [5] https://odoo-community.org/groups/contributors-15

> [6] mailto:contributors@odoo-community.org

> [7] https://odoo-community.org/groups?unsubscribe

> [8] https://odoo-community.org/groups/contributors-15

> [9] mailto:contributors@odoo-community.org

> [10] https://odoo-community.org/groups?unsubscribe

> [11] https://odoo-community.org/groups/contributors-15

> [12] mailto:contributors@odoo-community.org

> [13] https://odoo-community.org/groups?unsubscribe

> [14] https://odoo-community.org/groups/contributors-15

> [15] https://odoo-community.org/groups?unsubscribe

> [16] https://odoo-community.org/groups/contributors-15

> [17] mailto:contributors@odoo-community.org

> [18] https://odoo-community.org/groups?unsubscribe

> [19] https://odoo-community.org/groups/contributors-15

> [20] https://odoo-community.org/groups?unsubscribe




Reference