[ 
https://issues.apache.org/jira/browse/OFBIZ-9339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16018704#comment-16018704
 ] 

Aditya Sharma commented on OFBIZ-9339:
--------------------------------------

I traced the flow and it is in the code:
The ShoppingCartItem constructor ensures if no itemType provided for purchase 
order "PRODUCT_ORDER_ITEM" is set to default value.

The flow:
1. "addItem" requests invokes event "addToCart" from "ShoppingCartEvents".
2. In addToCart event, it calls addToCart() method of ShoppingCartHelper (line 
639).
3. In addToCart() method, it calls addOrIncreaseItem() of ShoppingCart (line 
242).
4. In addOrIncreaseItem(), it calls ShoppingCartItem.makePurchaseOrderItem() 
(line 575).
5. In makePurchaseOrderItem(), a new ShoppingCartItem object is created (line 
198) and added to cart.
6. The public ShoppingCartItem contructor that initialises the object calls 
another protected constructor which contains following check (on line 731)

if (UtilValidate.isEmpty(itemType)) {
            if (UtilValidate.isNotEmpty(_product.getString("productTypeId"))) {
                if ("ASSET_USAGE".equals(_product.getString("productTypeId"))) {
                    this.itemType = "RENTAL_ORDER_ITEM";  // will create 
additional workeffort/asset usage records
                } else if 
("ASSET_USAGE_OUT_IN".equals(_product.getString("productTypeId"))) {
                    this.itemType = "RENTAL_ORDER_ITEM";
                } else {
                    this.itemType = "PRODUCT_ORDER_ITEM";
                }
            } else {
                // NOTE DEJ20100111: it seems safe to assume here that because 
a product is passed in that even if the product has no type this type of item 
still applies; thanks to whoever wrote the previous code, that's a couple of 
hours tracking this down that I wouldn't have minded doing something else 
with... :)
                this.itemType = "PRODUCT_ORDER_ITEM";
            }
        } else {
            this.itemType = itemType;
        }


> adding product to purchase order auto assigned PRODUCT_ORDER_ITEM
> -----------------------------------------------------------------
>
>                 Key: OFBIZ-9339
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9339
>             Project: OFBiz
>          Issue Type: Bug
>          Components: order
>    Affects Versions: Trunk
>            Reporter: Wai
>
> When creating a purchase order. Adding an product without specifying the 
> "Item Type" is automatically given value of PRODUCT_ORDER_ITEM. The permitted 
> values should be: ASSET_ORDER_ITEM, SUPPLIES_ORDER_ITEM, INVENTORY_ORDER_ITEM 
> (as shown in the dropdown)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to