diff --git a/erpnext/patches.txt b/erpnext/patches.txt index bb76f948f3a..319691aa93b 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -392,4 +392,8 @@ erpnext.patches.v15_0.migrate_checkbox_to_select_for_reconciliation_effect erpnext.patches.v15_0.sync_auto_reconcile_config execute:frappe.db.set_single_value("Accounts Settings", "exchange_gain_loss_posting_date", "Payment") erpnext.patches.v14_0.disable_add_row_in_gross_profit +<<<<<<< HEAD erpnext.patches.v15_0.set_difference_amount_in_asset_value_adjustment +======= +erpnext.patches.v14_0.update_posting_datetime +>>>>>>> ac9e5c0163 (fix: millisecond issue for posting datetime) diff --git a/erpnext/patches/v14_0/update_posting_datetime.py b/erpnext/patches/v14_0/update_posting_datetime.py new file mode 100644 index 00000000000..cb28193b74b --- /dev/null +++ b/erpnext/patches/v14_0/update_posting_datetime.py @@ -0,0 +1,10 @@ +import frappe + + +def execute(): + frappe.db.sql( + """ + UPDATE `tabStock Ledger Entry` + SET posting_datetime = timestamp(posting_date, posting_time) + """ + ) diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py index 6369562a62d..9ee836fe9b5 100644 --- a/erpnext/stock/utils.py +++ b/erpnext/stock/utils.py @@ -663,4 +663,31 @@ def get_combine_datetime(posting_date, posting_time): if isinstance(posting_time, datetime.timedelta): posting_time = (datetime.datetime.min + posting_time).time() +<<<<<<< HEAD return datetime.datetime.combine(posting_date, posting_time).replace(microsecond=0) +======= + return datetime.datetime.combine(posting_date, posting_time) + + +@frappe.request_cache +def get_default_stock_uom() -> str | None: + if default_uom := frappe.get_cached_value("Stock Settings", None, "stock_uom"): + return default_uom + + acceptable_default_uoms = dict.fromkeys( + ( + "Nos", + # In the past, we used to create translated UOMs during initial setup. + # These could either be in the system language... + _("Nos", frappe.get_system_settings("language")), + # or the current user's language + _("Nos"), + ) + ) + + available_default_uoms = frappe.db.get_values( + "UOM", {"name": ("in", tuple(acceptable_default_uoms))}, pluck="name" + ) + + return next((uom for uom in acceptable_default_uoms if uom in available_default_uoms), None) +>>>>>>> ac9e5c0163 (fix: millisecond issue for posting datetime)