Merge pull request #2942 from sbktechnology/develop
Added Actual Batch Qty for item in DN & SI
This commit is contained in:
commit
4944fb33ce
@ -244,7 +244,7 @@ cur_frm.cscript.hide_fields = function(doc) {
|
|||||||
cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal, true);
|
cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
item_flds_stock = ['serial_no', 'batch_no', 'actual_qty', 'expense_account', 'warehouse']
|
item_flds_stock = ['serial_no', 'batch_no', 'actual_qty', 'actual_batch_qty', 'expense_account', 'warehouse']
|
||||||
cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_stock,
|
cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_stock,
|
||||||
(cint(doc.update_stock)==1 ? true : false));
|
(cint(doc.update_stock)==1 ? true : false));
|
||||||
|
|
||||||
|
@ -339,6 +339,19 @@
|
|||||||
"fieldtype": "Column Break",
|
"fieldtype": "Column Break",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 1,
|
||||||
|
"fieldname": "actual_batch_qty",
|
||||||
|
"fieldtype": "Float",
|
||||||
|
"label": "Available Batch Qty at Warehouse",
|
||||||
|
"no_copy": 1,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 1,
|
||||||
|
"print_width": "150px",
|
||||||
|
"read_only": 1,
|
||||||
|
"width": "150px"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allow_on_submit": 1,
|
"allow_on_submit": 1,
|
||||||
"fieldname": "actual_qty",
|
"fieldname": "actual_qty",
|
||||||
@ -439,7 +452,7 @@
|
|||||||
],
|
],
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"modified": "2014-09-09 05:35:36.019576",
|
"modified": "2015-03-10 14:56:45.641026",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Sales Invoice Item",
|
"name": "Sales Invoice Item",
|
||||||
|
@ -215,6 +215,8 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
warehouse: function(doc, cdt, cdn) {
|
warehouse: function(doc, cdt, cdn) {
|
||||||
|
var me = this;
|
||||||
|
this.batch_no(doc, cdt, cdn);
|
||||||
var item = frappe.get_doc(cdt, cdn);
|
var item = frappe.get_doc(cdt, cdn);
|
||||||
if(item.item_code && item.warehouse) {
|
if(item.item_code && item.warehouse) {
|
||||||
return this.frm.call({
|
return this.frm.call({
|
||||||
@ -476,6 +478,21 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
batch_no: function(doc, cdt, cdn) {
|
||||||
|
var me = this;
|
||||||
|
var item = frappe.get_doc(cdt, cdn);
|
||||||
|
return this.frm.call({
|
||||||
|
method: "erpnext.stock.get_item_details.get_batch_qty",
|
||||||
|
child: item,
|
||||||
|
args: {
|
||||||
|
"batch_no": item.batch_no,
|
||||||
|
"warehouse": item.warehouse,
|
||||||
|
"item_code": item.item_code
|
||||||
|
},
|
||||||
|
"fieldname": "actual_batch_qty"
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
set_dynamic_labels: function() {
|
set_dynamic_labels: function() {
|
||||||
this._super();
|
this._super();
|
||||||
this.set_sales_bom_help(this.frm.doc);
|
this.set_sales_bom_help(this.frm.doc);
|
||||||
|
@ -314,6 +314,19 @@
|
|||||||
"fieldtype": "Column Break",
|
"fieldtype": "Column Break",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 1,
|
||||||
|
"fieldname": "actual_batch_qty",
|
||||||
|
"fieldtype": "Float",
|
||||||
|
"label": "Available Batch Qty at Warehouse",
|
||||||
|
"no_copy": 1,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 1,
|
||||||
|
"print_width": "150px",
|
||||||
|
"read_only": 1,
|
||||||
|
"width": "150px"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allow_on_submit": 1,
|
"allow_on_submit": 1,
|
||||||
"fieldname": "actual_qty",
|
"fieldname": "actual_qty",
|
||||||
@ -426,7 +439,7 @@
|
|||||||
],
|
],
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"modified": "2014-09-09 05:35:37.460939",
|
"modified": "2015-03-10 12:21:17.028911",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Delivery Note Item",
|
"name": "Delivery Note Item",
|
||||||
|
@ -278,6 +278,15 @@ def get_serial_nos_by_fifo(args, item_doc):
|
|||||||
"qty": cint(args.qty)
|
"qty": cint(args.qty)
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
def get_actual_batch_qty(batch_no,warehouse,item_code):
|
||||||
|
actual_batch_qty = 0
|
||||||
|
if batch_no:
|
||||||
|
actual_batch_qty = flt(frappe.db.sql("""select sum(actual_qty)
|
||||||
|
from `tabStock Ledger Entry`
|
||||||
|
where warehouse=%s and item_code=%s and batch_no=%s""",
|
||||||
|
(warehouse, item_code, batch_no))[0][0])
|
||||||
|
return actual_batch_qty
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_conversion_factor(item_code, uom):
|
def get_conversion_factor(item_code, uom):
|
||||||
return {"conversion_factor": frappe.db.get_value("UOM Conversion Detail",
|
return {"conversion_factor": frappe.db.get_value("UOM Conversion Detail",
|
||||||
@ -293,6 +302,12 @@ def get_available_qty(item_code, warehouse):
|
|||||||
return frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
|
return frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
|
||||||
["projected_qty", "actual_qty"], as_dict=True) or {}
|
["projected_qty", "actual_qty"], as_dict=True) or {}
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def get_batch_qty(batch_no,warehouse,item_code):
|
||||||
|
actual_batch_qty = get_actual_batch_qty(batch_no,warehouse,item_code)
|
||||||
|
if batch_no:
|
||||||
|
return {'actual_batch_qty': actual_batch_qty}
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def apply_price_list(args):
|
def apply_price_list(args):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user