From e9418f3be1ac2041d3aeba80dad3100e8664543e Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 8 Jan 2013 17:00:02 +0530 Subject: [PATCH 01/11] fix in syntax when using erpnext.queries.item --- accounts/doctype/purchase_invoice/purchase_invoice.js | 2 +- manufacturing/doctype/bom/bom.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js index bb56bd1a22..4188b9fdbc 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -193,7 +193,7 @@ cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { } cur_frm.fields_dict['entries'].grid.get_field("item_code").get_query = function(doc, cdt, cdn) { - return return erpnext.queries.item({ + return erpnext.queries.item({ 'ifnull(tabItem.is_purchase_item, "No")': 'Yes' }) } diff --git a/manufacturing/doctype/bom/bom.js b/manufacturing/doctype/bom/bom.js index f2746dea6b..cdb863d0b2 100644 --- a/manufacturing/doctype/bom/bom.js +++ b/manufacturing/doctype/bom/bom.js @@ -174,7 +174,7 @@ var calculate_total = function(doc) { cur_frm.fields_dict['item'].get_query = function(doc) { - return return erpnext.queries.item({ + return erpnext.queries.item({ 'ifnull(tabItem.is_manufactured_item, "No")': 'Yes' }) } From c2e3f347ea651561119d6573da1e493bbeb79b3e Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 8 Jan 2013 17:07:00 +0530 Subject: [PATCH 02/11] fix in stock entry.py -- dictionary size should not change when looping --- stock/doctype/stock_entry/stock_entry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py index 18440329ae..fcb939a14c 100644 --- a/stock/doctype/stock_entry/stock_entry.py +++ b/stock/doctype/stock_entry/stock_entry.py @@ -446,7 +446,7 @@ class DocType(TransactionBase): only_pending_fetched.append(item) # delete items with 0 qty - for item in item_qty: + for item in item_qty.keys(): if not item_qty[item][0]: del item_qty[item] From cfd185e5acc400e803734c9d36760c10edd120dc Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 8 Jan 2013 17:44:31 +0530 Subject: [PATCH 03/11] fix in leave application holiday calculation --- hr/doctype/leave_application/leave_application.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py index ad3f864150..310c155d65 100755 --- a/hr/doctype/leave_application/leave_application.py +++ b/hr/doctype/leave_application/leave_application.py @@ -46,9 +46,14 @@ class DocType: """ get total holidays """ - tot_hol = sql("select count(*) from `tabHoliday` h1, `tabHoliday List` h2, `tabEmployee` e1 where e1.name = '%s' and h1.parent = h2.name and e1.holiday_list = h2.name and h1.holiday_date between '%s' and '%s'"% (self.doc.employee, self.doc.from_date, self.doc.to_date)) + tot_hol = sql("""select count(*) from `tabHoliday` h1, `tabHoliday List` h2, `tabEmployee` e1 + where e1.name = %s and h1.parent = h2.name and e1.holiday_list = h2.name + and h1.holiday_date between %s and %s""", (self.doc.employee, self.doc.from_date, self.doc.to_date)) if not tot_hol: - tot_hol = sql("select count(*) from `tabHoliday` h1, `tabHoliday List` h2 where h1.parent = h2.name and h1.holiday_date between '%s' and '%s' and ifnull(h2.is_default,0) = 1 and h2.fiscal_year = %s"% (self.doc.from_date, self.doc.to_date, self.doc.fiscal_year)) + tot_hol = sql("""select count(*) from `tabHoliday` h1, `tabHoliday List` h2 + where h1.parent = h2.name and h1.holiday_date between %s and %s + and ifnull(h2.is_default,0) = 1 and h2.fiscal_year = %s""", + (self.doc.from_date, self.doc.to_date, self.doc.fiscal_year)) return tot_hol and flt(tot_hol[0][0]) or 0 def get_total_leave_days(self): From 89230cbc4bafc1faa12873ff3d6748f65577af99 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 8 Jan 2013 18:14:39 +0530 Subject: [PATCH 04/11] fix in holiday list --- hr/doctype/holiday_list/holiday_list.py | 147 +++++++++--------------- 1 file changed, 55 insertions(+), 92 deletions(-) diff --git a/hr/doctype/holiday_list/holiday_list.py b/hr/doctype/holiday_list/holiday_list.py index 43f99167df..e5504fac03 100644 --- a/hr/doctype/holiday_list/holiday_list.py +++ b/hr/doctype/holiday_list/holiday_list.py @@ -8,11 +8,11 @@ # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . from __future__ import unicode_literals import webnotes @@ -26,101 +26,64 @@ from webnotes import msgprint sql = webnotes.conn.sql import datetime - - class DocType: - def __init__(self,doc,doclist=[]): - self.doc = doc - self.doclist = doclist + def __init__(self,doc,doclist=[]): + self.doc = doc + self.doclist = doclist - # --------- - # autoname - # --------- - def autoname(self): - self.doc.name = make_autoname(self.doc.fiscal_year +"/"+ self.doc.holiday_list_name+"/.###") + def autoname(self): + self.doc.name = make_autoname(self.doc.fiscal_year +"/"+ self.doc.holiday_list_name+"/.###") + + def validate(self): + self.update_default_holiday_list() + + def get_weekly_off_dates(self): + self.validate_values() + yr_start_date, yr_end_date = self.get_fy_start_end_dates() + date_list = self.get_weekly_off_date_list(yr_start_date, yr_end_date) + for d in date_list: + ch = addchild(self.doc, 'holiday_list_details', 'Holiday', self.doclist) + ch.description = self.doc.weekly_off + ch.holiday_date = d + def validate_values(self): + if not self.doc.fiscal_year: + msgprint("Please select Fiscal Year") + raise Exception + if not self.doc.weekly_off: + msgprint("Please select weekly off day") + raise Exception -# *************************************************** utilities *********************************************** - # ---------------- - # validate values - # ---------------- - def validate_values(self): - if not self.doc.fiscal_year: - msgprint("Please select Fiscal Year") - raise Exception - if not self.doc.weekly_off: - msgprint("Please select weekly off day") - raise Exception + def get_fy_start_end_dates(self): + return webnotes.conn.sql("""select year_start_date, + subdate(adddate(year_start_date, interval 1 year), interval 1 day) + as year_end_date + from `tabFiscal Year` + where name=%s""", (self.doc.fiscal_year,))[0] + def get_weekly_off_date_list(self, year_start_date, year_end_date): + from webnotes.utils import getdate + year_start_date, year_end_date = getdate(year_start_date), getdate(year_end_date) + + from dateutil import relativedelta + from datetime import timedelta + import calendar + + date_list = [] + weekday = getattr(calendar, (self.doc.weekly_off).upper()) + reference_date = year_start_date + relativedelta.relativedelta(weekday=weekday) + + while reference_date <= year_end_date: + date_list.append(reference_date) + reference_date += timedelta(days=7) + + return date_list + + def clear_table(self): + self.doclist = self.doc.clear_table(self.doclist, 'holiday_list_details') - # ------------------------------------ - # get fiscal year start and end dates - # ------------------------------------ - def get_fy_start_end_dates(self): - st_date = sql("select year_start_date from `tabFiscal Year` where name = '%s'" %(self.doc.fiscal_year)) - st_date = st_date and st_date[0][0].strftime('%Y-%m-%d') or '' - ed_date = add_days(add_years(st_date,1), -1) - return st_date, ed_date + def update_default_holiday_list(self): + webnotes.conn.sql("""update `tabHoliday List` set is_default = 0 + where ifnull(is_default, 0) = 1 and fiscal_year = %s""", (self.doc.fiscal_year,)) - # ------------------------- - # get weekly off date list - # ------------------------- - def get_weekly_off_date_list(self, yr_start_date, yr_end_date): - days_dict, dt_list, lst_st = {'Monday':0,'Tuesday':1,'Wednesday':2,'Thursday':3,'Friday':4,'Saturday':5,'Sunday':6}, [], '' - - w = cint(days_dict[self.doc.weekly_off]) # Weekly Off Day No. - - st_dt_weekday = getdate(yr_start_date).weekday() # Year Start Date weekday() - - if w == st_dt_weekday: # Get Start Date - lst_st = yr_start_date - dt_list.append(lst_st) - elif w > st_dt_weekday: - lst_st = add_days(yr_start_date,w - st_dt_weekday) - dt_list.append(lst_st) - else: - lst_st = add_days(yr_start_date,6 - st_dt_weekday + 1) - dt_list.append(lst_st) - - while getdate(lst_st) < getdate(yr_end_date): # Get list of dates - lst_st = add_days(lst_st,7) - if getdate(lst_st) > getdate(yr_end_date): - break - dt_list.append(lst_st) - - return dt_list - - # --------------------- - # get weekly off dates - # --------------------- - def get_weekly_off_dates(self): - self.validate_values() - yr_start_date, yr_end_date = self.get_fy_start_end_dates() - date_list = self.get_weekly_off_date_list(yr_start_date, yr_end_date) - for d in date_list: - ch = addchild(self.doc, 'holiday_list_details', 'Holiday', self.doclist) - ch.description = self.doc.weekly_off - ch.holiday_date = d - - # ------------ - # clear table - # ------------ - def clear_table(self): - self.doclist = self.doc.clear_table(self.doclist,'holiday_list_details') - - -# ***************************************** validate ************************************************* - - # --------------------------- - # check default holiday list - # --------------------------- - def update_default_holiday_list(self): - sql("update `tabHoliday List` set is_default = 0 where ifnull(is_default, 0) = 1 and fiscal_year = '%s'" % (self.doc.fiscal_year)) - - - # --------- - # validate - # --------- - def validate(self): - self.update_default_holiday_list() From a2945e8e4b37bbedde1376cc8a94a9509fdcda7a Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 8 Jan 2013 19:27:41 +0530 Subject: [PATCH 05/11] patch to fix existing holiday lists --- patches/january_2013/holiday_list_patch.py | 38 ++++++++++++++++++++++ patches/patch_list.py | 4 +++ 2 files changed, 42 insertions(+) create mode 100644 patches/january_2013/holiday_list_patch.py diff --git a/patches/january_2013/holiday_list_patch.py b/patches/january_2013/holiday_list_patch.py new file mode 100644 index 0000000000..ec78b16790 --- /dev/null +++ b/patches/january_2013/holiday_list_patch.py @@ -0,0 +1,38 @@ +import webnotes +from collections import Counter +def execute(): + for name in webnotes.conn.sql("""select name from `tabHoliday List`"""): + holiday_list_wrapper = webnotes.model_wrapper("Holiday List", name[0]) + + desc_count = Counter([d.description for d in + holiday_list_wrapper.doclist.get({"doctype": "Holiday"})]) + + holiday_list_obj = webnotes.get_obj(doc=holiday_list_wrapper.doc, + doclist=holiday_list_wrapper.doclist) + + save = False + + for desc in desc_count.keys(): + if desc in ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", + "Friday", "Saturday"] and desc_count[desc] > 50: + holiday_list_obj.doclist = holiday_list_obj.doclist.get( + {"description": ["!=", desc]}) + + webnotes.conn.sql("""delete from `tabHoliday` + where parent=%s and parenttype='Holiday List' + and `description`=%s""", (holiday_list_obj.doc.name, desc)) + holiday_list_obj.doc.weekly_off = desc + holiday_list_obj.get_weekly_off_dates() + save = True + + if save: + holiday_list_wrapper.set_doclist(holiday_list_obj.doclist) + holiday_list_wrapper.save() + + + + + + + + \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index 2dd37ecad8..f9bb97cf8a 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -578,4 +578,8 @@ patch_list = [ 'patch_module': 'patches.january_2013', 'patch_file': 'remove_support_search_criteria', }, + { + 'patch_module': 'patches.january_2013', + 'patch_file': 'holiday_list_patch', + }, ] \ No newline at end of file From 6f88c6680ee00cf4030d5f3f5a97b36d06d8ecc8 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 8 Jan 2013 19:27:41 +0530 Subject: [PATCH 06/11] patch to fix existing holiday lists --- patches/january_2013/holiday_list_patch.py | 41 ++++++++++++++++++++++ patches/patch_list.py | 4 +++ 2 files changed, 45 insertions(+) create mode 100644 patches/january_2013/holiday_list_patch.py diff --git a/patches/january_2013/holiday_list_patch.py b/patches/january_2013/holiday_list_patch.py new file mode 100644 index 0000000000..e8e8f8c298 --- /dev/null +++ b/patches/january_2013/holiday_list_patch.py @@ -0,0 +1,41 @@ +import webnotes +def execute(): + for name in webnotes.conn.sql("""select name from `tabHoliday List`"""): + holiday_list_wrapper = webnotes.model_wrapper("Holiday List", name[0]) + + desc_count = _count([d.description for d in + holiday_list_wrapper.doclist.get({"doctype": "Holiday"})]) + + holiday_list_obj = webnotes.get_obj(doc=holiday_list_wrapper.doc, + doclist=holiday_list_wrapper.doclist) + + save = False + + for desc in desc_count.keys(): + if desc in ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", + "Friday", "Saturday"] and desc_count[desc] > 50: + holiday_list_obj.doclist = holiday_list_obj.doclist.get( + {"description": ["!=", desc]}) + + webnotes.conn.sql("""delete from `tabHoliday` + where parent=%s and parenttype='Holiday List' + and `description`=%s""", (holiday_list_obj.doc.name, desc)) + holiday_list_obj.doc.weekly_off = desc + holiday_list_obj.get_weekly_off_dates() + save = True + + if save: + holiday_list_wrapper.set_doclist(holiday_list_obj.doclist) + holiday_list_wrapper.save() + +def _count(lst): + out = {} + for l in lst: + out[l] = out.setdefault(l, 0) + 1 + + return out + + + + + \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index 2dd37ecad8..f9bb97cf8a 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -578,4 +578,8 @@ patch_list = [ 'patch_module': 'patches.january_2013', 'patch_file': 'remove_support_search_criteria', }, + { + 'patch_module': 'patches.january_2013', + 'patch_file': 'holiday_list_patch', + }, ] \ No newline at end of file From dc8913e13218540791215049a39264d051baf845 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 9 Jan 2013 12:35:24 +0530 Subject: [PATCH 07/11] toggle display of contact info based on customer and conatct, address query based on customer --- .../doctype/sales_invoice/sales_invoice.js | 29 +++------------ selling/doctype/opportunity/opportunity.js | 22 +++++++++--- selling/doctype/quotation/quotation.js | 24 ++----------- selling/doctype/sales_common/sales_common.js | 20 +++++++++++ selling/doctype/sales_order/sales_order.js | 31 ++++------------ stock/doctype/delivery_note/delivery_note.js | 35 +++++++------------ 6 files changed, 65 insertions(+), 96 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 86dc3a5c14..eab1d4744d 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -94,8 +94,7 @@ cur_frm.cscript.hide_fields = function(doc, cdt, cdn) { for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], false); } - if(doc.customer) unhide_field('contact_section'); - else hide_field('contact_section'); + cur_frm.toggle_display("contact_section", doc.customer); // India related fields var cp = wn.control_panel; @@ -173,6 +172,8 @@ cur_frm.cscript.warehouse = function(doc, cdt , cdn) { //Customer cur_frm.cscript.customer = function(doc,dt,dn,onload) { + cur_frm.toggle_display("contact_section", doc.customer); + var pl = doc.price_list_name; var callback = function(r,rt) { var callback2 = function(doc, dt, dn) { @@ -191,8 +192,6 @@ cur_frm.cscript.customer = function(doc,dt,dn,onload) { } var args = onload ? 'onload':'' if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', args, callback); - - if(doc.customer) unhide_field('contact_section'); } @@ -202,25 +201,6 @@ cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } -cur_frm.fields_dict.customer_address.on_new = function(dn) { - locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict.contact_person.on_new = function(dn) { - locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - -cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - - // Set Due Date = posting date + credit days cur_frm.cscript.debit_to = function(doc,dt,dn) { @@ -232,7 +212,8 @@ cur_frm.cscript.debit_to = function(doc,dt,dn) { var callback = function(r,rt) { var doc = locals[cur_frm.doctype][cur_frm.docname]; if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2); - if(doc.customer) unhide_field('contact_section'); + cur_frm.toggle_display("contact_section", doc.customer); + cur_frm.refresh(); } diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js index d5c665a70c..664b88d8cf 100644 --- a/selling/doctype/opportunity/opportunity.js +++ b/selling/doctype/opportunity/opportunity.js @@ -25,6 +25,9 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn){ cur_frm.add_custom_button('Opportunity Lost', cur_frm.cscript['Declare Opportunity Lost']); cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms); } + + cur_frm.toggle_display("contact_info", doc.customer || doc.lead); + } // ONLOAD @@ -79,7 +82,7 @@ cur_frm.cscript.enquiry_from = function(doc,cdt,cdn){ } // hide - unhide fields based on lead or customer -cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){ +cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){ if(doc.enquiry_from == 'Lead'){ unhide_field(['lead']); hide_field(['lead_name','customer','customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); @@ -87,13 +90,15 @@ cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){ } else if(doc.enquiry_from == 'Customer'){ unhide_field(['customer']); - hide_field(['lead','lead_name','address_display','contact_display','contact_mobile','contact_email','territory']); + hide_field(['lead','lead_name','address_display','contact_display','contact_mobile','contact_email','territory', 'customer_group']); doc.lead = doc.lead_name = doc.customer = doc.customer_address = doc.contact_person = doc.address_display = doc.contact_display = doc.contact_mobile = doc.contact_email = doc.territory = doc.customer_group = ""; } } // customer cur_frm.cscript.customer = function(doc,dt,dn) { + cur_frm.toggle_display("contact_info", doc.customer || doc.lead); + if(doc.customer) { cur_frm.call({ doc: cur_frm.doc, @@ -127,11 +132,18 @@ cur_frm.fields_dict.contact_person.on_new = function(dn) { } cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; + return 'SELECT name, address_line1, city FROM tabAddress \ + WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND \ + %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50'; } cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; + if (!doc.customer) msgprint("Please select customer first"); + else { + return 'SELECT name, CONCAT(first_name," ",ifnull(last_name,"")) As FullName, \ + department, designation FROM tabContact WHERE customer = "'+ doc.customer + + '" AND docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50'; + } } // lead @@ -140,6 +152,8 @@ cur_frm.fields_dict['lead'].get_query = function(doc,cdt,cdn){ } cur_frm.cscript.lead = function(doc, cdt, cdn) { + cur_frm.toggle_display("contact_info", doc.customer || doc.lead); + if(doc.lead) get_server_fields('get_lead_details', doc.lead,'', doc, cdt, cdn, 1); if(doc.lead) unhide_field(['lead_name','address_display','contact_mobile','contact_email','territory']); } diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js index 3673b07d9a..532cecc866 100644 --- a/selling/doctype/quotation/quotation.js +++ b/selling/doctype/quotation/quotation.js @@ -94,8 +94,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { erpnext.hide_naming_series(); - if(doc.customer || doc.lead) $(cur_frm.fields_dict.contact_section.row.wrapper).toggle(true); - else $(cur_frm.fields_dict.contact_section.row.wrapper).toggle(false); + cur_frm.toggle_display("contact_section", doc.customer || doc.lead); if (!doc.__islocal) { cur_frm.communication_view = new wn.views.CommunicationList({ @@ -119,7 +118,8 @@ cur_frm.cscript.customer = function(doc,dt,dn) { if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); - if(doc.customer) unhide_field(['customer_address','contact_person','territory', 'customer_group']); + + cur_frm.toggle_display("contact_section", doc.customer); } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { @@ -130,24 +130,6 @@ cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc }),'', doc, dt, dn, 1); } -cur_frm.fields_dict.customer_address.on_new = function(dn) { - locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict.contact_person.on_new = function(dn) { - locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - -cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - cur_frm.fields_dict.lead.get_query = erpnext.utils.lead_query; cur_frm.cscript.lead = function(doc, cdt, cdn) { diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js index c1435bd3b3..4ceac9e41d 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -320,7 +320,27 @@ cur_frm.fields_dict[cur_frm.cscript.fname].grid.get_field('batch_no').get_query } } +cur_frm.fields_dict.customer_address.on_new = function(dn) { + locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; + locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; +} +cur_frm.fields_dict.contact_person.on_new = function(dn) { + locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; + locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; +} + +cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { + return 'SELECT name, address_line1, city FROM tabAddress \ + WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND \ + %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50'; +} + +cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { + return 'SELECT name, CONCAT(first_name," ",ifnull(last_name,"")) As FullName, \ + department, designation FROM tabContact WHERE customer = "'+ doc.customer + + '" AND docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50'; +} // *********************** QUANTITY *************************** cur_frm.cscript.qty = function(doc, cdt, cdn) { cur_frm.cscript.recalc(doc, 1); } diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js index a3b71b4cbb..f8d9fde41d 100644 --- a/selling/doctype/sales_order/sales_order.js +++ b/selling/doctype/sales_order/sales_order.js @@ -36,7 +36,9 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { // load default charges if(doc.__islocal && !doc.customer){ - hide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); + hide_field(['customer_address', 'contact_person', 'customer_name', + 'address_display', 'contact_display', 'contact_mobile', + 'contact_email', 'territory', 'customer_group']); } } @@ -59,9 +61,8 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { if (!cur_frm.cscript.is_onload) cur_frm.cscript.hide_price_list_currency(doc, cdt, cdn); - if(doc.customer) $(cur_frm.fields_dict.contact_info.row.wrapper).toggle(true); - else $(cur_frm.fields_dict.contact_info.row.wrapper).toggle(false); - + cur_frm.toggle_display("contact_info", doc.customer); + if(doc.docstatus==1) { if(doc.status != 'Stopped') { cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms); @@ -105,11 +106,11 @@ cur_frm.cscript.order_type = function(doc) { //customer cur_frm.cscript.customer = function(doc,dt,dn) { + cur_frm.toggle_display("contact_info", doc.customer); + var pl = doc.price_list_name; var callback = function(r,rt) { var callback2 = function(r, rt) { - - if(doc.customer) unhide_field(['customer_address', 'contact_person', 'territory','customer_group']); cur_frm.refresh(); if(!onload && (pl != doc.price_list_name)) cur_frm.cscript.price_list_name(doc, dt, dn); @@ -126,24 +127,6 @@ cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } -cur_frm.fields_dict.customer_address.on_new = function(dn) { - locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict.contact_person.on_new = function(dn) { - locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - -cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - cur_frm.cscript.pull_quotation_details = function(doc,dt,dn) { var callback = function(r,rt){ var doc = locals[cur_frm.doctype][cur_frm.docname]; diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js index a80966aaa4..21e6dc0514 100644 --- a/stock/doctype/delivery_note/delivery_note.js +++ b/stock/doctype/delivery_note/delivery_note.js @@ -69,8 +69,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { cur_frm.add_custom_button('Make Packing Slip', cur_frm.cscript['Make Packing Slip']); } - if(doc.customer) $(cur_frm.fields_dict.contact_info.row.wrapper).toggle(true); - else $(cur_frm.fields_dict.contact_info.row.wrapper).toggle(false); + cur_frm.toggle_display("contact_info", doc.customer); set_print_hide(doc, cdt, cdn); } @@ -78,38 +77,25 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { //customer cur_frm.cscript.customer = function(doc,dt,dn,onload) { + cur_frm.toggle_display("contact_info", doc.customer); + var pl = doc.price_list_name; var callback = function(r,rt) { var doc = locals[cur_frm.doctype][cur_frm.docname]; - if(doc.customer) unhide_field(['customer_address','contact_person','territory','customer_group']); + if(doc.customer) + unhide_field(['customer_address','contact_person','territory','customer_group']); cur_frm.refresh(); if(!onload && (pl != doc.price_list_name)) 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); + if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), + 'get_default_customer_shipping_address', args, callback); } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } -cur_frm.fields_dict.customer_address.on_new = function(dn) { - locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict.contact_person.on_new = function(dn) { - locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - -cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} cur_frm.cscript.get_items = function(doc,dt,dn) { var callback = function(r,rt){ @@ -117,9 +103,12 @@ cur_frm.cscript.get_items = function(doc,dt,dn) { if(r.message){ doc.sales_order_no = r.message; if(doc.sales_order_no) { - unhide_field(['customer_address','contact_person','territory','customer_group']); + unhide_field(['customer_address','contact_person','territory','customer_group']); } - refresh_many(['delivery_note_details','customer','customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); + + refresh_many(['delivery_note_details', 'customer', 'customer_address', + 'contact_person', 'customer_name', 'address_display', 'contact_display', + 'contact_mobile', 'contact_email', 'territory', 'customer_group']); } } $c_obj(make_doclist(doc.doctype, doc.name),'pull_sales_order_details','',callback); From 0f61b476a27b42ac71956c419642f2b909c854a0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 9 Jan 2013 12:50:43 +0530 Subject: [PATCH 08/11] toggle display of contact info based on customer --- selling/doctype/quotation/quotation.js | 8 +++++--- selling/doctype/sales_order/sales_order.js | 14 +++++++++----- stock/doctype/delivery_note/delivery_note.js | 4 +++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js index 532cecc866..330e4e7e16 100644 --- a/selling/doctype/quotation/quotation.js +++ b/selling/doctype/quotation/quotation.js @@ -93,7 +93,6 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { } erpnext.hide_naming_series(); - cur_frm.toggle_display("contact_section", doc.customer || doc.lead); if (!doc.__islocal) { @@ -118,8 +117,9 @@ cur_frm.cscript.customer = function(doc,dt,dn) { if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); - - cur_frm.toggle_display("contact_section", doc.customer); + if(doc.customer) unhide_field(['customer_address','contact_person','territory', 'customer_group']); + cur_frm.toggle_display("contact_section", doc.customer || doc.lead); + } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { @@ -133,6 +133,8 @@ cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc cur_frm.fields_dict.lead.get_query = erpnext.utils.lead_query; cur_frm.cscript.lead = function(doc, cdt, cdn) { + cur_frm.toggle_display("contact_section", doc.customer || doc.lead); + if(doc.lead) { get_server_fields('get_lead_details', doc.lead,'', doc, cdt, cdn, 1); unhide_field('territory'); diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js index f8d9fde41d..607b132b9b 100644 --- a/selling/doctype/sales_order/sales_order.js +++ b/selling/doctype/sales_order/sales_order.js @@ -36,9 +36,9 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { // load default charges if(doc.__islocal && !doc.customer){ - hide_field(['customer_address', 'contact_person', 'customer_name', - 'address_display', 'contact_display', 'contact_mobile', - 'contact_email', 'territory', 'customer_group']); + hide_field(['customer_address','contact_person', 'customer_name', + 'address_display', 'contact_display', 'contact_mobile', + 'contact_email', 'territory', 'customer_group']); } } @@ -111,6 +111,8 @@ cur_frm.cscript.customer = function(doc,dt,dn) { var pl = doc.price_list_name; var callback = function(r,rt) { var callback2 = function(r, rt) { + if(doc.customer) + unhide_field(['customer_address', 'contact_person', 'territory','customer_group']); cur_frm.refresh(); if(!onload && (pl != doc.price_list_name)) cur_frm.cscript.price_list_name(doc, dt, dn); @@ -120,7 +122,8 @@ cur_frm.cscript.customer = function(doc,dt,dn) { get_server_fields('get_shipping_address',doc.customer,'',doc, dt, dn, 0, callback2); } - if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); + if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), + 'get_default_customer_address', '', callback); } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { @@ -133,7 +136,8 @@ cur_frm.cscript.pull_quotation_details = function(doc,dt,dn) { if(!r.exc){ doc.quotation_no = r.message; if(doc.quotation_no) { - unhide_field(['quotation_date', 'customer_address', 'contact_person', 'territory', 'customer_group']); + unhide_field(['quotation_date', 'customer_address', + 'contact_person', 'territory', 'customer_group']); if(doc.customer) get_server_fields('get_shipping_address', doc.customer, '', doc, dt, dn, 0); } cur_frm.refresh(); diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js index 21e6dc0514..223b06460c 100644 --- a/stock/doctype/delivery_note/delivery_note.js +++ b/stock/doctype/delivery_note/delivery_note.js @@ -37,7 +37,9 @@ cur_frm.cscript.onload = function(doc, dt, dn) { if(!doc.posting_time) doc.posting_time = wn.datetime.get_cur_time() if(doc.__islocal){ - hide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); + hide_field(['customer_address', 'contact_person', 'customer_name', + 'address_display', 'contact_display', 'contact_mobile', + 'contact_email', 'territory', 'customer_group']); } } From f8c6531c3d8cbb4470da2cd2992573bb78996d0f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 9 Jan 2013 14:44:24 +0530 Subject: [PATCH 09/11] set as default button in fiscal year --- accounts/doctype/fiscal_year/fiscal_year.js | 28 ++++ accounts/doctype/fiscal_year/fiscal_year.py | 13 +- .../global_defaults/global_defaults.py | 3 + stock/doctype/delivery_note/delivery_note.txt | 127 ++++++++---------- 4 files changed, 102 insertions(+), 69 deletions(-) diff --git a/accounts/doctype/fiscal_year/fiscal_year.js b/accounts/doctype/fiscal_year/fiscal_year.js index 936037cd6c..6e0ed38c39 100644 --- a/accounts/doctype/fiscal_year/fiscal_year.js +++ b/accounts/doctype/fiscal_year/fiscal_year.js @@ -1,3 +1,31 @@ +// ERPNext - web based ERP (http://erpnext.com) +// Copyright (C) 2012 Web Notes Technologies Pvt Ltd +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + cur_frm.cscript.refresh = function(doc, dt, dn) { cur_frm.toggle_enable('year_start_date', doc.__islocal) + + if (!doc.__islocal && (doc.name != sys_defaults.fiscal_year)) { + cur_frm.add_custom_button("Set as Default", cur_frm.cscript.set_as_default); + cur_frm.set_intro("To set this Fiscal Year as Deafult, click on 'Set as Default'"); + } else cur_frm.set_intro(""); } + +cur_frm.cscript.set_as_default = function() { + wn.call({ + doc: cur_frm.doc, + method: "set_as_default" + }); +} \ No newline at end of file diff --git a/accounts/doctype/fiscal_year/fiscal_year.py b/accounts/doctype/fiscal_year/fiscal_year.py index 7f48feb2eb..e23351c3ac 100644 --- a/accounts/doctype/fiscal_year/fiscal_year.py +++ b/accounts/doctype/fiscal_year/fiscal_year.py @@ -16,7 +16,18 @@ from __future__ import unicode_literals import webnotes +from webnotes import msgprint, _ class DocType: def __init__(self, d, dl): - self.doc, self.doclist = d, dl \ No newline at end of file + self.doc, self.doclist = d, dl + + def set_as_default(self): + webnotes.conn.set_value("Global Defaults", None, "current_fiscal_year", self.doc.name) + webnotes.get_obj("Global Defaults").on_update() + + # clear cache + webnotes.clear_cache() + + msgprint(self.doc.name + _(""" is now the default Fiscal Year. \ + Please refresh your browser for the change to take effect.""")) \ No newline at end of file diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py index 48c2365b06..1d93e241d6 100644 --- a/setup/doctype/global_defaults/global_defaults.py +++ b/setup/doctype/global_defaults/global_defaults.py @@ -64,6 +64,9 @@ class DocType: webnotes.conn.set_default('year_start_date', ysd.strftime('%Y-%m-%d')) webnotes.conn.set_default('year_end_date', \ get_last_day(get_first_day(ysd,0,11)).strftime('%Y-%m-%d')) + + # clear cache + webnotes.clear_cache() def validate_session_expiry(self): if self.doc.session_expiry: diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt index d3e16423ef..215dd41b62 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/stock/doctype/delivery_note/delivery_note.txt @@ -2,9 +2,9 @@ { "owner": "Administrator", "docstatus": 0, - "creation": "2012-11-28 11:26:21", + "creation": "2012-12-03 17:26:43", "modified_by": "Administrator", - "modified": "2012-12-03 17:10:41" + "modified": "2013-01-09 12:52:30" }, { "is_submittable": 1, @@ -19,6 +19,7 @@ "doctype": "DocType" }, { + "read_only": 0, "name": "__common__", "parent": "Delivery Note", "doctype": "DocField", @@ -38,10 +39,10 @@ "doctype": "DocType" }, { + "print_width": "50%", "oldfieldtype": "Column Break", "doctype": "DocField", "width": "50%", - "trigger": "Client", "fieldname": "column_break0", "fieldtype": "Column Break", "permlevel": 0 @@ -51,7 +52,6 @@ "description": "To manage multiple series please go to Setup > Manage Series", "no_copy": 1, "oldfieldtype": "Select", - "colour": "White:FFF", "doctype": "DocField", "label": "Series", "oldfieldname": "naming_series", @@ -68,7 +68,6 @@ "label": "Customer", "oldfieldname": "customer", "permlevel": 0, - "trigger": "Client", "fieldname": "customer", "fieldtype": "Link", "search_index": 1, @@ -86,6 +85,7 @@ }, { "print_hide": 1, + "depends_on": "customer", "doctype": "DocField", "label": "Select Shipping Address", "options": "Address", @@ -136,11 +136,11 @@ }, { "print_hide": 0, + "permlevel": 0, "description": "The date at which current entry will get or has actually executed.", - "width": "100px", + "print_width": "100px", "default": "Today", "oldfieldtype": "Date", - "colour": "White:FFF", "doctype": "DocField", "label": "Posting Date", "oldfieldname": "posting_date", @@ -150,7 +150,7 @@ "search_index": 1, "reqd": 1, "in_filter": 1, - "permlevel": 0 + "width": "100px" }, { "print_hide": 1, @@ -176,6 +176,7 @@ }, { "print_hide": 1, + "print_width": "100px", "no_copy": 0, "oldfieldtype": "Data", "doctype": "DocField", @@ -189,9 +190,9 @@ }, { "print_hide": 1, + "print_width": "100px", "no_copy": 0, "oldfieldtype": "Data", - "colour": "White:FFF", "doctype": "DocField", "label": "P.O. Date", "oldfieldname": "po_date", @@ -204,7 +205,6 @@ }, { "oldfieldtype": "Section Break", - "colour": "White:FFF", "doctype": "DocField", "label": "Items", "fieldname": "items", @@ -215,7 +215,6 @@ "print_hide": 0, "no_copy": 0, "oldfieldtype": "Table", - "colour": "White:FFF", "allow_on_submit": 1, "doctype": "DocField", "label": "Delivery Note Items", @@ -248,6 +247,7 @@ }, { "print_hide": 0, + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Currency", "doctype": "DocField", @@ -263,7 +263,6 @@ "oldfieldtype": "Button", "doctype": "DocField", "label": "Re-Calculate Values", - "trigger": "Client", "fieldname": "recalculate_values", "fieldtype": "Button", "permlevel": 0 @@ -279,7 +278,6 @@ "description": "You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.", "no_copy": 0, "oldfieldtype": "Link", - "colour": "White:FFF", "doctype": "DocField", "label": "Sales Order No", "oldfieldname": "sales_order_no", @@ -316,12 +314,10 @@ "print_hide": 1, "description": "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.", "oldfieldtype": "Select", - "colour": "White:FFF", "doctype": "DocField", "label": "Price List", "oldfieldname": "price_list_name", "permlevel": 0, - "trigger": "Client", "fieldname": "price_list_name", "fieldtype": "Select", "reqd": 1, @@ -330,7 +326,6 @@ { "print_hide": 1, "description": "Select the currency in which price list is maintained", - "colour": "White:FFF", "doctype": "DocField", "label": "Price List Currency", "options": "link:Currency", @@ -342,7 +337,6 @@ { "print_hide": 1, "description": "Rate at which Price list currency is converted to company's base currency", - "colour": "White:FFF", "doctype": "DocField", "label": "Price List Currency Conversion Rate", "fieldname": "plc_conversion_rate", @@ -351,6 +345,7 @@ "permlevel": 0 }, { + "print_width": "50%", "doctype": "DocField", "width": "50%", "fieldname": "column_break2", @@ -361,7 +356,6 @@ "print_hide": 1, "description": "Customer's Currency", "oldfieldtype": "Select", - "colour": "White:FFF", "doctype": "DocField", "label": "Currency", "oldfieldname": "currency", @@ -376,7 +370,6 @@ "description": "Rate at which customer's currency is converted to company's base currency", "no_copy": 0, "oldfieldtype": "Currency", - "colour": "White:FFF", "doctype": "DocField", "label": "Conversion Rate", "oldfieldname": "conversion_rate", @@ -388,7 +381,6 @@ }, { "oldfieldtype": "Section Break", - "colour": "White:FFF", "doctype": "DocField", "label": "Taxes", "fieldname": "taxes", @@ -399,7 +391,6 @@ "print_hide": 1, "description": "If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.", "oldfieldtype": "Link", - "colour": "White:FFF", "doctype": "DocField", "label": "Taxes and Charges", "oldfieldname": "charge", @@ -413,7 +404,6 @@ "oldfieldtype": "Button", "doctype": "DocField", "label": "Get Taxes and Charges", - "trigger": "Client", "fieldname": "get_charges", "fieldtype": "Button", "permlevel": 0 @@ -431,6 +421,7 @@ }, { "print_hide": 1, + "print_width": "150px", "oldfieldtype": "Currency", "doctype": "DocField", "label": "Taxes and Charges Total", @@ -445,7 +436,6 @@ "oldfieldtype": "Button", "doctype": "DocField", "label": "Calculate Charges", - "trigger": "Client", "fieldname": "calculate_charges", "fieldtype": "Button", "permlevel": 0 @@ -461,7 +451,6 @@ { "print_hide": 0, "oldfieldtype": "Section Break", - "colour": "White:FFF", "doctype": "DocField", "label": "Totals", "fieldname": "totals", @@ -470,6 +459,7 @@ }, { "print_hide": 1, + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Currency", "doctype": "DocField", @@ -483,6 +473,7 @@ }, { "print_hide": 1, + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Currency", "doctype": "DocField", @@ -496,9 +487,9 @@ { "print_hide": 1, "description": "In Words will be visible once you save the Delivery Note.", + "print_width": "200px", "no_copy": 0, "oldfieldtype": "Data", - "colour": "White:FFF", "doctype": "DocField", "label": "In Words", "oldfieldname": "in_words", @@ -516,6 +507,7 @@ }, { "print_hide": 0, + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Currency", "doctype": "DocField", @@ -529,6 +521,7 @@ }, { "print_hide": 0, + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Currency", "doctype": "DocField", @@ -542,9 +535,9 @@ { "print_hide": 0, "description": "In Words (Export) will be visible once you save the Delivery Note.", + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Data", - "colour": "White:FFF", "doctype": "DocField", "label": "In Words (Export)", "oldfieldname": "in_words_export", @@ -575,19 +568,16 @@ { "print_hide": 1, "oldfieldtype": "Button", - "colour": "White:FFF", "doctype": "DocField", "label": "Get Terms and Conditions", - "trigger": "Server", + "options": "get_tc_details", "fieldname": "get_terms", "fieldtype": "Button", - "options": "get_tc_details", "permlevel": 0 }, { "print_hide": 1, "oldfieldtype": "HTML", - "colour": "White:FFF", "doctype": "DocField", "label": "Terms and Conditions HTML", "options": "You can add Terms and Notes that will be printed in the Transaction", @@ -597,7 +587,6 @@ }, { "oldfieldtype": "Text Editor", - "colour": "White:FFF", "doctype": "DocField", "label": "Terms and Conditions Details", "oldfieldname": "terms", @@ -615,6 +604,7 @@ }, { "print_hide": 1, + "print_width": "50%", "doctype": "DocField", "width": "50%", "fieldname": "column_break4", @@ -623,20 +613,20 @@ }, { "print_hide": 1, + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Data", - "colour": "White:FFF", "doctype": "DocField", "label": "Transporter Name", "oldfieldname": "transporter_name", "width": "150px", - "trigger": "Client", "fieldname": "transporter_name", "fieldtype": "Data", "reqd": 0, "permlevel": 0 }, { + "print_width": "50%", "doctype": "DocField", "width": "50%", "fieldname": "col_break34", @@ -646,9 +636,9 @@ { "print_hide": 1, "description": "Transporter lorry number", + "print_width": "100px", "no_copy": 0, "oldfieldtype": "Data", - "colour": "White:FFF", "doctype": "DocField", "label": "LR No", "oldfieldname": "lr_no", @@ -660,18 +650,18 @@ }, { "print_hide": 1, + "permlevel": 0, "description": "Date on which lorry started from your warehouse", - "width": "100px", + "print_width": "100px", "default": "Today", "oldfieldtype": "Date", - "colour": "White:FFF", "doctype": "DocField", "label": "LR Date", "oldfieldname": "lr_date", "no_copy": 0, "fieldname": "lr_date", "fieldtype": "Date", - "permlevel": 0 + "width": "100px" }, { "doctype": "DocField", @@ -681,6 +671,7 @@ "permlevel": 0 }, { + "print_width": "50%", "doctype": "DocField", "width": "50%", "fieldname": "col_break20", @@ -698,6 +689,7 @@ "in_filter": 1 }, { + "print_width": "50%", "doctype": "DocField", "width": "50%", "fieldname": "col_break21", @@ -709,12 +701,12 @@ "search_index": 1, "doctype": "DocField", "label": "Territory", - "options": "Territory", + "permlevel": 0, "fieldname": "territory", "fieldtype": "Link", "reqd": 1, "hidden": 0, - "permlevel": 0, + "options": "Territory", "in_filter": 1 }, { @@ -732,7 +724,6 @@ "print_hide": 1, "description": "Filling in Additional Information about the Delivery Note will help you analyze your data better.", "oldfieldtype": "Section Break", - "colour": "White:FFF", "doctype": "DocField", "label": "More Info", "fieldname": "more_info", @@ -742,8 +733,8 @@ { "print_hide": 1, "description": "Time at which items were delivered from warehouse", + "print_width": "100px", "oldfieldtype": "Time", - "colour": "White:FFF", "doctype": "DocField", "label": "Posting Time", "oldfieldname": "posting_time", @@ -758,24 +749,25 @@ { "print_hide": 1, "permlevel": 1, - "width": "150px", + "print_width": "150px", "default": "Draft", "oldfieldtype": "Select", "doctype": "DocField", "label": "Status", "oldfieldname": "status", "no_copy": 1, + "options": "\nDraft\nSubmitted\nCancelled", "fieldname": "status", "fieldtype": "Select", "search_index": 1, "reqd": 1, - "options": "\nDraft\nSubmitted\nCancelled", + "width": "150px", "in_filter": 1 }, { "print_hide": 1, - "allow_on_submit": 1, "oldfieldtype": "Link", + "allow_on_submit": 1, "doctype": "DocField", "label": "Letter Head", "oldfieldname": "letter_head", @@ -788,13 +780,11 @@ "print_hide": 1, "no_copy": 1, "oldfieldtype": "Link", - "colour": "White:FFF", "allow_on_submit": 1, "doctype": "DocField", "label": "Select Print Heading", "oldfieldname": "select_print_heading", "permlevel": 0, - "trigger": "Client", "fieldname": "select_print_heading", "fieldtype": "Link", "options": "Print Heading", @@ -803,12 +793,10 @@ { "description": "Track this Delivery Note against any Project", "oldfieldtype": "Link", - "colour": "White:FFF", "doctype": "DocField", "label": "Project Name", "oldfieldname": "project_name", "permlevel": 0, - "trigger": "Client", "fieldname": "project_name", "fieldtype": "Link", "search_index": 1, @@ -829,7 +817,6 @@ { "print_hide": 1, "oldfieldtype": "Link", - "colour": "White:FFF", "doctype": "DocField", "label": "Campaign", "oldfieldname": "campaign", @@ -841,18 +828,18 @@ }, { "print_hide": 1, - "allow_on_submit": 1, "oldfieldtype": "Check", + "allow_on_submit": 1, "doctype": "DocField", "label": "Print Without Amount", "oldfieldname": "print_without_amount", - "trigger": "Client", "fieldname": "print_without_amount", "fieldtype": "Check", "permlevel": 0 }, { "print_hide": 1, + "print_width": "50%", "oldfieldtype": "Column Break", "doctype": "DocField", "width": "50%", @@ -866,7 +853,6 @@ "description": "% of materials billed against this Delivery Note", "no_copy": 1, "search_index": 1, - "colour": "White:FFF", "doctype": "DocField", "label": "% Amount Billed", "oldfieldname": "per_billed", @@ -893,7 +879,6 @@ "description": "% of materials delivered against this Delivery Note", "no_copy": 1, "search_index": 1, - "colour": "White:FFF", "doctype": "DocField", "label": "% Installed", "oldfieldname": "per_installed", @@ -914,9 +899,10 @@ }, { "print_hide": 1, - "allow_on_submit": 0, + "print_width": "150px", "no_copy": 1, "oldfieldtype": "Data", + "allow_on_submit": 0, "doctype": "DocField", "label": "Amended From", "oldfieldname": "amended_from", @@ -928,6 +914,7 @@ { "print_hide": 1, "description": "The date at which current entry is corrected in the system.", + "print_width": "100px", "no_copy": 1, "oldfieldtype": "Date", "doctype": "DocField", @@ -943,7 +930,6 @@ "description": "Required only for sample item.", "no_copy": 1, "oldfieldtype": "Link", - "colour": "White:FFF", "doctype": "DocField", "label": "To Warehouse", "oldfieldname": "to_warehouse", @@ -956,7 +942,6 @@ { "print_hide": 1, "oldfieldtype": "Data", - "colour": "White:FFF", "doctype": "DocField", "label": "Excise Page Number", "oldfieldname": "excise_page", @@ -977,9 +962,9 @@ { "print_hide": 1, "description": "Select the relevant company name if you have multiple companies", + "print_width": "150px", "permlevel": 0, "oldfieldtype": "Link", - "colour": "White:FFF", "doctype": "DocField", "label": "Company", "oldfieldname": "company", @@ -993,6 +978,7 @@ }, { "print_hide": 1, + "print_width": "150px", "permlevel": 0, "oldfieldtype": "Select", "doctype": "DocField", @@ -1010,7 +996,6 @@ "print_hide": 1, "no_copy": 1, "oldfieldtype": "Data", - "colour": "White:FFF", "doctype": "DocField", "label": "Cancel Reason", "oldfieldname": "cancel_reason", @@ -1043,7 +1028,6 @@ { "print_hide": 1, "oldfieldtype": "Section Break", - "colour": "White:FFF", "doctype": "DocField", "label": "Sales Team", "fieldname": "sales_team_section_break", @@ -1052,6 +1036,7 @@ }, { "print_hide": 1, + "print_width": "50%", "doctype": "DocField", "width": "50%", "fieldname": "column_break6", @@ -1061,19 +1046,20 @@ { "print_hide": 1, "permlevel": 0, + "print_width": "150px", "no_copy": 0, "oldfieldtype": "Link", "doctype": "DocField", "label": "Sales Partner", "oldfieldname": "sales_partner", "width": "150px", - "trigger": "Client", "fieldname": "sales_partner", "fieldtype": "Link", "options": "Sales Partner" }, { "print_hide": 1, + "print_width": "50%", "doctype": "DocField", "width": "50%", "fieldname": "column_break7", @@ -1082,13 +1068,13 @@ }, { "print_hide": 1, + "print_width": "100px", "no_copy": 0, "oldfieldtype": "Currency", "doctype": "DocField", "label": "Commission Rate (%)", "oldfieldname": "commission_rate", "width": "100px", - "trigger": "Client", "fieldname": "commission_rate", "fieldtype": "Currency", "permlevel": 0 @@ -1097,11 +1083,9 @@ "print_hide": 1, "no_copy": 0, "oldfieldtype": "Currency", - "colour": "White:FFF", "doctype": "DocField", "label": "Total Commission", "oldfieldname": "total_commission", - "trigger": "Client", "fieldname": "total_commission", "fieldtype": "Currency", "permlevel": 0 @@ -1145,8 +1129,12 @@ "permlevel": 0 }, { + "amend": 0, + "create": 0, "doctype": "DocPerm", + "submit": 0, "role": "Accounts User", + "cancel": 0, "permlevel": 1 }, { @@ -1157,8 +1145,7 @@ "write": 1, "role": "Sales User", "cancel": 1, - "permlevel": 0, - "match": "" + "permlevel": 0 }, { "amend": 0, @@ -1173,13 +1160,17 @@ { "doctype": "DocPerm", "role": "Customer", - "match": "customer_name", - "permlevel": 0 + "permlevel": 0, + "match": "customer_name" }, { - "write": 1, + "amend": 0, + "create": 0, "doctype": "DocPerm", + "submit": 0, + "write": 1, "role": "All", + "cancel": 0, "permlevel": 2 }, { From 55963a416414799b583b7de1e69061bab00e9d9b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 9 Jan 2013 14:50:01 +0530 Subject: [PATCH 10/11] added field description in employee --- hr/doctype/employee/employee.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hr/doctype/employee/employee.txt b/hr/doctype/employee/employee.txt index 0c48287afd..6e3e8288f5 100644 --- a/hr/doctype/employee/employee.txt +++ b/hr/doctype/employee/employee.txt @@ -2,9 +2,9 @@ { "owner": "Administrator", "docstatus": 0, - "creation": "2012-12-03 10:13:46", + "creation": "2013-01-02 16:17:01", "modified_by": "Administrator", - "modified": "2012-12-27 14:45:31" + "modified": "2013-01-09 14:46:42" }, { "autoname": "naming_series:", @@ -150,6 +150,7 @@ "permlevel": 0 }, { + "description": "You can enter any date manually", "oldfieldtype": "Date", "doctype": "DocField", "label": "Date of Birth", From b00ecc72c7423ac40a9c9c2191f955ba3790f2b3 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 9 Jan 2013 15:18:18 +0530 Subject: [PATCH 11/11] fixed latest updates page --- home/page/latest_updates/latest_updates.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js index 97ee5612f0..e8b30cf422 100644 --- a/home/page/latest_updates/latest_updates.js +++ b/home/page/latest_updates/latest_updates.js @@ -1,6 +1,6 @@ erpnext.updates = [ ["7th January 2013", [ - "Language (backend): Integrated language libraries." + "Language (backend): Integrated language libraries."]], ["4th January 2013", [ "Support Analytics: Simple Tool to Plot Number Tickets and time to Closing", "Workflow: Added Workflow Help",