Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index 3b72236..a815cba 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -199,23 +199,37 @@
}
//==================== UOM ======================================================================
-cur_frm.cscript.uom = function(doc, cdt, cdn) {
+cur_frm.cscript.uom = function(doc, cdt, cdn, args) {
+ if(!args) args = {};
+
+ // args passed can contain conversion_factor
var d = locals[cdt][cdn];
- if (d.item_code && d.uom) {
- call_back = function(doc, cdt, cdn){
- cur_frm.cscript.calc_amount(doc, 2);
- }
- str_arg = {'item_code':d.item_code, 'uom':d.uom, 'stock_qty':flt(d.stock_qty), 'qty': flt(d.qty), 'conversion_rate':doc.conversion_rate, 'doc_name': doc.name}
- // Updates Conversion Factor, Qty and Purchase Rate
- get_server_fields('get_uom_details',JSON.stringify(str_arg), fname, doc,cdt,cdn,1, call_back);
- // don't make mistake of calling update_stock_qty() the get_uom_details returns stock_qty as per conversion factor properly
+ $.extend(args, {
+ item_code: d.item_code,
+ uom: d.uom,
+ stock_qty: flt(d.stock_qty),
+ });
+
+ if(d.item_code && d.uom) {
+ wn.call({
+ method: "buying.doctype.purchase_common.purchase_common.get_uom_details",
+ args: { args: args },
+ callback: function(r) {
+ d = locals[cdt][cdn];
+ $.extend(d, r.message);
+ refresh_field(cur_frm.cscript.fname);
+ cur_frm.cscript.calc_amount(doc, 2);
+ }
+ });
}
}
//==================== Conversion factor =========================================================
cur_frm.cscript.conversion_factor = function(doc, cdt, cdn) {
- cur_frm.cscript.uom(doc, cdt, cdn);
+ var item = locals[cdt][cdn];
+
+ cur_frm.cscript.uom(doc, cdt, cdn, { conversion_factor: item.conversion_factor });
}
//==================== stock qty ======================================================================
diff --git a/buying/doctype/purchase_common/purchase_common.py b/buying/doctype/purchase_common/purchase_common.py
index eb8ebef..9c1187d 100644
--- a/buying/doctype/purchase_common/purchase_common.py
+++ b/buying/doctype/purchase_common/purchase_common.py
@@ -182,39 +182,6 @@
ret = { 'projected_qty' : bin and flt(bin[0]['projected_qty']) or 0 }
return ret
- def get_uom_details(self, arg = ''):
- """fetches details on change of UOM"""
- import json
- arg, ret = json.loads(arg), {}
-
- uom = webnotes.conn.sql("""\
- select conversion_factor
- from `tabUOM Conversion Detail`
- where parent = %s and uom = %s""", (arg['item_code'],arg['uom']), as_dict = 1)
-
- if not uom: return ret
-
- last_purchase_details, last_purchase_date = self.get_last_purchase_details(arg['item_code'], arg['doc_name'])
-
- conversion_factor = flt(uom[0]['conversion_factor'])
- conversion_rate = flt(arg['conversion_rate'])
- purchase_ref_rate = last_purchase_details and \
- (last_purchase_details['purchase_ref_rate'] * conversion_factor) or 0
- purchase_rate = last_purchase_details and \
- (last_purchase_details['purchase_rate'] * conversion_factor) or 0
-
- ret = {
- 'conversion_factor': conversion_factor,
- 'qty': flt(arg['stock_qty']) / conversion_factor,
- 'purchase_ref_rate': purchase_ref_rate,
- 'purchase_rate': purchase_rate,
- 'import_ref_rate': purchase_ref_rate / conversion_rate,
- 'import_rate': purchase_rate / conversion_rate,
- }
-
- return ret
-
-
# --- Last Purchase Rate related methods ---
def update_last_purchase_rate(self, obj, is_submit):
@@ -683,3 +650,27 @@
if d.prevdoc_doctype and d.prevdoc_docname:
dt = sql("select transaction_date from `tab%s` where name = '%s'" % (d.prevdoc_doctype, d.prevdoc_docname))
d.prevdoc_date = dt and dt[0][0].strftime('%Y-%m-%d') or ''
+
+@webnotes.whitelist()
+def get_uom_details(args=None):
+ """fetches details on change of UOM"""
+ if not args:
+ return {}
+
+ if isinstance(args, basestring):
+ import json
+ args = json.loads(args)
+
+ uom = webnotes.conn.sql("""select conversion_factor
+ from `tabUOM Conversion Detail` where parent = %s and uom = %s""",
+ (args['item_code'], args['uom']), as_dict=1)
+
+ if not uom: return {}
+
+ conversion_factor = args.get("conversion_factor") or \
+ flt(uom[0]["conversion_factor"])
+
+ return {
+ "conversion_factor": conversion_factor,
+ "qty": flt(args["stock_qty"]) / conversion_factor,
+ }
\ No newline at end of file
diff --git a/buying/doctype/purchase_order/purchase_order.py b/buying/doctype/purchase_order/purchase_order.py
index 4497bcd..e52499c 100644
--- a/buying/doctype/purchase_order/purchase_order.py
+++ b/buying/doctype/purchase_order/purchase_order.py
@@ -69,10 +69,6 @@
- # Get UOM Details
- def get_uom_details(self, arg = ''):
- return get_obj('Purchase Common').get_uom_details(arg)
-
# get available qty at warehouse
def get_bin_details(self, arg = ''):
return get_obj(dt='Purchase Common').get_bin_details(arg)
diff --git a/buying/doctype/purchase_order/purchase_order_list.js b/buying/doctype/purchase_order/purchase_order_list.js
index 69f97f5..762c635 100644
--- a/buying/doctype/purchase_order/purchase_order_list.js
+++ b/buying/doctype/purchase_order/purchase_order_list.js
@@ -27,7 +27,7 @@
},
css: {'text-align':'right'}
},
- {width: '8%', content: 'per_received', type:'bar-graph', label:'Delivered'},
+ {width: '8%', content: 'per_received', type:'bar-graph', label:'Received'},
{width: '8%', content: 'per_billed', type:'bar-graph', label:'Billed'},
{width: '12%', content:'transaction_date',
css: {'text-align': 'right', 'color':'#777'},
diff --git a/buying/doctype/purchase_request/purchase_request.py b/buying/doctype/purchase_request/purchase_request.py
index 79c7400..7d0e08e 100644
--- a/buying/doctype/purchase_request/purchase_request.py
+++ b/buying/doctype/purchase_request/purchase_request.py
@@ -121,11 +121,6 @@
doc.fields[r] = ret[r]
- # Get UOM Details
- # ---------------------------------
- def get_uom_details(self, arg = ''):
- return get_obj(dt='Purchase Common').get_uom_details(arg)
-
# GET TERMS & CONDITIONS
#-----------------------------
def get_tc_details(self):
@@ -219,4 +214,4 @@
self.update_bin(is_submit = 0, is_stopped = (cstr(self.doc.status) == 'Stopped') and 1 or 0)
# Step 5:=> Set Status
- webnotes.conn.set(self.doc,'status','Cancelled')
+ webnotes.conn.set(self.doc,'status','Cancelled')
\ No newline at end of file
diff --git a/controllers/tax_controller.py b/controllers/tax_controller.py
index 7aa8e23..d70ba3e 100644
--- a/controllers/tax_controller.py
+++ b/controllers/tax_controller.py
@@ -140,7 +140,7 @@
self.doc.net_total = flt(self.doc.net_total, self.precision.main.net_total)
self.doc.fields[self.fmap.net_total_print] = \
flt(self.doc.fields.get(self.fmap.net_total_print),
- self.precision.main[self.fmap.net_total_print])
+ self.precision.main.get(self.fmap.net_total_print))
def calculate_taxes(self):
for item in self.item_doclist:
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 04ad4dc..9e23c27 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -64,10 +64,6 @@
doc.fields[r] = ret[r]
- # Get UOM Details
- def get_uom_details(self, arg = ''):
- return get_obj(dt='Purchase Common').get_uom_details(arg)
-
# GET TERMS & CONDITIONS
# =====================================================================================
def get_tc_details(self):