diff --git a/suppliers_portal/hooks.py b/suppliers_portal/hooks.py index 229520c..099d4a4 100644 --- a/suppliers_portal/hooks.py +++ b/suppliers_portal/hooks.py @@ -148,23 +148,21 @@ app_license = "mit" # Scheduled Tasks # --------------- -# scheduler_events = { -# "all": [ -# "suppliers_portal.tasks.all" -# ], -# "daily": [ -# "suppliers_portal.tasks.daily" -# ], -# "hourly": [ -# "suppliers_portal.tasks.hourly" -# ], -# "weekly": [ -# "suppliers_portal.tasks.weekly" -# ], -# "monthly": [ -# "suppliers_portal.tasks.monthly" -# ], -# } +scheduler_events = { + # "all": [ + # "suppliers_portal.tasks.all" + # ], + "daily": ["suppliers_portal.utils.daily_invoice_status_update"], + # "hourly": [ + # "suppliers_portal.tasks.hourly" + # ], + # "weekly": [ + # "suppliers_portal.tasks.weekly" + # ], + # "monthly": [ + # "suppliers_portal.tasks.monthly" + # ], +} # Testing # ------- diff --git a/suppliers_portal/patches/oct_12.py b/suppliers_portal/patches/oct_12.py new file mode 100644 index 0000000..7096339 --- /dev/null +++ b/suppliers_portal/patches/oct_12.py @@ -0,0 +1,21 @@ +import frappe + + +def execute(): + suppliers = frappe.get_list("Supplier", pluck="name") + + for supplier in suppliers: + supplier_doc = frappe.get_doc("Supplier", supplier) + invoices = frappe.get_list( + "Invoices", filters={"supplier": supplier}, pluck="name" + ) + if len(invoices) == 0: + continue + + supplier_doc.set("invoices", []) + for invoice in invoices: + supplier_doc.append("invoices", {"invoice_number": invoice}) + + supplier_doc.save() + + frappe.db.commit() diff --git a/suppliers_portal/utils.py b/suppliers_portal/utils.py index 7a82d40..57845e5 100644 --- a/suppliers_portal/utils.py +++ b/suppliers_portal/utils.py @@ -1,6 +1,16 @@ -def before_request(request, method, url, headers): - print("Before Request") - print(request) - print(method) - print(url) - print(headers) +import frappe + + +def daily_invoice_status_update(): + invoices = frappe.get_all( + "Invoices", + filters={ + "status": ["in", ["Unpaid", "Partially Paid", "Partially Paid and Overdue"]] + }, + fields=["name"], + ) + for invoice in invoices: + invoice_doc = frappe.get_doc("Invoices", invoice.name) + invoice_doc.update_status() + invoice_doc.save() + frappe.db.commit()