The scenario explained under may have been discussed before. Two threads which I could find are:
Layout of Organization:
Retail Showrooms (Sells products to end consumer)
Multiple Outlet in a City having warehouse also (Purchase Receipt, Sales, Payment Receipts & Deliveries Done at Outlet Level)
Centralized Accounting and Procurement Deals (Fixing Rates with Suppliers, Payments to Supplier, Reconciliation, etc)
Friday is day fixed to send all the hard copies of Sales Invoice, Purchase Invoice and other documents to the central accounting and management department.
It takes about a Month to release the Payment to the supplier.
Please Consider the following situation (This may sound a Little Hypothetical as I am trying to be as simple as I can):
We receive a Purchase Invoice from the Supplier for 100 Units of Item X (Serialized) for 1000.00 Each on Tuesday.
The user at the Outlet enters this as a Purchase Invoice (Update Stock) / Purchase Receipt
Three Upcoming days have been very good for the retail sales, and we sold and delivered about 25 Units of Item X to 25 different customers.
The accounting department receives the Purchase Invoice on Friday and Enters & Files it.
However in upcoming days when the Suppliers accounts’ are reconciled, the management finds that the Rates in Purchase Invoice are not as expected. This could well be other way round.
Here are two ways handle the situation by the supplier: i) either he will raise a Credit note ii) if he has not reported sales he may change the invoice.
Generally if the supplier is not a Real Big player he might simply change the invoice and submit a new one. Believe me this is very much possible in the kind of trade we are into.
Now this is where the problem starts:
We cannot change/cancel the Purchase Receipt/Invoice as we have sold 25 Units already, either we change all of them.
We cannot change the rate in Purchase Invoice also, the system wont allow that.
We might use Landed Cost Voucher, But that would only change the Stock Valuation rate posting a new SLE, but will not change the Documents.
What can be done in order to Change the Rate in Purchase Invoice/Receipt without changing all the downstream Documents?
One solution which come to my mind is to fix the purchase rate in price list, however even here we don’t know exactly how the supplier would prepare his invoice. Will he give direct rate of the product OR would he show a consolidated discount before taxes OR Consolidated Discount after taxes OR a mix of all the three.
The above situation can also arise out of an error by the user at the outlet (while entering the purchase invoice), as he may not be well versed(interested?) with core accounting and inventory.
So the basic question would still be How to amend a document without having to amend all downstream docs?
Thanks
Akshay
P.S. It would not be possible for me to change the way the organization function.
Stop that invoice and start a new one (with relevant comments)
We have some ideas on this, but never got the time to build a solution. So its not easy to do this out of the box. Maybe think of a work-around.[quote=“mehta_akshay, post:1, topic:15437”]
P.S. It would not be possible for me to change the way the organization function.
[/quote]
Noteworthy last words Organizations are always changing, its a matter of finding the right leverage.
@rmehta, After playing around a bit, finally I got a Litttttle Success on changing the downstream docs when a purchase invoice is changed. Have not done with Purchase Receipt yet.
As the organization is into Retail, Sales Invoice, Delivery Notes, Stock Entry were of main concern.
Most of the code was already there in the ERPNext repository.
Maybe design in such a way that the amended document is an addition to the existing document (if you want to add items, just add, if you want to remove, set negative price), so when you submit the amended document it will kind of add, remove from the existing document.
Maybe that document should be called and Amendment document instead of Amended
And the base document should be seen as a collection of the base document + amendments.
I my view creating new Amendment Document would complicate things. And you will still have to recalculate everything (for instance, if you create a Amendment document for a PI, you will have to recalculate the final quantity, the cost of goods received, etc).
I would rather do something like Edit the old Document → Recalculate everything According to the new One → Store the old in Values in the database itself and have a link to the old ones on the latest document. (May be have an extra column Revision)
This is a similar behavior to the one which currently exists,Amendments. Its just that we have actually skipped the Cancel part of the Workflow.
I am also facing similar problem but in a different way.
Our scenario :
In our industry, Actual qty or rate may change in future ( as our products come in random length and price fluctuation is high in our industry). Also items against particular sales order may be delivered in parts.
Problem:
After delivering first lot of materials, if our customers changes requirement of products, we cannot amend the SO as delivery note and invoice has been created, and it cannot cancel the document as it is linked.
Suggested Solution:
Amendment of SO and PO like documents should be independent of its cancellation. i.e. It should be possible to amend a document - to the extent of items pending delivery or billing or both - without requiring to cancel a document. On amendment all liked documents get carried forward to amended document as no changes were possible to the extent of linked documents.
I understand that we can allow over billing to a percentage set in item master, but
-that is not the right practice as it would be leading to loss of control on delivery note being made,
-at times over delivery is to the extent of 200%, based on minimum length of material,
-there could be varied changes in customer requirements, like ( different item required - instead of a particular item ). or error in order in their end.
So, there could be a turnaround solution. but it need not be the apt solution always.