code alignment

This commit is contained in:
pawan 2018-01-22 17:31:40 +05:30
parent 67867529c0
commit 4ab6ef89a1
3 changed files with 120 additions and 112 deletions

View File

@ -140,126 +140,126 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
}, },
make_stock_entry: function() { make_stock_entry: function() {
var items = $.map(cur_frm.doc.items, function(d) { return d.bom ? d.item_code : false; }); var items = $.map(cur_frm.doc.items, function(d) { return d.bom ? d.item_code : false; });
var me = this; var me = this;
if(items.length===1) { if(items.length===1) {
me._make_stock_entry(items[0]); me._make_stock_entry(items[0]);
return; return;
} }
if(items.length > 1){ if(items.length > 1){
me.raw_material_data = []; me.raw_material_data = [];
me.show_dialog = 1; me.show_dialog = 1;
let title = ""; let title = "";
let fields = [ let fields = [
{fieldtype:'Section Break', label: __('Raw Materials')}, {fieldtype:'Section Break', label: __('Raw Materials')},
{fieldname: 'sub_con_rm_items', fieldtype: 'Table', {fieldname: 'sub_con_rm_items', fieldtype: 'Table',
fields: [ fields: [
{ {
fieldtype:'Link', fieldtype:'Link',
fieldname:'item_code', fieldname:'item_code',
options: 'Item', options: 'Item',
label: __('Item'), label: __('Item'),
read_only:1, read_only:1,
in_list_view:1 in_list_view:1
}, },
{ {
fieldtype:'Link', fieldtype:'Link',
fieldname:'rm_item_code', fieldname:'rm_item_code',
options:'Item', options:'Item',
label: __('Raw Material'), label: __('Raw Material'),
read_only:1, read_only:1,
in_list_view:1 in_list_view:1
}, },
{ {
fieldtype:'Float', fieldtype:'Float',
read_only:1, read_only:1,
fieldname:'qty', fieldname:'qty',
label: __('Quantity'), label: __('Quantity'),
read_only:1, read_only:1,
in_list_view:1 in_list_view:1
}, },
{ {
fieldtype:'Link', fieldtype:'Link',
read_only:1, read_only:1,
fieldname:'warehouse', fieldname:'warehouse',
label: __('Reserve Warehouse'), label: __('Reserve Warehouse'),
read_only:1, read_only:1,
in_list_view:1 in_list_view:1
}, },
{ {
fieldtype:'Float', fieldtype:'Float',
read_only:1, read_only:1,
fieldname:'rate', fieldname:'rate',
label: __('Rate'), label: __('Rate'),
hidden:1 hidden:1
}, },
{ {
fieldtype:'Float', fieldtype:'Float',
read_only:1, read_only:1,
fieldname:'amount', fieldname:'amount',
label: __('Amount'), label: __('Amount'),
hidden:1 hidden:1
}, },
{ {
fieldtype:'Link', fieldtype:'Link',
read_only:1, read_only:1,
fieldname:'uom', fieldname:'uom',
label: __('UOM'), label: __('UOM'),
hidden:1 hidden:1
}
],
data: me.raw_material_data,
get_data: function() {
return me.raw_material_data;
}
} }
] ],
data: me.raw_material_data,
me.dialog = new frappe.ui.Dialog({ get_data: function() {
title: title,fields: fields return me.raw_material_data;
});
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.show() me.dialog = new frappe.ui.Dialog({
this.dialog.set_primary_action(__('Transfer'), function() { title: title,fields: fields
me.values = me.dialog.get_values(); });
if(me.values) {
me.values.sub_con_rm_items.map((row,i) => { if (me.frm.doc['supplied_items']) {
if (!row.item_code || !row.rm_item_code || !row.warehouse || !row.qty || row.qty === 0) { me.frm.doc['supplied_items'].forEach((item, index) => {
frappe.throw(__("Item Code, warehouse, quantity are required on row" + (i+1))); if (item.rm_item_code && item.main_item_code) {
} me.raw_material_data.push ({
}) 'name':index,
me._make_rm_stock_entry(me.dialog.fields_dict.sub_con_rm_items.grid.get_selected_children()) 'item_code': item.main_item_code,
me.dialog.hide() '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.show()
me.dialog.hide(); 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) { _make_stock_entry: function(item) {
frappe.call({ frappe.call({

View File

@ -34,6 +34,12 @@ class PurchaseOrder(BuyingController):
'overflow_type': 'order' '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): def validate(self):
super(PurchaseOrder, self).validate() super(PurchaseOrder, self).validate()
@ -393,6 +399,7 @@ def make_purchase_invoice(source_name, target_doc=None):
@frappe.whitelist() @frappe.whitelist()
def make_stock_entry(purchase_order, item_code): def make_stock_entry(purchase_order, item_code):
purchase_order = frappe.get_doc("Purchase Order", purchase_order) purchase_order = frappe.get_doc("Purchase Order", purchase_order)
stock_entry = frappe.new_doc("Stock Entry") stock_entry = frappe.new_doc("Stock Entry")
stock_entry.purpose = "Subcontract" stock_entry.purpose = "Subcontract"
stock_entry.purchase_order = purchase_order.name stock_entry.purchase_order = purchase_order.name
@ -437,6 +444,7 @@ def make_rm_stock_entry(purchase_order, rm_items):
stock_entry.supplier_address = purchase_order.supplier_address stock_entry.supplier_address = purchase_order.supplier_address
stock_entry.address_display = purchase_order.address_display stock_entry.address_display = purchase_order.address_display
stock_entry.company = purchase_order.company stock_entry.company = purchase_order.company
stock_entry.docstatus = 0
stock_entry.from_bom = 1 stock_entry.from_bom = 1
po_item = [d for d in purchase_order.items if d.item_code == item_code][0] po_item = [d for d in purchase_order.items if d.item_code == item_code][0]
stock_entry.fg_completed_qty = po_item.qty stock_entry.fg_completed_qty = po_item.qty

View File

@ -676,7 +676,7 @@ class StockEntry(StockController):
# item dict = { item_code: {qty, description, stock_uom} } # item dict = { item_code: {qty, description, stock_uom} }
item_dict = get_bom_items_as_dict(self.bom_no, self.company, qty=qty, item_dict = get_bom_items_as_dict(self.bom_no, self.company, qty=qty,
fetch_exploded = self.use_multi_level_bom) fetch_exploded = self.use_multi_level_bom)
print item_dict
for item in item_dict.values(): for item in item_dict.values():
# if source warehouse presents in BOM set from_warehouse as bom source_warehouse # 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 item.from_warehouse = self.from_warehouse or item.source_warehouse or item.default_warehouse