From b07940951ccc8108967110dc62c02629be10a370 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Fri, 19 Jan 2024 22:48:38 +0530 Subject: [PATCH] feat: billing page --- frontend/src/pages/Billing.vue | 182 +++++++++++++++++++++++++++++++++ frontend/src/router.js | 6 ++ lms/lms/api.py | 37 +++++++ lms/lms/utils.py | 3 + 4 files changed, 228 insertions(+) create mode 100644 frontend/src/pages/Billing.vue diff --git a/frontend/src/pages/Billing.vue b/frontend/src/pages/Billing.vue new file mode 100644 index 000000000..ae05cbae2 --- /dev/null +++ b/frontend/src/pages/Billing.vue @@ -0,0 +1,182 @@ + + diff --git a/frontend/src/router.js b/frontend/src/router.js index 6f3e30c68..2a66db342 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -43,6 +43,12 @@ const routes = [ component: () => import('@/pages/Batch.vue'), props: true, }, + { + path: '/billing/:type/:name', + name: 'Billing', + component: () => import('@/pages/Billing.vue'), + props: true, + }, { path: '/statistics', name: 'Statistics', diff --git a/lms/lms/api.py b/lms/lms/api.py index c681c9005..e09f0848d 100644 --- a/lms/lms/api.py +++ b/lms/lms/api.py @@ -3,6 +3,7 @@ import frappe from frappe.translate import get_all_translations +from frappe import _ @frappe.whitelist() @@ -163,3 +164,39 @@ def get_translations(): else: language = frappe.db.get_single_value("System Settings", "language") return get_all_translations(language) + + +@frappe.whitelist() +def validate_billing_access(type, name): + access = True + message = "" + + if frappe.session.user == "Guest": + access = False + message = _("Please login to continue with payment.") + + if type not in ["course", "batch"]: + access = False + message = _("Module is incorrect.") + + if not frappe.db.exists(type, name): + access = False + message = _("Module Name is incorrect or does not exist.") + + if type == "course": + membership = frappe.db.exists( + "LMS Enrollment", {"member": frappe.session.user, "course": name} + ) + if membership: + access = False + message = _("You are already enrolled for this course.") + + else: + membership = frappe.db.exists( + "Batch Student", {"student": frappe.session.user, "parent": name} + ) + if membership: + access = False + message = _("You are already enrolled for this batch.") + + return {"access": access, "message": message} diff --git a/lms/lms/utils.py b/lms/lms/utils.py index fd4b27e51..92c7e49fb 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -1192,6 +1192,9 @@ def get_course_details(course): "published", "upcoming", "status", + "paid_course", + "course_price", + "currency", ], as_dict=1, )