frappe / erpnext

Free and Open Source Enterprise Resource Planning (ERP)
https://erpnext.com
GNU General Public License v3.0
21.02k stars 7.2k forks source link

Tracking Serial number through repacks OR allowing selecting UOM at sales order, delivery note, or invoice stage #1882

Closed pauldowd closed 7 years ago

pauldowd commented 10 years ago

The issue we have is that individual items have serial numbers, but we never sell individual items. We always sell cartons of 6 locally or pallets internationally. However we still need to track all of the individual item serial numbers throughout the entire process.

This is our process, and honestly, a fairly typical process for many businesses that shift stock. The issue here is that we don't want to scan each serial number when we sell, just a carton or pallet serial number. Could you imagine opening 50 cartons on a pallet just to scan all the individual item serial numbers?? This means we are breaking carton seals as well as wasting a large amount of time.

To begin with, we'd have multiple products as so: ITEM ITEM-CARTON ITEM-PALLET

  1. Create Batch linked to that item
  2. Purchase/Manufacture Stock as individual items which are booked in with their serial numbers and a batch
  3. Repack the items to a carton and serialise the carton
  4. Repack the cartons to a pallet and serialise the pallet

We then sell either an ITEM, ITEM-CARTON, or ITEM-PALLET

We might also do a warehouse transfer for ITEM-PALLET or ITEM-CARTON

We may at times repack an ITEM-PALLET or ITEM-CARTON into a smaller size. E.g. we warehouse transfer a pallet to our China warehouse, and then we break it down to cartons (repack) and sell cartons to retailers from there.

We need to be able to track an item using its' serial number so that we can find out the batch information as well as track all stock movements whether as an individual item or repacked into cartons or pallets. For example, if a customer rings us up with a product complaint we get their products serial number and want to know its batch details and all stock movements even though we never actually sold that individual item because it was sold as part of a carton.

What happens right now is that the serial number is not tracked after the repack, it just gets used up. This means when we want to find out what store that unit was sold to (we sold the store a repacked carton) it just tells me it was used in creating a carton, and doesn't follow it through to the end sale of the carton. It is feasible to track this manually right now, but I'm not even certain of that. However, once an item has gone through multiple repacks it would be impossible. E.g. ITEM to ITEM-CARTON to ITEM-PALLET (warehouse transfer) to ITEM-CARTON then Sales Order.

There is a forum post on this topic as well: https://groups.google.com/forum/#!topic/erpnext-user-forum/lRArc1fDxEg

I don't believe that a UOM system would work for this because the carton and pallets need to have a serial number so that they can accurately track the individual item serial numbers. UOM is just a sales item qty measure so probably wouldn't provide any tracking.

anandpdoshi commented 10 years ago

@pauldowd The main problem seems to be tracking a Serial No to the end of its lifecycle once goes to one or more repacks. This should be handled using a Script Report.

The report should:

  1. Ask for a Serial No
  2. Look for Stock Ledger Entries:
    1. Where the Serial No came into being, i.e. the first positive Stock Ledger Entry for that Serial No
    2. Then find the last negative Stock Ledger Entry for that Serial No
    3. If the last entry is a repack, get the Serial No of the resulting Item and repeat the above two steps
    4. Upon continuation, if the entry is unpack and if it finds the Serial No asked in step 1, it should continue the trail from there

This will give you how a Serial No moved and where it ended up.

Does this describe the problem accurately and does the solution look promising?

pauldowd commented 10 years ago

thanks, it certainly looks promising and I've though about this sort of solution as a short term data lookup fix, but I'd be worried about the following.

i.e. you can go up the stack of repacks, but could you go back down the stack again?

It is perfectly feasible that we'd repack items to cartons, cartons to pallets, ship the pallet to china, unpack to cartons, unpack to items because we sold one on-line. All through the process that item needs to have the same serial number and be tracked.

anandpdoshi commented 10 years ago

The code could written to include this scenario, i.e. it will also try to match the original serial no upon unpack (specified before running the report) and if it does find it, continue the trail from there.

I've updated the above comment.

pauldowd commented 10 years ago

thanks. I think that if the stock ledger tracks everything in this way, which you're saying it does, then this largely becomes an upgrade to allow the full use of the current functionality.

The following are updates we'd need prior to the report you're proposing being of any real use:

ftorreti commented 10 years ago

Another issue is how batch numbers are managed as well. Often batch numbers are used to track daily productions of one item. One shipment may also include more than one batch.

For a given item number we might have different batch numbers (i.e. same item produced on different dates / different production lots for which we need to have traceability from PO to Delivery Note.

If we have an order of 600pcs for which we have 3 different production lots we need to add 3 items in the delivery note to be able to assign the quantity to a given batch.

A function we do miss from other ERP systems is the possibility to pick Batch Nr. and relative qty to assign so that for one Item in the delivery note one might have several Batch numbers so we can have the following:

Item Description Qty ABC Custom Item 600 Pcs Lot: 123 Qty: 200 Pcs Lot: 456 Qty: 200 Pcs Lot: 789 Qty: 200 Pcs

Instead we need to pick ABC 3 times. Currently it is not possible to allocate multiple batch numbers to a material receipt or to a delivery note for that matter without replicating the item and typing the batch number. So if for one shipment of 5,000pcs of one item we have 5 batch numbers we need to repeat the item entry 5 times and indicate one batch number each time.

It would be ideal if the batch UI is modified to be similar to the UI for serial numbers where it is possible to track multiple batch numbers in one line item. The difference is that for batch number there should be a separate number field where the quantities are indicated.

ftorreti commented 10 years ago

I just created another github issue for this.

pauldowd commented 9 years ago

Hi,

is there any update on this?

The ability to unpack an item into its original items. Currently when unpacking an item you don't know the original serials, but as you're saying the system could look this up then we'd need it to do so. If a packed item was made of serialised items then it should auto unpack to the original serialised items. Maybe a select option or some-such.

rmehta commented 9 years ago

@pauldowd what you probably need is

  1. A serial no (you define) for the ITEM-PALLET or ITEM-CARTON
  2. In Serial No, add a table for Serial No Contents - that will list the Serial Nos of your carton / pallet
  3. Create a report that will link the Serial No to the Order / Invoice

How are you deployed? FrappeCloud?

revant commented 9 years ago

There is no serial number for our item right now. Customer needs us to bill them on converted UOM Example: Sales item: Scaffolding UOM: SFT (Square feet) UOM Required in Sales Invoice: SQM (Square Meter)

Is there any work around? what is re-packing http://erpnext.org/how-to-repack-products ?

PawanMeh commented 7 years ago

Sales Cycle has UOM conversion in the latest release.

If there is any other open issues, kindly create new issue following guidelines

shanmukhasai6 commented 7 years ago

Is it possible to bundle serial numbers as we do product bundles for repack

Will such an idea work