diff --git a/.github/helper/install.sh b/.github/helper/install.sh index 0c71b41a7c..48337cee64 100644 --- a/.github/helper/install.sh +++ b/.github/helper/install.sh @@ -8,8 +8,9 @@ sudo apt update && sudo apt install redis-server libcups2-dev pip install frappe-bench +githubbranch=${GITHUB_BASE_REF:-${GITHUB_REF##*/}} frappeuser=${FRAPPE_USER:-"frappe"} -frappebranch=${FRAPPE_BRANCH:-${GITHUB_BASE_REF:-${GITHUB_REF##*/}}} +frappebranch=${FRAPPE_BRANCH:-$githubbranch} git clone "https://github.com/${frappeuser}/frappe" --branch "${frappebranch}" --depth 1 bench init --skip-assets --frappe-path ~/frappe --python "$(which python)" frappe-bench @@ -60,7 +61,7 @@ sed -i 's/schedule:/# schedule:/g' Procfile sed -i 's/socketio:/# socketio:/g' Procfile sed -i 's/redis_socketio:/# redis_socketio:/g' Procfile -bench get-app payments +bench get-app payments --branch ${githubbranch%"-hotfix"} bench get-app erpnext "${GITHUB_WORKSPACE}" if [ "$TYPE" == "server" ]; then bench setup requirements --dev; fi diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 9a152638f9..2c9772d12a 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -828,8 +828,8 @@ class TestDepreciationMethods(AssetSetup): expected_schedules = [ ["2030-12-31", 28630.14, 28630.14], ["2031-12-31", 35684.93, 64315.07], - ["2032-12-31", 17842.47, 82157.54], - ["2033-06-06", 5342.46, 87500.0], + ["2032-12-31", 17842.46, 82157.53], + ["2033-06-06", 5342.47, 87500.0], ] schedules = [ diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py index b75fbcbeb3..5912329846 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py @@ -140,8 +140,8 @@ class AssetDepreciationSchedule(Document): self.asset = asset_doc.name self.finance_book = row.finance_book self.finance_book_id = row.idx - self.opening_accumulated_depreciation = asset_doc.opening_accumulated_depreciation - self.number_of_depreciations_booked = asset_doc.number_of_depreciations_booked + self.opening_accumulated_depreciation = asset_doc.opening_accumulated_depreciation or 0 + self.number_of_depreciations_booked = asset_doc.number_of_depreciations_booked or 0 self.gross_purchase_amount = asset_doc.gross_purchase_amount self.depreciation_method = row.depreciation_method self.total_number_of_depreciations = row.total_number_of_depreciations @@ -185,14 +185,14 @@ class AssetDepreciationSchedule(Document): ): asset_doc.validate_asset_finance_books(row) - value_after_depreciation = _get_value_after_depreciation_for_making_schedule(asset_doc, row) + value_after_depreciation = self._get_value_after_depreciation_for_making_schedule(asset_doc, row) row.value_after_depreciation = value_after_depreciation if update_asset_finance_book_row: row.db_update() number_of_pending_depreciations = cint(row.total_number_of_depreciations) - cint( - asset_doc.number_of_depreciations_booked + self.number_of_depreciations_booked ) has_pro_rata = asset_doc.check_is_pro_rata(row) @@ -235,13 +235,12 @@ class AssetDepreciationSchedule(Document): self.add_depr_schedule_row( date_of_disposal, depreciation_amount, - row.depreciation_method, ) break # For first row - if has_pro_rata and not asset_doc.opening_accumulated_depreciation and n == 0: + if has_pro_rata and not self.opening_accumulated_depreciation and n == 0: from_date = add_days( asset_doc.available_for_use_date, -1 ) # needed to calc depr amount for available_for_use_date too @@ -260,7 +259,7 @@ class AssetDepreciationSchedule(Document): # In case of increase_in_asset_life, the asset.to_date is already set on asset_repair submission asset_doc.to_date = add_months( asset_doc.available_for_use_date, - (n + asset_doc.number_of_depreciations_booked) * cint(row.frequency_of_depreciation), + (n + self.number_of_depreciations_booked) * cint(row.frequency_of_depreciation), ) depreciation_amount_without_pro_rata = depreciation_amount @@ -298,7 +297,6 @@ class AssetDepreciationSchedule(Document): self.add_depr_schedule_row( schedule_date, depreciation_amount, - row.depreciation_method, ) # to ensure that final accumulated depreciation amount is accurate @@ -325,14 +323,12 @@ class AssetDepreciationSchedule(Document): self, schedule_date, depreciation_amount, - depreciation_method, ): self.append( "depreciation_schedule", { "schedule_date": schedule_date, "depreciation_amount": depreciation_amount, - "depreciation_method": depreciation_method, }, ) @@ -346,7 +342,7 @@ class AssetDepreciationSchedule(Document): straight_line_idx = [ d.idx for d in self.get("depreciation_schedule") - if d.depreciation_method == "Straight Line" or d.depreciation_method == "Manual" + if self.depreciation_method == "Straight Line" or self.depreciation_method == "Manual" ] accumulated_depreciation = flt(self.opening_accumulated_depreciation) @@ -377,16 +373,15 @@ class AssetDepreciationSchedule(Document): accumulated_depreciation, d.precision("accumulated_depreciation_amount") ) + def _get_value_after_depreciation_for_making_schedule(self, asset_doc, fb_row): + if asset_doc.docstatus == 1 and fb_row.value_after_depreciation: + value_after_depreciation = flt(fb_row.value_after_depreciation) + else: + value_after_depreciation = flt(self.gross_purchase_amount) - flt( + self.opening_accumulated_depreciation + ) -def _get_value_after_depreciation_for_making_schedule(asset_doc, fb_row): - if asset_doc.docstatus == 1 and fb_row.value_after_depreciation: - value_after_depreciation = flt(fb_row.value_after_depreciation) - else: - value_after_depreciation = flt(asset_doc.gross_purchase_amount) - flt( - asset_doc.opening_accumulated_depreciation - ) - - return value_after_depreciation + return value_after_depreciation def make_draft_asset_depr_schedules_if_not_present(asset_doc): diff --git a/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json b/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json index 882c4bf00b..abe295c680 100644 --- a/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json +++ b/erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json @@ -12,8 +12,7 @@ "column_break_3", "accumulated_depreciation_amount", "journal_entry", - "make_depreciation_entry", - "depreciation_method" + "make_depreciation_entry" ], "fields": [ { @@ -58,20 +57,11 @@ "fieldname": "make_depreciation_entry", "fieldtype": "Button", "label": "Make Depreciation Entry" - }, - { - "fieldname": "depreciation_method", - "fieldtype": "Select", - "hidden": 1, - "label": "Depreciation Method", - "options": "\nStraight Line\nDouble Declining Balance\nWritten Down Value\nManual", - "print_hide": 1, - "read_only": 1 } ], "istable": 1, "links": [], - "modified": "2022-12-06 20:35:50.264281", + "modified": "2023-03-13 23:17:15.849950", "modified_by": "Administrator", "module": "Assets", "name": "Depreciation Schedule", diff --git a/erpnext/e_commerce/doctype/website_item/test_website_item.py b/erpnext/e_commerce/doctype/website_item/test_website_item.py index bbe04d5514..e41c9da594 100644 --- a/erpnext/e_commerce/doctype/website_item/test_website_item.py +++ b/erpnext/e_commerce/doctype/website_item/test_website_item.py @@ -226,11 +226,11 @@ class TestWebsiteItem(unittest.TestCase): self.assertTrue(bool(data.product_info["price"])) price_object = data.product_info["price"] - self.assertEqual(price_object.get("discount_percent"), 25) + self.assertEqual(price_object.get("discount_percent"), 25.0) self.assertEqual(price_object.get("price_list_rate"), 750) self.assertEqual(price_object.get("formatted_mrp"), "₹ 1,000.00") self.assertEqual(price_object.get("formatted_price"), "₹ 750.00") - self.assertEqual(price_object.get("formatted_discount_percent"), "25%") + self.assertEqual(price_object.get("formatted_discount_percent"), "25.0%") # switch to admin and disable show price frappe.set_user("Administrator")