The customer (from Company A’s point of view) is Company B. Company B however has several physical stores (and therefore several warehouses hence the requirement to specify Target Warehouse as they will need to track stock in their shops).
Company B is a separate legal entity to Company A.
Company A should invoice Company B for stock purchases.
Vendor doesn’t care about the Customer’s warehouse.
Do you tell your vendor in which store/warehouse you will be receiving the materials from outside (purchase).
In the same way, when you sell your stuff to Customer, you don’t need to take care of customer’s warehouse.
Customer will follow the purchase receiving process at their end and then they will decide in which store/warehouse they want to transfer material?
As the Vendor, Company A, needs to know where to physically ship the stock to. Company B is buying stock from Company A and will receive the stock into the location the goods were shipped to (one of Company B’s physical shops, of which there might be many).
So yes, Company A needs to know where the stock is going and, once received, Company A will invoice Company B.
Practically it is not recommended and feasible, that that vendor should know the supplier warehouse.
All the invoice you receive from your vendor, does it has your warehouse information?
Companies A and B are entities set up within ERP Next. Companies A and B have their own suppliers and customers.
Company A buys serialised stock from various suppliers and receives this stock into one of several stock locations.
Company A have direct ‘end customers’ -i.e. the public.
Company A also have franchise operators to which stock is sold (i.e. the ‘end customer’ of that stock is a customer of Company B - perhaps in Shop 1).
Company B is a legally and physically separate company, operating as a franchise. They want to use the same ERP as Company A. They have several shops on the high street and, as part of the franchise agreement, have to purchase certain stock directly from Company A.
Company B should therefore be able to raise a PO with Company A and Company A need to know where to send that serialised stock (i.e. one of Company B’s several shops - Shop 1).
Once the delivery arrives at Company B’s shops, they should only be able to receive it into the store location that it is expected at (i.e. the Delivery Note and the Stock Move should show that the stock has been sent to Company B, Shop 1 and received accordingly. Shop 2 should not be able to receive the goods).
I have been looking for a similar post in the forum and am glad this has already been posted over here. Although not seen any further comments to @frappeval which is sufficiently detailed.
The feature requested here aims at making ERP a system which can be used as a Franchise based software by partnering companies (Company B in example above). So this is a B2B and B2C model.
The sale will only take place for Company A to Company B once Company B has sold the inventory item to its customer. Till this point the transaction is just a invenory lending transaction.
I do not believe this is currently possible in ERP but would be a really good feature (according to me) as it then enables companies to migrate from the low user ERP plans (just Company A) to the high user ERP plans (Company A along with franchise partners like Company B) and at the same time build a successful franchise business models which currently I do not believe is technically possible based on the above post.
I need to realize the direct materials transfer between multiple companies’ warehouses in Stock Entry.
In normal case, we have some filters which don’t allow us to select warehouse from other company.
Basically I need that material transfer would allow me to select Default Source Warehouse and Default Target Warehouse from all warehouses of all companies which registered in my ERPNext.
I found the stock/utils.py file, which contains validate_warehouse_company(warehouse, company) function.
I want to comment this function and comment code that calls this function outside, from other classes.
What further steps I need to do for removing these filters?
Inter-company transactions are not possible right now. Commenting out the filters / validation will not work. Because, still stock ledger entry / accounting entries will be posted wrongly.
Replying to previous posts,
Can you tell me, which code is responsible for displaying items from dropdown menu?
I need to display all items from all warehouses.
I suppose that stock entry/stock entry.js is responsible for it?
Problem with this is that money doesn’t exchange hands in my use case. We maintain a single warehouse records across all companies and each company can request for materials directly from the warehouse.
So there is a centralized purchase system implemented. Since each company is an independent legal entity thus its better to transfer material using Sales and Purchase Invoice to record transaction correctly as per accounting standard.
Create Customer named as Company (e.g. Company A), check Is Internal Customer option and select appropriate company (e.g. Company A). Add company under Allowed To Transact With
Create Supplier named as Company (e.g. Company B), check Is Internal Customer option and select appropriate company (e.g. Company B). Add company under Allowed To Transact With
Create Sales Invoice using customer created as above (e.g. Company A) : System will automatically show Inter Company Invoice option under Create after submission.
When you click on Inter Company Invoice option system will go to Purchase Invoice with all required details. From here you can create Purchase Invoice and Submit it.
Both Sales and Purchase Invoice documents are having inter document reference which you can see in Inter Company Invoice Reference field.