Skip to Content

Contributors

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

Forgot to mention that’s 12.0

Le ven. 13 nov. 2020 à 12:00, Iván Todorovich <ivan.todorovich@gmail.com> 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 != 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})
        return res

Best,

Iván Todorovich


El vie., 13 nov. 2020 a las 11:58, Radovan Skolnik (<radovan@skolnik.info>) 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 [1]


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


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


> 


> 


> 


> 


> _______________________________________________


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


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


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


> 


> 


> 


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


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


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


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


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




_______________________________________________
Mailing-List: https://odoo-community.org/groups/contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe

--


Iván Todorovich

by Iván Todorovich - 04:06 - 13 Nov 2020

Reference

  • How to propagate custom info/note from Sale Order Line to Purchase Order Line using MTO
    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
    
    
    

    by Radovan Skolnik - 03:35 - 13 Nov 2020