Merge pull request #7705 from rmehta/stock-entry-fix

[minor] added make material request from Stock Entry and removed cur_frm
diff --git a/erpnext/config/setup.py b/erpnext/config/setup.py
index 9c9bae2..878b2f2 100644
--- a/erpnext/config/setup.py
+++ b/erpnext/config/setup.py
@@ -96,6 +96,12 @@
 			"items": [
 				{
 					"type": "doctype",
+					"name": "Feedback Trigger",
+					"label": _("Feedback Trigger"),
+					"description": _("Automatically triggers the feedback request based on conditions.")
+				},
+				{
+					"type": "doctype",
 					"name": "Email Digest",
 					"description": _("Create and manage daily, weekly and monthly email digests.")
 				},
diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py
index c664101..4c1d443 100644
--- a/erpnext/demo/setup/setup_data.py
+++ b/erpnext/demo/setup/setup_data.py
@@ -46,8 +46,7 @@
 
 	if not frappe.get_all('Company', limit=1):
 		setup_complete({
-			"first_name": "Test",
-			"last_name": "User",
+			"full_name": "Test User",
 			"email": "test_demo@erpnext.com",
 			"company_tagline": 'Awesome Products and Services',
 			"password": "demo",
diff --git a/erpnext/docs/assets/img/setup/feedback/__init__.py b/erpnext/docs/assets/img/setup/feedback/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/__init__.py
diff --git a/erpnext/docs/assets/img/setup/feedback/feedback-trigger-condition.png b/erpnext/docs/assets/img/setup/feedback/feedback-trigger-condition.png
new file mode 100644
index 0000000..5fdae3c
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/feedback-trigger-condition.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/feedback-trigger-subject.png b/erpnext/docs/assets/img/setup/feedback/feedback-trigger-subject.png
new file mode 100644
index 0000000..22c3f4c
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/feedback-trigger-subject.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/manual-feedback-request-option.png b/erpnext/docs/assets/img/setup/feedback/manual-feedback-request-option.png
new file mode 100644
index 0000000..e9f6487
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/manual-feedback-request-option.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/manual-feedback-request.png b/erpnext/docs/assets/img/setup/feedback/manual-feedback-request.png
new file mode 100644
index 0000000..cf9ecc0
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/manual-feedback-request.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/resend-feedback-request-button.png b/erpnext/docs/assets/img/setup/feedback/resend-feedback-request-button.png
new file mode 100644
index 0000000..9a4b19d
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/resend-feedback-request-button.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/resend-feedback-request-custom-message.png b/erpnext/docs/assets/img/setup/feedback/resend-feedback-request-custom-message.png
new file mode 100644
index 0000000..a68f520
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/resend-feedback-request-custom-message.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/setting-up-feedback-trigger-message.png b/erpnext/docs/assets/img/setup/feedback/setting-up-feedback-trigger-message.png
new file mode 100644
index 0000000..6bc802e
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/setting-up-feedback-trigger-message.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/setting-up-feedback-trigger.png b/erpnext/docs/assets/img/setup/feedback/setting-up-feedback-trigger.png
new file mode 100644
index 0000000..dec0336
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/setting-up-feedback-trigger.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/sidebar-ratings.png b/erpnext/docs/assets/img/setup/feedback/sidebar-ratings.png
new file mode 100644
index 0000000..72f4377
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/sidebar-ratings.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/submit-feedback.png b/erpnext/docs/assets/img/setup/feedback/submit-feedback.png
new file mode 100644
index 0000000..a1ccf0d
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/submit-feedback.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/feedback/timeline-rating-and-feedback.png b/erpnext/docs/assets/img/setup/feedback/timeline-rating-and-feedback.png
new file mode 100644
index 0000000..0f691d3
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/feedback/timeline-rating-and-feedback.png
Binary files differ
diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/__init__.py b/erpnext/docs/user/manual/en/setting-up/feedback/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/feedback/__init__.py
diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/index.md b/erpnext/docs/user/manual/en/setting-up/feedback/index.md
new file mode 100644
index 0000000..bb2efaf
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/feedback/index.md
@@ -0,0 +1,7 @@
+# Feedback
+
+Customer/User Feedback for a Product or Services can be useful for business as it can be used to make decisions for improvements either in products or services.
+
+### Topics
+
+{index}
diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/index.txt b/erpnext/docs/user/manual/en/setting-up/feedback/index.txt
new file mode 100644
index 0000000..08160cc
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/feedback/index.txt
@@ -0,0 +1,4 @@
+setting-up-feedback
+submit-feedback
+resend-feedback-request
+manual-feedback-request
diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/manual-feedback-request.md b/erpnext/docs/user/manual/en/setting-up/feedback/manual-feedback-request.md
new file mode 100644
index 0000000..4afaee1
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/feedback/manual-feedback-request.md
@@ -0,0 +1,17 @@
+# Manual Feedback Request
+
+We can also send the feedback request to Customer/User without configuring the
+Feedback Trigger.
+
+To request a feedback manually go to respective document e.g. Sales Order, Issue etc.
+and click on Ask a Feedback option in Menu.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/manual-feedback-request-option.png">
+
+Then, user can enter the feedback request details like email id, message and send the
+feedback request mail.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/manual-feedback-request.png">
+
+Note. If Feedback Trigger is already configured for the document then system will fetch
+Feedback Request details (email id, message)
diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/resend-feedback-request.md b/erpnext/docs/user/manual/en/setting-up/feedback/resend-feedback-request.md
new file mode 100644
index 0000000..0dbb3b7
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/feedback/resend-feedback-request.md
@@ -0,0 +1,16 @@
+# Resend Feedback Request
+
+We can also Resend the Feedback Request to the Customer/User.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/timeline-rating-and-feedback.png">
+
+To resend the Feedback Request we will need to navigate the Communication by clicking the `Details` link on Timeline Feedback.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/resend-feedback-request-button.png">
+
+On Resend Button click a dialog with the Feedback Request message will appear user can either send the
+Feedback Request with same message or he/she can make the changes in the Feedback Request message.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/resend-feedback-request-custom-message.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/setting-up-feedback.md b/erpnext/docs/user/manual/en/setting-up/feedback/setting-up-feedback.md
new file mode 100644
index 0000000..373d703
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/feedback/setting-up-feedback.md
@@ -0,0 +1,53 @@
+# Feedback Trigger
+
+You can set up the Feedback Trigger for various documents to get the Feedback from the user.
+
+For this, you will need to setup the Feedback Trigger,
+
+> Setup > Email > Feedback Trigger
+
+### Setting Up Feedback Trigger
+
+To Setup an Feedback:
+
+1. Select which Document Type you want to send feedback request mail.
+2. Select the Email Field, This field will be used to get the recipients email id.
+3. Set the Subject for feedback request mail.
+4. Set the conditions, if all the conditions are met only then the feedback request mail will be sent.
+5. Compose the message.
+
+### Setting a Subject
+You can retrieve the data for a particular field by using `doc.[field_name]`. To use it in your subject/message, you have to surround it with `{% raw %}{{ }}{% endraw %}`. These are called [Jinja](http://jinja.pocoo.org/) tags. So, for example, to get the name of a document, you use `{% raw %}{{ doc.name }}{% endraw %}`. The below example sends an feedback request whenever Issue is Closed with the Subject, "ISS-##### Issue is Resolved"
+
+<img class="screenshot" alt="Setting Subject" src="{{docs_base_url}}/assets/img/setup/feedback/feedback-trigger-subject.png">
+
+### Setting Conditions
+
+Feedback Trigger allows you to set conditions according to the field data in your documents. The feedback request email will be sent on document save only if the all conditions are true For example if you want to trigger the feedback request mail to a customer if an Issue is has been saved as "Closed" as it's status, you put `doc.status == "Closed"` in the conditions textbox. You can also set more complex conditions by combining them.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/feedback-trigger-condition.png">
+
+### Setting a Message
+
+You can use both Jinja Tags (`{% raw %}{{ doc.[field_name] }}{% endraw %}`) and HTML tags in the message textbox.
+
+	{% raw %}<h3>Your Support Ticket is Resolved</h3>
+
+	<p>Issue {{ doc.name }} Is resolved. Please check and confirm the same.</p>
+	<p> Your Feedback is important for us. Please give us your Feedback for {{ doc.name }}</p>
+	<p> Please visit the following url for feedback.</p>
+
+	{{ feedback_url }}
+	{% endraw %}
+
+---
+
+### Example
+
+1. Setting up Feedback Trigger
+    <img class="screenshot" alt="Defining Criteria" src="{{docs_base_url}}/assets/img/setup/feedback/setting-up-feedback-trigger.png">
+
+1. Setting the Recipients and Message
+    <img class="screenshot" alt="Set Message" src="{{docs_base_url}}/assets/img/setup/feedback/setting-up-feedback-trigger-message.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/en/setting-up/feedback/submit-feedback.md b/erpnext/docs/user/manual/en/setting-up/feedback/submit-feedback.md
new file mode 100644
index 0000000..9069f37
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/feedback/submit-feedback.md
@@ -0,0 +1,19 @@
+# Submit Feedback
+
+Once feedback request mail is sent the user/customer. He/She can visit the URL to submit the feedback
+as well as rating for the document.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/submit-feedback.png">
+
+Once Feedback is submitted the feedback details message and ratings will be recorded and will be shown on Document sidebar and timeline. Also once the Feedback is successfully submitted by the user the link shared to the user will be expired and can not be used to submit the Feedback again.
+
+On Document sidebar the latest feedback ratings will displayed.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/sidebar-ratings.png">
+
+Also, The Feedback details such as Feedback message and ratings will be shown in the Document's Timeline along
+with Comment, Email.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/feedback/timeline-rating-and-feedback.png">
+
+{next}
\ No newline at end of file
diff --git a/erpnext/setup/setup_wizard/test_setup_data.py b/erpnext/setup/setup_wizard/test_setup_data.py
index de54a1d..25378f4 100644
--- a/erpnext/setup/setup_wizard/test_setup_data.py
+++ b/erpnext/setup/setup_wizard/test_setup_data.py
@@ -13,7 +13,7 @@
 "customer_2": "Mahesh Engg",
 "customer_contact_1": "Aditya Duggal",
 "customer_contact_2": "Mahesh Malani",
-"first_name": "Rushabh",
+"full_name": "Rushabh Mehta",
 "fy_start": "1st Apr",
 "item_1": "Enterprise Plan",
 "item_2": "Small Business",
@@ -42,7 +42,6 @@
 "item_uom_3": "Unit",
 "item_uom_4": "Unit",
 "item_uom_5": "Unit",
-"last_name": "Mehta",
 "supplier_1": "Google",
 "supplier_2": "Hetzner",
 "supplier_3": "Digital Ocean",
diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py
index 0c214e4..cb63837 100644
--- a/erpnext/setup/utils.py
+++ b/erpnext/setup/utils.py
@@ -6,7 +6,7 @@
 from frappe import _, throw
 from frappe.utils import flt
 from frappe.utils import get_datetime_str, nowdate
-	
+
 def get_company_currency(company):
 	currency = frappe.db.get_value("Company", company, "default_currency", cache=True)
 	if not currency:
@@ -37,8 +37,7 @@
 	if not frappe.get_list("Company"):
 		setup_complete({
 			"currency"			:"USD",
-			"first_name"		:"Test",
-			"last_name"			:"User",
+			"full_name"			:"Test User",
 			"company_name"		:"Wind Power LLC",
 			"timezone"			:"America/New_York",
 			"company_abbr"		:"WP",
@@ -52,7 +51,7 @@
 			"password"			:"test",
 			"chart_of_accounts" : "Standard",
 			"domain"			: "Manufacturing",
-			
+
 		})
 
 	frappe.db.sql("delete from `tabLeave Allocation`")
@@ -71,18 +70,18 @@
 	if not (from_currency and to_currency):
 		# manqala 19/09/2016: Should this be an empty return or should it throw and exception?
 		return
-	
+
 	if from_currency == to_currency:
 		return 1
-	
+
 	# cksgb 19/09/2016: get last entry in Currency Exchange with from_currency and to_currency.
-	entries = frappe.get_all("Currency Exchange", fields = ["exchange_rate"], 
+	entries = frappe.get_all("Currency Exchange", fields = ["exchange_rate"],
 		filters=[
-			["date", "<=", get_datetime_str(transaction_date)], 
-			["from_currency", "=", from_currency], 
+			["date", "<=", get_datetime_str(transaction_date)],
+			["from_currency", "=", from_currency],
 			["to_currency", "=", to_currency]
 		], order_by="date desc", limit=1)
-	
+
 	if entries:
 		return flt(entries[0].exchange_rate)