Skip to content

Commit

Permalink
fix: test case and removed outward field
Browse files Browse the repository at this point in the history
  • Loading branch information
rohitwaghchaure committed Jun 15, 2023
1 parent f968f0f commit 1c2fe08
Show file tree
Hide file tree
Showing 9 changed files with 66 additions and 31 deletions.
7 changes: 2 additions & 5 deletions erpnext/public/js/controllers/transaction.js
Original file line number Diff line number Diff line change
Expand Up @@ -2340,14 +2340,11 @@ erpnext.show_serial_batch_selector = function (frm, item_row, callback, on_close

frappe.require("assets/erpnext/js/utils/serial_no_batch_selector.js", function() {
if (in_list(["Sales Invoice", "Delivery Note"], frm.doc.doctype)) {
item_row.outward = frm.doc.is_return ? 0 : 1;
item_row.type_of_transaction = frm.doc.is_return ? "Inward" : "Outward";
} else {
item_row.outward = frm.doc.is_return ? 1 : 0;
item_row.type_of_transaction = frm.doc.is_return ? "Outward" : "Inward";
}

item_row.type_of_transaction = (item_row.outward === 1
? "Outward":"Inward");

new erpnext.SerialBatchPackageSelector(frm, item_row, (r) => {
if (r) {
let update_values = {
Expand Down
32 changes: 32 additions & 0 deletions erpnext/public/js/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,38 @@ $.extend(erpnext.utils, {
}

},

pick_serial_and_batch_bundle(frm, cdt, cdn, type_of_transaction, warehouse_field) {
let item_row = frappe.get_doc(cdt, cdn);
item_row.type_of_transaction = type_of_transaction;

frappe.db.get_value("Item", item_row.item_code, ["has_batch_no", "has_serial_no"])
.then((r) => {
item_row.has_batch_no = r.message.has_batch_no;
item_row.has_serial_no = r.message.has_serial_no;

frappe.require("assets/erpnext/js/utils/serial_no_batch_selector.js", function() {
new erpnext.SerialBatchPackageSelector(frm, item_row, (r) => {
if (r) {
let update_values = {
"serial_and_batch_bundle": r.name,
"qty": Math.abs(r.total_qty)
}

if (!warehouse_field) {
warehouse_field = "warehouse";
}

if (r.warehouse) {
update_values[warehouse_field] = r.warehouse;
}

frappe.model.set_value(item_row.doctype, item_row.name, update_values);
}
});
});
});
}
});

erpnext.utils.select_alternate_items = function(opts) {
Expand Down
18 changes: 7 additions & 11 deletions erpnext/public/js/utils/serial_no_batch_selector.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
title: this.item?.title || primary_label,
fields: this.get_dialog_fields(),
primary_action_label: primary_label,
primary_action: () => this.update_ledgers(),
primary_action: () => this.update_bundle_entries(),
secondary_action_label: __('Edit Full Form'),
secondary_action: () => this.edit_full_form(),
});
Expand All @@ -36,7 +36,7 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
}

get_serial_no_filters() {
let warehouse = this.item?.outward ?
let warehouse = this.item?.type_of_transaction === "Outward" ?
(this.item.warehouse || this.item.s_warehouse) : "";

return {
Expand Down Expand Up @@ -121,7 +121,7 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
});
}

if (this.item?.outward) {
if (this.item?.type_of_transaction === "Outward") {
fields = [...this.get_filter_fields(), ...fields];
} else {
fields = [...fields, ...this.get_attach_field()];
Expand Down Expand Up @@ -267,7 +267,7 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
label: __('Batch No'),
in_list_view: 1,
get_query: () => {
if (!this.item.outward) {
if (this.item.type_of_transaction !== "Outward") {
return {
filters: {
'item': this.item.item_code,
Expand Down Expand Up @@ -356,7 +356,7 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
this.dialog.fields_dict.entries.grid.refresh();
}

update_ledgers() {
update_bundle_entries() {
let entries = this.dialog.get_values().entries;
let warehouse = this.dialog.get_value('warehouse');

Expand Down Expand Up @@ -390,7 +390,7 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
_new.warehouse = this.get_warehouse();
_new.has_serial_no = this.item.has_serial_no;
_new.has_batch_no = this.item.has_batch_no;
_new.type_of_transaction = this.get_type_of_transaction();
_new.type_of_transaction = this.item.type_of_transaction;
_new.company = this.frm.doc.company;
_new.voucher_type = this.frm.doc.doctype;
bundle_id = _new.name;
Expand All @@ -401,15 +401,11 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
}

get_warehouse() {
return (this.item?.outward ?
return (this.item?.type_of_transaction === "Outward" ?
(this.item.warehouse || this.item.s_warehouse)
: (this.item.warehouse || this.item.t_warehouse));
}

get_type_of_transaction() {
return (this.item?.outward ? 'Outward' : 'Inward');
}

render_data() {
if (!this.frm.is_new() && this.bundle) {
frappe.call({
Expand Down
1 change: 0 additions & 1 deletion erpnext/selling/page/point_of_sale/pos_item_details.js
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,6 @@ erpnext.PointOfSale.ItemDetails = class {
frappe.require("assets/erpnext/js/utils/serial_no_batch_selector.js", () => {
let frm = this.events.get_frm();
let item_row = this.item_row;
item_row.outward = 1;
item_row.type_of_transaction = "Outward";

new erpnext.SerialBatchPackageSelector(frm, item_row, (r) => {
Expand Down
1 change: 0 additions & 1 deletion erpnext/selling/sales_common.js
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,6 @@ erpnext.selling.SellingController = class SellingController extends erpnext.Tran
item.has_serial_no = r.message.has_serial_no;
item.has_batch_no = r.message.has_batch_no;
item.type_of_transaction = item.qty > 0 ? "Outward":"Inward";
item.outward = item.qty > 0 ? 1 : 0;

item.title = item.has_serial_no ?
__("Select Serial No") : __("Select Batch No");
Expand Down
2 changes: 1 addition & 1 deletion erpnext/stock/doctype/stock_entry/stock_entry.js
Original file line number Diff line number Diff line change
Expand Up @@ -1114,7 +1114,7 @@ erpnext.stock.select_batch_and_serial_no = (frm, item) => {
if (r.message && (r.message.has_batch_no || r.message.has_serial_no)) {
item.has_serial_no = r.message.has_serial_no;
item.has_batch_no = r.message.has_batch_no;
item.outward = item.s_warehouse ? 1 : 0;
item.type_of_transaction = item.s_warehouse ? "Outward" : "Inward";

frappe.require(path, function() {
new erpnext.SerialBatchPackageSelector(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,10 @@ frappe.ui.form.on("Stock Reconciliation Item", {
}
},

add_serial_batch_bundle(frm, cdt, cdn) {
erpnext.utils.pick_serial_and_batch_bundle(frm, cdt, cdn, "Inward");
}

});

erpnext.stock.StockReconciliation = class StockReconciliation extends erpnext.stock.StockController {
Expand Down
27 changes: 17 additions & 10 deletions erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,13 @@ def remove_items_with_no_change(self):

def _changed(item):
if item.current_serial_and_batch_bundle:
self.calculate_difference_amount(item, frappe._dict({}))
bundle_data = frappe.get_all(
"Serial and Batch Bundle",
filters={"name": item.current_serial_and_batch_bundle},
fields=["total_qty as qty", "avg_rate as rate"],
)[0]

self.calculate_difference_amount(item, bundle_data)
return True

item_dict = get_stock_balance_for(
Expand Down Expand Up @@ -446,16 +452,17 @@ def get_sle_for_serialized_items(self, row, sl_entries):

sl_entries.append(args)

args = self.get_sle_for_items(row)
args.update(
{
"actual_qty": row.qty,
"incoming_rate": row.valuation_rate,
"serial_and_batch_bundle": row.serial_and_batch_bundle,
}
)
if row.qty != 0:
args = self.get_sle_for_items(row)
args.update(
{
"actual_qty": row.qty,
"incoming_rate": row.valuation_rate,
"serial_and_batch_bundle": row.serial_and_batch_bundle,
}
)

sl_entries.append(args)
sl_entries.append(args)

def update_valuation_rate_for_serial_no(self):
for d in self.items:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,8 @@
{
"fieldname": "serial_no",
"fieldtype": "Long Text",
"label": "Serial No"
"label": "Serial No",
"read_only": 1
},
{
"fieldname": "column_break_11",
Expand Down Expand Up @@ -213,7 +214,7 @@
],
"istable": 1,
"links": [],
"modified": "2023-05-27 17:35:31.026852",
"modified": "2023-06-15 11:45:55.808942",
"modified_by": "Administrator",
"module": "Stock",
"name": "Stock Reconciliation Item",
Expand Down

0 comments on commit 1c2fe08

Please sign in to comment.