Merge branch 'develop' of https://github.com/frappe/erpnext into sla_fix
diff --git a/README.md b/README.md
index b1979d0..db8dd79 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
<div align="center">
- <img src="https://github.com/frappe/design/blob/master/logos/erpnext-logo.svg" height="128">
+ <img src="https://raw.githubusercontent.com/frappe/erpnext/develop/erpnext/public/images/erp-icon.svg" height="128">
<h2>ERPNext</h2>
<p align="center">
<p>ERP made simple</p>
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index ae253cc..20b5fb3 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -501,12 +501,15 @@
def so_dn_required(self):
"""check in manage account if sales order / delivery note required or not."""
+ if self.is_return:
+ return
dic = {'Sales Order':['so_required', 'is_pos'],'Delivery Note':['dn_required', 'update_stock']}
for i in dic:
if frappe.db.get_single_value('Selling Settings', dic[i][0]) == 'Yes':
for d in self.get('items'):
- if (d.item_code and frappe.get_cached_value('Item', d.item_code, 'is_stock_item') == 1
- and not d.get(i.lower().replace(' ','_')) and not self.get(dic[i][1])):
+ is_stock_item = frappe.get_cached_value('Item', d.item_code, 'is_stock_item')
+ if d.item_code and is_stock_item == 1\
+ and not d.get(i.lower().replace(' ','_')) and not self.get(dic[i][1]):
msgprint(_("{0} is mandatory for Item {1}").format(i,d.item_code), raise_exception=1)
diff --git a/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py b/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py
index b670e6e..7dea80c 100644
--- a/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py
+++ b/erpnext/accounts/report/inactive_sales_items/inactive_sales_items.py
@@ -28,7 +28,7 @@
"width": 150
},
{
- "fieldname": "item_name",
+ "fieldname": "item",
"fieldtype": "Link",
"options": "Item",
"label": "Item",
@@ -82,12 +82,12 @@
row = {
"territory": territory.name,
"item_group": item.item_group,
- "item": item.name,
+ "item": item.item_code,
"item_name": item.item_name
}
- if sales_invoice_data.get((territory.name,item.name)):
- item_obj = sales_invoice_data[(territory.name,item.name)]
+ if sales_invoice_data.get((territory.name,item.item_code)):
+ item_obj = sales_invoice_data[(territory.name,item.item_code)]
if item_obj.days_since_last_order > cint(filters['days']):
row.update({
"territory": item_obj.territory,
@@ -111,15 +111,15 @@
date_field = "s.transaction_date" if filters["based_on"] == "Sales Order" else "s.posting_date"
sales_data = frappe.db.sql("""
- select s.territory, s.customer, si.item_group, si.item_name, si.qty, {date_field} as last_order_date,
+ select s.territory, s.customer, si.item_group, si.item_code, si.qty, {date_field} as last_order_date,
DATEDIFF(CURDATE(), {date_field}) as days_since_last_order
from `tab{doctype}` s, `tab{doctype} Item` si
where s.name = si.parent and s.docstatus = 1
- group by si.name order by days_since_last_order """ #nosec
+ order by days_since_last_order """ #nosec
.format(date_field = date_field, doctype = filters['based_on']), as_dict=1)
for d in sales_data:
- item_details_map.setdefault((d.territory,d.item_name), d)
+ item_details_map.setdefault((d.territory,d.item_code), d)
return item_details_map
@@ -149,6 +149,6 @@
"name": filters["item"]
})
- items = frappe.get_all("Item", fields=["name", "item_group", "item_name"], filters=filters_dict, order_by="name")
+ items = frappe.get_all("Item", fields=["name", "item_group", "item_name", "item_code"], filters=filters_dict, order_by="name")
return items
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 42c84da..bfc5e6d 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -375,10 +375,18 @@
show_modal_for_manufacturers: function(frm) {
var dialog = new frappe.ui.Dialog({
fields: [
- {fieldtype:'Link', options:'Manufacturer',
- reqd:1, label:'Manufacturer'},
- {fieldtype:'Data', label:'Manufacturer Part Number',
- fieldname: 'manufacturer_part_no'},
+ {
+ fieldtype: 'Link',
+ fieldname: 'manufacturer',
+ options: 'Manufacturer',
+ label: 'Manufacturer',
+ reqd: 1,
+ },
+ {
+ fieldtype: 'Data',
+ label: 'Manufacturer Part Number',
+ fieldname: 'manufacturer_part_no'
+ },
]
});
@@ -389,7 +397,7 @@
// call the server to make the variant
data.template = frm.doc.name;
frappe.call({
- method:"erpnext.controllers.item_variant.get_variant",
+ method: "erpnext.controllers.item_variant.get_variant",
args: data,
callback: function(r) {
var doclist = frappe.model.sync(r.message);
@@ -464,7 +472,7 @@
me.multiple_variant_dialog.hide();
frappe.call({
- method:"erpnext.controllers.item_variant.enqueue_multiple_variant_creation",
+ method: "erpnext.controllers.item_variant.enqueue_multiple_variant_creation",
args: {
"item": frm.doc.name,
"args": selected_attributes
@@ -514,9 +522,9 @@
let p = new Promise(resolve => {
if(!d.numeric_values) {
frappe.call({
- method:"frappe.client.get_list",
- args:{
- doctype:"Item Attribute Value",
+ method: "frappe.client.get_list",
+ args: {
+ doctype: "Item Attribute Value",
filters: [
["parent","=", d.attribute]
],
@@ -534,9 +542,9 @@
});
} else {
frappe.call({
- method:"frappe.client.get",
- args:{
- doctype:"Item Attribute",
+ method: "frappe.client.get",
+ args: {
+ doctype: "Item Attribute",
name: d.attribute
}
}).then((r) => {
@@ -599,7 +607,7 @@
var args = d.get_values();
if(!args) return;
frappe.call({
- method:"erpnext.controllers.item_variant.get_variant",
+ method: "erpnext.controllers.item_variant.get_variant",
btn: d.get_primary_btn(),
args: {
"template": frm.doc.name,
@@ -622,7 +630,7 @@
} else {
d.hide();
frappe.call({
- method:"erpnext.controllers.item_variant.create_variant",
+ method: "erpnext.controllers.item_variant.create_variant",
args: {
"item": frm.doc.name,
"args": d.get_values()
@@ -660,8 +668,8 @@
.on('input', function(e) {
var term = e.target.value;
frappe.call({
- method:"erpnext.stock.doctype.item.item.get_item_attribute",
- args:{
+ method: "erpnext.stock.doctype.item.item.get_item_attribute",
+ args: {
parent: i,
attribute_value: term
},
@@ -723,7 +731,7 @@
var row = locals[cdt][cdn];
if (row.uom) {
frappe.call({
- method:"erpnext.stock.doctype.item.item.get_uom_conv_factor",
+ method: "erpnext.stock.doctype.item.item.get_uom_conv_factor",
args: {
"uom": row.uom,
"stock_uom": frm.doc.stock_uom