ofbiz-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vaibhav Jain (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (OFBIZ-9475) Refactor serialize and non-serialize inventory item implementaion
Date Tue, 25 Jul 2017 19:35:00 GMT

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

Vaibhav Jain updated OFBIZ-9475:
--------------------------------
    Description: 
As discussed on dev mailing list [1][2] we need to refactor serialize and non-serialize inventory
item design.

As per current implementation serialize inventory item work on status and non-serialized inventory
item work on inventory item detail.
Proposed Design:
- Use inventory item detail for both serialize and non-serialize inventory item. Only one
additional condition for serialized inventory item that qoh can't be greater then one.
- We can maintain inventory item status record for both type

[1] http://markmail.org/thread/bd2bpiv6c5wvl7km
[2] http://ofbiz.markmail.org/thread/kro5kcggp4fcose7


As we do a lot of discussion in the respective mail threads.
[1] http://markmail.org/thread/bd2bpiv6c5wvl7km
[2] http://ofbiz.markmail.org/thread/kro5kcggp4fcose7

According to this email threads, I conclude that:-

There are 2 types of the inventory item in OFBiz.
1. Serialized
2. Non serialized

Majorly there are 3 entities to manage the various transaction of serialised and non-serialized
inventory items.
1. InventoryItem
2. InventoryItemDetail
3. InventoryItemStatus

Following changes need to be done in the workflow of inventory item records:-

1) There is no need to manage a different workflow for serialised and non- serialised inventory
items.
2) Transaction of serialised and non-serialised inventory item should be managed in both InventoryItemStatus
and InventoryItemDetail entity.
     a) Transaction of serialised inventory items is managed by inventoryItemstatus entity
not managed in inventoryItemDetail entity. While inventoryItemDetail and inventoryItemStatus
should be managed for both serialised and non-serialised inventory items.
     b) As ATP/QOH/AQT are updated on the basis of ATPDIFF/QOHDIFF/AQTDIFF in non-serialised
inventory item. We should follow the same pattern for serialised inventory item.
     c) Change in ATP/QOH/AQT is tracked by inventoryItemDetail entity.
     d)Status transaction of an inventory item is tracked in InventoryItemStatus entity.
3) No need to manage separate status for serialised and non-serialised inventory item. They
are already distinguished on the basis of inventory item type.



There are 2 cases for inventory items:
1. Serialised
2. Non-serialised

1. Serialised:-
    In a serialised inventory item as of now ATP/QOH/AQT are managed on the basis of inventory
item status.While  ATP/QOH/AQT should be the sum of ATPDIFF/QOHDIFF/AQTDIFF of inventory item
detail.

Ex:
1. If we receive 2 inventory of serialised inventory item then 2 separate inventory item records
are created

InventoryItem:-
inventoryItemId="10001",status="AVAILABLE", ATP="1", QOH="1",AQT="1"
inventoryItemId="10002",status="AVAILABLE", ATP="1", QOH="1",AQT="1"

InventoryItemDetail:-
inventoryItemId="10001", inventoryItemDetailSeqId="10001", ATPDIFF="1", QOHDIFF="1", AQTDIFF="1"
inventoryItemId="10002", inventoryItemDetailSeqId="10002", ATPDIFF="1", QOHDIFF="1", AQTDIFF="1"

InventoryItemStatus:-
inventoryItemId="10001" statusId="AVAILABLE" 
inventoryItemId="10002" statusId="AVAILABLE" 

2. If status of inventory item is changed from AVAILABLE -> PROMISED then 

InventoryItem:-
inventoryItemId="10001",status="PROMISED", ATP="1", QOH="1",AQT="1"
inventoryItemId="10002",status="AVAILABLE", ATP="1", QOH="1",AQT="1"

InventoryItemDetail:-
inventoryItemId="10001", inventoryItemDetailSeqId="10001",  ATPDIFF="1", QOHDIFF="1", AQTDIFF="1"
inventoryItemId="10001", inventoryItemDetailSeqId="10002",  ATPDIFF="-1", QOHDIFF="0", AQTDIFF="0"
inventoryItemId="10002", inventoryItemDetailSeqId="10002",  ATPDIFF="1", QOHDIFF="1", AQTDIFF="1"

InventoryItemStatus:-
inventoryItemId="10001" statusId="AVAILABLE" statusEndDateTime=""
inventoryItemId="10002" statusId="PROMISED" 

2. Non-serialised:-
    At the time of receive non-serialised inventory, Item should be received in Available
status. So that status of non-serialised inventory item can be managed further.
    Status of non-serialised inventory item should be managed at inventory item level not
on inventory item detail level i.e. there are limited inventory item status for non-serialised
inventory items

Ex: 
1. If we receive 10 inventory of non-serialised inventory item. The inventory will receive
in Available status.
InventoryItem:-
status="AVAILABLE", ATP="10", QOH="10",AQT="10"
InventoryItemDetail:-
ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"

Now if we place an order 4 quantity and reservation happens then

InventoryItem:-
status="AVAILABLE", ATP="6", QOH="10",AQT="10"
InventoryItemDetail:-
ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"
ATPDIFF="-4", QOHDIFF="0",AQTDIFF="0"
InventoryItemStatus:-
status="AVAILABLE"

2. If status of inventory item is changed from Available -> Defective then 

InventoryItem:-
status="DEFECTIVE", ATP="0", QOH="10",AQT="10"
InventoryItemDetail:-
ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"
ATPDIFF="-10", QOHDIFF="0",AQTDIFF="0"
InventoryItemStatus:-
status="AVAILABLE" statusEndTime=""
status="DEFECTIVE"

3. Similarly, if status of inventory item is changed from Available -> Defective then 

InventoryItem:-
status="ON_HOLD", ATP="0", QOH="10",AQT="10"
InventoryItemDetail:-
ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"
ATPDIFF="-10", QOHDIFF="0",AQTDIFF="0"
InventoryItemStatus:-
status="AVAILABLE" statusEndTime=""
status="ON_HOLD"


  was:
As discussed on dev mailing list [1][2] we need to refactor serialize and non-serialize inventory
item design.

As per current implementation serialize inventory item work on status and non-serialized inventory
item work on inventory item detail.
Proposed Design:
- Use inventory item detail for both serialize and non-serialize inventory item. Only one
additional condition for serialized inventory item that qoh can't be greater then one.
- We can maintain inventory item status record for both type

[1] http://markmail.org/thread/bd2bpiv6c5wvl7km
[2] http://ofbiz.markmail.org/thread/kro5kcggp4fcose7


As we do a lot of discussion in the respective mail threads.
[1] http://markmail.org/thread/bd2bpiv6c5wvl7km
[2] http://ofbiz.markmail.org/thread/kro5kcggp4fcose7

According to this email threads, I conclude that:-

There are 2 types of the inventory item in OFBiz.
1. Serialized
2. Non serialized

Majorly there are 3 entities to manage the various transaction of serialised and non-serialized
inventory items.
1. InventoryItem
2. InventoryItemDetail
3. InventoryItemStatus

Following changes need to be done in the workflow of inventory item records:-

1) There is no need to manage a different workflow for serialised and non- serialised inventory
items.
2) Transaction of serialised and non-serialised inventory item should be managed in both InventoryItemStatus
and InventoryItemDetail entity.
     a) Transaction of serialised inventory items is managed by inventoryItemstatus entity
not managed in inventoryItemDetail entity. While inventoryItemDetail and inventoryItemStatus
should be managed for both serialised and non-serialised inventory items.
     b) As ATP/QOH/AQT are updated on the basis of ATPDIFF/QOHDIFF/AQTDIFF in non-serialised
inventory item. We should follow the same pattern for serialised inventory item.
     c) Change in ATP/QOH/AQT is tracked by inventoryItemDetail entity.
     d)Status transaction of an inventory item is tracked in InventoryItemStatus entity.
3) No need to manage separate status for serialised and non-serialised inventory item. They
are already distinguished on the basis of inventory item type.



> Refactor serialize and non-serialize inventory item implementaion
> -----------------------------------------------------------------
>
>                 Key: OFBIZ-9475
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9475
>             Project: OFBiz
>          Issue Type: Improvement
>    Affects Versions: Trunk
>            Reporter: Deepak Dixit
>            Assignee: Renuka Srishti
>
> As discussed on dev mailing list [1][2] we need to refactor serialize and non-serialize
inventory item design.
> As per current implementation serialize inventory item work on status and non-serialized
inventory item work on inventory item detail.
> Proposed Design:
> - Use inventory item detail for both serialize and non-serialize inventory item. Only
one additional condition for serialized inventory item that qoh can't be greater then one.
> - We can maintain inventory item status record for both type
> [1] http://markmail.org/thread/bd2bpiv6c5wvl7km
> [2] http://ofbiz.markmail.org/thread/kro5kcggp4fcose7
> As we do a lot of discussion in the respective mail threads.
> [1] http://markmail.org/thread/bd2bpiv6c5wvl7km
> [2] http://ofbiz.markmail.org/thread/kro5kcggp4fcose7
> According to this email threads, I conclude that:-
> There are 2 types of the inventory item in OFBiz.
> 1. Serialized
> 2. Non serialized
> Majorly there are 3 entities to manage the various transaction of serialised and non-serialized
inventory items.
> 1. InventoryItem
> 2. InventoryItemDetail
> 3. InventoryItemStatus
> Following changes need to be done in the workflow of inventory item records:-
> 1) There is no need to manage a different workflow for serialised and non- serialised
inventory items.
> 2) Transaction of serialised and non-serialised inventory item should be managed in both
InventoryItemStatus and InventoryItemDetail entity.
>      a) Transaction of serialised inventory items is managed by inventoryItemstatus entity
not managed in inventoryItemDetail entity. While inventoryItemDetail and inventoryItemStatus
should be managed for both serialised and non-serialised inventory items.
>      b) As ATP/QOH/AQT are updated on the basis of ATPDIFF/QOHDIFF/AQTDIFF in non-serialised
inventory item. We should follow the same pattern for serialised inventory item.
>      c) Change in ATP/QOH/AQT is tracked by inventoryItemDetail entity.
>      d)Status transaction of an inventory item is tracked in InventoryItemStatus entity.
> 3) No need to manage separate status for serialised and non-serialised inventory item.
They are already distinguished on the basis of inventory item type.
> There are 2 cases for inventory items:
> 1. Serialised
> 2. Non-serialised
> 1. Serialised:-
>     In a serialised inventory item as of now ATP/QOH/AQT are managed on the basis of
inventory item status.While  ATP/QOH/AQT should be the sum of ATPDIFF/QOHDIFF/AQTDIFF of inventory
item detail.
> Ex:
> 1. If we receive 2 inventory of serialised inventory item then 2 separate inventory item
records are created
> InventoryItem:-
> inventoryItemId="10001",status="AVAILABLE", ATP="1", QOH="1",AQT="1"
> inventoryItemId="10002",status="AVAILABLE", ATP="1", QOH="1",AQT="1"
> InventoryItemDetail:-
> inventoryItemId="10001", inventoryItemDetailSeqId="10001", ATPDIFF="1", QOHDIFF="1",
AQTDIFF="1"
> inventoryItemId="10002", inventoryItemDetailSeqId="10002", ATPDIFF="1", QOHDIFF="1",
AQTDIFF="1"
> InventoryItemStatus:-
> inventoryItemId="10001" statusId="AVAILABLE" 
> inventoryItemId="10002" statusId="AVAILABLE" 
> 2. If status of inventory item is changed from AVAILABLE -> PROMISED then 
> InventoryItem:-
> inventoryItemId="10001",status="PROMISED", ATP="1", QOH="1",AQT="1"
> inventoryItemId="10002",status="AVAILABLE", ATP="1", QOH="1",AQT="1"
> InventoryItemDetail:-
> inventoryItemId="10001", inventoryItemDetailSeqId="10001",  ATPDIFF="1", QOHDIFF="1",
AQTDIFF="1"
> inventoryItemId="10001", inventoryItemDetailSeqId="10002",  ATPDIFF="-1", QOHDIFF="0",
AQTDIFF="0"
> inventoryItemId="10002", inventoryItemDetailSeqId="10002",  ATPDIFF="1", QOHDIFF="1",
AQTDIFF="1"
> InventoryItemStatus:-
> inventoryItemId="10001" statusId="AVAILABLE" statusEndDateTime=""
> inventoryItemId="10002" statusId="PROMISED" 
> 2. Non-serialised:-
>     At the time of receive non-serialised inventory, Item should be received in Available
status. So that status of non-serialised inventory item can be managed further.
>     Status of non-serialised inventory item should be managed at inventory item level
not on inventory item detail level i.e. there are limited inventory item status for non-serialised
inventory items
> Ex: 
> 1. If we receive 10 inventory of non-serialised inventory item. The inventory will receive
in Available status.
> InventoryItem:-
> status="AVAILABLE", ATP="10", QOH="10",AQT="10"
> InventoryItemDetail:-
> ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"
> Now if we place an order 4 quantity and reservation happens then
> InventoryItem:-
> status="AVAILABLE", ATP="6", QOH="10",AQT="10"
> InventoryItemDetail:-
> ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"
> ATPDIFF="-4", QOHDIFF="0",AQTDIFF="0"
> InventoryItemStatus:-
> status="AVAILABLE"
> 2. If status of inventory item is changed from Available -> Defective then 
> InventoryItem:-
> status="DEFECTIVE", ATP="0", QOH="10",AQT="10"
> InventoryItemDetail:-
> ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"
> ATPDIFF="-10", QOHDIFF="0",AQTDIFF="0"
> InventoryItemStatus:-
> status="AVAILABLE" statusEndTime=""
> status="DEFECTIVE"
> 3. Similarly, if status of inventory item is changed from Available -> Defective then

> InventoryItem:-
> status="ON_HOLD", ATP="0", QOH="10",AQT="10"
> InventoryItemDetail:-
> ATPDIFF="10", QOHDIFF="10",AQTDIFF="10"
> ATPDIFF="-10", QOHDIFF="0",AQTDIFF="0"
> InventoryItemStatus:-
> status="AVAILABLE" statusEndTime=""
> status="ON_HOLD"



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message