test case fix for Time Log
diff --git a/erpnext/projects/doctype/time_log/test_time_log.py b/erpnext/projects/doctype/time_log/test_time_log.py
index 019d596..3d9e0be 100644
--- a/erpnext/projects/doctype/time_log/test_time_log.py
+++ b/erpnext/projects/doctype/time_log/test_time_log.py
@@ -88,6 +88,17 @@
def test_total_activity_cost_for_project(self):
frappe.db.sql("""delete from `tabTask` where project = "_Test Project 1" """)
frappe.db.sql("""delete from `tabProject` where name = "_Test Project 1" """)
+ frappe.db.sql("""delete from `tabActivity Cost` where employee = "_T-Employee-0001" and activity_type = "_Test Activity Type" """)
+
+ activity_cost = frappe.new_doc('Activity Cost')
+ activity_cost.update({
+ "employee": "_T-Employee-0001",
+ "employee_name": "_Test Employee",
+ "activity_type": "_Test Activity Type",
+ "billing_rate": 100,
+ "costing_rate": 50
+ })
+ activity_cost.insert()
frappe.get_doc({
"project_name": "_Test Project 1",
diff --git a/erpnext/projects/doctype/time_log/time_log.py b/erpnext/projects/doctype/time_log/time_log.py
index 2018425..1ee825f 100644
--- a/erpnext/projects/doctype/time_log/time_log.py
+++ b/erpnext/projects/doctype/time_log/time_log.py
@@ -28,16 +28,12 @@
self.validate_cost()
def on_submit(self):
- if self.for_manufacturing:
- self.update_production_order()
- if self.task:
- self.update_task()
+ self.update_production_order()
+ self.update_task()
def on_cancel(self):
- if self.for_manufacturing:
- self.update_production_order()
- if self.task:
- self.update_task()
+ self.update_production_order()
+ self.update_task()
def before_update_after_submit(self):
self.set_status()
@@ -132,8 +128,8 @@
def update_production_order(self):
"""Updates `start_date`, `end_date`, `status` for operation in Production Order."""
-
- if self.production_order:
+
+ if self.production_order and self.for_manufacturing:
if not self.operation_id:
frappe.throw(_("Operation ID not set"))
@@ -231,9 +227,10 @@
frappe.throw(_("Task is Mandatory if Time Log is against a project"))
def update_task(self):
- task = frappe.get_doc("Task", self.task)
- task.update_time_and_costing()
- task.save()
+ if self.task and frappe.db.exists("Task", self.task):
+ task = frappe.get_doc("Task", self.task)
+ task.update_time_and_costing()
+ task.save()
@frappe.whitelist()
def get_events(start, end, filters=None):