diff --git a/README.md b/README.md
index 8be3f22..00b7c5a 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
 
 Includes: Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS. Requires MariaDB.
 
-ERPNext is built on the [Frappe](https://github.com/frappe/frappe) Framework, a full-stack web app framework in Python & Javascript.
+ERPNext is built on the [Frappe](https://github.com/frappe/frappe) Framework, a full-stack web app framework in Python & JavaScript.
 
 - [User Guide](https://manual.erpnext.com)
 - [Getting Help](http://erpnext.org/getting-help.html)
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index 9a900fe..58e8a30 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1,2 +1,2 @@
 from __future__ import unicode_literals
-__version__ = '6.6.5'
+__version__ = '6.6.6'
diff --git a/erpnext/config/buying.py b/erpnext/config/buying.py
index 7729872..79de835 100644
--- a/erpnext/config/buying.py
+++ b/erpnext/config/buying.py
@@ -164,6 +164,21 @@
 					"label": _("Customer and Supplier"),
 					"youtube_id": "anoGi_RpQ20"
 				},
+				{
+					"type": "help",
+					"label": _("Material Request to Purchase Order"),
+					"youtube_id": "4TN9kPyfIqM"
+				},
+				{
+					"type": "help",
+					"label": _("Purchase Order to Payment"),
+					"youtube_id": "EK65tLdVUDk"
+				},
+				{
+					"type": "help",
+					"label": _("Managing Subcontracting"),
+					"youtube_id": "ThiMCC2DtKo"
+				},
 			]
 		},
 	]
diff --git a/erpnext/config/crm.py b/erpnext/config/crm.py
index 7b015c7..b92bf22 100644
--- a/erpnext/config/crm.py
+++ b/erpnext/config/crm.py
@@ -146,6 +146,11 @@
 					"label": _("Lead to Quotation"),
 					"youtube_id": "TxYX4r4JAKA"
 				},
+				{
+					"type": "help",
+					"label": _("Newsletters"),
+					"youtube_id": "muLKsCrrDRo"
+				},
 			]
 		},
 	]
diff --git a/erpnext/config/hr.py b/erpnext/config/hr.py
index 72fe8dd..3942766 100644
--- a/erpnext/config/hr.py
+++ b/erpnext/config/hr.py
@@ -196,4 +196,30 @@
 				},
 			]
 		},
+		{
+			"label": _("Help"),
+			"icon": "icon-facetime-video",
+			"items": [
+				{
+					"type": "help",
+					"label": _("Setting up Employees"),
+					"youtube_id": "USfIUdZlUhw"
+				},
+				{
+					"type": "help",
+					"label": _("Leave Management"),
+					"youtube_id": "fc0p_AXebc8"
+				},
+				{
+					"type": "help",
+					"label": _("Expense Claims"),
+					"youtube_id": "5SZHJF--ZFY"
+				},
+				{
+					"type": "help",
+					"label": _("Processing Payroll"),
+					"youtube_id": "apgE-f25Rm0"
+				},
+			]
+		}
 	]
diff --git a/erpnext/config/learn.py b/erpnext/config/learn.py
index e0f1c06..6557f52 100644
--- a/erpnext/config/learn.py
+++ b/erpnext/config/learn.py
@@ -124,6 +124,11 @@
 				},
 				{
 					"type": "help",
+					"label": _("Item Variants"),
+					"youtube_id": "OGBETlCzU5o"
+				},
+				{
+					"type": "help",
 					"label": _("Opening Stock Balance"),
 					"youtube_id": "0yPgrtfeCTs"
 				},
diff --git a/erpnext/config/manufacturing.py b/erpnext/config/manufacturing.py
index 5b51b0f..1db7945 100644
--- a/erpnext/config/manufacturing.py
+++ b/erpnext/config/manufacturing.py
@@ -120,6 +120,16 @@
 					"label": _("Bill of Materials"),
 					"youtube_id": "hDV0c1OeWLo"
 				},
+				{
+					"type": "help",
+					"label": _("Production Planning Tool"),
+					"youtube_id": "CzatSl4zJ2Y"
+				},
+				{
+					"type": "help",
+					"label": _("Production Order"),
+					"youtube_id": "ZotgLyp2YFY"
+				},
 			]
 		}
 	]
diff --git a/erpnext/config/projects.py b/erpnext/config/projects.py
index 07149e3..78a78ac 100644
--- a/erpnext/config/projects.py
+++ b/erpnext/config/projects.py
@@ -70,4 +70,15 @@
 				},
 			]
 		},
+		{
+			"label": _("Help"),
+			"icon": "icon-facetime-video",
+			"items": [
+				{
+					"type": "help",
+					"label": _("Managing Projects"),
+					"youtube_id": "egxIGwtoKI4"
+				},
+			]
+		},
 	]
diff --git a/erpnext/config/selling.py b/erpnext/config/selling.py
index 62dfe23..ba1210e 100644
--- a/erpnext/config/selling.py
+++ b/erpnext/config/selling.py
@@ -294,6 +294,16 @@
 					"label": _("Customer and Supplier"),
 					"youtube_id": "anoGi_RpQ20"
 				},
+				{
+					"type": "help",
+					"label": _("Sales Order to Payment"),
+					"youtube_id": "7AMq4lqkN4A"
+				},
+				{
+					"type": "help",
+					"label": _("Point-of-Sale"),
+					"youtube_id": "4WkelWkbP_c"
+				},
 			]
 		},
 	]
diff --git a/erpnext/config/stock.py b/erpnext/config/stock.py
index f5ecba0..dab009d 100644
--- a/erpnext/config/stock.py
+++ b/erpnext/config/stock.py
@@ -265,13 +265,33 @@
 				},
 				{
 					"type": "help",
+					"label": _("Item Variants"),
+					"youtube_id": "OGBETlCzU5o"
+				},
+				{
+					"type": "help",
 					"label": _("Opening Stock Balance"),
 					"youtube_id": "0yPgrtfeCTs"
 				},
 				{
 					"type": "help",
-					"label": _("Item Variants"),
-					"youtube_id": "OGBETlCzU5o"
+					"label": _("Making Stock Entries"),
+					"youtube_id": "Njt107hlY3I"
+				},
+				{
+					"type": "help",
+					"label": _("Serialized Inventory"),
+					"youtube_id": "gvOVlEwFDAk"
+				},
+				{
+					"type": "help",
+					"label": _("Batch Inventory"),
+					"youtube_id": "J0QKl7ABPKM"
+				},
+				{
+					"type": "help",
+					"label": _("Managing Subcontracting"),
+					"youtube_id": "ThiMCC2DtKo"
 				},
 			]
 		}
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 0d29e96..569572b 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -29,7 +29,7 @@
 """
 app_icon = "icon-th"
 app_color = "#e74c3c"
-app_version = "6.6.5"
+app_version = "6.6.6"
 github_link = "https://github.com/frappe/erpnext"
 
 error_report_email = "support@erpnext.com"
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index b36f74b..c40eec5 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -228,3 +228,5 @@
 erpnext.patches.v6_4.make_image_thumbnail #2015-10-20
 erpnext.patches.v6_5.show_in_website_for_template_item
 erpnext.patches.v6_4.fix_expense_included_in_valuation
+execute:frappe.delete_doc_if_exists("Report", "Item-wise Last Purchase Rate")
+erpnext.patches.v6_6.fix_website_image
diff --git a/erpnext/patches/v6_6/__init__.py b/erpnext/patches/v6_6/__init__.py
new file mode 100644
index 0000000..baffc48
--- /dev/null
+++ b/erpnext/patches/v6_6/__init__.py
@@ -0,0 +1 @@
+from __future__ import unicode_literals
diff --git a/erpnext/patches/v6_6/fix_website_image.py b/erpnext/patches/v6_6/fix_website_image.py
new file mode 100644
index 0000000..b3b4cab
--- /dev/null
+++ b/erpnext/patches/v6_6/fix_website_image.py
@@ -0,0 +1,32 @@
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import encode
+
+def execute():
+	"""Fix the File records created via item.py even if the website_image file didn't exist"""
+	for item in frappe.db.sql_list("""select name from `tabItem`
+		where website_image is not null and website_image != ''
+			and website_image like '/files/%'
+			and exists (
+				select name from `tabFile`
+					where attached_to_doctype='Item'
+					and attached_to_name=`tabItem`.name
+					and file_url=`tabItem`.website_image
+					and (file_name is null or file_name = '')
+				)"""):
+
+		item = frappe.get_doc("Item", item)
+		file = frappe.get_doc("File", {
+			"attached_to_doctype": "Item",
+			"attached_to_name": item.name,
+			"file_url": item.website_image
+		})
+
+		try:
+			file.validate_file()
+		except IOError:
+			print encode(item.website_image), "does not exist"
+			file.delete()
+			item.db_set("website_image", None, update_modified=False)
+
+
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 4d33f81..f518e9c 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -76,10 +76,9 @@
 		if(this.frm.doc.__islocal && !(this.frm.doc.taxes || []).length
 			&& !(this.frm.doc.__onload ? this.frm.doc.__onload.load_after_mapping : false)) {
 				this.apply_default_taxes();
-		}
-
-		if(this.frm.doc.__islocal && this.frm.doc.company && this.frm.doc["items"] && !this.frm.doc.is_pos) {
-			this.calculate_taxes_and_totals();
+		} else if(this.frm.doc.__islocal && this.frm.doc.company && this.frm.doc["items"] 
+			&& !this.frm.doc.is_pos) {
+				me.calculate_taxes_and_totals();
 		}
 		if(frappe.meta.get_docfield(this.frm.doc.doctype + " Item", "item_code")) {
 			cur_frm.get_field("items").grid.set_multiple_add("item_code", "qty");
@@ -102,7 +101,7 @@
 			me.frm.doc.name);
 
 		if(taxes_and_charges_field) {
-			frappe.call({
+			return frappe.call({
 				method: "erpnext.controllers.accounts_controller.get_default_taxes_and_charges",
 				args: {
 					"master_doctype": taxes_and_charges_field.options
@@ -110,6 +109,7 @@
 				callback: function(r) {
 					if(!r.exc) {
 						me.frm.set_value("taxes", r.message);
+						me.calculate_taxes_and_totals();
 					}
 				}
 			});
@@ -362,7 +362,7 @@
 	},
 
 	get_exchange_rate: function(from_currency, to_currency, callback) {
-		frappe.call({
+		return frappe.call({
 			method: "erpnext.setup.utils.get_exchange_rate",
 			args: {
 				from_currency: from_currency,
diff --git a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
index 96e2660..c1d4591 100644
--- a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
+++ b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
@@ -760,7 +760,7 @@
    "fieldname": "target_warehouse", 
    "fieldtype": "Link", 
    "hidden": 0, 
-   "ignore_user_permissions": 0, 
+   "ignore_user_permissions": 1, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "To Warehouse (Optional)", 
@@ -1162,7 +1162,7 @@
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
- "modified": "2015-10-26 02:19:18.053222", 
+ "modified": "2015-10-28 12:41:53.738462", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Delivery Note Item", 
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 0f1f0e0..c621957 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -104,12 +104,16 @@
 
 			# for CSV import
 			if not file_doc:
-				file_doc = frappe.get_doc({
-					"doctype": "File",
-					"file_url": self.website_image,
-					"attached_to_doctype": "Item",
-					"attached_to_name": self.name
-				}).insert()
+				try:
+					file_doc = frappe.get_doc({
+						"doctype": "File",
+						"file_url": self.website_image,
+						"attached_to_doctype": "Item",
+						"attached_to_name": self.name
+					}).insert()
+
+				except IOError:
+					self.website_image = None
 
 			if file_doc:
 				if not file_doc.thumbnail_url:
diff --git a/erpnext/support/doctype/warranty_claim/warranty_claim.js b/erpnext/support/doctype/warranty_claim/warranty_claim.js
index 941a803..9e1c83e 100644
--- a/erpnext/support/doctype/warranty_claim/warranty_claim.js
+++ b/erpnext/support/doctype/warranty_claim/warranty_claim.js
@@ -51,7 +51,7 @@
 	var cond = [];
 	var filter = [
 		['Serial No', 'docstatus', '!=', 2],
-		['Serial No', 'status', '=', "Delivered"]
+		['Serial No', 'warehouse', '=', ""]
 	];
 	if(doc.item_code) {
 		cond = ['Serial No', 'item_code', '=', doc.item_code];
diff --git a/erpnext/translations/vi.csv b/erpnext/translations/vi.csv
index 038d7d6..201dafc 100644
--- a/erpnext/translations/vi.csv
+++ b/erpnext/translations/vi.csv
@@ -674,7 +674,7 @@
 
 #### Description of Columns
 
-1. Calculation Type: 
+1. Calculation Type:
     - This can be on **Net Total** (that is the sum of basic amount).
     - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
     - **Actual** (as mentioned).
@@ -685,19 +685,19 @@
 6. Amount: Tax amount.
 7. Total: Cumulative total to this point.
 8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).
-9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.","Mẫu thuế tiêu chuẩn có thể được áp dụng cho tất cả các giao dịch bán hàng. Mẫu này có thể chứa danh sách của người đứng đầu và thuế cũng khác người đứng đầu chi phí / thu nhập như ""Vận chuyển"", ""bảo hiểm"", ""Xử lý"" vv 
+9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.","Mẫu thuế tiêu chuẩn có thể được áp dụng cho tất cả các giao dịch bán hàng. Mẫu này có thể chứa danh sách của người đứng đầu và thuế cũng khác người đứng đầu chi phí / thu nhập như ""Vận chuyển"", ""bảo hiểm"", ""Xử lý"" vv
 
- 
+
 
  #### Chú ý Các mức thuế suất bạn xác định đây sẽ là mức thuế suất tiêu chuẩn cho tất cả các mục ** **. Nếu có những mục ** ** mà có mức giá khác nhau, chúng phải được thêm vào trong các mục ** ** Thuế bảng trong mục ** ** master.
 
- #### Mô tả Cột 
+ #### Mô tả Cột
 
- 1. Loại tính: 
+ 1. Loại tính:
  - Điều này có thể được trên Net ** Tổng số ** (đó là tổng số tiền cơ bản).
  - ** Mở Row Previous Total / Số tiền ** (cho các loại thuế, phí tích lũy). Nếu bạn chọn tùy chọn này, thuế sẽ được áp dụng như là một tỷ lệ phần trăm của các dòng trước đó (theo Biểu thuế) hoặc tổng số tiền.
  - ** ** Thực tế (như đã đề cập).
- 2. Tài khoản Head: Các tài khoản sổ cái theo đó thuế này sẽ được đặt 
+ 2. Tài khoản Head: Các tài khoản sổ cái theo đó thuế này sẽ được đặt
  3. Trung tâm chi phí: Nếu thuế / phí là một khoản thu nhập (như vận chuyển) hoặc chi phí nó cần phải được đặt trước một Trung tâm chi phí.
  4. Mô tả: Mô tả về thuế (sẽ được in trên hoá đơn / dấu ngoặc kép).
  5. Rate: Thuế suất.
@@ -2015,7 +2015,7 @@
 
 #### Description of Columns
 
-1. Calculation Type: 
+1. Calculation Type:
     - This can be on **Net Total** (that is the sum of basic amount).
     - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
     - **Actual** (as mentioned).
@@ -2027,19 +2027,19 @@
 7. Total: Cumulative total to this point.
 8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).
 9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.
-10. Add or Deduct: Whether you want to add or deduct the tax.","Mẫu thuế tiêu chuẩn có thể được áp dụng cho tất cả các giao dịch mua hàng. Mẫu này có thể chứa danh sách của người đứng đầu về thuế và cũng đứng đầu chi phí khác như ""Vận chuyển"", ""bảo hiểm"", ""Xử lý"" vv 
+10. Add or Deduct: Whether you want to add or deduct the tax.","Mẫu thuế tiêu chuẩn có thể được áp dụng cho tất cả các giao dịch mua hàng. Mẫu này có thể chứa danh sách của người đứng đầu về thuế và cũng đứng đầu chi phí khác như ""Vận chuyển"", ""bảo hiểm"", ""Xử lý"" vv
 
- 
+
 
  #### Chú ý Các mức thuế bạn xác định ở đây sẽ là mức thuế suất tiêu chuẩn cho tất cả các mục ** **. Nếu có những mục ** ** mà có mức giá khác nhau, chúng phải được thêm vào trong các mục ** ** Thuế bảng trong mục ** ** master.
 
- #### Mô tả Cột 
+ #### Mô tả Cột
 
- 1. Loại tính: 
+ 1. Loại tính:
  - Điều này có thể được trên Net ** Tổng số ** (đó là tổng số tiền cơ bản).
  - ** Mở Row Previous Total / Số tiền ** (cho các loại thuế, phí tích lũy). Nếu bạn chọn tùy chọn này, thuế sẽ được áp dụng như là một tỷ lệ phần trăm của các dòng trước đó (theo Biểu thuế) hoặc tổng số tiền.
  - ** ** Thực tế (như đã đề cập).
- 2. Tài khoản Head: Các tài khoản sổ cái theo đó thuế này sẽ được đặt 
+ 2. Tài khoản Head: Các tài khoản sổ cái theo đó thuế này sẽ được đặt
  3. Trung tâm chi phí: Nếu thuế / phí là một khoản thu nhập (như vận chuyển) hoặc chi phí nó cần phải được đặt trước một Trung tâm chi phí.
  4. Mô tả: Mô tả về thuế (sẽ được in trên hoá đơn / dấu ngoặc kép).
  5. Rate: Thuế suất.
@@ -2225,7 +2225,7 @@
 1. Ways of addressing disputes, indemnity, liability, etc.
 1. Address and Contact of your Company.","Điều khoản và Điều kiện có thể được thêm vào để bán hàng và mua tiêu chuẩn.
 
- Ví dụ: 
+ Ví dụ:
 
  1. Hiệu lực của đề nghị.
  1. Điều khoản thanh toán (Trong Advance, On Credit, phần trước vv).
@@ -2234,7 +2234,7 @@
  1. Bảo hành nếu có.
  1. Trả Policy.
  1. Điều khoản vận chuyển, nếu áp dụng.
- 1. Cách giải quyết tranh chấp, bồi thường, trách nhiệm pháp lý, vv 
+ 1. Cách giải quyết tranh chấp, bồi thường, trách nhiệm pháp lý, vv
  1. Địa chỉ và liên hệ của công ty của bạn."
 DocType: Attendance,Leave Type,Loại bỏ
 apps/erpnext/erpnext/controllers/stock_controller.py +172,Expense / Difference account ({0}) must be a 'Profit or Loss' account,"Chi phí tài khoản / khác biệt ({0}) phải là một ""lợi nhuận hoặc lỗ 'tài khoản"
@@ -3125,7 +3125,7 @@
 apps/erpnext/erpnext/setup/page/setup_wizard/fixtures/industry_type.py +15,Brokerage,Môi giới
 DocType: Address,Postal Code,Mã bưu chính
 DocType: Production Order Operation,"in Minutes
-Updated via 'Time Log'","trong Minutes 
+Updated via 'Time Log'","trong Minutes
  Cập nhật qua 'Giờ'"
 DocType: Customer,From Lead,Từ chì
 apps/erpnext/erpnext/config/manufacturing.py +19,Orders released for production.,Đơn đặt hàng phát hành để sản xuất.
@@ -3302,7 +3302,7 @@
 apps/erpnext/erpnext/controllers/recurring_document.py +128,Please find attached {0} #{1},{0} # Xin vui lòng tìm thấy kèm theo {1}
 DocType: Job Applicant,Applicant Name,Tên đơn
 DocType: Authorization Rule,Customer / Item Name,Khách hàng / Item Name
-DocType: Product Bundle,"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. 
+DocType: Product Bundle,"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**.
 
 The package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".
 
@@ -3444,17 +3444,17 @@
 {% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}
 {% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}
 {% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}
-</code></pre>","<H4> Default Template </ h4> 
- <p> Sử dụng <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja Templating </a> và tất cả các lĩnh vực của Địa chỉ ( bao gồm Tuỳ chỉnh Fields nếu có) sẽ có sẵn </ p> 
- <pre> <code> {{address_line1}} & lt; br & gt; 
+</code></pre>","<H4> Default Template </ h4>
+ <p> Sử dụng <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja Templating </a> và tất cả các lĩnh vực của Địa chỉ ( bao gồm Tuỳ chỉnh Fields nếu có) sẽ có sẵn </ p>
+ <pre> <code> {{address_line1}} & lt; br & gt;
  {% nếu address_line2%} {{address_line2}} & lt; br & gt; { endif% -%} {{
- thành phố}} & lt; br & gt; 
+ thành phố}} & lt; br & gt;
  {% nếu nhà nước%} {{}} nhà nước & lt; br & gt; {% endif -%} {
-% nếu mã pin%} PIN: {{mã pin}} & lt; br & gt; {% endif -%} 
- {{country}} & lt; br & gt; 
- {% nếu điện thoại%} Điện thoại: {{phone}} & lt; br & gt; { % endif -%} 
- {% nếu fax%} Fax: {{fax}} & lt; br & gt; {% endif -%} 
- {% nếu email_id%} Email: {{email_id}} & lt; br & gt ; {% endif -}% 
+% nếu mã pin%} PIN: {{mã pin}} & lt; br & gt; {% endif -%}
+ {{country}} & lt; br & gt;
+ {% nếu điện thoại%} Điện thoại: {{phone}} & lt; br & gt; { % endif -%}
+ {% nếu fax%} Fax: {{fax}} & lt; br & gt; {% endif -%}
+ {% nếu email_id%} Email: {{email_id}} & lt; br & gt ; {% endif -}%
  </ code> </ pre>"
 DocType: Salary Slip Deduction,Default Amount,Số tiền mặc định
 apps/erpnext/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +89,Warehouse not found in the system,Kho không tìm thấy trong hệ thống
@@ -3645,7 +3645,7 @@
 apps/erpnext/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py +157,Start date should be less than end date for Item {0},Ngày bắt đầu phải nhỏ hơn ngày kết thúc cho hàng {0}
 apps/erpnext/erpnext/stock/doctype/item/item.js +17,Show Balance,Hiện Balance
 DocType: Item,"Example: ABCD.#####
-If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.","Ví dụ:. ABCD ##### 
+If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.","Ví dụ:. ABCD #####
  Nếu series được thiết lập và Serial No không được đề cập trong các giao dịch, số serial sau đó tự động sẽ được tạo ra dựa trên series này. Nếu bạn luôn muốn đề cập đến một cách rõ ràng nối tiếp Nos cho mặt hàng này. để trống này."
 DocType: Upload Attendance,Upload Attendance,Tải lên tham dự
 apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.js +119,BOM and Manufacturing Quantity are required,BOM và Sản xuất Số lượng được yêu cầu
@@ -3776,7 +3776,7 @@
 apps/erpnext/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py +53,Balance,Balance
 DocType: Project,Total Expense Claim (via Expense Claims),Tổng số yêu cầu bồi thường chi phí (thông qua Tuyên bố Expense)
 DocType: User,Gender,Giới Tính
-DocType: Journal Entry,Debit Note,"Một lưu ghi nợ là do bên cho mượn, nợ và phục vụ như là một trong hai thông báo về một khoản nợ sẽ sớm nhận được hoá đơn hoặc một lời nhắc nhở đối với khoản nợ mà trước đây được lập hoá đơn và hiện đang nổi bật."
+DocType: Journal Entry,Debit Note,"nợ Ghi"
 DocType: Stock Entry,As per Stock UOM,Theo Cổ UOM
 apps/erpnext/erpnext/stock/doctype/batch/batch_list.js +7,Not Expired,Không hết hạn
 DocType: Journal Entry,Total Debit,Tổng số Nợ
diff --git a/setup.py b/setup.py
index c673dc3..888e3de 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 from setuptools import setup, find_packages
 
-version = "6.6.5"
+version = "6.6.6"
 
 with open("requirements.txt", "r") as f:
 	install_requires = f.readlines()
