Merge pull request #3459 from neilLasrado/po
Multiple Fixes.
diff --git a/erpnext/accounts/doctype/c_form/c_form.py b/erpnext/accounts/doctype/c_form/c_form.py
index 9064754..c14990a 100644
--- a/erpnext/accounts/doctype/c_form/c_form.py
+++ b/erpnext/accounts/doctype/c_form/c_form.py
@@ -54,7 +54,7 @@
frappe.throw(_("Please enter atleast 1 invoice in the table"))
def set_total_invoiced_amount(self):
- total = sum([flt(d.base_grand_total) for d in self.get('invoices')])
+ total = sum([flt(d.grand_total) for d in self.get('invoices')])
frappe.db.set(self, 'total_invoiced_amount', total)
def get_invoice_details(self, invoice_no):
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 37a8b1b..05e4038 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -13,19 +13,25 @@
def get_feed(self):
return '{0}: {1}'.format(_(self.status), self.project_name)
- def __setup__(self):
+ def onload(self):
"""Load project tasks for quick view"""
- self.tasks = []
- for task in frappe.get_all("Task", "*", {"project": self.name}, order_by="exp_start_date asc"):
- self.append("tasks", {
- "title": task.subject,
- "status": task.status,
- "start_date": task.exp_start_date,
- "end_date": task.exp_end_date,
- "description": task.description,
- "task_id": task.name
- })
-
+ if not self.get("tasks"):
+ for task in self.get_tasks():
+ self.append("tasks", {
+ "title": task.subject,
+ "status": task.status,
+ "start_date": task.exp_start_date,
+ "end_date": task.exp_end_date,
+ "description": task.description,
+ "task_id": task.name
+ })
+
+ def __setup__(self):
+ self.onload()
+
+ def get_tasks(self):
+ return frappe.get_all("Task", "*", {"project": self.name}, order_by="exp_start_date asc")
+
def validate(self):
self.validate_dates()
self.sync_tasks()
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index da86432..d823e7e 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -185,9 +185,6 @@
def validate_production_order(self):
if self.purpose in ("Manufacture", "Material Transfer for Manufacture"):
- if not self.bom_no:
- frappe.throw(_("BOM No is mandatory"))
-
# check if production order is entered
if not self.production_order:
frappe.throw(_("Production order number is mandatory for stock entry purpose manufacture"))