IAMTFRMZA commited on
Commit
6259813
Β·
verified Β·
1 Parent(s): de7d48b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -5
app.py CHANGED
@@ -29,7 +29,8 @@ def load_tab(sheet_name):
29
  def load_field_sales():
30
  df = load_tab("Field Sales")
31
  if df.empty:
32
- return pd.DataFrame(columns=["Date", "Rep", "Order Value", "Order Received", "Current/Prospect Custor", "Customer Type & Status", "DateStr"])
 
33
  df['Date'] = pd.to_datetime(df.get("Date", datetime.today()), errors='coerce')
34
  df = df.dropna(subset=["Date"])
35
  df['DateStr'] = df['Date'].dt.date.astype(str)
@@ -45,12 +46,13 @@ def generate_summary(date_str):
45
  df = load_field_sales()
46
  if df.empty:
47
  return pd.DataFrame([["No data"]], columns=["Message"]), pd.DataFrame(), pd.DataFrame()
48
-
49
  all_reps = sorted(df['Rep'].dropna().unique())
 
50
  day_df = df[df['DateStr'] == date_str]
51
  total_visits = day_df.groupby("Rep").size().reset_index(name="Total Visits")
52
 
53
- col = "Current/Prospect Custor"
54
  if col not in df.columns:
55
  df[col] = ""
56
 
@@ -72,6 +74,7 @@ def get_order_summary(date_str):
72
  if df.empty:
73
  return pd.DataFrame([["No data"]], columns=["Message"])
74
 
 
75
  day_df = df[df['DateStr'] == date_str]
76
  if "Order Received" not in df.columns:
77
  df["Order Received"] = ""
@@ -105,7 +108,6 @@ def get_telesales_summary():
105
 
106
  df["Date"] = pd.to_datetime(df.get("Date", datetime.today()), errors='coerce')
107
  df["DateStr"] = df["Date"].dt.date.astype(str)
108
-
109
  grouped = df.groupby(["Rep Email", "DateStr"]).size().reset_index(name="Calls Made")
110
  return grouped.rename(columns={"Rep Email": "Rep"})
111
 
@@ -200,6 +202,12 @@ with gr.Blocks() as app:
200
  users_refresh = gr.Button("πŸ”„ Refresh Users")
201
  users_refresh.click(fn=get_users, outputs=users_table)
202
 
 
 
 
 
 
 
203
  def do_login(user, pw):
204
  if VALID_USERS.get(user) == pw:
205
  return gr.update(visible=False), gr.update(visible=True), ""
@@ -208,4 +216,4 @@ with gr.Blocks() as app:
208
 
209
  login_btn.click(fn=do_login, inputs=[email, password], outputs=[login_ui, main_ui, login_msg])
210
 
211
- app.launch()
 
29
  def load_field_sales():
30
  df = load_tab("Field Sales")
31
  if df.empty:
32
+ return pd.DataFrame(columns=["Date", "Rep", "Order Value", "Order Received", "Current/Prospect Customer", "Customer Type & Status", "DateStr"])
33
+
34
  df['Date'] = pd.to_datetime(df.get("Date", datetime.today()), errors='coerce')
35
  df = df.dropna(subset=["Date"])
36
  df['DateStr'] = df['Date'].dt.date.astype(str)
 
46
  df = load_field_sales()
47
  if df.empty:
48
  return pd.DataFrame([["No data"]], columns=["Message"]), pd.DataFrame(), pd.DataFrame()
49
+
50
  all_reps = sorted(df['Rep'].dropna().unique())
51
+ date_str = date_str.strip()
52
  day_df = df[df['DateStr'] == date_str]
53
  total_visits = day_df.groupby("Rep").size().reset_index(name="Total Visits")
54
 
55
+ col = "Current/Prospect Customer"
56
  if col not in df.columns:
57
  df[col] = ""
58
 
 
74
  if df.empty:
75
  return pd.DataFrame([["No data"]], columns=["Message"])
76
 
77
+ date_str = date_str.strip()
78
  day_df = df[df['DateStr'] == date_str]
79
  if "Order Received" not in df.columns:
80
  df["Order Received"] = ""
 
108
 
109
  df["Date"] = pd.to_datetime(df.get("Date", datetime.today()), errors='coerce')
110
  df["DateStr"] = df["Date"].dt.date.astype(str)
 
111
  grouped = df.groupby(["Rep Email", "DateStr"]).size().reset_index(name="Calls Made")
112
  return grouped.rename(columns={"Rep Email": "Rep"})
113
 
 
202
  users_refresh = gr.Button("πŸ”„ Refresh Users")
203
  users_refresh.click(fn=get_users, outputs=users_table)
204
 
205
+ # --- Field Sales Raw Data ---
206
+ with gr.Tab("🧾 Field Sales Raw Data"):
207
+ field_df = gr.Dataframe(value=load_field_sales, label="Full Field Sales Data", interactive=False)
208
+ field_btn = gr.Button("πŸ”„ Refresh Field Sales")
209
+ field_btn.click(fn=load_field_sales, outputs=field_df)
210
+
211
  def do_login(user, pw):
212
  if VALID_USERS.get(user) == pw:
213
  return gr.update(visible=False), gr.update(visible=True), ""
 
216
 
217
  login_btn.click(fn=do_login, inputs=[email, password], outputs=[login_ui, main_ui, login_msg])
218
 
219
+ app.launch()