added qty updating option multi-item selector:

This commit is contained in:
Rushabh Mehta 2014-06-06 11:44:51 +05:30
parent b52aac0ef3
commit 5aaaf172ee
2 changed files with 22 additions and 4 deletions

View file

@ -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: ""
});

View file

@ -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]));
}
}
})