Improvements to Item Masters, Purchase Receipts and Checks

@rohit_w I hope you don’t mind tagging you here but I though this forum would be a better format to send some constructive feedback on how ERPNext handles the items and the receipt of goods, particularly when Quality Inspections are required.

As a background, I work for an ISO certified medical device manufacturer. Rapid traceability of raw materials, from receipt through to manufacture and packaging, are critical. This leads to checks and confirmatory checks by a second person, to ensure materials are correct prior to going in to products for the end user.

With that in mind I am suggesting a few areas that I think would improve this process in ERPNext. Yes it can be seen as a wish list but I’m sure it may benefit users in other industries too.

The basis of these observations are on ERPNext v14, as well as some separate observations on changes in the current develop branch.

Essential: Item Master - Expiry Date Options

Currently there is only the option to automatically set an Expiry Date for an item in tandem with a user defined Shelf Life.

This is fine for when you are manufacturing the items yourself but what about raw materials that are purchased?

There should be an easy way to specify to use and record the manufacturers’ expiry date.

Why not have a dropdown option for this to either use the manufacturers’ expiry date (using the info in a Purchase Receipt Item and processing that to the Batch entry’s information), or On Arrival/Production, which would use the current Shelf Life option in the Item Master to generate the expiry date when the Batch/Serial number is generated?

If specified, the manufacturers’ expiry date should be recorded as a new field in the Batch/Serial Doctype, so the information is always available for traceability.

Bonus Feature Item Master - Storage Conditions

Some items have critical storage conditions which can be overlooked. i.e. an item stored at 2-8°C may arrive in non-specialised packaging. If missed an item could be stored incorrectly and perish before being processed correctly.

It would be handy if there was an easy way to flag to the user (pop up, icon/colour of Purchase Order or Purchase Order Item line) that an item had to be kept at specialist non-standard conditions.

Purchase Receipt/Quality Inspections

The Quality Inspection feature is a great help in ensuring that purchased materials meet purchase specification. However, there are a few parts of it which could be improved.

Quality Inspection

  • Stop Automatically Back to Previous DocType After Saving for First Time
    On the first save of a QI, you are immediately thrown back to the Purchase Receipt screen, and then have to return to it to Submit the QI. Can this be stopped?

  • No Auto-Reload of Purchase Receipt After QI Submit?
    On submission of a QI, when returned to the Purchase Receipt, it requires the page to be reloaded. Why can’t this happen automatically rather than generating an error as below.

  • Individual Item QI in Other Stock Entry Types
    A QI for an item is only triggered when a item is purchased or sold, there is no option to include it in any other stock entry, i.e. from one warehouse to another. An inspection can be made on a stock entry but it seems to be the whole entry and not on an individual item basis.

  • No Direct Link Between QI and Batch
    QI is not linked directly to batch number (as discussed previously this is due to the QI existing before the batch number is created by submitting the Purchase Receipt).
    Could the batch number be added to the QI on Submission of the Purchase Receipt, or batch number exists before creation of QI etc.

  • Simplified Yes/No Option
    The parameter field has a user selectable status of “Accepted/Rejected” drop down but always requires a value to be entered in the Reading Value field. It’s not clear to the end user that is not for them to select and that a Reading Value is required
    Why not make a drop down Yes/No option available instead of having to type it in to the Reading Value for when the end user is performing a simple Yes/No inspection type?

  • Make Verified By Field Useful
    The Verified by Field is only a data field. Why not make it a link field so that the Quality Inspection can be forwarded as part of a Workflow for a second user to check and approve the QI?
    At the moment this would require the verifier to sit with the user as they were creating and submitting a QI and Purchase Receipt.

Purchase Receipt

  • Essential: Manufacturer Info
    In tandem with the expiry date option in the Item master, a Purchase Receipt Item should have an option to record the manufacturers’ Batch/Lot information for an Item, per line item, and transfer that information to a corresponding field in the Batch DocType when the batch number is generated.

  • QI Not Matching Quantity Accepted/Rejected
    When creating a Purchase Receipt, there is the option to specify how many of items in a line item that you are accepting and/or rejecting. When a QI is required, this should no longer be an option to accept and reject items on a Purchase Receipt Item line, as a QI is a binary Yes/No option. At present in v14 you can have an Accepted QI but both accepted and rejected quantities present.

  • Rejected QI Blocks Purchase Receipt
    Also, it seems odd that if an item has a Rejected QI it cannot be submitted. I know there is an option to allow a warn, but I think the default block is odd, as it leaves you at a bit of a dead end unable to receipt a faulty good and have that recorded.

  • Cancel All (Issue more affecting me)
    In order to generate Batch/Serial numbers to assign to purchased goods, you have to create and submit the QIs and Purchase Receipt to create the numbers to associated with the goods.
    If a second check of theser goods fails, then the only option is to cancel the whole Purchase Receipt and all associated items, a rather than cancel an individual item. I know this is more to do with document states available in Frappe and the fact it is a submitted DocType, but not sure what the answer would be.

Thanks for reading, if you have made it this far, and I hope you understands where I am coming from.