Merge branch 'master' of github.com:webnotes/erpnext
This commit is contained in:
commit
152cecc9cd
@ -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)
|
||||||
@ -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) {
|
||||||
|
|||||||
@ -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'])
|
||||||
|
|||||||
@ -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")
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
@ -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)""")
|
||||||
@ -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)""")
|
|
||||||
@ -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",
|
||||||
]
|
]
|
||||||
@ -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()
|
||||||
|
|
||||||
|
|||||||
@ -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")
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user