Hello All, Thanks Swapnil for the detailed business scenarios.
Thanks James for the reply. I just want to convey that there is no need to use a separate data model for inventory transfer. We can use order data model for inventory transfer. We can create a SO from one facility which create an automated PO for another facility. Inventory transfer will be done using sales/purchase order. Stock move is used for intra-warehouse inventory transfer while inventory transfer is for inter-warehouse inventory transfer. We can achieve inventory transfer using order data model instead of using separate data model for inventory transfer. 1. On the basis of from party and to party we can identify that order is transfer order(In transfer order fromParty and toParty are same). 2. status of inventory transfer can be maintained in OrderStatus entity. 3. Tax is applied or not can be configurable. 4. Shipment is already associated with order data model. 5. Order adjustment can be used to record adjustments. 6. The Orderitem entity can be used to transfer multiple products at a time. 7. Reservation and issuance are already working in order data model. 8. The OrderContent entity can be used to attach Stock transfer document(legal document vary according to country law) with inventory transfer. Please correct me if I missed something. Thanks & Regards -- Vaibhav Jain Hotwax Systems, vaibhav.j...@hotwaxsystems.com On Tue, Oct 24, 2017 at 3:54 PM, James Yong <jamesy...@apache.org> wrote: > Hi Swapnil, > > You may want to consider having the following modifications: > > 1) Item Issuance & Shipment Receipt entities: Add columns (i.e. > InventoryTransferHeaderId & InventoryTransferId ) to support inventory > transfer with shipment. > > 2) Inventory Transfer Adjustment entity: For the tax. > > 3) Inventory Transfer Header entity: For group transfer (as discussed > earlier) > > Regards, > James Yong > > On 2017-10-19 19:12, Swapnil Shah <swapnil.s...@hotwaxsystems.com> wrote: > > Let me try adding few more insights/details with regard to stock transfer > > flow. > > > > > > > > As we are referring to intra-organizational goods movement i.e., so > > movement of goods would be for and within the same business entity. Here > > are few pointers (if it can help in assessing any kind of technical > > trade-off that needs to be made with respect to current implementation) : > > > > - Stock Transfer per se are going to involve goods exchange but there > is > > no real time money exchange involved between shipper and receiver as > they > > are both the very same business entity in the legal sense. So business > > might not be necessarily interested in generating any sales or > purchase > > invoice against such transactions. Nor will there be any real time > payment > > or invoice settlement required at either end. > > - In financial terms there are tax implications but its applicability > > varies depending upon the laws of the land or country/state-specific > tax > > regulations. For example: > > - In US the very same item transferred in certain state might be > > taxable at certain rate but totally exempted or taxed at > > different rate in > > another (someone with better understanding of US or EUR tax > > regulations can > > throw more light and let us know if currently intra-company > > goods transfer > > are even taxable or not) > > - In India, the tax implications in the case of goods transfer is > now > > shifted on the supply of goods. As a result: > > - For inter-state transfer *there is tax liability and in this > > case, only a separate “Tax Invoice”* needs to be issued along > with > > stock transfer note and supporting document (depending on the > > inter-state > > regulations while crossing the state borders) > > - For intra-state transfers if business entity is having single > > registration for originating and receiving branches with tax > > authority then *there > > is no tax liability and hence no Tax Invoice *needs to be issue. > > Only Delivery Note should suffice to transfer the goods. > > - For intra-state transfers if business entity is having > different > > registration for originating and receiving branches with tax > > authority then *there > > is tax liability and in this case, only a separate “Tax > Invoice”* > > needs to be issued along with stock transfer note. > > - Any kind of applicable tax (if any) needs to be paid to the state > > only and a separate Tax Invoice needs to be generated in this case. > > - The transfer shipment needs to follow certain status transitioning > > i.e. ‘Requested’ à ‘In-review’ à ‘Shipped’ (from originating > facility) à > > ‘In-transit’ à ‘Received’ (at destination facility). As it needs to be > > tracked internally. > > - The deemed transaction value and tax liability against the > transferred > > goods should hit the accounting books against appropriate GL accounts > per > > store and a separate GL account against the tax authority (in > accordance > > with business rules). > > - Later at some point of time we may also like to systemically build > the > > Transfer Requirement Planning and consolidate all the individual > > product-wise transfer ad-hoc or planned requests/requirement for a > common > > destination facility (i.e., once any feature like > > https://issues.apache.org/jira/browse/OFBIZ-6964 gets implemented) > > > > > > > > I hope it should help to come up with a generic enough solution that can > > work across geographies with required level of flexibility. > > > > > > > > Thanks, > > > > Swapnil > > > > > > > > -----Original Message----- > > From: James Yong [mailto:jamesy...@apache.org] > > Sent: Wednesday, October 18, 2017 9:56 PM > > To: dev@ofbiz.apache.org > > Subject: Re: RE: Quantity missing for inventory transfer records > > > > > > > > Hi Vaibhav, > > > > > > > > My random thoughts on the possible implementation: > > > > > > > > We can have a new InventoryTransferHeader (ITH) entity as mentioned > earlier > > to manage group transfer. > > > > > > > > Having Quality attribute to InventoryTransfer entity is reasonable since > we > > may have an approval process before actual transfer. > > > > > > > > User doing inventory transfer can have an Shipment option to enable > > shipment. > > > > > > > > When inventory transfer is approval and Shipment option is selected, a > > corresponding Sales Order (SO) and Purchase Order (PO) will be created. > > > > > > > > You may want to use a different Order Type for these transfer SO & PO. > > > > > > > > No direct changes are allowed for transfer SO & PO. Changes can only be > > made at ITH and the associated Inventory Transfer entities. > > > > > > > > There should be an attribute in SO & PO to link to ITH. > > > > > > > > There is also a need to enhance the reservation function of SO to specify > > the inventory item id for reservation. > > > > > > > > Regards, > > > > James Yong > > > > > > > > On 2017-10-16 23:05, Vaibhav Jain <vaibhav.j...@hotwaxsystems.com> > wrote: > > > > > Hello Swapnil/James, > > > > > > > > > > There are many dependencies of inventory transfer in Business > > > > > Requirements > > > > > like: > > > > > > > > > > 1. In Inventory transfer generally, there is more than one product > in > > > > > any inventory transfer. > > > > > 2. Inventory transfer should have an association with Shipment > which is > > > > > missing. > > > > > 3. Inventory transfer should have an association with Accounting > which > > > > > is missing. > > > > > 4. Tax should be calculated(Applicable in India after GST) on > inventory > > > > > transfer. > > > > > 5. If the tax is exempted then need "Stock transferring" > documentation. > > > > > 6. Tracking of Transferred inventory. > > > > > 7. Tracking of associated peoples(Picker, Packer, driver) with the > > > > > respective transfer order. > > > > > > > > > > Most of the attribute of inventory transfer is belongs to Order > > > > > management system. Hence we should have a flow to create a "Transfer > > > > > Order" for inventory transfer. > > > > > > > > > > Inventory Transfer can be treated as "Receive product". Business does > > > > > not have workflows to receive the product directly i.e. PO should be > > > > > created to receive the product. If anyone wants to surpass the PO > > > > > workflow and want to receive the product then "Receive product" is > > > > > useful. Same for inventory transfer we should have a flow of transfer > > > > > order and inventory transfer can be used like "Receive Product" > workflow. > > > > > > > > > > Please share your thoughts > > > > > > > > > > Thanks & Regards > > > > > > > > > > Vaibhav Jain > > > > > Hotwax Systems, > > > > > vaibhav.j...@hotwaxsystems.com > > > > > > > > > > On Mon, Oct 16, 2017 at 7:02 PM, Swapnil Shah < > > > > > swapnil.s...@hotwaxsystems.com> wrote: > > > > > > > > > > > Yes James, > > > > > > ITH should work. I would prefer to have ITH tightly coupled with > > > > > > InventoryTransfer(IT) i.e. even in case of single item transfer > > > > > > create corresponding entries in ITH and IT both to maintain data > > > > > > integrity. Also, We can try tying up Inventory Transfer with > > > > > > Shipment through ITH itself or a separate entity e.g., > > InventoryTransferShipment. > > > > > > > > > > > > Thanks & Regards, > > > > > > Swapnil > > > > > > > > > > > > -----Original Message----- > > > > > > From: James Yong [mailto:jamesy...@apache.org <jamesy...@apache.org > >] > > > > > > Sent: Sunday, October 15, 2017 9:26 PM > > > > > > To: dev@ofbiz.apache.org > > > > > > Subject: Re: RE: Quantity missing for inventory transfer records > > > > > > > > > > > > Hi Swapnil, > > > > > > > > > > > > Another possible solution is to have an header entity, e.g. > > > > > > InventoryTransferHeader (ITH), containing additional or common info > > > > > > related to the group transfer. > > > > > > For group transfer, ITH is created and each InventoryTransfer will > > > > > > contain a FK to ITH. > > > > > > For single transfer, ITH can be empty. > > > > > > > > > > > > Regards, > > > > > > James Yong > > > > > > > > > > > > On 2017-10-14 18:59, Swapnil Shah <swapnil.s...@hotwaxsystems.com> > > wrote: > > > > > > > Folks, > > > > > > > One very frequent use case that we encounter is that any transfer > > > > > > > request initiated from one facility to another is generally for > > > > > > > multiple products as they all need to go in a single shipment > > > > > > > against transfer request so as to be cost effective. > > > > > > > > > > > > > > Current schema has the limitation that any given inventory > > > > > > > transfer can only be for single inventory item (and hence only one > > product). > > > > > > > Would it make sense and be feasible if we enhance the existing > > > > > > > design such that multiple products/inventory can be tied with a > > > > > > > single transfer > > > > > > > (InventoryTransferId) request (possibly by having > > > > > > > InventoryTransferId > > > > > > > + InventoryItemId as PK) and shipment is tied up with it as well. > > > > > > > + Of > > > > > > > course by leaving a proper audit trail via InventoryItemDetail etc. > > > > > > > > > > > > > > Let's share any further thoughts or similar business cases and > > > > > > > then we can try to support it if it is generic enough. > > > > > > > > > > > > > > Thanks & Regards, > > > > > > > Swapnil > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: James Yong [mailto:jamesy...@apache.org < > jamesy...@apache.org>] > > > > > > > Sent: Friday, October 13, 2017 9:36 PM > > > > > > > To: dev@ofbiz.apache.org > > > > > > > Subject: Re: Quantity missing for inventory transfer records > > > > > > > > > > > > > > Hi all, > > > > > > > > > > > > > > It is better to add InventoryTransferId column to Inventory Item > > > > > > > Detail > > > > > > > (IID) table so that we easily link the IID record to the Inventory > > > > > > > Transfer table. > > > > > > > > > > > > > > What do you think? > > > > > > > > > > > > > > Regards, > > > > > > > James Yong > > > > > > > > > > > > > > On 2017-10-13 23:18, "James Yong"<jamesy...@apache.org> wrote: > > > > > > > > Hi Suraj, > > > > > > > > > > > > > > > > Shouldn't the transfer detail be stored at Inventory Item Detail > > > > > > table? > > > > > > > > > > > > > > > > Regards, > > > > > > > > James Yong > > > > > > > > > > > > > > > > On 2017-10-13 16:44, Suraj Khurana > > > > > > > > <suraj.khur...@hotwaxsystems.com> > > > > > > > wrote: > > > > > > > > > Hello, > > > > > > > > > > > > > > > > > > While creating inventory transfers, a new inventory item is > > > > > > > > > created and successfully gets updated after completing > > > > > > > > > inventory > > > > > > transfer. > > > > > > > > > As per current implementation, we don't store transferred > > > > > > > > > quantity anywhere in *InventoryTransfer *entity and quantity > > > > > > > > > is only available on the newly created inventory item. Problem > > > > > > > > > is, it gets deluded on time being and user won't get exact > > > > > > > > > quantity for which > > > > > > > inventory transfer was initialized. > > > > > > > > > > > > > > > > > > IMO, we should maintain transferred quantity at > > > > > > > > > *InventoryTransfer *entity as well for proper history > maintenance > > of records. > > > > > > > > > > > > > > > > > > Please share your thoughts on this. > > > > > > > > > > > > > > > > > > -- > > > > > > > > > Thanks and Regards, > > > > > > > > > *Suraj Khurana* | Sr. Enterprise Software Engineer *HotWax > > > > > > > > > Commerce* by *HotWax Systems* Plot no. 80, Scheme no. 78, > > > > > > > > > Vijay Nagar, Indore, M.P. India 452010 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >