Skip to content

Commit

Permalink
fix: default clear repost logs
Browse files Browse the repository at this point in the history
(cherry picked from commit 5949a7e)
  • Loading branch information
rohitwaghchaure authored and mergify[bot] committed Dec 2, 2022
1 parent a05bf0a commit e039a14
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions erpnext/patches.txt
Expand Up @@ -319,3 +319,4 @@ erpnext.patches.v14_0.create_accounting_dimensions_for_asset_capitalization
erpnext.patches.v13_0.update_schedule_type_in_loans
erpnext.patches.v14_0.update_partial_tds_fields
erpnext.patches.v14_0.create_incoterms_and_migrate_shipment
erpnext.patches.v14_0.setup_clear_repost_logs
8 changes: 8 additions & 0 deletions erpnext/patches/v14_0/setup_clear_repost_logs.py
@@ -0,0 +1,8 @@
# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and Contributors
# License: MIT. See LICENSE

from erpnext.setup.install import setup_log_settings


def execute():
setup_log_settings()
8 changes: 8 additions & 0 deletions erpnext/setup/install.py
Expand Up @@ -30,6 +30,7 @@ def after_install():
add_company_to_session_defaults()
add_standard_navbar_items()
add_app_name()
setup_log_settings()
frappe.db.commit()


Expand Down Expand Up @@ -197,3 +198,10 @@ def add_standard_navbar_items():

def add_app_name():
frappe.db.set_value("System Settings", None, "app_name", "ERPNext")


def setup_log_settings():
log_settings = frappe.get_single("Log Settings")
log_settings.append("logs_to_clear", {"ref_doctype": "Repost Item Valuation", "days": 60})

log_settings.save(ignore_permissions=True)
Expand Up @@ -5,6 +5,8 @@
from frappe import _
from frappe.exceptions import QueryDeadlockError, QueryTimeoutError
from frappe.model.document import Document
from frappe.query_builder import DocType, Interval
from frappe.query_builder.functions import Now
from frappe.utils import cint, get_link_to_form, get_weekday, getdate, now, nowtime
from frappe.utils.user import get_users_with_role
from rq.timeouts import JobTimeoutException
Expand All @@ -21,6 +23,18 @@


class RepostItemValuation(Document):
@staticmethod
def clear_old_logs(days=None):
days = days or 90
table = DocType("Repost Item Valuation")
frappe.db.delete(
table,
filters=(
(table.modified < (Now() - Interval(days=days)))
& (table.status.isin(["Completed", "Skipped"]))
),
)

def validate(self):
self.set_status(write=False)
self.reset_field_values()
Expand Down
Expand Up @@ -86,6 +86,31 @@ def test_repost_time_slot(self):
msg=f"Exepcted false from : {case}",
)

def test_clear_old_logs(self):
# create 10 logs
for i in range(1, 20):
frappe.get_doc(
doctype="Repost Item Valuation",
item_code="_Test Item",
warehouse="_Test Warehouse - _TC",
based_on="Item and Warehouse",
creation=add_to_date(today(), days=-i * 10),
modified=add_to_date(today(), days=-i * 10),
posting_date=nowdate(),
status="Skipped",
posting_time="00:01:00",
).insert(ignore_permissions=True)

logs = frappe.get_all("Repost Item Valuation", filters={"status": "Skipped"})
self.assertTrue(len(logs) > 10)

from erpnext.stock.doctype.repost_item_valuation.repost_item_valuation import RepostItemValuation

RepostItemValuation.clear_old_logs(days=1)

logs = frappe.get_all("Repost Item Valuation", filters={"status": "Skipped"})
self.assertTrue(len(logs) == 0)

def test_create_item_wise_repost_item_valuation_entries(self):
pr = make_purchase_receipt(
company="_Test Company with perpetual inventory",
Expand Down

0 comments on commit e039a14

Please sign in to comment.