added qty updating option multi-item selector:
This commit is contained in:
parent
b52aac0ef3
commit
5aaaf172ee
2 changed files with 22 additions and 4 deletions
|
|
@ -183,7 +183,7 @@ frappe.ui.form.Grid = Class.extend({
|
|||
can_add_rows: function() {
|
||||
return this.is_editable() && !this.cannot_add_rows
|
||||
},
|
||||
set_multiple_add: function(link) {
|
||||
set_multiple_add: function(link, qty) {
|
||||
var me = this;
|
||||
var link_field = frappe.meta.get_docfield(this.df.options, link);
|
||||
$(this.wrapper).find(".grid-add-multiple-rows")
|
||||
|
|
@ -192,6 +192,7 @@ frappe.ui.form.Grid = Class.extend({
|
|||
new frappe.ui.form.LinkSelector({
|
||||
doctype: link_field.options,
|
||||
fieldname: link,
|
||||
qty_fieldname: qty,
|
||||
target: me,
|
||||
txt: ""
|
||||
});
|
||||
|
|
|
|||
|
|
@ -83,9 +83,8 @@ frappe.ui.form.LinkSelector = Class.extend({
|
|||
var value = $(this).attr("data-value");
|
||||
var $link = this;
|
||||
if(me.target.is_grid) {
|
||||
var d = me.target.add_new_row();
|
||||
frappe.model.set_value(d.doctype, d.name, me.fieldname, value);
|
||||
show_alert(__("{0} added", [value]));
|
||||
// set in grid
|
||||
me.set_in_grid(value);
|
||||
} else {
|
||||
if(me.target.doctype)
|
||||
me.target.parse_validate_and_set_in_model(value);
|
||||
|
|
@ -110,5 +109,23 @@ frappe.ui.form.LinkSelector = Class.extend({
|
|||
},
|
||||
btn: this.dialog.get_primary_btn()
|
||||
});
|
||||
},
|
||||
set_in_grid: function(value) {
|
||||
var me = this, updated = false;
|
||||
if(this.qty_fieldname) {
|
||||
$.each(this.target.frm.doc[this.target.df.fieldname] || [], function(i, d) {
|
||||
if(d[me.fieldname]===value) {
|
||||
frappe.model.set_value(d.doctype, d.name, me.qty_fieldname, d[me.qty_fieldname] + 1);
|
||||
show_alert(__("Added {0} ({1})", [value, d[me.qty_fieldname]]));
|
||||
updated = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
if(!updated) {
|
||||
var d = this.target.add_new_row();
|
||||
frappe.model.set_value(d.doctype, d.name, me.fieldname, value);
|
||||
show_alert(__("{0} added", [value]));
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue