Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index 7068c72..e5e53f2 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -108,6 +108,8 @@
self.update_time_log_batch(self.doc.name)
self.convert_to_recurring()
+ def before_cancel(self):
+ self.update_time_log_batch(None)
def on_cancel(self):
if cint(self.doc.is_pos) == 1:
@@ -122,8 +124,7 @@
sales_com_obj.check_stop_sales_order(self)
self.check_next_docstatus()
sales_com_obj.update_prevdoc_detail(0, self)
-
- self.update_time_log_batch(None)
+
self.make_gl_entries(is_cancel=1)
def on_update_after_submit(self):
diff --git a/accounts/doctype/sales_invoice/test_sales_invoice.py b/accounts/doctype/sales_invoice/test_sales_invoice.py
index 9059978..fb290d2 100644
--- a/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -33,10 +33,10 @@
tlb = webnotes.bean("Time Log Batch", "_T-Time Log Batch-00001")
tlb.submit()
- w = webnotes.bean(webnotes.copy_doclist(test_records[0]))
- w.doclist[1].time_log_batch = "_T-Time Log Batch-00001"
- w.insert()
- w.submit()
+ si = webnotes.bean(webnotes.copy_doclist(test_records[0]))
+ si.doclist[1].time_log_batch = "_T-Time Log Batch-00001"
+ si.insert()
+ si.submit()
self.assertEquals(webnotes.conn.get_value("Time Log Batch", "_T-Time Log Batch-00001", "status"),
"Billed")
@@ -44,7 +44,7 @@
self.assertEquals(webnotes.conn.get_value("Time Log", "_T-Time Log-00001", "status"),
"Billed")
- w.cancel()
+ si.cancel()
self.assertEquals(webnotes.conn.get_value("Time Log Batch", "_T-Time Log Batch-00001", "status"),
"Submitted")
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 0870cee..d1110da 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -203,4 +203,5 @@
"execute:(not webnotes.conn.exists('UOM', 'Hour')) and webnotes.doc({'uom_name': 'Unit', 'doctype': 'UOM', 'name': 'Hour'}).insert()",
"patches.february_2013.p09_remove_cancelled_warehouses",
"patches.march_2013.update_po_prevdoc_doctype",
+ "patches.february_2013.p09_timesheets",
]
\ No newline at end of file
diff --git a/setup/doctype/item_group/item_group.py b/setup/doctype/item_group/item_group.py
index 13112fe..ba4ea77 100644
--- a/setup/doctype/item_group/item_group.py
+++ b/setup/doctype/item_group/item_group.py
@@ -31,9 +31,12 @@
self.validate_name_with_item()
+ from website.helpers.product import invalidate_cache_for
+
+
if self.doc.show_in_website:
- # webpage updates
from website.utils import update_page_name
+ # webpage updates
page_name = self.doc.name
if webnotes.conn.get_value("Product Settings", None,
"default_product_category")==self.doc.name:
@@ -43,8 +46,17 @@
update_page_name(self.doc, page_name)
- from website.helpers.product import invalidate_cache_for
invalidate_cache_for(self.doc.name)
+
+ elif self.doc.page_name:
+ # if unchecked show in website
+
+ from website.utils import delete_page_cache
+ delete_page_cache(self.doc.page_name)
+
+ invalidate_cache_for(self.doc.name)
+
+ webnotes.conn.set(self.doc, "page_name", None)
def validate_name_with_item(self):
if webnotes.conn.exists("Item", self.doc.name):
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 4c78347..334af298 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -39,9 +39,8 @@
def on_update(self):
self.validate_name_with_item_group()
- if self.doc.show_in_website:
- # webpage updates
- self.update_website()
+ # webpage updates
+ self.update_website()
bin = sql("select stock_uom from `tabBin` where item_code = '%s' " % self.doc.item_code)
if bin and cstr(bin[0][0]) != cstr(self.doc.stock_uom):
@@ -81,19 +80,33 @@
self.doc.name, raise_exception=1)
def update_website(self):
- from website.utils import update_page_name
- if self.doc.name==self.doc.item_name:
- page_name_from = self.doc.name
- else:
- page_name_from = self.doc.name + " " + self.doc.item_name
+ def _invalidate_cache():
+ from website.helpers.product import invalidate_cache_for
+
+ invalidate_cache_for(self.doc.item_group)
- update_page_name(self.doc, page_name_from)
+ [invalidate_cache_for(d.item_group) for d in \
+ self.doclist.get({"doctype":"Website Item Group"})]
- from website.helpers.product import invalidate_cache_for
- invalidate_cache_for(self.doc.item_group)
+ if self.doc.show_in_website:
+ from website.utils import update_page_name
+ if self.doc.name==self.doc.item_name:
+ page_name_from = self.doc.name
+ else:
+ page_name_from = self.doc.name + " " + self.doc.item_name
- [invalidate_cache_for(d.item_group) for d in \
- self.doclist.get({"doctype":"Website Item Group"})]
+ update_page_name(self.doc, page_name_from)
+
+ _invalidate_cache()
+
+ elif self.doc.page_name:
+ # if unchecked show in website
+ from website.utils import delete_page_cache
+ delete_page_cache(self.doc.page_name)
+
+ _invalidate_cache()
+
+ webnotes.conn.set(self.doc, "page_name", None)
# On delete 1. Delete BIN (if none of the corrosponding transactions present, it gets deleted. if present, rolled back due to exception)
def on_trash(self):