diff --git a/README.md b/README.md index db8dd7904d..4d468be107 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- +

ERPNext

ERP made simple

diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index d11c644817..cee7e5a22b 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -80,6 +80,7 @@ class StockController(AccountsController): "cost_center": item_row.cost_center, "remarks": self.get("remarks") or "Accounting Entry for Stock", "debit": flt(sle.stock_value_difference, 2), + "is_opening": item_row.get("is_opening"), }, warehouse_account[sle.warehouse]["account_currency"])) # to target warehouse / expense account @@ -89,7 +90,8 @@ class StockController(AccountsController): "cost_center": item_row.cost_center, "remarks": self.get("remarks") or "Accounting Entry for Stock", "credit": flt(sle.stock_value_difference, 2), - "project": item_row.get("project") or self.get("project") + "project": item_row.get("project") or self.get("project"), + "is_opening": item_row.get("is_opening") })) elif sle.warehouse not in warehouse_with_no_account: warehouse_with_no_account.append(sle.warehouse) @@ -123,8 +125,17 @@ class StockController(AccountsController): def get_voucher_details(self, default_expense_account, default_cost_center, sle_map): if self.doctype == "Stock Reconciliation": - return [frappe._dict({ "name": voucher_detail_no, "expense_account": default_expense_account, - "cost_center": default_cost_center }) for voucher_detail_no, sle in sle_map.items()] + reconciliation_purpose = frappe.db.get_value(self.doctype, self.name, "purpose") + is_opening = "Yes" if reconciliation_purpose == "Opening Stock" else "No" + details = [] + for voucher_detail_no, sle in sle_map.items(): + details.append(frappe._dict({ + "name": voucher_detail_no, + "expense_account": default_expense_account, + "cost_center": default_cost_center, + "is_opening": is_opening + })) + return details else: details = self.get("items") diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index 6e98ebb6c0..4f507f1b46 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -110,7 +110,7 @@ class Lead(SellingController): def set_lead_name(self): if not self.lead_name: # Check for leads being created through data import - if not self.company_name: + if not self.company_name and not self.flags.ignore_mandatory: frappe.throw(_("A Lead requires either a person's name or an organization's name")) self.lead_name = self.company_name diff --git a/erpnext/hr/doctype/training_feedback/training_feedback.py b/erpnext/hr/doctype/training_feedback/training_feedback.py index b47e2b4be8..1a33450791 100644 --- a/erpnext/hr/doctype/training_feedback/training_feedback.py +++ b/erpnext/hr/doctype/training_feedback/training_feedback.py @@ -15,11 +15,11 @@ class TrainingFeedback(Document): def on_submit(self): training_event = frappe.get_doc("Training Event", self.training_event) - status = None + event_status = None for e in training_event.employees: if e.employee == self.employee: - status = 'Feedback Submitted' + event_status = 'Feedback Submitted' break - if status: - frappe.db.set_value("Training Event", self.training_event, "status", status) + if event_status: + frappe.db.set_value("Training Event", self.training_event, "event_status", event_status) diff --git a/erpnext/public/images/erpnext-logo.jpg b/erpnext/public/images/erpnext-logo.jpg deleted file mode 100644 index b5acc5af1a..0000000000 Binary files a/erpnext/public/images/erpnext-logo.jpg and /dev/null differ diff --git a/erpnext/public/images/erpnext-logo.png b/erpnext/public/images/erpnext-logo.png new file mode 100644 index 0000000000..115faaa6a8 Binary files /dev/null and b/erpnext/public/images/erpnext-logo.png differ