code alignment
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index 501bab0..f49f110 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -140,126 +140,126 @@
},
make_stock_entry: function() {
- var items = $.map(cur_frm.doc.items, function(d) { return d.bom ? d.item_code : false; });
- var me = this;
+ var items = $.map(cur_frm.doc.items, function(d) { return d.bom ? d.item_code : false; });
+ var me = this;
- if(items.length===1) {
- me._make_stock_entry(items[0]);
- return;
- }
+ if(items.length===1) {
+ me._make_stock_entry(items[0]);
+ return;
+ }
- if(items.length > 1){
- me.raw_material_data = [];
- me.show_dialog = 1;
- let title = "";
- let fields = [
- {fieldtype:'Section Break', label: __('Raw Materials')},
- {fieldname: 'sub_con_rm_items', fieldtype: 'Table',
- fields: [
- {
- fieldtype:'Link',
- fieldname:'item_code',
- options: 'Item',
- label: __('Item'),
- read_only:1,
- in_list_view:1
- },
- {
- fieldtype:'Link',
- fieldname:'rm_item_code',
- options:'Item',
- label: __('Raw Material'),
- read_only:1,
- in_list_view:1
- },
- {
- fieldtype:'Float',
- read_only:1,
- fieldname:'qty',
- label: __('Quantity'),
- read_only:1,
- in_list_view:1
- },
- {
- fieldtype:'Link',
- read_only:1,
- fieldname:'warehouse',
- label: __('Reserve Warehouse'),
- read_only:1,
- in_list_view:1
- },
- {
- fieldtype:'Float',
- read_only:1,
- fieldname:'rate',
- label: __('Rate'),
- hidden:1
- },
- {
- fieldtype:'Float',
- read_only:1,
- fieldname:'amount',
- label: __('Amount'),
- hidden:1
- },
- {
- fieldtype:'Link',
- read_only:1,
- fieldname:'uom',
- label: __('UOM'),
- hidden:1
- }
- ],
- data: me.raw_material_data,
- get_data: function() {
- return me.raw_material_data;
- }
+ if(items.length > 1){
+ me.raw_material_data = [];
+ me.show_dialog = 1;
+ let title = "";
+ let fields = [
+ {fieldtype:'Section Break', label: __('Raw Materials')},
+ {fieldname: 'sub_con_rm_items', fieldtype: 'Table',
+ fields: [
+ {
+ fieldtype:'Link',
+ fieldname:'item_code',
+ options: 'Item',
+ label: __('Item'),
+ read_only:1,
+ in_list_view:1
+ },
+ {
+ fieldtype:'Link',
+ fieldname:'rm_item_code',
+ options:'Item',
+ label: __('Raw Material'),
+ read_only:1,
+ in_list_view:1
+ },
+ {
+ fieldtype:'Float',
+ read_only:1,
+ fieldname:'qty',
+ label: __('Quantity'),
+ read_only:1,
+ in_list_view:1
+ },
+ {
+ fieldtype:'Link',
+ read_only:1,
+ fieldname:'warehouse',
+ label: __('Reserve Warehouse'),
+ read_only:1,
+ in_list_view:1
+ },
+ {
+ fieldtype:'Float',
+ read_only:1,
+ fieldname:'rate',
+ label: __('Rate'),
+ hidden:1
+ },
+ {
+ fieldtype:'Float',
+ read_only:1,
+ fieldname:'amount',
+ label: __('Amount'),
+ hidden:1
+ },
+ {
+ fieldtype:'Link',
+ read_only:1,
+ fieldname:'uom',
+ label: __('UOM'),
+ hidden:1
}
- ]
-
- me.dialog = new frappe.ui.Dialog({
- title: title,fields: fields
- });
-
- if (me.frm.doc['supplied_items']) {
- me.frm.doc['supplied_items'].forEach((item, index) => {
- if (item.rm_item_code && item.main_item_code) {
- me.raw_material_data.push ({
- 'name':index,
- 'item_code': item.main_item_code,
- 'rm_item_code': item.rm_item_code,
- 'item_name': item.rm_item_code,
- 'qty': item.required_qty,
- 'warehouse':item.reserve_warehouse,
- 'rate':item.rate,
- 'amount':item.amount,
- 'stock_uom':item.stock_uom
- });
- me.dialog.fields_dict.sub_con_rm_items.grid.refresh();
- }
- })
+ ],
+ data: me.raw_material_data,
+ get_data: function() {
+ return me.raw_material_data;
}
+ }
+ ]
- me.dialog.show()
- this.dialog.set_primary_action(__('Transfer'), function() {
- me.values = me.dialog.get_values();
- if(me.values) {
- me.values.sub_con_rm_items.map((row,i) => {
- if (!row.item_code || !row.rm_item_code || !row.warehouse || !row.qty || row.qty === 0) {
- frappe.throw(__("Item Code, warehouse, quantity are required on row" + (i+1)));
- }
- })
- me._make_rm_stock_entry(me.dialog.fields_dict.sub_con_rm_items.grid.get_selected_children())
- me.dialog.hide()
- }
+ me.dialog = new frappe.ui.Dialog({
+ title: title,fields: fields
+ });
+
+ if (me.frm.doc['supplied_items']) {
+ me.frm.doc['supplied_items'].forEach((item, index) => {
+ if (item.rm_item_code && item.main_item_code) {
+ me.raw_material_data.push ({
+ 'name':index,
+ 'item_code': item.main_item_code,
+ 'rm_item_code': item.rm_item_code,
+ 'item_name': item.rm_item_code,
+ 'qty': item.required_qty,
+ 'warehouse':item.reserve_warehouse,
+ 'rate':item.rate,
+ 'amount':item.amount,
+ 'stock_uom':item.stock_uom
});
+ me.dialog.fields_dict.sub_con_rm_items.grid.refresh();
}
+ })
+ }
- me.dialog.get_close_btn().on('click', () => {
- me.dialog.hide();
- });
+ me.dialog.show()
+ this.dialog.set_primary_action(__('Transfer'), function() {
+ me.values = me.dialog.get_values();
+ if(me.values) {
+ me.values.sub_con_rm_items.map((row,i) => {
+ if (!row.item_code || !row.rm_item_code || !row.warehouse || !row.qty || row.qty === 0) {
+ frappe.throw(__("Item Code, warehouse, quantity are required on row" + (i+1)));
+ }
+ })
+ me._make_rm_stock_entry(me.dialog.fields_dict.sub_con_rm_items.grid.get_selected_children())
+ me.dialog.hide()
+ }
+ });
+ }
- },
+ me.dialog.get_close_btn().on('click', () => {
+ me.dialog.hide();
+ });
+
+ },
_make_stock_entry: function(item) {
frappe.call({
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index b8e76b0..372e8d3 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -34,6 +34,12 @@
'overflow_type': 'order'
}]
+ def onload(self):
+ super(PurchaseOrder, self).onload()
+
+ self.set_onload('disable_fetch_last_purchase_rate',
+ cint(frappe.db.get_single_value("Buying Settings", "disable_fetch_last_purchase_rate")))
+
def validate(self):
super(PurchaseOrder, self).validate()
@@ -393,6 +399,7 @@
@frappe.whitelist()
def make_stock_entry(purchase_order, item_code):
purchase_order = frappe.get_doc("Purchase Order", purchase_order)
+
stock_entry = frappe.new_doc("Stock Entry")
stock_entry.purpose = "Subcontract"
stock_entry.purchase_order = purchase_order.name
@@ -437,6 +444,7 @@
stock_entry.supplier_address = purchase_order.supplier_address
stock_entry.address_display = purchase_order.address_display
stock_entry.company = purchase_order.company
+ stock_entry.docstatus = 0
stock_entry.from_bom = 1
po_item = [d for d in purchase_order.items if d.item_code == item_code][0]
stock_entry.fg_completed_qty = po_item.qty
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index beea97a..742f0fa 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -676,7 +676,7 @@
# item dict = { item_code: {qty, description, stock_uom} }
item_dict = get_bom_items_as_dict(self.bom_no, self.company, qty=qty,
fetch_exploded = self.use_multi_level_bom)
- print item_dict
+
for item in item_dict.values():
# if source warehouse presents in BOM set from_warehouse as bom source_warehouse
item.from_warehouse = self.from_warehouse or item.source_warehouse or item.default_warehouse