Skip to Content

Contributors

Receiving in the Purchase UoM

Hello, maybe some of you came across this need:

I keep my Glycerine stock in Kg.
My supplier sells it in Liters.
I know that the density of Glycerine is 1.26, so 1 Liter = 1.26 Kg.

I would like to:
1. Send a Purchase Order for 100 Liters.
2. Receive from the Supplier the 100 Liters delivered.
3. View my stock as 126 Kg.

Setting a Purchase UoM works for 1. and 3., but does not work for 2.
Using Packagings does not work either.

Any advice?


Thank you

--
DANIEL REIS
MANAGING PARTNER

M: +351 919 991 307
E: dreis@OpenSourceIntegrators.com
A: Avenida da República 3000, Estoril Office B, 3º Escr.34, 2649-517 Cascais


by Daniel Reis - 04:25 - 9 Mar 2024

Follow-Ups

  • Re: Receiving in the Purchase UoM

    Hi Stefano,


    I could but currently don't have time (esp. to create tests). So here's the contents of what I did if you wanted to go and create PR yourself. It allows you to either ent factor or factor_inv and the other gets recomputed:


    from odoo import _, api, fields, models 
    from odoo.exceptions import ValidationError 

    class ProductSecondaryUnit(models.Model): 
       _inherit = "product.secondary.unit" 
       factor_inv = fields.Float( 
           "Secondary Unit Factor Inv.", 
           compute="_compute_factor_inv", 
           inverse="_set_factor_inv", 
       ) 
       @api.depends("factor") 
       def _compute_factor_inv(self): 
           for unit in self: 
               if unit.factor == 0: 
                   raise ValidationError(_("The value of factor could not be Zero")) 
               else: 
                   unit.factor_inv = 1 / unit.factor 
       def _set_factor_inv(self): 
           for unit in self: 
               if unit.factor_inv == 0: 
                   raise ValidationError( 
                       _("The value of inversed factor could not be Zero") 
                   ) 
               else: 
                   unit.factor = 1 / unit.factor_inv 


    And you just add the factor_inv into view:

       <record id="product_template_form_view" model="ir.ui.view"> 
           <field name="name">Product template Secondary Unit</field> 
           <field name="model">product.template</field> 
           <field name="inherit_id" ref="product.product_template_form_view" /> 
           <field name="arch" type="xml"> 
               <xpath expr="//field[@name='secondary_uom_ids']/tree/field[@name='uom_id']" position="before"> 
                   <field name="factor_inv"/> 
               </xpath> 
           </field> 
       </record>


    Best regards


        Radovan


    On pondelok 11. marca 2024 8:26:54 CET Stefano Consolaro wrote:

    > Hi Radovan, do you think that the "small module" for product_secondary_unit

    > can be refactored as a configuration options? If so, can you do a PR fot

    > it? Thanks Stefano

    > Da  "Radovan Skolnik" notifications@odoo-community.org

    > A  "Contributors" contributors@odoo-community.org

    > Cc

    > Data  Sat, 09 Mar 2024 15:38:21 -0000

    > Oggetto  Re: Receiving in the Purchase UoM

    >

    > Hi,

    >

    > I was dealing with this just recently. What works (although it's not 100%

    > what yo want) is using those 2 modules:

    >

    > product_secondary_unit - allows you to add secondary UoM(s) with their

    > factor - i.e. you add secondary UoM of kg with conversion factor of 1/1.26

    > (this seems a bit awkward but it's inverted - I have created a small module

    > to be able to add inverse factor of 1.26 and ocmpute the original factor)

    > stock_secondary_unit - this basically allows you to choose one of the

    > product's secondary UoM to show (besides qty in original UoM) qty on hand

    > as well as in stock moves. Actually in stock moves it does not work - see

    > https://github.com/OCA/stock-logistics-warehouse/pull/1769 [1]  for my

    > proposal to fix it.

    >

    > Best regards

    >

    > Radovan

    >

    > On sobota 9. marca 2024 16:27:22 CET Daniel Reis wrote:

    > > Hello, maybe some of you came across this need:

    > > I keep my Glycerine stock in Kg.

    > > My supplier sells it in Liters.

    > > I know that the density of Glycerine is 1.26, so 1 Liter = 1.26 Kg.

    > > I would like to:

    > > 1. Send a Purchase Order for 100 Liters.

    > > 2. Receive from the Supplier the 100 Liters delivered.

    > > 3. View my stock as 126 Kg.

    > > Setting a Purchase UoM works for 1. and 3., but does not work for 2.

    > > Using Packagings does not work either.

    > > Any advice?

    > >

    > > Thank you

    > > --

    > > DANIEL

    > > REIS*

    > > MANAGING PARTNER

    > > M:*

    > > +351 919 991 307

    > > E:*

    > > dreis@OpenSourceIntegrators.com [1]

    > > A:*

    > > Avenida da República 3000, Estoril Office B, 3º Escr.34,

    > > 2649-517 Cascais

    > >

    > >

    > >

    > >

    > > _______________________________________________

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

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

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

    > >

    > >

    > >

    > > [1] mailto:dreis@OpenSourceIntegrators.com

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

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

    >

    > _______________________________________________

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

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

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

    >

    >

    >

    > Stefano Consolaro

    > www.mymage.it

    >

    > _______________________________________________

    > 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://github.com/OCA/stock-logistics-warehouse/pull/1769

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

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

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

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




    by Radovan Skolnik - 11:56 - 11 Mar 2024
  • Re: Receiving in the Purchase UoM
    Hi Radovan,
    do you think that the "small module" for product_secondary_unit can be refactored as a configuration options?
    If so, can you do a PR fot it?

    Thanks
    Stefano

    Da "Radovan Skolnik" notifications@odoo-community.org
    A "Contributors" contributors@odoo-community.org
    Cc
    Data Sat, 09 Mar 2024 15:38:21 -0000
    Oggetto Re: Receiving in the Purchase UoM

    Hi,


    I was dealing with this just recently. What works (although it's not 100% what yo want) is using those 2 modules:

    • product_secondary_unit - allows you to add secondary UoM(s) with their factor - i.e. you add secondary UoM of kg with conversion factor of 1/1.26 (this seems a bit awkward but it's inverted - I have created a small module to be able to add inverse factor of 1.26 and ocmpute the original factor)
    • stock_secondary_unit - this basically allows you to choose one of the product's secondary UoM to show (besides qty in original UoM) qty on hand as well as in stock moves. Actually in stock moves it does not work - see https://github.com/OCA/stock-logistics-warehouse/pull/1769 for my proposal to fix it.

    Best regards


        Radovan



    On sobota 9. marca 2024 16:27:22 CET Daniel Reis wrote:

    > Hello, maybe some of you came across this need:

    > I keep my Glycerine stock in Kg.

    > My supplier sells it in Liters.

    > I know that the density of Glycerine is 1.26, so 1 Liter = 1.26 Kg.

    > I would like to:

    > 1. Send a Purchase Order for 100 Liters.

    > 2. Receive from the Supplier the 100 Liters delivered.

    > 3. View my stock as 126 Kg.

    > Setting a Purchase UoM works for 1. and 3., but does not work for 2.

    > Using Packagings does not work either.

    > Any advice?

    >

    > Thank you

    > --

    > DANIEL

    > REIS*

    > MANAGING PARTNER

    > M:*

    > +351 919 991 307

    > E:*

    > dreis@OpenSourceIntegrators.com [1]

    > A:*

    > Avenida da República 3000, Estoril Office B, 3º Escr.34,

    > 2649-517 Cascais

    >

    >

    >

    >

    > _______________________________________________

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

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

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

    >

    >

    >

    > [1] mailto:dreis@OpenSourceIntegrators.com

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

    > [3] 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



    Stefano Consolaro
    www.mymage.it

    by Stefano Consolaro - 08:26 - 11 Mar 2024
  • Re: Receiving in the Purchase UoM
    Hi Daniel,

    I created a module that I think does exactly what you want (or at least quite close), using some OCA modules as product_secondary_unit and purchase_secondary_unit.

    So definitely, you need custom code for that purpose.

    Regards
    Jorge Ayala
    Biwise
    +525517927019

    El 9 mar 2024 9:27 a. m., Daniel Reis <notifications@odoo-community.org> escribió:
    Hello, maybe some of you came across this need:

    I keep my Glycerine stock in Kg.
    My supplier sells it in Liters.
    I know that the density of Glycerine is 1.26, so 1 Liter = 1.26 Kg.

    I would like to:
    1. Send a Purchase Order for 100 Liters.
    2. Receive from the Supplier the 100 Liters delivered.
    3. View my stock as 126 Kg.

    Setting a Purchase UoM works for 1. and 3., but does not work for 2.
    Using Packagings does not work either.

    Any advice?


    Thank you

    --
    DANIEL REIS
    MANAGING PARTNER

    M: +351 919 991 307
    E: dreis@OpenSourceIntegrators.com
    A: Avenida da República 3000, Estoril Office B, 3º Escr.34, 2649-517 Cascais

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



    by jorge.ayala - 05:51 - 9 Mar 2024
  • Re: Receiving in the Purchase UoM

    Hi,


    I was dealing with this just recently. What works (although it's not 100% what yo want) is using those 2 modules:

    • product_secondary_unit - allows you to add secondary UoM(s) with their factor - i.e. you add secondary UoM of kg with conversion factor of 1/1.26 (this seems a bit awkward but it's inverted - I have created a small module to be able to add inverse factor of 1.26 and ocmpute the original factor)
    • stock_secondary_unit - this basically allows you to choose one of the product's secondary UoM to show (besides qty in original UoM) qty on hand as well as in stock moves. Actually in stock moves it does not work - see https://github.com/OCA/stock-logistics-warehouse/pull/1769 for my proposal to fix it.

    Best regards


        Radovan



    On sobota 9. marca 2024 16:27:22 CET Daniel Reis wrote:

    > Hello, maybe some of you came across this need:

    > I keep my Glycerine stock in Kg.

    > My supplier sells it in Liters.

    > I know that the density of Glycerine is 1.26, so 1 Liter = 1.26 Kg.

    > I would like to:

    > 1. Send a Purchase Order for 100 Liters.

    > 2. Receive from the Supplier the 100 Liters delivered.

    > 3. View my stock as 126 Kg.

    > Setting a Purchase UoM works for 1. and 3., but does not work for 2.

    > Using Packagings does not work either.

    > Any advice?

    >

    > Thank you

    > --

    > DANIEL

    > REIS*

    > MANAGING PARTNER

    > M:*

    > +351 919 991 307

    > E:*

    > dreis@OpenSourceIntegrators.com [1]

    > A:*

    > Avenida da República 3000, Estoril Office B, 3º Escr.34,

    > 2649-517 Cascais

    >

    >

    >

    >

    > _______________________________________________

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

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

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

    >

    >

    >

    > [1] mailto:dreis@OpenSourceIntegrators.com

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

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




    by Radovan Skolnik - 04:36 - 9 Mar 2024