Yaswanth56 commited on
Commit
31f6629
·
verified ·
1 Parent(s): 08473e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -32
app.py CHANGED
@@ -22,21 +22,21 @@ except Exception as e:
22
  # Function to handle user authentication and Salesforce login
23
  def authenticate_user(email, password):
24
  if not sf:
25
- return "Salesforce connection failed. Please check credentials and try again.", None, None, gr.update(visible=False), gr.update(visible=False)
26
 
27
  try:
28
  query = f"SELECT Id, Reward_Points__c FROM Customer_Login__c WHERE Email__c = '{email}' AND Password__c = '{password}'"
29
  result = sf.query(query)
30
 
31
  if result['totalSize'] == 0:
32
- return "Invalid Login Details", None, None, gr.update(visible=False), gr.update(visible=False)
33
 
34
  customer = result['records'][0]
35
  reward_points = customer['Reward_Points__c']
36
 
37
- return f"Welcome, you have {reward_points} points. Proceed to rewards.", customer['Id'], reward_points, gr.update(visible=True), gr.update(visible=True)
38
  except Exception as e:
39
- return f"Error during authentication: {e}", None, None, gr.update(visible=False), gr.update(visible=False)
40
 
41
  # Function to handle reward points logic
42
  def handle_rewards(customer_id, bill_amount, apply_rewards):
@@ -67,37 +67,49 @@ def handle_rewards(customer_id, bill_amount, apply_rewards):
67
  # Define the Gradio interface
68
  def create_interface():
69
  with gr.Blocks() as demo:
70
- # Login section
71
- gr.Markdown("### Login to your account")
72
- email_input = gr.Textbox(label="Email", placeholder="Enter your email")
73
- password_input = gr.Textbox(label="Password", placeholder="Enter your password", type="password")
74
- login_button = gr.Button("Login")
75
- login_output = gr.Textbox(label="Status")
76
- customer_id_output = gr.Textbox(label="Customer ID", visible=False) # Hidden
77
- reward_points_output = gr.Textbox(label="Available Reward Points", visible=False) # Hidden
78
-
79
- # Reward points section (Initially hidden)
80
- reward_section = gr.Column(visible=False)
81
- gr.Markdown("### Reward Points Section", elem_id="reward_section")
82
- bill_amount_input = gr.Number(label="Enter Bill Amount", value=0)
83
- apply_rewards_checkbox = gr.Checkbox(label="Apply Reward Points", value=True)
84
- rewards_button = gr.Button("Calculate Bill")
85
- rewards_message = gr.Textbox(label="Message")
86
- final_bill_output = gr.Textbox(label="Final Bill Amount")
87
- remaining_points_output = gr.Textbox(label="Remaining Points")
88
-
89
- # Action for login button
90
- login_button.click(authenticate_user, inputs=[email_input, password_input], outputs=[login_output, customer_id_output, reward_points_output, reward_section, bill_amount_input])
91
-
92
- # Action for rewards calculation
93
- rewards_button.click(handle_rewards,
94
- inputs=[customer_id_output, bill_amount_input, apply_rewards_checkbox],
95
- outputs=[rewards_message, final_bill_output, remaining_points_output])
96
-
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  return demo
98
 
99
  # Run the Gradio interface
100
  if __name__ == "__main__":
101
  demo = create_interface()
102
  demo.launch()
103
-
 
22
  # Function to handle user authentication and Salesforce login
23
  def authenticate_user(email, password):
24
  if not sf:
25
+ return "Salesforce connection failed. Please check credentials and try again.", None, None
26
 
27
  try:
28
  query = f"SELECT Id, Reward_Points__c FROM Customer_Login__c WHERE Email__c = '{email}' AND Password__c = '{password}'"
29
  result = sf.query(query)
30
 
31
  if result['totalSize'] == 0:
32
+ return "Invalid Login Details", None, None
33
 
34
  customer = result['records'][0]
35
  reward_points = customer['Reward_Points__c']
36
 
37
+ return f"Welcome, you have {reward_points} points. Proceed to rewards.", customer['Id'], reward_points
38
  except Exception as e:
39
+ return f"Error during authentication: {e}", None, None
40
 
41
  # Function to handle reward points logic
42
  def handle_rewards(customer_id, bill_amount, apply_rewards):
 
67
  # Define the Gradio interface
68
  def create_interface():
69
  with gr.Blocks() as demo:
70
+ # Login page
71
+ with gr.Tab("Login"):
72
+ gr.Markdown("### Login to your account")
73
+ email_input = gr.Textbox(label="Email", placeholder="Enter your email")
74
+ password_input = gr.Textbox(label="Password", placeholder="Enter your password", type="password")
75
+ login_button = gr.Button("Login")
76
+ login_output = gr.Textbox(label="Status")
77
+ customer_id_output = gr.Textbox(label="Customer ID", visible=False) # Hidden
78
+ reward_points_output = gr.Textbox(label="Available Reward Points", visible=False) # Hidden
79
+
80
+ # Action for login button
81
+ login_button.click(authenticate_user, inputs=[email_input, password_input], outputs=[login_output, customer_id_output, reward_points_output])
82
+
83
+ # Reward points section (in next tab after login)
84
+ with gr.Tab("Reward Points"):
85
+ gr.Markdown("### Reward Points Section")
86
+ bill_amount_input = gr.Number(label="Enter Bill Amount", value=0)
87
+ apply_rewards_checkbox = gr.Checkbox(label="Apply Reward Points", value=True)
88
+ rewards_button = gr.Button("Calculate Bill")
89
+ rewards_message = gr.Textbox(label="Message")
90
+ final_bill_output = gr.Textbox(label="Final Bill Amount")
91
+ remaining_points_output = gr.Textbox(label="Remaining Points")
92
+
93
+ # Action for rewards calculation
94
+ rewards_button.click(handle_rewards,
95
+ inputs=[customer_id_output, bill_amount_input, apply_rewards_checkbox],
96
+ outputs=[rewards_message, final_bill_output, remaining_points_output])
97
+
98
+ # Final summary page (after calculation)
99
+ with gr.Tab("Bill Summary"):
100
+ gr.Markdown("### Bill Summary")
101
+ summary_message = gr.Textbox(label="Summary Message")
102
+ final_amount_output = gr.Textbox(label="Final Amount")
103
+ remaining_points = gr.Textbox(label="Remaining Points")
104
+
105
+ # This page will show the message and final bill when handled in rewards calculation
106
+ rewards_button.click(handle_rewards,
107
+ inputs=[customer_id_output, bill_amount_input, apply_rewards_checkbox],
108
+ outputs=[summary_message, final_amount_output, remaining_points])
109
+
110
  return demo
111
 
112
  # Run the Gradio interface
113
  if __name__ == "__main__":
114
  demo = create_interface()
115
  demo.launch()