Hello,
Any idea would be appreciated, I’ve tried so many scripts.
I added a link field and child table in Customer doctype:
“tabla_comisiones_por_venta” : link field
comisiones_por_venta : child table
On select “tabla_comisiones_por_venta” populates data on child table.
frappe.ui.form.on("Customer", "tabla_comisiones_por_venta", function(frm) {
frappe.model.with_doc("Tabla Comisiones por Venta", frm.doc.tabla_comisiones_por_venta, function() {
if(frm.doc.tabla_comisiones_por_venta){
var tabletransfer= frappe.model.get_doc("Tabla Comisiones por Venta", frm.doc.tabla_comisiones_por_venta);
$.each(tabletransfer.comisiones, function(index, row){
d = frm.add_child("comisiones_por_venta");
d.account_head = row.account_head;
d.percentage = row.percentage;
cur_frm.refresh_field("comisiones_por_venta");
})
}
});
});
Works fine.
To fetch on Sales Order…
cur_frm.add_fetch("customer", "tabla_comisiones_por_venta", "tabla_comisiones_por_venta");
But I just can’t make the table updates on “grand_total” changes.
frappe.ui.form.on("Sales Order", "tabla_comisiones_por_venta", function(frm) {
frappe.model.with_doc("Tabla Comisiones por Venta", frm.doc.tabla_comisiones_por_venta, function() {
if(frm.doc.tabla_comisiones_por_venta){
var tabletransfer= frappe.model.get_doc("Tabla Comisiones por Venta", frm.doc.tabla_comisiones_por_venta);
$.each(tabletransfer.comisiones, function(index, row){
d = frm.add_child("comisiones_por_venta");
d.account_head = row.account_head;
d.percentage = row.percentage;
d.commission = (row.percentage/100) * frm.doc.grand_total;
cur_frm.refresh_field("comisiones_por_venta");
})
}
});
});
To update I have to erase data selected on “tabla_comisiones_por_venta” and every row on table. Then select again on “tabla_comisiones_por_venta” to populate
d.commission = (row.percentage/100) * frm.doc.grand_total;
I have tried with no success, scripts like…
frappe.ui.form.on("Comisiones por Venta", {
validate: function(frm, cdt, cdn) {
var d = locals[cdt][cdn];
frappe.model.set_value(d.doctype, d.name, "commission", (d.percentage/100) * frm.doc.grand_total);
validate = true;
}
});
Or…
frappe.ui.form.on("Comisiones por Venta", {
grand_total: function(frm, cdt, cdn) {
var d = locals[cdt][cdn];
frappe.model.set_value(d.doctype, d.name, "commission", frm.doc.grand_total);
validate = true;
frm.refresh();
}
});
Or…
frappe.ui.form.on("Sales Order", "grand_total", function(frm) {
frappe.model.with_doc("Tabla Comisiones por Venta", frm.doc.comisiones_por_venta,
function(frm, cdt, cdn) {
frappe.model.set_value(d.doctype, d.name, "commission", frm.doc.grand_total);
frm.refresh();
});
});
What I’m looking for is to update “Comisiones por Venta” comisiones_por_venta
child table on every change at grand_total
field.