[jira] [Updated] (OFBIZ-7094) While creating inventory item of type "SERIALIZED_INV_ITEM" in "INV_ON_HOLD" status it gets created in "INV_AVAILABLE" status

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Updated] (OFBIZ-7094) While creating inventory item of type "SERIALIZED_INV_ITEM" in "INV_ON_HOLD" status it gets created in "INV_AVAILABLE" status

Nicolas Malin (Jira)

     [ https://issues.apache.org/jira/browse/OFBIZ-7094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aditi Patidar updated OFBIZ-7094:
---------------------------------
    Attachment: OFBIZ-7094.patch

Providing the patch to fix the issue.
It occurred while retrieving the record from "InventoryItem" entity. It was passing the value of "inventoryItemId" to compare with the field "inventoryItemId" of "InventoryItem" entity, which was not available in the current context. And as it returned null the check fail and status set to "INV_AVAILABLE".

> While creating inventory item of type "SERIALIZED_INV_ITEM" in "INV_ON_HOLD" status it gets created in "INV_AVAILABLE" status
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OFBIZ-7094
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-7094
>             Project: OFBiz
>          Issue Type: Bug
>          Components: product
>    Affects Versions: Release Branch 14.12, Trunk, Release Branch 15.12
>            Reporter: Aditi Patidar
>            Assignee: Aditi Patidar
>         Attachments: OFBIZ-7094.patch
>
>
> Use Case:  When we create a serialized inventory item and the serial number is not provided, it should be created in "INV_ON_HOLD" status to exclude this item from being count in ATP.
> As per the current implementation in service receiveInventoryProduct if status provided is "INV_ON_HOLD" for inventory item of type "SERIALIZED_INV_ITEM" it should not update to "INV_AVAILABLE" but it's not working expectedly. Here is the logic to check for the same:
> {code}
>             <if>
>                 <condition>
>                     <and>
>                         <if-compare value="SERIALIZED_INV_ITEM" operator="equals" field="parameters.inventoryItemTypeId"/>
>                         <if-empty field="parameters.returnId"/>
>                     </and>
>                 </condition>
>                 <then>
>                     <!-- Retrieve the new inventoryItem -->
>                     <entity-one entity-name="InventoryItem" value-field="inventoryItem">
>                         <field-map field-name="inventoryItemId" from-field="currentInventoryItemId"/>
>                     </entity-one>
>                     <!-- Don't reset the status if it's already set to INV_PROMISED or INV_ON_HOLD -->
>                     <if>
>                         <condition>
>                             <and>
>                                 <if-compare value="INV_PROMISED" operator="not-equals" field="inventoryItem.statusId"/>
>                                 <if-compare value="INV_ON_HOLD" operator="not-equals" field="inventoryItem.statusId"/>
>                             </and>
>                         </condition>
>                         <then>
>                             <clear-field field="serviceInMap"/>
>                             <set field="serviceInMap.inventoryItemId" from-field="currentInventoryItemId"/>
>                             <set field="serviceInMap.statusId" value="INV_AVAILABLE"/> <!-- XXX set to returned instead -->
>                             <call-service service-name="updateInventoryItem" in-map-name="serviceInMap"/>
>                         </then>
>                     </if>
>                 </then>
>             </if>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)