feat: Barcode scanning in Stock Reconciliation

[skip ci]
This commit is contained in:
Ankush Menat 2022-03-28 09:37:37 +05:30 committed by Ankush Menat
parent 205c8c2bda
commit 1736ab57ac
2 changed files with 71 additions and 5 deletions

View File

@ -55,6 +55,25 @@ frappe.ui.form.on("Stock Reconciliation", {
}
},
scan_barcode: function(frm) {
const barcode_scanner = new erpnext.utils.BarcodeScanner({frm:frm});
barcode_scanner.process_scan();
},
scan_mode: function(frm) {
if (frm.doc.scan_mode) {
frappe.show_alert({
message: __("Scan mode enabled, existing quantity will not be fetched."),
indicator: "green"
});
}
},
set_warehouse: function(frm) {
let transaction_controller = new erpnext.TransactionController({frm:frm});
transaction_controller.autofill_warehouse(frm.doc.items, "warehouse", frm.doc.set_warehouse);
},
get_items: function(frm) {
let fields = [
{
@ -148,15 +167,18 @@ frappe.ui.form.on("Stock Reconciliation", {
batch_no: d.batch_no
},
callback: function(r) {
const row = frappe.model.get_doc(cdt, cdn);
if (!frm.doc.scan_mode) {
frappe.model.set_value(cdt, cdn, "qty", r.message.qty);
}
frappe.model.set_value(cdt, cdn, "valuation_rate", r.message.rate);
frappe.model.set_value(cdt, cdn, "current_qty", r.message.qty);
frappe.model.set_value(cdt, cdn, "current_valuation_rate", r.message.rate);
frappe.model.set_value(cdt, cdn, "current_amount", r.message.rate * r.message.qty);
frappe.model.set_value(cdt, cdn, "amount", r.message.rate * r.message.qty);
frappe.model.set_value(cdt, cdn, "amount", row.qty * row.valuation_rate);
frappe.model.set_value(cdt, cdn, "current_serial_no", r.message.serial_nos);
if (frm.doc.purpose == "Stock Reconciliation") {
if (frm.doc.purpose == "Stock Reconciliation" && !frm.doc.scan_mode) {
frappe.model.set_value(cdt, cdn, "serial_no", r.message.serial_nos);
}
}
@ -239,7 +261,14 @@ frappe.ui.form.on("Stock Reconciliation Item", {
const serial_nos = child.serial_no.trim().split('\n');
frappe.model.set_value(cdt, cdn, "qty", serial_nos.length);
}
},
items_add: function(frm, cdt, cdn) {
var item = frappe.get_doc(cdt, cdn);
if (!item.warehouse && frm.doc.set_warehouse) {
frappe.model.set_value(cdt, cdn, "warehouse", frm.doc.set_warehouse);
}
},
});

View File

@ -14,6 +14,12 @@
"posting_date",
"posting_time",
"set_posting_time",
"section_break_8",
"set_warehouse",
"section_break_22",
"scan_barcode",
"column_break_12",
"scan_mode",
"sb9",
"items",
"section_break_9",
@ -139,13 +145,44 @@
{
"fieldname": "dimension_col_break",
"fieldtype": "Column Break"
},
{
"fieldname": "section_break_8",
"fieldtype": "Section Break"
},
{
"fieldname": "scan_barcode",
"fieldtype": "Data",
"label": "Scan Barcode",
"options": "Barcode"
},
{
"default": "0",
"description": "Disables auto-fetching of existing quantity",
"fieldname": "scan_mode",
"fieldtype": "Check",
"label": "Scan Mode"
},
{
"fieldname": "set_warehouse",
"fieldtype": "Link",
"label": "Default Warehouse",
"options": "Warehouse"
},
{
"fieldname": "section_break_22",
"fieldtype": "Section Break"
},
{
"fieldname": "column_break_12",
"fieldtype": "Column Break"
}
],
"icon": "fa fa-upload-alt",
"idx": 1,
"is_submittable": 1,
"links": [],
"modified": "2022-02-06 14:28:19.043905",
"modified": "2022-03-27 08:57:47.161959",
"modified_by": "Administrator",
"module": "Stock",
"name": "Stock Reconciliation",