Merge branch 'master' of github.com:webnotes/erpnext

This commit is contained in:
Rushabh Mehta 2013-07-25 17:47:38 +05:30
commit 152cecc9cd
10 changed files with 93 additions and 75 deletions

View File

@ -20,7 +20,7 @@ import webnotes
from webnotes.utils import flt from webnotes.utils import flt
from webnotes.model.doc import addchild from webnotes.model.doc import addchild
from webnotes.model.bean import getlist from webnotes.model.bean import getlist
from webnotes import msgprint from webnotes import msgprint, _
class DocType: class DocType:
def __init__(self,doc,doclist=[]): def __init__(self,doc,doclist=[]):
@ -38,8 +38,8 @@ class DocType:
idx += 1 idx += 1
def validate(self): def validate(self):
total = 0 total = sum([flt(d.percentage_allocation, 2) for d in self.doclist.get(
for d in getlist(self.doclist,'budget_distribution_details'): {"parentfield": "budget_distribution_details"})])
total = flt(total) + flt(d.percentage_allocation)
if total != 100: if total != 100.0:
msgprint("Percentage Allocation should be equal to 100%%. Currently it is %s%%" % total, raise_exception=1) msgprint(_("Percentage Allocation should be equal to ") + "100%", raise_exception=1)

View File

@ -14,6 +14,40 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
wn.provide("erpnext.accounts");
erpnext.accounts.CostCenterController = wn.ui.form.Controller.extend({
onload: function() {
this.setup_queries();
},
setup_queries: function() {
var me = this;
if(this.frm.fields_dict["budget_details"].grid.get_field("account")) {
this.frm.set_query("account", "budget_details", function() {
return {
filters:[
['Account', 'company', '=', me.frm.doc.company],
['Account', 'is_pl_account', '=', 'Yes'],
['Account', 'debit_or_credit', '=', 'Debit'],
['Account', 'group_or_ledger', '!=', 'Group'],
]
}
});
}
this.frm.set_query("parent_cost_center", function() {
return {
filters:[
['Cost Center', 'group_or_ledger', '=', 'Group'],
['Cost Center', 'company', '=', me.frm.doc.company],
]
}
});
}
});
$.extend(cur_frm.cscript, new erpnext.accounts.CostCenterController({frm: cur_frm}));
cur_frm.cscript.refresh = function(doc, cdt, cdn) { cur_frm.cscript.refresh = function(doc, cdt, cdn) {
var intro_txt = ''; var intro_txt = '';
cur_frm.toggle_display('cost_center_name', doc.__islocal); cur_frm.toggle_display('cost_center_name', doc.__islocal);
@ -33,39 +67,12 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
function() { wn.set_route("Accounts Browser", "Cost Center"); }, 'icon-sitemap') function() { wn.set_route("Accounts Browser", "Cost Center"); }, 'icon-sitemap')
} }
//Account filtering for cost center
cur_frm.fields_dict['budget_details'].grid.get_field('account').get_query = function(doc) {
var mydoc = locals[this.doctype][this.docname];
return{
filters:[
['Account', 'company', '=', doc.company],
['Account', 'is_pl_account', '=', 'Yes'],
['Account', 'debit_or_credit', '=', 'Debit'],
['Account', 'group_or_ledger', '!=', 'Group'],
['Account', 'group_or_ledger', 'is not', 'NULL']
]
}
}
cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){
return{
filters:[
['Cost Center', 'group_or_ledger', '=', 'Group'],
['Cost Center', 'company', '=', doc.company],
['Cost Center', 'company', 'is not', 'NULL']
]
}
}
//parent cost center
cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){ cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){
if(!doc.company){ if(!doc.company){
alert('Please enter company name first'); alert('Please enter company name first');
} }
} }
// Hide/unhide group or ledger
// -----------------------------------------
cur_frm.cscript.hide_unhide_group_ledger = function(doc) { cur_frm.cscript.hide_unhide_group_ledger = function(doc) {
if (cstr(doc.group_or_ledger) == 'Group') { if (cstr(doc.group_or_ledger) == 'Group') {
cur_frm.add_custom_button('Convert to Ledger', cur_frm.add_custom_button('Convert to Ledger',
@ -76,8 +83,6 @@ cur_frm.cscript.hide_unhide_group_ledger = function(doc) {
} }
} }
// Convert group to ledger
// -----------------------------------------
cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) { cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
$c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) { $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) {
if(r.message == 1) { if(r.message == 1) {
@ -86,8 +91,6 @@ cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) {
}); });
} }
// Convert ledger to group
// -----------------------------------------
cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) { cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
$c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) { $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) {
if(r.message == 1) { if(r.message == 1) {

View File

@ -90,11 +90,11 @@ class DocType(BuyingController):
return ret return ret
def set_supplier_defaults(self): def set_supplier_defaults(self):
self.doc.fields.update(self.get_cust()) self.doc.fields.update(self.get_supplier())
self.doc.fields.update(self.get_credit_to()) self.doc.fields.update(self.get_credit_to())
super(DocType, self).set_supplier_defaults() super(DocType, self).set_supplier_defaults()
def get_cust(self): def get_supplier(self):
ret = {} ret = {}
if self.doc.credit_to: if self.doc.credit_to:
acc = webnotes.conn.get_value('Account',self.doc.credit_to,['master_name', 'credit_days']) acc = webnotes.conn.get_value('Account',self.doc.credit_to,['master_name', 'credit_days'])

View File

@ -47,17 +47,12 @@ class BuyingController(StockController):
# set contact and address details for supplier, if they are not mentioned # set contact and address details for supplier, if they are not mentioned
if self.doc.supplier and not (self.doc.contact_person and self.doc.supplier_address): if self.doc.supplier and not (self.doc.contact_person and self.doc.supplier_address):
for fieldname, val in self.get_default_address_and_contact("supplier").items(): for fieldname, val in self.get_supplier_defaults().items():
if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname): if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
self.doc.fields[fieldname] = val self.doc.fields[fieldname] = val
self.set_missing_item_details(get_item_details) self.set_missing_item_details(get_item_details)
def set_supplier_defaults(self):
for fieldname, val in self.get_default_address_and_contact("supplier").items():
if self.meta.get_field(fieldname):
self.doc.fields[fieldname] = val
def get_purchase_tax_details(self): def get_purchase_tax_details(self):
self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details") self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details")
self.set_taxes("purchase_tax_details", "purchase_other_charges") self.set_taxes("purchase_tax_details", "purchase_other_charges")

View File

@ -102,6 +102,7 @@ class DocType:
if not args: if not args:
args = webnotes.form_dict.get('args') args = webnotes.form_dict.get('args')
if isinstance(args, basestring):
import json import json
args = json.loads(args) args = json.loads(args)

View File

@ -0,0 +1,9 @@
import webnotes
def execute():
webnotes.conn.sql("""update `tabProfile` set user_type="Website User" where user_type="Partner" """)
webnotes.conn.sql("""update `tabProfile` set user_type="System User" where ifnull(user_type, "")="" """)
webnotes.conn.sql("""update `tabProfile` set user_type='System User'
where user_type='Website User' and exists (select name from `tabUserRole`
where parent=`tabProfile`.name)""")

View File

@ -1,6 +0,0 @@
import webnotes
def execute():
webnotes.conn.sql("""update `tabProfile` set user_type='System User'
where user_type='Partner' and exists (select name from `tabUserRole`
where parent=`tabProfile`.name)""")

View File

@ -194,7 +194,6 @@ patch_list = [
"execute:webnotes.reload_doc('website', 'doctype', 'web_page') #2013-03-25", "execute:webnotes.reload_doc('website', 'doctype', 'web_page') #2013-03-25",
"execute:webnotes.reload_doc('setup', 'doctype', 'sales_partner') #2013-06-25", "execute:webnotes.reload_doc('setup', 'doctype', 'sales_partner') #2013-06-25",
"execute:webnotes.conn.set_value('Email Settings', None, 'send_print_in_body_and_attachment', 1)", "execute:webnotes.conn.set_value('Email Settings', None, 'send_print_in_body_and_attachment', 1)",
"patches.march_2013.p09_unset_user_type_partner",
"patches.march_2013.p10_set_fiscal_year_for_stock", "patches.march_2013.p10_set_fiscal_year_for_stock",
"patches.march_2013.p10_update_against_expense_account", "patches.march_2013.p10_update_against_expense_account",
"patches.march_2013.p11_update_attach_files", "patches.march_2013.p11_update_attach_files",
@ -262,4 +261,5 @@ patch_list = [
"execute:webnotes.reload_doc('stock', 'Print Format', 'Delivery Note Spartan') # 2013-07-22", "execute:webnotes.reload_doc('stock', 'Print Format', 'Delivery Note Spartan') # 2013-07-22",
"patches.july_2013.p08_custom_print_format_net_total_export", "patches.july_2013.p08_custom_print_format_net_total_export",
"patches.july_2013.p09_remove_website_pyc", "patches.july_2013.p09_remove_website_pyc",
"patches.july_2013.p10_change_partner_user_to_website_user",
] ]

View File

@ -30,7 +30,7 @@ def on_login_post_session(login_manager):
login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D') login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
webnotes.conn.commit() webnotes.conn.commit()
if webnotes.conn.get_value("Profile", webnotes.session.user, "user_type") == "Partner": if webnotes.conn.get_value("Profile", webnotes.session.user, "user_type") == "Website User":
from website.helpers.cart import set_cart_count from website.helpers.cart import set_cart_count
set_cart_count() set_cart_count()

View File

@ -94,7 +94,9 @@ class TransactionBase(StatusUpdater):
webnotes.conn.get_value("Customer Group", self.doc.customer_group, "default_price_list") or \ webnotes.conn.get_value("Customer Group", self.doc.customer_group, "default_price_list") or \
self.doc.price_list self.doc.price_list
self.doc.fields.update(customer_defaults) for fieldname, val in customer_defaults.items():
if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
self.doc.fields[fieldname] = val
if self.meta.get_field("sales_team"): if self.meta.get_field("sales_team"):
self.set_sales_team_for_customer() self.set_sales_team_for_customer()
@ -122,6 +124,20 @@ class TransactionBase(StatusUpdater):
# add child # add child
self.doclist.append(sales_person) self.doclist.append(sales_person)
def get_supplier_defaults(self):
out = self.get_default_address_and_contact("supplier")
supplier = webnotes.doc("Supplier", self.doc.supplier)
out["supplier_name"] = supplier.supplier_name
out["currency"] = supplier.default_currency
return out
def set_supplier_defaults(self):
for fieldname, val in self.get_supplier_defaults().items():
if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname):
self.doc.fields[fieldname] = val
def get_lead_defaults(self): def get_lead_defaults(self):
out = self.get_default_address_and_contact("lead") out = self.get_default_address_and_contact("lead")