From 63362b957c47ef60b9f766b0bcfa5315cb51ca45 Mon Sep 17 00:00:00 2001 From: NEERAJRAVIPRATAP Date: Mon, 8 Jan 2024 21:58:50 +0400 Subject: [PATCH 1/3] Final Changes --- .../gym_member_name/gym_member_name.js | 2 +- .../gym_member_name/gym_member_name.py | 45 ++++++++++++------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js index 09f24b8..65e9717 100644 --- a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js +++ b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js @@ -3,7 +3,7 @@ frappe.ui.form.on('Gym Member Name', { validate: function (frm) { - if (frm.doc.last_name === null) { + if (frm.doc.last_name === undefined || frm.doc.last_name === null) { frm.set_value("full_name", frm.doc.first_name) } else { diff --git a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py index 1b76f1b..65cfa85 100644 --- a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py +++ b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py @@ -3,25 +3,36 @@ import frappe from frappe.model.document import Document - class GymMemberName(Document): - # @frappe.whitelist() - # def set_details(self): - def on_submit(doc,method=None): - gym_trainer=frappe.new_doc("Gym Trainer") - gym_trainer.append("member_details", - { - "member_name":doc.name, - "member_full_name":doc.full_name, - "member_email":doc.email_address, - "member_phone":doc.contact - }) + + + + def on_submit(doc, method=None): + gym_trainer = frappe.new_doc("Gym Trainer") + gym_trainer.append("member_details", { + "member_name": doc.name, + "member_full_name": doc.full_name, + "member_email": doc.email_address, + "member_phone": doc.contact + }) gym_trainer.save() - # a=frappe.get_doc("Gym Member Name",doc.name) - # print(gym_trainer.name) - # a.gym_trainer=gym_trainer.name - # print(a,"========") - # a.save() + + + send_email_confirmation(doc) + +def send_email_confirmation(member_doc): + recipients = [member_doc.email_address] + + message = """Dear {member_name},We received your details. Now you are Member of Our Gym.""" + + frappe.sendmail( + recipients=recipients, + subject=frappe._('Confirmation Message'), + message=message.format(member_name=member_doc.full_name), + ) + + + From 85ee7660d7ccdd342a0f1f6c379b2a1deb739a2a Mon Sep 17 00:00:00 2001 From: NEERAJRAVIPRATAP Date: Mon, 29 Jan 2024 12:45:15 +0400 Subject: [PATCH 2/3] Add Dialog box and some functionalities --- .../gym_member_name/gym_member_name.js | 70 +++++++++++-------- .../gym_member_name/gym_member_name.py | 22 +++++- 2 files changed, 60 insertions(+), 32 deletions(-) diff --git a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js index c4b171b..414bd48 100644 --- a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js +++ b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js @@ -1,38 +1,50 @@ frappe.ui.form.on('Gym Member Name', { - validate: function (frm) { if (frm.doc.last_name === undefined || frm.doc.last_name === null) { - frm.set_value("full_name", frm.doc.first_name) - } - else { + frm.set_value("full_name", frm.doc.first_name); + } else { frm.set_value("full_name", frm.doc.first_name + " " + frm.doc.last_name); } - }, - /*refersh: function (frm) { - if (cur_frm.doc.__islocal === 0 && cur_frm.doc.__islocal === undefined) - { - frm.add_custom_button(__('Assign Class'), function () { - - frappe.set_route("group-class") - }); - } - } - - - - - });*/ - refresh: function (frm) { - console.log("after_save function called"); - if (!frm.__islocal) { - console.log("Record is not local"); - frm.add_custom_button(__('Assign Class'), function () { - console.log("Assign Class button clicked"); - frappe.set_route("group-class"); - }); + refresh: function (frm) { + if (!frm.__islocal) { + frm.add_custom_button(__('Assign Class'), function () { + let d = new frappe.ui.Dialog({ + title: 'Assign Class', + fields: [ + { + label: 'Link to Assign Class', + fieldname: 'assign_class', + fieldtype: 'Link', + options: 'Group Class' + }, + ], + size: 'small', + primary_action_label: 'Submit', + primary_action(values) { + fetch_data(frm); + d.hide(); + } + }); + + d.show(); + }); + } } -} +}); -}); \ No newline at end of file + +function fetch_data(frm) { + frappe.call({ + method: 'gym_management_system.gym_management_system.doctype.gym_member_name.gym_member_name.fetch_and_set_data', + args: { + self: frm.doc.name + }, + callback: function(response) { + console.log(response.message[0]) + + } + }); + +} diff --git a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py index b775049..d11f15f 100644 --- a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py +++ b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.py @@ -30,9 +30,25 @@ def send_email_confirmation(member_doc): subject=frappe._('Confirmation Message'), message=message.format(member_name=member_doc.full_name), ) -'''from frappe import _ +@frappe.whitelist() +def fetch_and_set_data(): + source_data = frappe.get_list('Group Class', + fields=[ 'member_trainer', + 'class_type', + 'start_time', + 'end_time']) + return source_data -def on_update(doc, method): + + + + + + + + + +'''def on_update(doc, method): # Fetch data from the gym_member_name record member_name = doc.name age = doc.age @@ -49,7 +65,7 @@ def update_gym_trainer(member_name, age, email, contact): for trainer in trainers: trainer_doc = frappe.get_doc('Gym Trainer', trainer.name) # Update the child table records - for child in trainer_doc.get('child_table_field'): + for child in trainer_doc.get('member_details'): if child.member_name == member_name: child.age = age child.email = email From 51d22244a75e7bd87329ef0907af54130dc0a958 Mon Sep 17 00:00:00 2001 From: NEERAJRAVIPRATAP Date: Mon, 29 Jan 2024 13:20:44 +0400 Subject: [PATCH 3/3] Updated Assign class --- .../doctype/gym_member_name/gym_member_name.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js index 414bd48..2bd7c15 100644 --- a/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js +++ b/gym_management_system/gym_management_system/doctype/gym_member_name/gym_member_name.js @@ -38,13 +38,22 @@ frappe.ui.form.on('Gym Member Name', { function fetch_data(frm) { frappe.call({ method: 'gym_management_system.gym_management_system.doctype.gym_member_name.gym_member_name.fetch_and_set_data', + args: { self: frm.doc.name }, - callback: function(response) { - console.log(response.message[0]) + callback: function (response) { + if (response.message && response.message.length > 0) { + console.log(response.message[0]); + var data = response.message[0]; + var start_time = data.start_time; + var end_time = data.end_time; + var class_type = data.class_type; + frappe.msgprint(`Dear Member ${frm.doc.full_name}, Your class type is ${class_type}. It will start on ${start_time} and end on ${end_time}`); + } else { + console.error("Response message is empty or not in the expected format."); + } } }); - -} +} \ No newline at end of file