fix: incorrect stock after merging the items (#22526)
* fix: incorrect stock after merging items * fix: Readability fix Co-authored-by: Marica <maricadsouza221197@gmail.com>
This commit is contained in:
parent
7c50f421e1
commit
d45ff31ff0
@ -13,7 +13,7 @@ from erpnext.controllers.item_variant import (ItemVariantExistsError,
|
|||||||
from erpnext.setup.doctype.item_group.item_group import (get_parent_item_groups, invalidate_cache_for)
|
from erpnext.setup.doctype.item_group.item_group import (get_parent_item_groups, invalidate_cache_for)
|
||||||
from frappe import _, msgprint
|
from frappe import _, msgprint
|
||||||
from frappe.utils import (cint, cstr, flt, formatdate, get_timestamp, getdate,
|
from frappe.utils import (cint, cstr, flt, formatdate, get_timestamp, getdate,
|
||||||
now_datetime, random_string, strip)
|
now_datetime, random_string, strip, get_link_to_form)
|
||||||
from frappe.utils.html_utils import clean_html
|
from frappe.utils.html_utils import clean_html
|
||||||
from frappe.website.doctype.website_slideshow.website_slideshow import \
|
from frappe.website.doctype.website_slideshow.website_slideshow import \
|
||||||
get_slideshow
|
get_slideshow
|
||||||
@ -634,6 +634,9 @@ class Item(WebsiteGenerator):
|
|||||||
+ ": \n" + ", ".join([self.meta.get_label(fld) for fld in field_list]))
|
+ ": \n" + ", ".join([self.meta.get_label(fld) for fld in field_list]))
|
||||||
|
|
||||||
def after_rename(self, old_name, new_name, merge):
|
def after_rename(self, old_name, new_name, merge):
|
||||||
|
if merge:
|
||||||
|
self.validate_duplicate_item_in_stock_reconciliation(old_name, new_name)
|
||||||
|
|
||||||
if self.route:
|
if self.route:
|
||||||
invalidate_cache_for_item(self)
|
invalidate_cache_for_item(self)
|
||||||
clear_cache(self.route)
|
clear_cache(self.route)
|
||||||
@ -656,6 +659,27 @@ class Item(WebsiteGenerator):
|
|||||||
frappe.db.set_value(dt, d.name, "item_wise_tax_detail",
|
frappe.db.set_value(dt, d.name, "item_wise_tax_detail",
|
||||||
json.dumps(item_wise_tax_detail), update_modified=False)
|
json.dumps(item_wise_tax_detail), update_modified=False)
|
||||||
|
|
||||||
|
def validate_duplicate_item_in_stock_reconciliation(self, old_name, new_name):
|
||||||
|
records = frappe.db.sql(""" SELECT parent, COUNT(*) as records
|
||||||
|
FROM `tabStock Reconciliation Item`
|
||||||
|
WHERE item_code = %s and docstatus = 1
|
||||||
|
GROUP By item_code, warehouse, parent
|
||||||
|
HAVING records > 1
|
||||||
|
""", new_name, as_dict=1)
|
||||||
|
|
||||||
|
if not records: return
|
||||||
|
document = _("Stock Reconciliation") if len(records) == 1 else _("Stock Reconciliations")
|
||||||
|
|
||||||
|
msg = _("The items {0} and {1} are present in the following {2} : <br>"
|
||||||
|
.format(frappe.bold(old_name), frappe.bold(new_name), document))
|
||||||
|
|
||||||
|
msg += ', '.join([get_link_to_form("Stock Reconciliation", d.parent) for d in records]) + "<br><br>"
|
||||||
|
|
||||||
|
msg += _("Note: To merge the items, create a separate Stock Reconciliation for the old item {0}"
|
||||||
|
.format(frappe.bold(old_name)))
|
||||||
|
|
||||||
|
frappe.throw(_(msg), title=_("Merge not allowed"))
|
||||||
|
|
||||||
def set_last_purchase_rate(self, new_name):
|
def set_last_purchase_rate(self, new_name):
|
||||||
last_purchase_rate = get_last_purchase_details(new_name).get("base_net_rate", 0)
|
last_purchase_rate = get_last_purchase_details(new_name).get("base_net_rate", 0)
|
||||||
frappe.db.set_value("Item", new_name, "last_purchase_rate", last_purchase_rate)
|
frappe.db.set_value("Item", new_name, "last_purchase_rate", last_purchase_rate)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user