fix: serial and batch selector and added deprecated decorator

This commit is contained in:
Rohit Waghchaure 2023-03-24 10:14:09 +05:30
parent 440510337c
commit c1132d1e6d
8 changed files with 32 additions and 27 deletions

View File

@ -363,9 +363,10 @@ erpnext.buying.BuyingController = class BuyingController extends erpnext.Transac
new erpnext.SerialBatchPackageSelector( new erpnext.SerialBatchPackageSelector(
me.frm, item, (r) => { me.frm, item, (r) => {
if (r) { if (r) {
me.frm.refresh_fields(); frappe.model.set_value(item.doctype, item.name, {
frappe.model.set_value(cdt, cdn, "serial_and_batch_bundle": r.name,
"serial_and_batch_bundle", r.name); "qty": Math.abs(r.total_qty)
});
} }
} }
); );
@ -391,9 +392,10 @@ erpnext.buying.BuyingController = class BuyingController extends erpnext.Transac
new erpnext.SerialBatchPackageSelector( new erpnext.SerialBatchPackageSelector(
me.frm, item, (r) => { me.frm, item, (r) => {
if (r) { if (r) {
me.frm.refresh_fields(); frappe.model.set_value(item.doctype, item.name, {
frappe.model.set_value(cdt, cdn, "rejected_serial_and_batch_bundle": r.name,
"rejected_serial_and_batch_bundle", r.name); "rejected_qty": Math.abs(r.total_qty)
});
} }
} }
); );

View File

@ -2329,9 +2329,10 @@ erpnext.show_serial_batch_selector = function (frm, item_row, callback, on_close
new erpnext.SerialBatchPackageSelector(frm, item_row, (r) => { new erpnext.SerialBatchPackageSelector(frm, item_row, (r) => {
if (r) { if (r) {
frm.refresh_fields(); frappe.model.set_value(item_row.doctype, item_row.name, {
frappe.model.set_value(item_row.doctype, item_row.name, "serial_and_batch_bundle": r.name,
"serial_and_batch_bundle", r.name); "qty": Math.abs(r.total_qty)
});
} }
}); });
}); });

View File

@ -226,7 +226,6 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
based_on: based_on based_on: based_on
}, },
callback: (r) => { callback: (r) => {
debugger
if (r.message) { if (r.message) {
this.dialog.fields_dict.entries.df.data = r.message; this.dialog.fields_dict.entries.df.data = r.message;
this.dialog.fields_dict.entries.grid.refresh(); this.dialog.fields_dict.entries.grid.refresh();
@ -271,6 +270,7 @@ erpnext.SerialBatchPackageSelector = class SerialNoBatchBundleUpdate {
} }
}).then(r => { }).then(r => {
this.callback && this.callback(r.message); this.callback && this.callback(r.message);
this.frm.save();
this.dialog.hide(); this.dialog.hide();
}) })
} }

View File

@ -384,9 +384,10 @@ erpnext.PointOfSale.ItemDetails = class {
new erpnext.SerialBatchPackageSelector(frm, item_row, (r) => { new erpnext.SerialBatchPackageSelector(frm, item_row, (r) => {
if (r) { if (r) {
frm.refresh_fields(); frappe.model.set_value(item_row.doctype, item_row.name, {
frappe.model.set_value(item_row.doctype, item_row.name, "serial_and_batch_bundle": r.name,
"serial_and_batch_bundle", r.name); "qty": Math.abs(r.total_qty)
});
} }
}); });
}); });

View File

@ -444,11 +444,10 @@ erpnext.selling.SellingController = class SellingController extends erpnext.Tran
new erpnext.SerialBatchPackageSelector( new erpnext.SerialBatchPackageSelector(
me.frm, item, (r) => { me.frm, item, (r) => {
if (r) { if (r) {
me.frm.refresh_fields(); frappe.model.set_value(item.doctype, item.name, {
frappe.model.set_value(cdt, cdn, "serial_and_batch_bundle": r.name,
"serial_and_batch_bundle", r.name); "qty": Math.abs(r.total_qty)
});
me.frm.save();
} }
} }
); );

View File

@ -1,11 +1,11 @@
import frappe import frappe
from frappe.query_builder.functions import CombineDatetime, Sum from frappe.query_builder.functions import CombineDatetime, Sum
from frappe.utils import flt from frappe.utils import flt
from frappe.utils.deprecations import deprecated
class DeprecatedSerialNoValuation: class DeprecatedSerialNoValuation:
# Will be deprecated in v16 @deprecated
def calculate_stock_value_from_deprecarated_ledgers(self): def calculate_stock_value_from_deprecarated_ledgers(self):
serial_nos = list( serial_nos = list(
filter(lambda x: x not in self.serial_no_incoming_rate and x, self.get_serial_nos()) filter(lambda x: x not in self.serial_no_incoming_rate and x, self.get_serial_nos())
@ -25,6 +25,7 @@ class DeprecatedSerialNoValuation:
self.stock_value_change += stock_value_change self.stock_value_change += stock_value_change
@deprecated
def get_incoming_value_for_serial_nos(self, serial_nos): def get_incoming_value_for_serial_nos(self, serial_nos):
# get rate from serial nos within same company # get rate from serial nos within same company
all_serial_nos = frappe.get_all( all_serial_nos = frappe.get_all(
@ -66,12 +67,14 @@ class DeprecatedSerialNoValuation:
class DeprecatedBatchNoValuation: class DeprecatedBatchNoValuation:
@deprecated
def calculate_avg_rate_from_deprecarated_ledgers(self): def calculate_avg_rate_from_deprecarated_ledgers(self):
entries = self.get_sle_for_batches() entries = self.get_sle_for_batches()
for ledger in entries: for ledger in entries:
self.batch_avg_rate[ledger.batch_no] += flt(ledger.batch_value) / flt(ledger.batch_qty) self.batch_avg_rate[ledger.batch_no] += flt(ledger.batch_value) / flt(ledger.batch_qty)
self.available_qty[ledger.batch_no] += flt(ledger.batch_qty) self.available_qty[ledger.batch_no] += flt(ledger.batch_qty)
@deprecated
def get_sle_for_batches(self): def get_sle_for_batches(self):
batch_nos = list(self.batch_nos.keys()) batch_nos = list(self.batch_nos.keys())
sle = frappe.qb.DocType("Stock Ledger Entry") sle = frappe.qb.DocType("Stock Ledger Entry")

View File

@ -1116,11 +1116,10 @@ erpnext.stock.select_batch_and_serial_no = (frm, item) => {
new erpnext.SerialBatchPackageSelector( new erpnext.SerialBatchPackageSelector(
frm, item, (r) => { frm, item, (r) => {
if (r) { if (r) {
frm.refresh_fields(); frappe.model.set_value(item.doctype, item.name, {
frappe.model.set_value(item.doctype, item.name, "serial_and_batch_bundle": r.name,
"serial_and_batch_bundle", r.name); "qty": Math.abs(r.total_qty)
});
frm.save();
} }
} }
); );

View File

@ -5,6 +5,7 @@
import frappe import frappe
from frappe import _ from frappe import _
from frappe.utils import cint, flt, getdate from frappe.utils import cint, flt, getdate
from frappe.utils.deprecations import deprecated
from pypika import functions as fn from pypika import functions as fn
from erpnext.stock.doctype.warehouse.warehouse import apply_warehouse_filter from erpnext.stock.doctype.warehouse.warehouse import apply_warehouse_filter
@ -68,14 +69,13 @@ def get_columns(filters):
def get_stock_ledger_entries(filters): def get_stock_ledger_entries(filters):
# Will be deprecated in v16
entries = get_stock_ledger_entries_for_batch_no(filters) entries = get_stock_ledger_entries_for_batch_no(filters)
entries += get_stock_ledger_entries_for_batch_bundle(filters) entries += get_stock_ledger_entries_for_batch_bundle(filters)
return entries return entries
# get all details @deprecated
def get_stock_ledger_entries_for_batch_no(filters): def get_stock_ledger_entries_for_batch_no(filters):
if not filters.get("from_date"): if not filters.get("from_date"):
frappe.throw(_("'From Date' is required")) frappe.throw(_("'From Date' is required"))