[Solve] Buttons to Manipulate Grid data

Solved this use case. Made custom script below for both “Set QTY to Zero” and “Delete Zero Lines”:


frappe.ui.form.on("Purchase Receipt", "set_qty_to_zero", function(frm, cdt, cdn) {
    var tbl = frm.doc.items || [];
    var i = tbl.length;
    while (i--) {
        if(frm.doc.items[i].qty != 0) {
            frm.doc.items[i].qty = 0
            frm.refresh_field("items")
        }
    }
});

frappe.ui.form.on("Purchase Receipt", "delete_zero_items", function(frm, cdt, cdn) {
    var tbl = frm.doc.items || [];
    var i = tbl.length;
    while (i--) {
        if(frm.doc.items[i].qty == 0) {
            cur_frm.get_field("items").grid.grid_rows[i].remove();
            frm.refresh_field("items")
        }
    }
});

3 Likes