diff --git a/.github/helper/install.sh b/.github/helper/install.sh index cb82d2ad733..876afc2a6bc 100644 --- a/.github/helper/install.sh +++ b/.github/helper/install.sh @@ -4,6 +4,8 @@ set -e cd ~ || exit +export BENCH_DISABLE_UV=1 + sudo apt update && sudo apt install redis-server libcups2-dev pip install frappe-bench diff --git a/erpnext/patches/v14_0/update_currency_exchange_settings_for_frankfurter.py b/erpnext/patches/v14_0/update_currency_exchange_settings_for_frankfurter.py index a67c5a26237..f8abf913e3b 100644 --- a/erpnext/patches/v14_0/update_currency_exchange_settings_for_frankfurter.py +++ b/erpnext/patches/v14_0/update_currency_exchange_settings_for_frankfurter.py @@ -2,6 +2,15 @@ import frappe def execute(): + try: + from erpnext.patches.v16_0.update_currency_exchange_settings_for_frankfurter import execute + + execute() + except ImportError: + update_frankfurter_app_parameter_and_result() + + +def update_frankfurter_app_parameter_and_result(): settings = frappe.get_doc("Currency Exchange Settings") if settings.service_provider != "frankfurter.app": return diff --git a/erpnext/public/js/utils/serial_no_batch_selector.js b/erpnext/public/js/utils/serial_no_batch_selector.js index ee6b5de28cd..6fd7f7f4588 100644 --- a/erpnext/public/js/utils/serial_no_batch_selector.js +++ b/erpnext/public/js/utils/serial_no_batch_selector.js @@ -381,7 +381,7 @@ erpnext.SerialNoBatchSelector = class SerialNoBatchSelector { query: "erpnext.controllers.queries.get_batch_no", }; }, - onchange: function () { + change: function () { const batch_no = this.get_value(); if (!batch_no) { this.grid_row.on_grid_fields_dict.available_qty.set_value(0); diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 58fef47d725..0d66cc8b72b 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -11,7 +11,7 @@ from frappe.cache_manager import clear_defaults_cache from frappe.contacts.address_and_contact import load_address_and_contact from frappe.custom.doctype.property_setter.property_setter import make_property_setter from frappe.desk.page.setup_wizard.setup_wizard import make_records -from frappe.utils import cint, formatdate, get_link_to_form, get_timestamp, today +from frappe.utils import add_months, cint, formatdate, get_first_day, get_link_to_form, get_timestamp, today from frappe.utils.nestedset import NestedSet, rebuild_tree from erpnext.accounts.doctype.account.account import get_account_currency @@ -614,27 +614,29 @@ def install_country_fixtures(company, country): def update_company_current_month_sales(company): - current_month_year = formatdate(today(), "MM-yyyy") + from_date = get_first_day(today()) + to_date = get_first_day(add_months(from_date, 1)) results = frappe.db.sql( - f""" + """ SELECT SUM(base_grand_total) AS total, - DATE_FORMAT(`posting_date`, '%m-%Y') AS month_year + DATE_FORMAT(posting_date, '%%m-%%Y') AS month_year FROM `tabSales Invoice` WHERE - DATE_FORMAT(`posting_date`, '%m-%Y') = '{current_month_year}' + posting_date >= %s + AND posting_date < %s AND docstatus = 1 - AND company = {frappe.db.escape(company)} + AND company = %s GROUP BY month_year - """, + """, + (from_date, to_date, company), as_dict=True, ) monthly_total = results[0]["total"] if len(results) > 0 else 0 - frappe.db.set_value("Company", company, "total_monthly_sales", monthly_total) diff --git a/pyproject.toml b/pyproject.toml index af0fbffd9ff..076ebe8f694 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,9 @@ dependencies = [ "python-youtube~=0.8.0", "taxjar~=1.9.2", "tweepy~=3.10.0", + + # Pin for compatibility, v2 has breaking changes + "urllib3>=1.26.4,<2", ] [build-system]