[
https://issues.apache.org/jira/browse/OFBIZ-10365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16448036#comment-16448036
]
Pawan Verma commented on OFBIZ-10365:
-------------------------------------
Added possible 4 different Design approaches for the task. We can discuss on
this and finalize best possible approach for this task.
> Document design approaches for Inventory Transfer
> --------------------------------------------------
>
> Key: OFBIZ-10365
> URL: https://issues.apache.org/jira/browse/OFBIZ-10365
> Project: OFBiz
> Issue Type: Sub-task
> Components: order
> Affects Versions: Trunk
> Reporter: Pawan Verma
> Priority: Minor
> Attachments: InventoryTransferModelLevel1.png,
> OrderModelActivityLevel1.png
>
>
> *Design Approach #1:*
> * Create Header entity *InventoryTransferHeader (ITH)*
> * inventoryTransferId*
> * statusId
> * facilityId
> * locationSeqId
> * facilityIdTo
> * locationSeqIdTo
> * primaryShipmentId
>
> * Refactor existing *InventoryTransfer* entity to *InventoryTransferItem* so
> as to support item level details as follows:
> * inventoryTransferId*
> * InvtransferItemSeqId*
> * inventoryItemId*
> * shipmentId
> * shipmentItemSeqId
> * quantity
> * unitPrice
>
> Having InventoryItem detail at InventoryTransferItem level will help us to
> manage multiple Items under same InventoryTransfer and each
> InventoryTransferItem can be fulfilled via multiple Inventory items and/or
> multiple Shipments.
>
> * Create *TransferItemBilling* entity to support invoicing (if needed)
> * inventoryTransferId*
> * InvtransferItemSeqId*
> * invoiceId*
> * invoiceItemSeqId*
> * itemIssuanceId
> * shipmentReceiptId
> * quantity
> * Amount
> * Create *InventoryTranferContanctMech* entity to support InventoryTransfer
> Contact Mechanism
> * inventoryTransferId*
> * contactMechPurposeTypeId*
> * contactMechId*
> *Screenflow for Approach #1:*
>
> * Add a new *Find Transfer Requirements* screen.
> * Transfer Requirements can be searched with following parameters:
> * Requirement ID
> * Status ID
> * Shipment ID
> * Origin Facility ID
> * Destination Facility ID
> * Product ID
> * Description
> * Requirement Start Date
> * Required By Date
>
> * Option for creating shipment for Un-approved requirements will be
> disabled.
> * User can select multiple Approved Transfer Requirements between any two
> given facilities to create Single Inventory Transfer between them.
> * When user hit ‘Create Inventory Transfer’ option new Inventory Transfers
> would be created by consolidating all products/items requirements between any
> two given locations.
> * System would auto-assign the required quantity from existing
> inventoryItems based on FIFO.
>
> * Add a new *View Inventory Transfer* screen
> * From here user can manually override the auto-assigned InventoryItems
> against each product.
> * User can Add/Edit/Delete the Transfer Items.
> * After assigning InventoryItems user can Approve the Inventory Transfer.
> * Upon Approval ATP would get reduced to the tune of assigned quantity from
> each inventory item.
> * Refactor the ‘Packing’ screen and allow to submit the Approved Inventory
> Transfer Id (aka OrderId). Only Approved Inventory Transfer will be available
> to pack.
> * Upon completion of packing reduce the QOH from assigned inventory items to
> the tune of packed quantity.
> * After completing packing, shipment will be created in shipped status and
> Inventory Transfer will be marked as 'SENT'.
> * Once received at destination location the ATP/QOH would be increased up to
> the transferred quantity per product and shipment will be marked as
> 'RECEIVED' and Inventory Transfer will be marked as 'COMPLETED'.
>
> *To Be Business Process for Approach #1:*
> *!InventoryTransferModelLevel1.png!*
>
> *Design Approach #2:*
> * Alter *InventoryTransfer* entity as header entity as follows:
> * Add primaryShipmentId
> * Remove inventoryItemId
>
> * Add new entity *InventoryTransferItem*
> * inventoryTransferId*
> * InvtransferItemSeqId*
> * inventoryItemId*
> * shipmentId
> * shipmentItemSeqId
> * quantity
> * unitPrice
> Having InventoryItem detail at InventoryTransferItem level will help us to
> manage multiple Items for same InventoryTransfer and each
> InventoryTransferItem can be fulfilled via multiple Inventory items and/or
> multiple Shipments.
>
> * Create TransferItemBilling entity to support tax invoice
> * inventoryTransferId*
> * InvtransferItemSeqId*
> * invoiceId*
> * invoiceItemSeqId*
> * itemIssuanceId
> * shipmentReceiptId
> * quantity
> * Amount
> * Create *InventoryTranferContanctMech* entity to support InventoryTransfer
> Contact Mechanism
> * inventoryTransferId*
> * contactMechPurposeTypeId*
> * contactMechId*
> *Screenflow for Approach #2:*
>
> * Add a new *Find Transfer Requirements* screen.
> * Transfer Requirements can be searched with following parameters:.
> * Requirement ID
> * Status ID
> * Shipment ID
> * Origin Facility ID
> * Destination Facility ID
> * Product ID
> * Description
> * Requirement Start Date
> * Required By Date
>
> * Option for creating shipment for Un-approved requirements will be
> disabled.
> * User can select multiple Approved Transfer Requirements between any two
> given facilities to create Single Inventory Transfer between them.
> * When user hit ‘Create Inventory Transfer’ option new Inventory Transfers
> would be created by consolidating all products/items requirements between any
> two given locations.
> * System would auto-assign the required quantity from existing
> inventoryItems based on FIFO.
>
> * Add a new *View Inventory Transfer* screen
> * User can manually override the auto-assigned InventoryItems against each
> product.
> * User can Add/Edit/Delete the Transfer Items.
> * After assigning InventoryItems user can Approve the Inventory Transfer.
> * Upon Approval ATP would get reduced to the tune of assigned quantity from
> each inventory item.
> * Refactor the ‘Packing’ screen and allow to submit the Approved Inventory
> Transfer Id (aka OrderId). Only Approved Inventory Transfer will be available
> to pack.
> * Upon completion of packing reduce the QOH from assigned inventory items to
> the tune of packed quantity.
> * After completing packing, shipment will be created in shipped status and
> Inventory Transfer will be marked as 'SENT'.
> * Once received at destination location, the ATP/QOH would be increased upto
> the transferred quantity per product and same shipment will be marked as
> 'RECEIVED' and Inventory Transfer will be marked as 'COMPLETED'.
>
> *To Be Business Process for Approach #2:*
> !InventoryTransferModelLevel1.png!
> *Design Approach #3:*
>
> Third approach is to use Order Data Model.
> * Introduce a new order type 'Replenishment Order (RO)' or 'Transfer Order'
> along with new Shipment Type ‘Transfer Shipment’.
> * We can initiate the RO from one facility to another upon approving
> transfer requirements between any two facilities.
> * Status of RO will be maintained in OrderStatus entity.
> * Orderitem entity will be used to transfer multiple products under a single
> RO.
> * User can manually override the default reservations per order line item so
> as to allow transferring any specific inventory items between two facilities.
> * Perform the Reservation from assigned inventory items against each of the
> order item as soon as RO is approved.
> * Once RO is packed, associate a new shipment with type as ‘Transfer
> Shipment’ to the RO.
> * Upon successful shipping of RO, move the RO to ‘Sent’ status and
> corresponding Transfer Shipment to ‘Sent’ status as well.
> * Shipping will also trigger the Invoicing (for taxation purpose wherever
> required).
> * Allow to receive the RO at destination facility (similar to PO).
> * Once successfully received, increase the ATP/QOH per transferred product
> to the tune of transferred units. It would move the Order from ‘Sent’ to
> ‘Completed’ or ‘Received’ status and corresponding shipment as well should be
> moved to ‘Completed’ or ‘Received’ status.
> * OrderContent entity could be used to attach Stock transfer document(legal
> document vary according to country law) with inventorytransfer.
>
> *To Be Business Process for Approach #3:*
> !OrderModelActivityLevel1.png!
> *Design Approach #4*
>
> Fourth approach is to use Order Data Model as mentioned in the Mail Thread.
> * Introduce a new order type 'Replenishment Order (RO)' or 'Transfer Order'
> along with new Shipment Type ‘Transfer Shipment’.
> * We can create a RO from one facility which create an automated PO for
> another facility.
> * Status of RO will be maintained in OrderStatus entity.
> * Tax is applied or not, can be configurable at product level.
> * Shipment is already associated with order data model.
> * Order adjustment will be used to record adjustments.
> * Orderitem entity will be used to transfer multiple products at a time.
> * Reservation and issuance are already working in order data model.
> * OrderContent entity could be used to attach Stock transfer document(legal
> document vary according to country law) with inventorytransfer.
> *To Be Business Process for Approach #4:*
> *!OrderModelActivityLevel1.png!*
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)