Sales Invoice ID Based On Sales Order ID

The script given below allows you to apply naming series to a Sales Invoice, same as that of the corresponding Sales Order. Sales Invoice uses a prefix M- but the number duplicates itself from the Sales Order Name.

Example: If Sales Order ID is SO-12345, then corresponding Sales Invoice ID will be set as M-12345.

frappe.ui.form.on("Sales Invoice", "refresh", function(frm){
    var sales_order = frm.doc.items[0].sales_order.replace("M", "M-");
    if (!frm.is_new() && sales_order && frm.doc.name!==sales_order){
        frappe.call({
        method: 'frappe.model.rename_doc.rename_doc',
        args: {
            doctype: frm.doctype,
            old: frm.docname,
            "new": sales_order,
            "merge": false
        },
    });
    }
});
Was this article helpful?