Merge branch 'develop'

This commit is contained in:
Nabin Hait 2015-10-28 16:07:13 +05:30
commit 283b55f88c
20 changed files with 189 additions and 48 deletions

View File

@ -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)

View File

@ -1,2 +1,2 @@
from __future__ import unicode_literals
__version__ = '6.6.5'
__version__ = '6.6.6'

View File

@ -164,6 +164,21 @@ def get_data():
"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"
},
]
},
]

View File

@ -146,6 +146,11 @@ def get_data():
"label": _("Lead to Quotation"),
"youtube_id": "TxYX4r4JAKA"
},
{
"type": "help",
"label": _("Newsletters"),
"youtube_id": "muLKsCrrDRo"
},
]
},
]

View File

@ -196,4 +196,30 @@ def get_data():
},
]
},
{
"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"
},
]
}
]

View File

@ -122,6 +122,11 @@ def get_data():
"label": _("Items and Pricing"),
"youtube_id": "qXaEwld4_Ps"
},
{
"type": "help",
"label": _("Item Variants"),
"youtube_id": "OGBETlCzU5o"
},
{
"type": "help",
"label": _("Opening Stock Balance"),

View File

@ -120,6 +120,16 @@ def get_data():
"label": _("Bill of Materials"),
"youtube_id": "hDV0c1OeWLo"
},
{
"type": "help",
"label": _("Production Planning Tool"),
"youtube_id": "CzatSl4zJ2Y"
},
{
"type": "help",
"label": _("Production Order"),
"youtube_id": "ZotgLyp2YFY"
},
]
}
]

View File

@ -70,4 +70,15 @@ def get_data():
},
]
},
{
"label": _("Help"),
"icon": "icon-facetime-video",
"items": [
{
"type": "help",
"label": _("Managing Projects"),
"youtube_id": "egxIGwtoKI4"
},
]
},
]

View File

@ -294,6 +294,16 @@ def get_data():
"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"
},
]
},
]

View File

@ -263,6 +263,11 @@ def get_data():
"label": _("Items and Pricing"),
"youtube_id": "qXaEwld4_Ps"
},
{
"type": "help",
"label": _("Item Variants"),
"youtube_id": "OGBETlCzU5o"
},
{
"type": "help",
"label": _("Opening Stock Balance"),
@ -270,8 +275,23 @@ def get_data():
},
{
"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"
},
]
}

View File

@ -29,7 +29,7 @@ blogs.
"""
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"

View File

@ -228,3 +228,5 @@ erpnext.patches.v6_4.set_user_in_contact
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

View File

@ -0,0 +1 @@
from __future__ import unicode_literals

View File

@ -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)

View File

@ -76,10 +76,9 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
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 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
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 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
callback: function(r) {
if(!r.exc) {
me.frm.set_value("taxes", r.message);
me.calculate_taxes_and_totals();
}
}
});
@ -362,7 +362,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
},
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,

View File

@ -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",

View File

@ -104,12 +104,16 @@ class Item(WebsiteGenerator):
# 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:

View File

@ -51,7 +51,7 @@ cur_frm.fields_dict['serial_no'].get_query = function(doc, cdt, cdn) {
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];

View File

@ -3776,7 +3776,7 @@ DocType: Batch,Batch,Hàng loạt
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ợ

1 DocType: Employee Salary Mode Chế độ tiền lương
3776 apps/erpnext/erpnext/setup/page/setup_wizard/install_fixtures.py +94 Designer Nhà thiết kế
3777 apps/erpnext/erpnext/config/selling.py +121 Terms and Conditions Template Điều khoản và Điều kiện Template
3778 DocType: Serial No Delivery Details Chi tiết giao hàng
3779 apps/erpnext/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +382 Cost Center is required in row {0} in Taxes table for type {1} Trung tâm chi phí là cần thiết trong hàng {0} trong bảng Thuế cho loại {1}
3780 DocType: Item Automatically create Material Request if quantity falls below this level Tự động tạo Material Request nếu số lượng giảm xuống dưới mức này
3781 Item-wise Purchase Register Item-khôn ngoan mua Đăng ký
3782 DocType: Batch Expiry Date Ngày hết hiệu lực

View File

@ -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()