Customer/customer group wise price list
This commit is contained in:
parent
f642168a26
commit
239e79038f
@ -171,6 +171,7 @@ cur_frm.cscript.customer = function(doc,dt,dn,onload) {
|
||||
get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,
|
||||
function(doc, dt, dn) {
|
||||
cur_frm.refresh();
|
||||
cur_frm.cscript.price_list_name(doc, dt, dn);
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -126,7 +126,6 @@ class DocType(TransactionBase):
|
||||
|
||||
if self.doc.debit_to:
|
||||
self.doc.customer = webnotes.conn.get_value('Account',self.doc.debit_to,'master_name')
|
||||
# get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 0)
|
||||
|
||||
|
||||
# Pull Details of Delivery Note or Sales Order Selected
|
||||
@ -467,8 +466,6 @@ class DocType(TransactionBase):
|
||||
sales_com_obj.validate_max_discount(self, 'entries') #verify whether rate is not greater than tolerance
|
||||
sales_com_obj.get_allocated_sum(self) # this is to verify that the allocated % of sales persons is 100%
|
||||
sales_com_obj.validate_fiscal_year(self.doc.fiscal_year,self.doc.posting_date,'Posting Date')
|
||||
if not self.doc.customer:
|
||||
get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 0)
|
||||
self.validate_customer()
|
||||
self.validate_debit_to_acc()
|
||||
self.validate_debit_acc()
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2012-03-27 14:36:07',
|
||||
'creation': '2012-04-13 11:56:26',
|
||||
'docstatus': 0,
|
||||
'modified': '2012-03-27 18:47:38',
|
||||
'modified': '2012-04-19 17:12:24',
|
||||
'modified_by': u'Administrator',
|
||||
'owner': u'Administrator'
|
||||
},
|
||||
@ -27,7 +27,7 @@
|
||||
'show_in_menu': 0,
|
||||
'subject': u'eval:"%(customer_name)s"=="%(name)s" ? "" : "%(customer_name)s"',
|
||||
'tag_fields': u'customer_group,customer_type',
|
||||
'version': 435
|
||||
'version': 1
|
||||
},
|
||||
|
||||
# These values are common for all DocField
|
||||
@ -57,6 +57,46 @@
|
||||
'name': u'Customer'
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 1,
|
||||
@ -77,46 +117,6 @@
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'colour': u'White:FFF',
|
||||
@ -340,6 +340,16 @@
|
||||
'search_index': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': u'DocField',
|
||||
'fieldname': u'default_price_list',
|
||||
'fieldtype': u'Link',
|
||||
'label': u'Default Price List',
|
||||
'options': u'Price List',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'colour': u'White:FFF',
|
||||
|
@ -98,6 +98,7 @@ cur_frm.cscript.customer = function(doc,dt,dn) {
|
||||
var callback = function(r,rt) {
|
||||
var doc = locals[cur_frm.doctype][cur_frm.docname];
|
||||
cur_frm.refresh();
|
||||
cur_frm.cscript.price_list_name(doc, dt, dn);
|
||||
}
|
||||
|
||||
if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name),
|
||||
|
@ -76,24 +76,6 @@ cur_frm.cscript.update_item_details = function(doc, dt, dn, callback) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ============== Customer and its primary contact Details ============================
|
||||
cur_frm.cscript.customer = function(doc, cdt, cdn) {
|
||||
if(doc.customer){
|
||||
if (!doc.company) {
|
||||
msgprint("Please select company to proceed");
|
||||
doc.customer = '';
|
||||
refresh_field('customer');
|
||||
} else {
|
||||
var callback = function(r, rt){
|
||||
cur_frm.refresh();
|
||||
}
|
||||
$c_obj(make_doclist(doc.doctype, doc.name), 'get_customer_details', '',callback);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var set_dynamic_label_par = function(doc, cdt, cdn, base_curr) {
|
||||
//parent flds
|
||||
par_cols_base = {'net_total': 'Net Total', 'other_charges_total': 'Taxes and Charges Total',
|
||||
|
@ -120,24 +120,6 @@ class DocType(TransactionBase):
|
||||
obj.doc.debit_to = acc_head and acc_head[0][0] or ''
|
||||
|
||||
|
||||
# Get Customer Details along with its primary contact details
|
||||
# ==============================================================
|
||||
def get_customer_details(self, obj = '', inv_det_reqd = 1):
|
||||
details = webnotes.conn.sql("select customer_name,address, territory, customer_group, default_sales_partner, default_commission_rate from `tabCustomer` where name = '%s' and docstatus != 2" %(obj.doc.customer), as_dict = 1)
|
||||
obj.doc.customer_name = details and details[0]['customer_name'] or ''
|
||||
obj.doc.customer_address = details and details[0]['address'] or ''
|
||||
obj.doc.territory = details and details[0]['territory'] or ''
|
||||
obj.doc.customer_group = details and details[0]['customer_group'] or ''
|
||||
obj.doc.sales_partner = details and details[0]['default_sales_partner'] or ''
|
||||
obj.doc.commission_rate = details and flt(details[0]['default_commission_rate']) or ''
|
||||
if obj.doc.doctype != 'Sales Invoice':
|
||||
obj.doc.delivery_address = details and details[0]['address'] or ''
|
||||
self.get_contact_details(obj,primary = 1) # get primary contact details
|
||||
self.get_sales_person_details(obj) # get default sales person details
|
||||
|
||||
if obj.doc.doctype == 'Sales Invoice' and inv_det_reqd:
|
||||
self.get_invoice_details(obj) # get invoice details
|
||||
|
||||
|
||||
# Get Item Details
|
||||
# ===============================================================
|
||||
|
@ -99,6 +99,8 @@ cur_frm.cscript.customer = function(doc,dt,dn) {
|
||||
var callback2 = function(r, rt) {
|
||||
if(doc.customer) unhide_field(['customer_address', 'contact_person', 'customer_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory','customer_group','shipping_address']);
|
||||
cur_frm.refresh();
|
||||
cur_frm.cscript.price_list_name(doc, dt, dn);
|
||||
|
||||
}
|
||||
var doc = locals[cur_frm.doctype][cur_frm.docname];
|
||||
get_server_fields('get_shipping_address',doc.customer,'',doc, dt, dn, 0, callback2);
|
||||
|
@ -74,13 +74,6 @@ class DocType(TransactionBase):
|
||||
get_obj('DocType Mapper', 'Project-Sales Order').dt_map('Project', 'Sales Order', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Sales Order']]")
|
||||
|
||||
|
||||
# Get Customer Details
|
||||
# ---------------------
|
||||
#def get_customer_details(self):
|
||||
# sales_com_obj = get_obj('Sales Common')
|
||||
# sales_com_obj.get_customer_details(self)
|
||||
# sales_com_obj.get_shipping_details(self)
|
||||
|
||||
# Get contact person details based on customer selected
|
||||
# ------------------------------------------------------
|
||||
def get_contact_details(self):
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2012-03-27 14:36:19',
|
||||
'creation': '2012-04-13 11:56:30',
|
||||
'docstatus': 0,
|
||||
'modified': '2012-03-27 14:36:19',
|
||||
'modified': '2012-04-19 17:50:43',
|
||||
'modified_by': u'Administrator',
|
||||
'owner': u'Administrator'
|
||||
},
|
||||
@ -26,7 +26,7 @@
|
||||
'section_style': u'Simple',
|
||||
'server_code_error': u' ',
|
||||
'show_in_menu': 0,
|
||||
'version': 34
|
||||
'version': 1
|
||||
},
|
||||
|
||||
# These values are common for all DocField
|
||||
@ -56,6 +56,56 @@
|
||||
'name': u'Customer Group'
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales Master Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 1,
|
||||
@ -66,56 +116,6 @@
|
||||
'write': 1
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales Master Manager',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 1,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocPerm
|
||||
{
|
||||
'cancel': 0,
|
||||
'create': 0,
|
||||
'doctype': u'DocPerm',
|
||||
'permlevel': 0,
|
||||
'role': u'Sales User',
|
||||
'write': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': u'DocField',
|
||||
@ -182,6 +182,16 @@
|
||||
'reqd': 1
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': u'DocField',
|
||||
'fieldname': u'default_price_list',
|
||||
'fieldtype': u'Link',
|
||||
'label': u'Default Price List',
|
||||
'options': u'Price List',
|
||||
'permlevel': 0
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': u'DocField',
|
||||
|
@ -79,6 +79,7 @@ cur_frm.cscript.customer = function(doc,dt,dn,onload) {
|
||||
var doc = locals[cur_frm.doctype][cur_frm.docname];
|
||||
if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group','shipping_address']);
|
||||
cur_frm.refresh();
|
||||
cur_frm.cscript.price_list_name(doc, dt, dn);
|
||||
}
|
||||
var args = onload ? 'onload':''
|
||||
if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_shipping_address', args, callback);
|
||||
|
@ -34,8 +34,8 @@ class TransactionBase:
|
||||
self.doc.contact_email = contact_email or ''
|
||||
self.doc.contact_mobile = contact_mobile or ''
|
||||
|
||||
self.get_customer_details(self.doc.customer)
|
||||
if args != 'onload':
|
||||
self.get_customer_details(self.doc.customer)
|
||||
self.get_sales_person(self.doc.customer)
|
||||
|
||||
# Get Customer Default Shipping Address - first load
|
||||
@ -50,8 +50,8 @@ class TransactionBase:
|
||||
self.doc.contact_email = contact_email or ''
|
||||
self.doc.contact_mobile = contact_mobile or ''
|
||||
|
||||
self.get_customer_details(self.doc.customer)
|
||||
if self.doc.doctype != 'Quotation' and args != 'onload':
|
||||
self.get_customer_details(self.doc.customer)
|
||||
self.get_sales_person(self.doc.customer)
|
||||
|
||||
# Get Customer Address
|
||||
@ -118,13 +118,18 @@ class TransactionBase:
|
||||
# Get Customer Details
|
||||
# -----------------------
|
||||
def get_customer_details(self, name):
|
||||
customer_details = webnotes.conn.sql("select customer_name, customer_group, territory, default_sales_partner, default_commission_rate from tabCustomer where name = '%s' and docstatus != 2" %(name), as_dict = 1)
|
||||
customer_details = webnotes.conn.sql("select customer_name, customer_group, territory, default_sales_partner, default_commission_rate, default_price_list from tabCustomer where name = '%s' and docstatus != 2" %(name), as_dict = 1)
|
||||
if customer_details:
|
||||
self.doc.customer_name = customer_details[0]['customer_name'] or ''
|
||||
self.doc.customer_group = customer_details[0]['customer_group'] or ''
|
||||
self.doc.territory = customer_details[0]['territory'] or ''
|
||||
self.doc.sales_partner = customer_details[0]['default_sales_partner'] or ''
|
||||
self.doc.commission_rate = customer_details[0]['default_commission_rate'] or ''
|
||||
def_price_list = customer_details[0]['default_price_list'] or ''
|
||||
if not def_price_list:
|
||||
cg_price_list = webnotes.conn.sql("select default_price_list from `tabCustomer Group` where name = %s", customer_details[0]['customer_group'])
|
||||
def_price_list = cg_price_list and cg_price_list[0][0] or ''
|
||||
self.doc.price_list_name = def_price_list or self.doc.price_list_name
|
||||
|
||||
# Get Customer Shipping Address
|
||||
# -----------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user