UOM Conversion in Selling
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 4e08287..6f4a196 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -537,8 +537,38 @@
}
},
+ uom: function(doc, cdt, cdn) {
+ var me = this;
+ var item = frappe.get_doc(cdt, cdn);
+ if(item.item_code && item.uom) {
+ return this.frm.call({
+ method: "erpnext.stock.get_item_details.get_conversion_factor",
+ child: item,
+ args: {
+ item_code: item.item_code,
+ uom: item.uom
+ },
+ callback: function(r) {
+ if(!r.exc) {
+ me.conversion_factor(me.frm.doc, cdt, cdn);
+ }
+ }
+ });
+ }
+ },
+
+ conversion_factor: function(doc, cdt, cdn) {
+ if(frappe.meta.get_docfield(cdt, "stock_qty", cdn)) {
+ var item = frappe.get_doc(cdt, cdn);
+ frappe.model.round_floats_in(item, ["qty", "conversion_factor"]);
+ item.stock_qty = flt(item.qty * item.conversion_factor, precision("stock_qty", item));
+ refresh_field("stock_qty", item.name, item.parentfield);
+ }
+ },
+
qty: function(doc, cdt, cdn) {
this.apply_pricing_rule(frappe.get_doc(cdt, cdn), true);
+ this.conversion_factor(doc, cdt, cdn);
},
set_dynamic_labels: function() {
@@ -995,7 +1025,7 @@
set_gross_profit: function(item) {
if (this.frm.doc.doctype == "Sales Order" && item.valuation_rate) {
rate = flt(item.rate) * flt(this.frm.doc.conversion_rate || 1);
- item.gross_profit = flt(((rate - item.valuation_rate) * item.qty), precision("amount", item));
+ item.gross_profit = flt(((rate - item.valuation_rate) * item.stock_qty), precision("amount", item));
}
},