How can I make a "runtime" calculation?

Thanks everyone!!

Works fine… here is my final solution:

frappe.ui.form.on('Nota Entrada Itens', {
	"qtde": function(frm, cdt, cdn) {
		let gridRow = frm.open_grid_row();
		if (!gridRow) {
			gridRow = frm.get_field('itens').grid.get_row(cdn);
		}
		calAmount(gridRow);
	},
	"vlr_unit": function(frm, cdt, cdn) {
		let gridRow = frm.open_grid_row();
		if (!gridRow) {
			gridRow = frm.get_field('itens').grid.get_row(cdn);
		}
		calAmount(gridRow);
	},
});


function calAmount(gridRow) {
	let qtde = gridRow.on_grid_fields_dict.qtde.value;
	let vlr_unit = gridRow.on_grid_fields_dict.vlr_unit.value;
	let amount = qtde * vlr_unit;
	frappe.model.set_value(
		gridRow.doc.doctype,
		gridRow.doc.name,
		'vlr_total',
		amount
		);
}
2 Likes