[
https://issues.apache.org/jira/browse/OFBIZ-219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12621288#action_12621288
]
Jacques Le Roux commented on OFBIZ-219:
---------------------------------------
Hi Jacopo,
Please, what is the status of this ? I just re-read the interesting thread
http://lists.ofbiz.org/pipermail/users/2006-January/009827.html and your
proposition at its end + Sebastien's.. It's a pity Carl was gone...
> Discussion about quantity uom support in inventory and orders.
> --------------------------------------------------------------
>
> Key: OFBIZ-219
> URL: https://issues.apache.org/jira/browse/OFBIZ-219
> Project: OFBiz
> Issue Type: Wish
> Components: order, product
> Reporter: Jacopo Cappellato
> Priority: Minor
>
> This is taken from an issue created in the old server by Carl Sopchack:
> OFBiz currently only allows orders to be placed for product in the product's
> stock keeping unit of measure. Add ability to use varying Units of Measure
> when placing an order. For example, if a product's stock keeping UoM is
> "each", allow orders to be in "each", "box" (of 12 or 24 or whatever), "case"
> (of 3, 4, 5... boxes), or "pallet" (of n cases).
> THese are the changes that I foresee doing:
> 1) Add attributes to the Product entity: skuUom (stock keeping unit UoM), and
> customerOrderUom (default customer order quantity UoM; I forsee a
> supplierOrderUom in my future, too, but I'm not there yet).
> 2) Add the above fields to the Product Entry screen. Validate that either the
> two UoM's are equal, or that there are UomConversion records to go between
> the two.
> 3) Add attributes to the OrderItem entity: quantityAsOrdered and
> quantityAsOrderedUom.
> 4) Change the entry of order line items so that the quantity that is entered
> on the screen is saved in the quantityAsOrdered attribute, and add a way to
> select units of measure, allowing only those units of measure which have a
> UomConversion record on file where the uomIdTo = product.skuUom, with the
> default value being the product.customerOrderUom, and the value being saved
> in quantityAsOrderedUom. The quantityAsOrdered would be converted from the
> quantityAsOrderedUom to the product.skuUom, and the result stored in
> OrderItem.quantity. (There may be a rounding issue here that convertUom will
> have to address...)
> 5) Change the display of order lines to show the quantityAsOrdered and
> quantityAsOrderedUom instead of (or in addition to?) quantity and skuUom.
> I'm sure there will be more related changes down the road (e.g., on the pick
> ticket), but I'll enter a JIRA when I get to that point.
> I'm starting on this work today (but only working part time)...
> All Comments Work Log Change History
> Sort Order: [navigator.ascending.order]
> Comment by Carl Sopchak [01/Apr/06 11:54 AM]
> [ Permlink ]
> Well, my Data Model Resource Books were delivered about 30 minutes after I
> entered this, and see that the different UoM's - according to the book - are
> different features of a product. I need to study this a bit more, to see if
> it makes sense in my client's use case. But, in the mean time, I guess the
> change is "on hold"... (At first glance, this seems cumbersome, but I'll
> approach it with an open mind...)
> Comment by Carl Sopchak [22/Apr/06 04:24 PM]
> [ Permlink ]
> Ok, after reading the Data Model Resource Book, and studying features in
> OFBiz, I couldn't figure out how we would implement different ordering Units
> of Measure with existing functionality. Our product is wood: 2x4's, 2x6's,
> 2x8's etc. A customer may say that they want 200 pieces, 1600 lineal feet,
> 1067 board feet, or 1 "unit" (those huge "packages" you see stacked in your
> local home improvement store), but we'll be shipping the same physical pieces
> regardless. If they only want 800 lineal feet, we'll break a unit and ship
> them half of it...
> So, it appears that this mod is needed for our implementation. I have started
> on it, as described above, with the following exceptions:
> 1) The field names above for Uom will have an "Id" at the end.
> 2) I am making the mod contingent on the setting of a property in a property
> file. Since this is primarily product related, I will be adding the property
> to file application/product/config/catalog.properties. The property is
> product.order.use.uom, which will be true or not. (I'll always compare to
> "true", so false or not found or not recognized all mean false.) If someone
> thinks there's a better place for this, please let me know.
> 3) The UoM fields have been put on the Product Update page unconditionally.
> However, the validation that the customer order UoM can be converted to the
> SKU UoM is done conditional on order.use.uom. (Is there a way for me to pass
> the value of product.order.use.uom to the form, so I can use <field
> use-when="product.order.use.uom=='true'">?)
> Comments and suggestions welcome.
> Carl
> Comment by Jacopo Cappellato [24/Apr/06 04:05 AM]
> [ Permlink ]
> Carl,
> I think that you'll find interesting the thread "Units of measure for
> quantities in sales/purchase/manufacturing orders and for inventory" happened
> in the user mailing list starting from 18/01/2006.
> Jacopo
> Comment by Jacopo Cappellato [24/Apr/06 05:00 AM]
> [ Permlink ]
> Carl,
> here are some comments:
> a) instead of Product.skuUomId, I'd suggest something closer to OFBiz's
> conventions, such as Product.inventoryQtyUomId
> b) instead of Product.customerOrderUomId, I'd suggest something like
> Product.productPriceQtyUomId: this should store the uom for the unit price
> qty to which all the prices in the ProductPrice entity refer; this uom can
> also be used as the default uom for sales orders
> c) I like the idea of adding a new field to store the quantity ordered in the
> non sku uom (quantityAsOrdered); this will minimize the mods needed for the
> order fulfillment process
> d) you can pass a value from a properties file to a form adding the following
> code to the "action" section of the screen widget:
> <property-to-field field="useUoms" resource="catalog"
> property="product.order.use.uom" default="false"/>
> and then, in the form definition, you can test is in the following way:
> <field use-when="${useUoms}=='true'">
> (or something like this... please verify the syntax of the use-when attribute)
> However I think that it's not necessary to hide these fields in the edit
> product form.
> Comment by Carl Sopchak [25/Apr/06 04:56 PM]
> [ Permlink ]
> Jacopo,
> Thanks for the pointer to the User list thread. I'll comment on it
> separately, after I read through it a few times, and read through the JIRA
> issue it pointed to (which was closed with status "won't fix", which gives me
> pause...)
> As for your other comments:
> a) Makes sense. Being new to OFBiz, it might take me a little bit to learn
> these kind of conventions. Please bear with me ;-) And please keep pointing
> these things out.
> b) Actually, since I haven't spent a lot of time on this yet, I didn't think
> about prices - yet. (argh!) Anyway, I'm not too sure we want to have pricing
> in a UoM different from the inventoryQtyUomId, since we'll be using that UoM
> a whole lot, which would require a lot of calls to convertUom. By keeping
> everything in the same base UoM, things should be easier down the road (and
> allow the implementation of varying UoMs to be added piecemeal as needed).
> I'll have to think about this a bit more...
> c) Thanks. I figured this would allow the functionality that we need without
> throwing a huge knot into everything. It will also allow varying UoMs to be
> implemented as needed, where needed, by whomever needs it...
> d) Thanks for the tip. As far as not hiding the fields on the Edit Product
> form, I think if I don't, then people will see them and wonder why they
> "aren't working". On the other hand, seeing them might prompt them to look
> into it further. Maybe a message stating that they're "info only" if
> product.order.use.uom <> "true"...
> Thanks again for the comments. They are much appreciated!
> Carl
> Comment by Carl Sopchak [25/Apr/06 06:49 PM]
> [ Permlink ]
> My comments on the thread starting at
> http://lists.ofbiz.org/pipermail/users/2006-January/009827.html :
> IMHO, the unit of measure used for quotes, sales orders, purchase orders,
> customer requests, AND returns should ALL be SELECTABLE at the time the
> document is entered into the system, and carried forward (e.g., quote ->
> sales order) throught the ordering processing. I would not implement these as
> a product attribute that must be used (although a product attribute for a
> default UoM would certainly make sense). As for returning product in a UoM
> different than purchased - absolutely want to do. If I buy a case of paper,
> and when I open it up I find a ream stained or damaged, I want to return the
> ream, not the case. For all of these documents, I'd suggest following the
> idea presented above for customer orders.
> As for warehousing - interesting idea. Having designed and developed systems
> for a public warehouse, I've probably seen just about every product handling
> scenario you can think of! There are two schools of thought here: One is to
> keep inventory all at one UoM. This certainly simplifies a lot of the system
> processing, and user data entry, because you don't have to deal with, for
> example, splitting pallets into boxes. On the other hand, keeping stock in
> the UoM that the product is actually handled in can help with processing and
> handling when it's done in those units (think computer-aided picking). Then
> again, maybe using both UoM's, as suggested above in my order UoM mod
> description, might be a good compromise. This ides is probably a few months
> away for my client, so I'll worry about it then ;-).
> As for the conversion issue, hopefully my UoM converision enhancement (that
> made it into SVN this past weekend) will satisfy at least some of the
> conversions needed. The restrictions on what UoM's are valid should be based
> on the conversions available.
> And, yes, I can see scenarios where you'd purchase by the truckload,
> warehouse by the pallet, and sell by the case...
> As for using different products for different UoM's, I suggest this would
> depend highly on how the product is handled. If you're never going to break a
> case of paper to get a ream out, go ahead and use different products. But, if
> you expect to be breaking boxes to ship reams daily, I think different
> products is unworkable. In my client's case, we sell the same physical
> product regardless of the UoM they designate on the order.
> The post in the thread at
> http://lists.ofbiz.org/pipermail/users/2006-January/009905.html suggests that
> work was started on adding UoMs to OFBiz. Has this work started, or is it
> still on a To Do list? Some of it should change, based on my UoM Conversion
> Enhancement (and, hopefully, on my comments above)...
> And I still need to look at
> http://jira.undersunconsulting.com/browse/OFBIZ-369 ...
> Carl
> Comment by Carl Sopchak [02/Jun/06 06:37 AM]
> [ Permlink ]
> I'm sorry to report that my client has decided to persue another system, so
> it looks unlikely that I will be continuing work on this request.
> Carl
> Comment by Si Chen [02/Jun/06 04:55 PM]
> [ Permlink ]
> Jacopo,
> I just looked through this.
> I think this could be a good feature and may be better than OFBIZ-664, for us
> at least, and certainly better than our earlier attempt at the marketing
> package auto-explode.
> My suggesions:
> 1. Keep a separate product UOM for each facility, so they can have different
> ones.
> 2. Use the termUomId in ProductPrice to set separate prices for each UOM.
> This would also allow different stores (by store group) to sell in different
> UOMs.
> 3. Use the uom field in SupplierProduct to control purchasing at different
> UOMs.
> The tricky thing is what to do when there is no UOM specified in the data?
> Somehow I want to say assume 1.0, but 1.0 of what?
> Maybe we should at OFBIZ-369 again. There was a lot of interesting stuff
> there, but some of it duplicated what was already in OFBiz (like the
> conversion service was a re-write of our convertUom). Sorry I was the dodo
> who closed the issue at the time.
> Comment by Daniel Kunkel [02/Jun/06 07:12 PM]
> [ Permlink ]
> Hi Si
> You said:
> I think this could be a good feature and may be better than OFBIZ-664, for us
> at least, and certainly better than our earlier attempt at the marketing
> package auto-explode.
> I'm really confused by your statement...
> As I understand it, the Marketing Package auto-explode allows packages of
> different products and not only different quantities to be built or packed on
> the spot during shipping. It makes a lot more sense to me to only stock red
> widgets and white widgets even if we sell a package that contains both a red
> and white widget.
> Comment by Si Chen [02/Jun/06 11:27 PM]
> [ Permlink ]
> Jacopo,
> I thought through this again and think that I'm overspecifying it originally.
> We could set a "base" UOM in the Product entity, perhaps with a new baseUomId
> field. Then each ProductPrice and SupplierProduct could have its UOM
> converted to this base UOM or, if it doesn't have a uomId, be assumed that
> the conversion 1.0. For now receiving inventory in the base UOM would be
> fine--we can extend it later with ProductFacility if we need to.
> This model allows us to specify purchase and sale prices at different UOMs in
> the ProductPrice and SupplierProduct entities. The only thing I can't work
> out is how to set a UOM for sale in a store, if we want to "hardcode" it so
> that in one store it is only available in sets of 10, in another in sets of
> 100 (typical wholesale vs. retail situation.) I'm thinking that perhaps a new
> entity, which we've implemented but haven't put into the OFBIZ SVN yet,
> called "ProductCatalogProduct" might be good for this purpose actually. We
> could add a UOM field to it to control the UOM for each catalog or leave it
> out so that the default UOM is used.
> What do you think?
> Si
> Comment by Jacopo Cappellato [07/Jun/06 12:40 PM]
> [ Permlink ]
> Si,
> I agree with what you say.
> about selling products with different uoms in different stores: could the
> ProductPrice.productStoreGroupId help with this? It is a primary key field so
> we could set up one price (for uom "set of 10") for one store (group) and one
> price (for uom "set of 100") for other store (group).
> However, should we add the new field ProductPrice.currencyUomId?
> Jacopo
> Comment by Si Chen [08/Jun/06 05:37 PM]
> [ Permlink ]
> Daniel,
> You're right - if you had red & blue widgets in a marketing package, then uom
> would not work. I was just thinking of using uom for selling things in
> different quantity blocks.
> Si
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.