diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index bfcf0a4bbd..b4fe62e3b6 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -33,6 +33,21 @@ erpnext.buying.PurchaseInvoiceController = erpnext.buying.BuyingController.exten
}
cur_frm.cscript.is_opening(doc);
+ },
+ onload_post_render: function(doc, dt, dn) {
+ var me = this;
+ var callback1 = function(doc, dt, dn) {
+ var callback2 = function(doc, dt, dn) {
+ if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc, dt, dn);
+ }
+ me.update_item_details(doc, dt, dn, callback2);
+ }
+
+ // TODO: improve this
+ if(this.frm.doc.__islocal && this.frm.fields_dict.price_list_name
+ && this.frm.doc.price_list_name) {
+ this.price_list_name(callback1);
+ }
}
});
@@ -46,16 +61,6 @@ cur_frm.cscript.onload = function(doc,dt,dn) {
if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()});
}
-cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
- var callback = function(doc, dt, dn) {
- if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn);
- }
-
- // defined in purchase_common.js
- cur_frm.cscript.update_item_details(doc, dt, dn, callback);
-
-}
-
cur_frm.cscript.supplier = function(doc,dt,dn) {
var callback = function(r,rt) {
var doc = locals[cur_frm.doctype][cur_frm.docname];
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index be55e8a730..a39df410cc 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -518,16 +518,17 @@ class DocType(BuyingController):
def on_update(self):
pass
+
def update_raw_material_cost(self):
if self.sub_contracted_items:
for d in self.doclist.get({"parentfield": "entries"}):
- rm_cost = webnotes.conn.sql(""" select raw_material_cost / quantity
- from `tabBOM` where item = %s and is_default = 1 and docstatus = 1
- and is_active = 1 """, (d.item_code,))
- rm_cost = rm_cost and flt(rm_cost[0][0]) or 0
+ rm_cost = webnotes.conn.sql(""" select raw_material_cost / quantity
+ from `tabBOM` where item = %s and is_default = 1 and docstatus = 1
+ and is_active = 1 """, (d.item_code,))
+ rm_cost = rm_cost and flt(rm_cost[0][0]) or 0
- d.conversion_factor = d.conversion_factor or webnotes.conn.get_value(
- "UOM Conversion Detail", {"parent": d.item_code, "uom": d.uom},
- "conversion_factor") or 1
+ d.conversion_factor = d.conversion_factor or webnotes.conn.get_value(
+ "UOM Conversion Detail", {"parent": d.item_code, "uom": d.uom},
+ "conversion_factor") or 1
- d.rm_supp_cost = rm_cost * flt(d.qty) * flt(d.conversion_factor)
+ d.rm_supp_cost = rm_cost * flt(d.qty) * flt(d.conversion_factor)
diff --git a/accounts/page/voucher_import_tool/voucher_import_tool.py b/accounts/page/voucher_import_tool/voucher_import_tool.py
index b94864c211..1819e07705 100644
--- a/accounts/page/voucher_import_tool/voucher_import_tool.py
+++ b/accounts/page/voucher_import_tool/voucher_import_tool.py
@@ -160,6 +160,12 @@ def import_vouchers(common_values, data, start_idx, import_type):
raise Exception
doclist = Bean([jv]+details)
+
+ # validate datatype
+ from core.page.data_import_tool.data_import_tool import check_record
+ for d in doclist:
+ check_record(d.fields, d.parenttype)
+
doclist.submit()
messages.append("""
[row #%s]
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index b3f62d58b9..7775426eaa 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -51,18 +51,9 @@ erpnext.buying.BuyingController = erpnext.utils.Controller.extend({
if(this.frm.fields_dict.currency)
this.set_dynamic_labels();
-
- // TODO: improve this
- if(this.frm.doc.__islocal && this.frm.fields_dict.price_list_name
- && this.frm.doc.price_list_name && this.frm.doc.price_list_currency) {
- this.price_list_name();
- }
},
- price_list_name: function() {
- this.frm.toggle_reqd(["price_list_currency", "plc_conversion_rate"],
- !!(this.frm.doc.price_list_name));
-
+ price_list_name: function(callback_fn) {
var me = this;
if(this.frm.doc.price_list_name) {
@@ -77,6 +68,8 @@ erpnext.buying.BuyingController = erpnext.utils.Controller.extend({
callback: function(r) {
if(!r.exc) {
me.price_list_currency();
+ if (callback_fn) callback_fn(me.frm.doc, me.frm.doc.doctype,
+ me.frm.doc.name);
}
}
});
@@ -89,6 +82,7 @@ erpnext.buying.BuyingController = erpnext.utils.Controller.extend({
item_code: function(doc, cdt, cdn) {
var me = this;
var item = locals[cdt][cdn];
+
if(item.item_code) {
this.frm.call({
method: "buying.utils.get_item_details",
@@ -140,12 +134,15 @@ erpnext.buying.BuyingController = erpnext.utils.Controller.extend({
},
price_list_currency: function() {
- this.set_dynamic_labels();
+ this.frm.toggle_reqd("plc_conversion_rate",
+ !!(this.frm.doc.price_list_name && this.frm.doc.price_list_currency));
+ this.set_dynamic_labels();
+
if(this.frm.doc.price_list_currency === this.get_company_currency())
this.frm.set_value("plc_conversion_rate", 1.0);
else if(this.frm.doc.price_list_currency === this.frm.doc.currency)
- this.frm.set_value("plc_conversion_rate", this.frm.doc.conversion_rate || 1.0);
+ this.frm.set_value("plc_conversion_rate", this.frm.doc.conversion_rate || 1.0);
},
set_dynamic_labels: function(doc, dt, dn) {
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index cf1db141c0..4bcd828899 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -40,12 +40,22 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
},
- onload_post_render: function(doc, dt, dn) {
- var callback = function(doc, dt, dn) {
- if(doc.__islocal) cur_frm.cscript.get_default_schedule_date(doc);
+ onload_post_render: function(doc, dt, dn) {
+ var me = this;
+ var callback1 = function(doc, dt, dn) {
+ var callback2 = function(doc, dt, dn) {
+ if(doc.__islocal) cur_frm.cscript.get_default_schedule_date(doc);
+ }
+ me.update_item_details(doc, dt, dn, callback2);
+ }
+
+ // TODO: improve this
+ if(this.frm.doc.__islocal && this.frm.fields_dict.price_list_name
+ && this.frm.doc.price_list_name) {
+ this.price_list_name(callback1);
}
- this.update_item_details(doc, dt, dn, callback);
}
+
});
var new_cscript = new erpnext.buying.PurchaseOrderController({frm: cur_frm});
@@ -53,7 +63,7 @@ var new_cscript = new erpnext.buying.PurchaseOrderController({frm: cur_frm});
// for backward compatibility: combine new and previous states
$.extend(cur_frm.cscript, new_cscript);
-cur_frm.cscript.onload = function(doc, cdt, cdn) {
+cur_frm.cscript.onload = function(doc, cdt, cdn) {
// set missing values in parent doc
set_missing_values(doc, {
fiscal_year: sys_defaults.fiscal_year,
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index 6cb764ef08..36f9be8dc8 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -27,12 +27,25 @@ erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.ext
refresh: function() {
this._super();
- cur_frm.cscript.load_taxes(this.frm.doc);
if (this.frm.doc.docstatus === 1) {
cur_frm.add_custom_button("Make Purchase Order", cur_frm.cscript.make_purchase_order);
}
+ },
+
+ onload_post_render: function(doc, dt, dn) {
+ var me = this;
+ var callback = function(doc, dt, dn) {
+ cur_frm.cscript.load_taxes(me.frm.doc);
+ }
+
+ // TODO: improve this
+ if(this.frm.doc.__islocal && this.frm.fields_dict.price_list_name
+ && this.frm.doc.price_list_name) {
+ this.price_list_name(callback);
+ }
}
+
});
var new_cscript = new erpnext.buying.SupplierQuotationController({frm: cur_frm});
diff --git a/buying/utils.py b/buying/utils.py
index 9d125de24a..0431e642cb 100644
--- a/buying/utils.py
+++ b/buying/utils.py
@@ -53,7 +53,7 @@ def get_item_details(args):
"qty": 0,
"stock_uom": item.stock_uom,
"uom": item.stock_uom,
- "conversion_factor": 1,
+ "conversion_factor": 1.0,
"warehouse": args.warehouse or item.default_warehouse,
"item_tax_rate": json.dumps(dict(([d.tax_type, d.tax_rate] for d in
item_wrapper.doclist.get({"parentfield": "item_tax"})))),
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index c49bf2a929..8b247ccd98 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -331,7 +331,12 @@ class BuyingController(AccountsController):
# update valuation rate
def update_valuation_rate(self, parentfield):
for d in self.doclist.get({"parentfield": parentfield}):
- if d.qty:
+ d.conversion_factor = d.conversion_factor or webnotes.conn.get_value(
+ "UOM Conversion Detail", {"parent": d.item_code, "uom": d.uom},
+ "conversion_factor") or 1
+ if d.item_code and d.qty:
+ # if no item code, which is sometimes the case in purchase invoice,
+ # then it is not possible to track valuation against it
d.valuation_rate = (flt(d.purchase_rate or d.rate)
+ (flt(d.item_tax_amount) + flt(d.rm_supp_cost)) / flt(d.qty)
) / flt(d.conversion_factor)
diff --git a/home/page/desktop/desktop.js b/home/page/desktop/desktop.js
index c298b68218..87181d8a98 100644
--- a/home/page/desktop/desktop.js
+++ b/home/page/desktop/desktop.js
@@ -23,9 +23,10 @@ erpnext.desktop.render = function() {
module.name = m;
module.label = wn._(module.label);
module.gradient_css = wn.get_gradient_css(module.color, 45);
+ module._link = module.link.toLowerCase().replace("/", "-");
$module_icon = $(repl('\
-
\
\
\
@@ -84,7 +85,7 @@ erpnext.desktop.show_pending_notifications = function() {
add_circle('module-icon-messages', 'unread_messages', 'Unread Messages');
add_circle('module-icon-support-home', 'open_support_tickets', 'Open Support Tickets');
add_circle('module-icon-todo', 'things_todo', 'Things To Do');
- add_circle('module-icon-calendar', 'todays_events', 'Todays Events');
+ add_circle('module-icon-calendar-event', 'todays_events', 'Todays Events');
add_circle('module-icon-projects-home', 'open_tasks', 'Open Tasks');
add_circle('module-icon-questions', 'unanswered_questions', 'Unanswered Questions');
add_circle('module-icon-selling-home', 'open_leads', 'Open Leads');
diff --git a/hr/doctype/attendance_control_panel/attendance_control_panel.py b/hr/doctype/attendance_control_panel/attendance_control_panel.py
index dd0deb1784..8b86cee297 100644
--- a/hr/doctype/attendance_control_panel/attendance_control_panel.py
+++ b/hr/doctype/attendance_control_panel/attendance_control_panel.py
@@ -16,12 +16,8 @@
from __future__ import unicode_literals
import webnotes
-import webnotes.default
-
-from webnotes.utils import cint, cstr, date_diff, formatdate, getdate, now
-from webnotes.model import db_exists
-from webnotes.model.bean import copy_doclist
-from webnotes import form, msgprint
+from webnotes.utils import cint, cstr, formatdate, getdate
+from webnotes import msgprint
sql = webnotes.conn.sql
@@ -49,13 +45,8 @@ class DocType:
# get date list inbetween from date and to date
def date_diff_list(self):
import datetime
- #get from date
- att_fr_date = self.doc.att_fr_date and self.doc.att_fr_date or ''
-
- #get to date
- att_to_date = self.doc.att_to_date and self.doc.att_to_date or ''
- if att_to_date:
+ if self.doc.att_to_date:
r = (getdate(self.doc.att_to_date)+datetime.timedelta(days=1)-getdate(self.doc.att_fr_date)).days
else:
r = 1
@@ -65,6 +56,7 @@ class DocType:
return dt
def get_att_data(self):
+ import webnotes.defaults
fy = webnotes.defaults.get_global_default('fiscal_year')
comp = webnotes.defaults.get_user_default('company')
diff --git a/hr/report/employee_leave_balance/employee_leave_balance.py b/hr/report/employee_leave_balance/employee_leave_balance.py
index 6d34c8a8e9..9d859daf23 100644
--- a/hr/report/employee_leave_balance/employee_leave_balance.py
+++ b/hr/report/employee_leave_balance/employee_leave_balance.py
@@ -33,6 +33,7 @@ def execute(filters=None):
for leave_type in leave_types:
columns.append(leave_type + " Allocated:Float")
columns.append(leave_type + " Taken:Float")
+ columns.append(leave_type + " Balance:Float")
data = {}
for d in allocations:
@@ -52,5 +53,6 @@ def execute(filters=None):
tmp = data.get((fiscal_year, employee.name, leave_type), webnotes._dict())
row.append(tmp.allocation or 0)
row.append(tmp.leaves or 0)
+ row.append((tmp.allocation or 0) - (tmp.leaves or 0))
return columns, result
\ No newline at end of file
diff --git a/patches/february_2013/p09_remove_cancelled_warehouses.py b/patches/february_2013/p09_remove_cancelled_warehouses.py
new file mode 100644
index 0000000000..05e569ab72
--- /dev/null
+++ b/patches/february_2013/p09_remove_cancelled_warehouses.py
@@ -0,0 +1,9 @@
+import webnotes
+
+def execute():
+ for w in webnotes.conn.sql("""select name from `tabWarehouse` where docstatus=2"""):
+ try:
+ webnotes.delete_doc("Warehouse", w[0])
+ except webnotes.ValidationError:
+ pass
+
\ No newline at end of file
diff --git a/patches/march_2013/__init__.py b/patches/march_2013/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/patches/march_2013/update_po_prevdoc_doctype.py b/patches/march_2013/update_po_prevdoc_doctype.py
new file mode 100644
index 0000000000..35e7a257b4
--- /dev/null
+++ b/patches/march_2013/update_po_prevdoc_doctype.py
@@ -0,0 +1,6 @@
+import webnotes
+def execute():
+ webnotes.conn.sql("""update `tabPurchase Order Item` set prevdoc_doctype = 'Material Request'
+ where prevdoc_doctype = 'Purchase Request'""")
+ webnotes.conn.sql("""update `tabSupplier Quotation Item`
+ set prevdoc_doctype = 'Material Request' where prevdoc_doctype = 'Purchase Request'""")
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 42fc554ded..0870cee40e 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -201,4 +201,6 @@ patch_list = [
'execute:webnotes.reload_doc("accounts", "Print Format", "Sales Invoice Spartan") # 2013-02-26',
"execute:(not webnotes.conn.exists('Role', 'Projects Manager')) and webnotes.doc({'doctype':'Role', 'role_name':'Projects Manager'}).insert()",
"execute:(not webnotes.conn.exists('UOM', 'Hour')) and webnotes.doc({'uom_name': 'Unit', 'doctype': 'UOM', 'name': 'Hour'}).insert()",
+ "patches.february_2013.p09_remove_cancelled_warehouses",
+ "patches.march_2013.update_po_prevdoc_doctype",
]
\ No newline at end of file
diff --git a/projects/doctype/time_log/time_log.py b/projects/doctype/time_log/time_log.py
index 34969a9de1..870c51cb5c 100644
--- a/projects/doctype/time_log/time_log.py
+++ b/projects/doctype/time_log/time_log.py
@@ -23,10 +23,10 @@ class DocType:
def set_status(self):
self.doc.status = {
- "0": "Draft",
- "1": "Submitted",
- "2": "Cancelled"
- }[str(self.doc.docstatus or 0)]
+ 0: "Draft",
+ 1: "Submitted",
+ 2: "Cancelled"
+ }[self.doc.docstatus or 0]
if self.doc.time_log_batch:
self.doc.status="Batched for Billing"
diff --git a/setup/utils.py b/setup/utils.py
index 1b61ea9201..1a86921692 100644
--- a/setup/utils.py
+++ b/setup/utils.py
@@ -40,7 +40,7 @@ def get_price_list_currency(args):
if isinstance(args, basestring):
args = json.loads(args)
- result = webnotes.conn.sql("""select ref_currency from `tabItem Price`
+ result = webnotes.conn.sql("""select distinct ref_currency from `tabItem Price`
where price_list_name=%s and `%s`=1""" % ("%s", args.get("use_for")),
(args.get("price_list_name"),))
if result and len(result)==1:
diff --git a/startup/startup.py b/startup/startup.py
index c74c596235..89c0336d17 100644
--- a/startup/startup.py
+++ b/startup/startup.py
@@ -55,7 +55,7 @@ def get_todays_events():
SELECT COUNT(*) FROM `tabEvent`
WHERE owner = %s
AND event_type != 'Cancel'
- AND event_date = %s""", (
+ AND %s between date(starts_on) and date(ends_on)""", (
webnotes.session.user, nowdate()))
return todays_events[0][0]
diff --git a/stock/doctype/batch/batch.txt b/stock/doctype/batch/batch.txt
index cad4a0db2c..6a6de8b247 100644
--- a/stock/doctype/batch/batch.txt
+++ b/stock/doctype/batch/batch.txt
@@ -1,15 +1,17 @@
[
{
- "creation": "2013-01-10 16:34:25",
+ "creation": "2013-03-01 08:21:54",
"docstatus": 0,
- "modified": "2013-01-29 13:40:32",
+ "modified": "2013-03-01 08:22:16",
"modified_by": "Administrator",
"owner": "harshada@webnotestech.com"
},
{
+ "allow_attach": 1,
"autoname": "field:batch_id",
"doctype": "DocType",
"document_type": "Master",
+ "max_attachments": 5,
"module": "Stock",
"name": "__common__"
},
@@ -105,6 +107,15 @@
"oldfieldtype": "Small Text",
"read_only": 1
},
+ {
+ "doctype": "DocField",
+ "fieldname": "file_list",
+ "fieldtype": "Text",
+ "hidden": 1,
+ "label": "File List",
+ "no_copy": 1,
+ "print_hide": 1
+ },
{
"doctype": "DocPerm"
}
diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js
index 6c2c882645..5b32a34c80 100644
--- a/stock/doctype/item/item.js
+++ b/stock/doctype/item/item.js
@@ -22,13 +22,11 @@ cur_frm.cscript.refresh = function(doc) {
if ((!doc.__islocal) && (doc.is_stock_item == 'Yes')) {
var callback = function(r, rt) {
- var enabled = (r.message == 'exists') ? false : true;
+ var enabled = (r.message == 'exists') ? false : true;
cur_frm.toggle_enable(['has_serial_no', 'is_stock_item', 'valuation_method'], enabled);
}
$c_obj(make_doclist(doc.doctype, doc.name),'check_if_sle_exists','',callback);
}
-
- cur_frm.cscript.hide_website_fields(doc);
}
cur_frm.cscript.item_code = function(doc) {
diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt
index 6b1a60f580..1a48368ad2 100644
--- a/stock/doctype/item/item.txt
+++ b/stock/doctype/item/item.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-02-20 13:26:14",
+ "creation": "2013-02-21 14:54:43",
"docstatus": 0,
- "modified": "2013-02-20 18:14:06",
+ "modified": "2013-02-28 10:43:02",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -28,13 +28,14 @@
"permlevel": 0
},
{
- "amend": 0,
"doctype": "DocPerm",
"name": "__common__",
"parent": "Item",
"parentfield": "permissions",
"parenttype": "DocType",
+ "permlevel": 0,
"read": 1,
+ "report": 1,
"submit": 0
},
{
@@ -596,7 +597,6 @@
"label": "Price Lists and Rates"
},
{
- "depends_on": "eval:doc.is_sales_item==\"Yes\"",
"description": "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.",
"doctype": "DocField",
"fieldname": "ref_rate_details",
@@ -812,76 +812,27 @@
"fieldtype": "Text Editor",
"label": "Website Description"
},
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "Material Manager",
- "write": 0
- },
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
- "role": "Material Manager",
- "write": 0
- },
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "Material User",
- "write": 0
- },
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
- "role": "Material User",
- "write": 0
- },
{
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
"role": "Material Master Manager",
"write": 1
},
{
+ "amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "Material Master Manager",
+ "role": "Material Manager",
"write": 0
},
{
- "cancel": 1,
- "create": 1,
- "doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
- "role": "System Manager",
- "write": 1
- },
- {
+ "amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "System Manager",
+ "role": "Material User",
"write": 0
}
]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index df2825b65b..c7d2e504f5 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -37,6 +37,18 @@ erpnext.buying.PurchaseReceiptController = erpnext.buying.BuyingController.exten
if(wn.boot.control_panel.country == 'India') {
unhide_field(['challan_no', 'challan_date']);
}
+ },
+ onload_post_render: function(doc, dt, dn) {
+ var me = this;
+ var callback = function(doc, dt, dn) {
+ me.update_item_details(doc, dt, dn, function(r,rt) { });
+ }
+
+ // TODO: improve this
+ if(this.frm.doc.__islocal && this.frm.fields_dict.price_list_name
+ && this.frm.doc.price_list_name) {
+ this.price_list_name(callback);
+ }
}
});
@@ -45,7 +57,6 @@ var new_cscript = new erpnext.buying.PurchaseReceiptController({frm: cur_frm});
// for backward compatibility: combine new and previous states
$.extend(cur_frm.cscript, new_cscript);
-//========================== On Load ================================================================
cur_frm.cscript.onload = function(doc, cdt, cdn) {
if(!doc.fiscal_year && doc.__islocal){ wn.model.set_default_values(doc);}
if (!doc.posting_date) doc.posting_date = dateutil.obj_to_str(new Date());
@@ -53,15 +64,6 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
if (!doc.status) doc.status = 'Draft';
}
-cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
- var callback = function(doc, dt, dn) {
- // defined in purchase_common.js
- cur_frm.cscript.update_item_details(doc, dt, dn, function(r,rt) { });
- }
- cur_frm.cscript.dynamic_label(doc, dt, dn, callback);
-}
-
-//Supplier
cur_frm.cscript.supplier = function(doc,dt,dn) {
if (doc.supplier) {
get_server_fields('get_default_supplier_address',
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 6772103759..2f8835fb16 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -214,7 +214,8 @@ class DocType(BuyingController):
def validate_inspection(self):
for d in getlist(self.doclist, 'purchase_receipt_details'): #Enter inspection date for all items that require inspection
- ins_reqd = sql("select inspection_required from `tabItem` where name = %s", (d.item_code), as_dict = 1)
+ ins_reqd = sql("select inspection_required from `tabItem` where name = %s",
+ (d.item_code,), as_dict = 1)
ins_reqd = ins_reqd and ins_reqd[0]['inspection_required'] or 'No'
if ins_reqd == 'Yes' and not d.qa_no:
msgprint("Item: " + d.item_code + " requires QA Inspection. Please enter QA No or report to authorized person to create Quality Inspection")
@@ -289,17 +290,17 @@ class DocType(BuyingController):
self.make_gl_entries()
def validate_for_subcontracting(self):
- if self.sub_contracted_items and self.purchase_items and not self.doc.is_subcontracted:
+ if not self.doc.is_subcontracted and self.sub_contracted_items:
webnotes.msgprint(_("""Please enter whether Purchase Recipt is made for subcontracting
or purchasing, in 'Is Subcontracted' field"""), raise_exception=1)
- if self.doc.is_subcontracted and not self.doc.supplier_warehouse:
+ if self.doc.is_subcontracted=="Yes" and not self.doc.supplier_warehouse:
webnotes.msgprint(_("Please Enter Supplier Warehouse for subcontracted Items"),
raise_exception=1)
def update_raw_materials_supplied(self):
self.doclist = self.doc.clear_table(self.doclist, 'pr_raw_material_details')
- if self.sub_contracted_items:
+ if self.doc.is_subcontracted=="Yes":
for item in self.doclist.get({"parentfield": "purchase_receipt_details"}):
if item.item_code in self.sub_contracted_items:
self.add_bom_items(item)
diff --git a/stock/page/stock_balance/stock_balance.js b/stock/page/stock_balance/stock_balance.js
index dccf498a9e..9494f0dde6 100644
--- a/stock/page/stock_balance/stock_balance.js
+++ b/stock/page/stock_balance/stock_balance.js
@@ -102,8 +102,7 @@ erpnext.StockBalance = erpnext.StockAnalytics.extend({
for(var i=0, j=data.length; i