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/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/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/accounts/utils/__init__.py b/accounts/utils/__init__.py
index c4a0042b15..8ad18990e4 100644
--- a/accounts/utils/__init__.py
+++ b/accounts/utils/__init__.py
@@ -28,8 +28,8 @@ def get_fiscal_year(date, verbose=1):
subdate(adddate(year_start_date, interval 1 year), interval 1 day)
as year_end_date
from `tabFiscal Year`
- where %s >= year_start_date and %s < adddate(year_start_date, interval 1 year)""",
- (date, date))
+ where %s >= year_start_date and %s < adddate(year_start_date, interval 1 year)
+ order by year_start_date desc""", (date, date))
if not fy:
error_msg = """%s not in any Fiscal Year""" % formatdate(date)
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",
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",
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()
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):
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'
})
}
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
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..330e4e7e16 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -93,9 +93,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({
@@ -120,6 +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 || doc.lead);
+
}
cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {
@@ -130,27 +130,11 @@ 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) {
+ 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_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..607b132b9b 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,13 @@ 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']);
+ 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);
@@ -119,38 +122,22 @@ 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) {
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];
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/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.js b/stock/doctype/delivery_note/delivery_note.js
index a80966aaa4..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']);
}
}
@@ -69,8 +71,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 +79,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 +105,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);
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
},
{
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]