[fix] pos setting link fields validate to specific company

This commit is contained in:
Akhilesh Darjee 2013-09-04 18:48:08 +05:30
parent 45af0a18b6
commit 734b2aab5c
5 changed files with 61 additions and 13 deletions

View File

@ -49,15 +49,9 @@ cur_frm.fields_dict['cost_center'].get_query = function(doc,cdt,cdn) {
} }
} }
// ------------------ Get Print Heading ------------------------------------
cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
return{
filters:[
['Print Heading', 'docstatus', '!=', 2]
]
}
}
// Expense Account
// -----------------------------
cur_frm.fields_dict["expense_account"].get_query = function(doc) { cur_frm.fields_dict["expense_account"].get_query = function(doc) {
return { return {
filters: { filters: {
@ -69,6 +63,16 @@ cur_frm.fields_dict["expense_account"].get_query = function(doc) {
} }
} }
// ------------------ Get Print Heading ------------------------------------
cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
return{
filters:[
['Print Heading', 'docstatus', '!=', 2]
]
}
}
cur_frm.fields_dict.user.get_query = function(doc,cdt,cdn) { cur_frm.fields_dict.user.get_query = function(doc,cdt,cdn) {
return{ query:"controllers.queries.profile_query"} return{ query:"controllers.queries.profile_query"}
} }

View File

@ -20,6 +20,7 @@ class DocType:
def validate(self): def validate(self):
self.check_for_duplicate() self.check_for_duplicate()
self.validate_expense_account() self.validate_expense_account()
self.validate_all_link_fields()
def check_for_duplicate(self): def check_for_duplicate(self):
res = webnotes.conn.sql("""select name, user from `tabPOS Setting` res = webnotes.conn.sql("""select name, user from `tabPOS Setting`
@ -38,6 +39,15 @@ class DocType:
and not self.doc.expense_account: and not self.doc.expense_account:
msgprint(_("Expense Account is mandatory"), raise_exception=1) msgprint(_("Expense Account is mandatory"), raise_exception=1)
def validate_all_link_fields(self):
accounts = {"Account": [self.doc.cash_bank_account, self.doc.income_account, self.doc.expense_account], \
"Cost Center": [self.doc.cost_center], "Warehouse": [self.doc.warehouse]}
for link_dt, dn_list in accounts.items():
for link_dn in dn_list:
if not webnotes.conn.exists({"doctype": link_dt, "company": self.doc.company, "name": link_dn}):
msgprint(link_dn +_(" does not belong to ") + self.doc.company)
def on_update(self): def on_update(self):
webnotes.defaults.clear_default("is_pos") webnotes.defaults.clear_default("is_pos")

View File

@ -292,10 +292,11 @@ erpnext.POS = Class.extend({
$.each(taxes, function(i, d) { $.each(taxes, function(i, d) {
$(repl('<tr>\ $(repl('<tr>\
<td>%(description)s</td>\ <td>%(description)s (%(rate)s%)</td>\
<td style="text-align: right;">%(tax_amount)s</td>\ <td style="text-align: right;">%(tax_amount)s</td>\
<tr>', { <tr>', {
description: d.description, description: d.description,
rate: d.rate,
tax_amount: format_currency(d.tax_amount, me.frm.doc.price_list_currency) tax_amount: format_currency(d.tax_amount, me.frm.doc.price_list_currency)
})).appendTo(".tax-table tbody"); })).appendTo(".tax-table tbody");
}); });
@ -429,6 +430,7 @@ erpnext.POS = Class.extend({
dialog.fields_dict.pay.input.onclick = function() { dialog.fields_dict.pay.input.onclick = function() {
cur_frm.set_value("mode_of_payment", dialog.get_values().mode_of_payment); cur_frm.set_value("mode_of_payment", dialog.get_values().mode_of_payment);
cur_frm.set_value("paid_amount", dialog.get_values().total_amount); cur_frm.set_value("paid_amount", dialog.get_values().total_amount);
cur_frm.cscript.mode_of_payment(cur_frm.doc);
cur_frm.save(); cur_frm.save();
dialog.hide(); dialog.hide();
me.refresh(); me.refresh();

View File

@ -36,8 +36,6 @@ cur_frm.cscript.abbr = function(doc){
} }
} }
cur_frm.fields_dict.default_cash_account.get_query = cur_frm.fields_dict.default_bank_account.get_query;
cur_frm.fields_dict.default_bank_account.get_query = function(doc) { cur_frm.fields_dict.default_bank_account.get_query = function(doc) {
return{ return{
filters:{ filters:{
@ -48,7 +46,7 @@ cur_frm.fields_dict.default_bank_account.get_query = function(doc) {
} }
} }
cur_frm.fields_dict.payables_group.get_query = cur_frm.fields_dict.receivables_group.get_query; cur_frm.fields_dict.default_cash_account.get_query = cur_frm.fields_dict.default_bank_account.get_query;
cur_frm.fields_dict.receivables_group.get_query = function(doc) { cur_frm.fields_dict.receivables_group.get_query = function(doc) {
return{ return{
@ -59,6 +57,39 @@ cur_frm.fields_dict.receivables_group.get_query = function(doc) {
} }
} }
cur_frm.fields_dict.payables_group.get_query = cur_frm.fields_dict.receivables_group.get_query;
cur_frm.fields_dict.default_expense_account.get_query = function(doc) {
return{
filters:{
'company': doc.name,
'group_or_ledger': "Ledger",
'is_pl_account': "Yes",
'debit_or_credit': "Debit"
}
}
}
cur_frm.fields_dict.default_income_account.get_query = function(doc) {
return{
filters:{
'company': doc.name,
'group_or_ledger': "Ledger",
'is_pl_account': "Yes",
'debit_or_credit': "Credit"
}
}
}
cur_frm.fields_dict.cost_center.get_query = function(doc) {
return{
filters:{
'company': doc.name,
'group_or_ledger': "Ledger",
}
}
}
if (sys_defaults.auto_inventory_accounting) { if (sys_defaults.auto_inventory_accounting) {
cur_frm.fields_dict["stock_in_hand_account"].get_query = function(doc) { cur_frm.fields_dict["stock_in_hand_account"].get_query = function(doc) {
return { return {

View File

@ -48,7 +48,8 @@ class DocType:
self.create_default_warehouses() self.create_default_warehouses()
self.create_default_web_page() self.create_default_web_page()
if not self.doc.cost_center: if not webnotes.conn.get_value("Cost Center", {"group_or_ledger": "Ledger",
"company": self.doc.name}):
self.create_default_cost_center() self.create_default_cost_center()
self.set_default_accounts() self.set_default_accounts()