Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 1ef7334..aa21d5d 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -120,6 +120,7 @@
}
// TODO toggle display of fields
+ cur_frm.cscript.hide_fields(this.frm.doc);
},
debit_to: function() {
@@ -162,7 +163,7 @@
// Hide Fields
// ------------
-cur_frm.cscript.hide_fields = function(doc, cdt, cdn) {
+cur_frm.cscript.hide_fields = function(doc) {
par_flds = ['project_name', 'due_date', 'is_opening', 'conversion_rate',
'source', 'total_advance', 'gross_profit',
'gross_profit_percent', 'get_advances_received',
@@ -176,18 +177,21 @@
if(cint(doc.is_pos) == 1) {
hide_field(par_flds);
unhide_field('payments_section');
- for(f in item_flds_normal) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal[f], false);
+ cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal, false);
} else {
hide_field('payments_section');
unhide_field(par_flds);
- for(f in item_flds_normal) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal[f], true);
+ cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal, true);
}
- for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], (cint(doc.update_stock)==1?true:false));
+
+ cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos, (cint(doc.update_stock)==1?true:false));
// India related fields
var cp = wn.control_panel;
if (cp.country == 'India') unhide_field(['c_form_applicable', 'c_form_no']);
else hide_field(['c_form_applicable', 'c_form_no']);
+
+ cur_frm.refresh_fields();
}
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index 04263c3..148ba1c 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -90,7 +90,6 @@
freeze: true,
callback: function(r) {
if(!r.exc) {
- me.frm.refresh_fields();
if(me.frm.doc.price_list_name !== price_list_name) me.price_list_name();
}
}
@@ -485,12 +484,12 @@
// toggle columns
var item_grid = this.frm.fields_dict[this.fname].grid;
- var show = this.frm.doc.currency != company_currency;
- $.each(["purchase_rate", "purchase_ref_rate", "amount", "rate"], function(i, fname) {
- if(wn.meta.get_docfield(item_grid.doctype, fname))
- item_grid.set_column_disp(fname, show);
+ var fieldnames = $.map(["purchase_rate", "purchase_ref_rate", "amount", "rate"], function(fname) {
+ return wn.meta.get_docfield(item_grid.doctype, fname, me.frm.docname) ? fname : null;
});
+ item_grid.set_column_disp(fieldnames, this.frm.doc.currency != company_currency);
+
// set labels
var $wrapper = $(this.frm.wrapper);
$.each(field_label_map, function(fname, label) {
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index 4e850ff..56ddfd1 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -33,6 +33,8 @@
self.validate_value("grand_total", ">=", 0)
self.set_total_in_words()
+ self.validate_for_freezed_account()
+
def set_missing_values(self, for_validate=False):
for fieldname in ["posting_date", "transaction_date"]:
if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
@@ -51,6 +53,18 @@
if date_field and self.doc.fields[date_field]:
validate_fiscal_year(self.doc.fields[date_field], self.doc.fiscal_year,
label=self.meta.get_label(date_field))
+
+ def validate_for_freezed_account(self):
+ for fld in ["customer", "supplier"]:
+ if self.meta.get_field(fld):
+ accounts = webnotes.conn.get_values("Account", {"master_type": fld.upper(),
+ "master_name": self.doc.fields[fld], "company": self.doc.company},
+ "freeze_account", as_dict=1)
+
+ if accounts:
+ if not filter(lambda x: cstr(x.freeze_account) in ["", "No"], accounts):
+ msgprint(_("Account for this ") + fld + _(" has been freezed. ") +
+ self.doc.doctype + _(" can not be made."), raise_exception=1)
def set_price_list_currency(self, buying_or_selling):
# TODO - change this, since price list now has only one currency allowed
diff --git a/public/js/feature_setup.js b/public/js/feature_setup.js
index abd3370..add4bfd 100644
--- a/public/js/feature_setup.js
+++ b/public/js/feature_setup.js
@@ -209,8 +209,7 @@
if(fort=='fields') {
hide_field(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]);
} else if(cur_frm.fields_dict[fort]) {
- for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort])
- cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false);
+ cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort], false);
} else {
msgprint('Grid "'+fort+'" does not exists');
}
diff --git a/selling/doctype/installation_note/installation_note.js b/selling/doctype/installation_note/installation_note.js
index dce0a31..5ad698a 100644
--- a/selling/doctype/installation_note/installation_note.js
+++ b/selling/doctype/installation_note/installation_note.js
@@ -81,9 +81,6 @@
this.frm.call({
doc: this.frm.doc,
method: "set_customer_defaults",
- callback: function(r) {
- if(!r.exc) me.frm.refresh_fields();
- }
});
// TODO shift this to depends_on
@@ -105,9 +102,6 @@
},
method: "get_customer_address",
freeze: true,
- callback: function(r) {
- me.frm.refresh_fields();
- }
});
}
},
diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js
index 7c647c3..0ac22a1 100644
--- a/selling/doctype/opportunity/opportunity.js
+++ b/selling/doctype/opportunity/opportunity.js
@@ -89,9 +89,6 @@
this.frm.call({
doc: this.frm.doc,
method: "set_customer_defaults",
- callback: function(r) {
- if(!r.exc) me.frm.refresh_fields();
- }
});
// TODO shift this to depends_on
@@ -208,7 +205,6 @@
return;
}
dialog.hide();
- cur_frm.refresh();
},
btn: this
})
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index 9a13c4f..246d4a1 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -142,7 +142,6 @@
freeze: true,
callback: function(r) {
if(!r.exc) {
- me.frm.refresh_fields();
(me.frm.doc.price_list_name !== price_list_name) ?
me.price_list_name() :
me.price_list_currency();
diff --git a/setup/doctype/setup_control/setup_control.py b/setup/doctype/setup_control/setup_control.py
index b029da3..5a18404 100644
--- a/setup/doctype/setup_control/setup_control.py
+++ b/setup/doctype/setup_control/setup_control.py
@@ -256,7 +256,7 @@
if name and not webnotes.conn.exists("Territory", name):
webnotes.bean({
"doctype": "Territory",
- "territory_name": name,
+ "territory_name": name.replace("'", ""),
"parent_territory": root_territory,
"is_group": "No"
}).insert()
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 3dac29d..de6e9dc 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -46,8 +46,7 @@
// unhide expense_account and cost_center is auto_inventory_accounting enabled
var aii_enabled = cint(sys_defaults.auto_inventory_accounting)
- cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("expense_account", aii_enabled);
- cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("cost_center", aii_enabled);
+ cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp(["expense_account", "cost_center"], aii_enabled);
if (this.frm.doc.docstatus===0) {
cur_frm.add_custom_button(wn._('From Sales Order'),
diff --git a/support/doctype/customer_issue/customer_issue.js b/support/doctype/customer_issue/customer_issue.js
index 96662b9..3620c7e 100644
--- a/support/doctype/customer_issue/customer_issue.js
+++ b/support/doctype/customer_issue/customer_issue.js
@@ -29,9 +29,6 @@
this.frm.call({
doc: this.frm.doc,
method: "set_customer_defaults",
- callback: function(r) {
- if(!r.exc) me.frm.refresh_fields();
- }
});
// TODO shift this to depends_on
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.js b/support/doctype/maintenance_schedule/maintenance_schedule.js
index d847269..f8652d7 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -47,9 +47,6 @@
this.frm.call({
doc: this.frm.doc,
method: "set_customer_defaults",
- callback: function(r) {
- if(!r.exc) me.frm.refresh_fields();
- }
});
}
},
diff --git a/support/doctype/maintenance_visit/maintenance_visit.js b/support/doctype/maintenance_visit/maintenance_visit.js
index f3faf3f..9f5fc5d 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/support/doctype/maintenance_visit/maintenance_visit.js
@@ -65,9 +65,6 @@
this.frm.call({
doc: this.frm.doc,
method: "set_customer_defaults",
- callback: function(r) {
- if(!r.exc) me.frm.refresh_fields();
- }
});
// TODO shift this to depends_on
diff --git a/support/doctype/support_ticket/support_ticket.js b/support/doctype/support_ticket/support_ticket.js
index bd7e6cc..d8cc798 100644
--- a/support/doctype/support_ticket/support_ticket.js
+++ b/support/doctype/support_ticket/support_ticket.js
@@ -26,9 +26,6 @@
this.frm.call({
doc: this.frm.doc,
method: "set_customer_defaults",
- callback: function(r) {
- if(!r.exc) me.frm.refresh_fields();
- }
});
}
}