Pragya Jatav commited on
Commit
bec3d62
·
1 Parent(s): ad7f3dc
__pycache__/utilities_with_panel.cpython-310.pyc CHANGED
Binary files a/__pycache__/utilities_with_panel.cpython-310.pyc and b/__pycache__/utilities_with_panel.cpython-310.pyc differ
 
pages/2_Scenario_Planner.py CHANGED
@@ -53,7 +53,16 @@ for k, v in st.session_state.items():
53
  # ======================= Functions ====================== #
54
  # ======================================================== #
55
 
56
-
 
 
 
 
 
 
 
 
 
57
  def save_ppt_file(summary_df_sorted,fig1,fig2,fig3):
58
  summary_df_sorted.index = summary_df_sorted["Channel_name"]
59
  # Initialize PowerPoint presentation
@@ -2211,48 +2220,32 @@ if auth_status == True:
2211
  start_date1,end_date1 = first_day_of_next_year(datetime.now())
2212
  # start_date1 = start_date1- relativedelta(years=1)
2213
  # end_date1 = end_date1 - relativedelta(years=1)
2214
- st.write(f"Forecasted Spends Time Period : {start_date1.strftime('%m-%d-%Y')} to {end_date1.strftime('%m-%d-%Y')}")
2215
- if end_date1 < start_date1 :
2216
- st.error("End date cannot be less than start date")
2217
- forecasted_table_df2 = pd.DataFrame()
2218
- try:
2219
-
2220
- st.write("Forecasted Spends wrt. Channels ")
2221
- output_df1, output_df2 = sf.scenario_spend_forecasting(summary_df_sorted,start_date1- relativedelta(years=1),end_date1- relativedelta(years=1))
2222
- forecasted_table_df = output_df1.copy()
2223
- forecasted_table_df.iloc[:2] = forecasted_table_df.iloc[:2].applymap(lambda x: "{:,.0f}".format(x))
2224
- forecasted_table_df.iloc[-1] = forecasted_table_df.iloc[-1].apply(lambda x: "{:.1f}%".format(x))
2225
- st.dataframe(forecasted_table_df)
2226
-
2227
- st.write("Monthly Breakdown Of Forecasted Spends wrt. Channels ")
2228
- forecasted_table_df2 = output_df2.applymap(lambda x: "{:,.0f}".format(x))
2229
- st.dataframe(forecasted_table_df2)
2230
-
2231
-
2232
- except:
2233
- st.warning("Please make sure the base data is updated")
2234
-
2235
- def save_report_forecast(forecasted_table_df,forecasted_table_df2):
2236
-
2237
- # Convert the DataFrame to an Excel file in memory
2238
- excel_file = BytesIO()
2239
- with pd.ExcelWriter(excel_file, engine='openpyxl') as writer:
2240
- forecasted_table_df.to_excel(writer, index=True, sheet_name='Forecasted Spends')
2241
- forecasted_table_df2.to_excel(writer, sheet_name='Monthly Breakdown',index = True)
2242
- # Seek to the beginning of the BytesIO buffer
2243
- excel_file.seek(0)
2244
- return excel_file
2245
-
2246
- st.subheader("Download Report")
2247
- report_name = st.text_input(
2248
- "Report name",
2249
- key="report_input",
2250
- placeholder="Report name",
2251
- label_visibility="collapsed",
2252
- )
2253
-
2254
-
2255
- st.download_button(
2256
  "Download Report",
2257
  data = save_report_forecast(output_df1,output_df2),
2258
  file_name = report_name+".xlsx",
@@ -2260,6 +2253,16 @@ if auth_status == True:
2260
  # on_click=lambda: save_report_forecast(forecasted_table_df,report_name),
2261
  disabled=len(st.session_state["report_input"]) == 0,#use_container_width=True
2262
  )
 
 
 
 
 
 
 
 
 
 
2263
 
2264
 
2265
 
 
53
  # ======================= Functions ====================== #
54
  # ======================================================== #
55
 
56
+ def save_report_forecast(forecasted_table_df,forecasted_table_df2):
57
+ # Convert the DataFrame to an Excel file in memory
58
+ excel_file = BytesIO()
59
+ with pd.ExcelWriter(excel_file, engine='openpyxl') as writer:
60
+ forecasted_table_df.to_excel(writer, index=True, sheet_name='Forecasted Spends')
61
+ forecasted_table_df2.to_excel(writer, sheet_name='Monthly Breakdown',index = True)
62
+ # Seek to the beginning of the BytesIO buffer
63
+ excel_file.seek(0)
64
+ return excel_file
65
+
66
  def save_ppt_file(summary_df_sorted,fig1,fig2,fig3):
67
  summary_df_sorted.index = summary_df_sorted["Channel_name"]
68
  # Initialize PowerPoint presentation
 
2220
  start_date1,end_date1 = first_day_of_next_year(datetime.now())
2221
  # start_date1 = start_date1- relativedelta(years=1)
2222
  # end_date1 = end_date1 - relativedelta(years=1)
2223
+ if st.button('Generate Forecasts'):
2224
+ st.write(f"Forecasted Spends Time Period : {start_date1.strftime('%m-%d-%Y')} to {end_date1.strftime('%m-%d-%Y')}")
2225
+ if end_date1 < start_date1 :
2226
+ st.error("End date cannot be less than start date")
2227
+ forecasted_table_df2 = pd.DataFrame()
2228
+ try:
2229
+
2230
+ st.write("Forecasted Spends wrt. Channels ")
2231
+ output_df1, output_df2 = sf.scenario_spend_forecasting(summary_df_sorted,start_date1- relativedelta(years=1),end_date1- relativedelta(years=1))
2232
+ forecasted_table_df = output_df1.copy()
2233
+ # forecasted_table_df.iloc[:2] = forecasted_table_df.iloc[:2].applymap(lambda x: "{:,.0f}".format(x))
2234
+ # forecasted_table_df.iloc[-1] = forecasted_table_df.iloc[-1].apply(lambda x: "{:.1f}%".format(x))
2235
+ st.dataframe(forecasted_table_df)
2236
+
2237
+ st.write("Monthly Breakdown Of Forecasted Spends wrt. Channels ")
2238
+ # forecasted_table_df2 = output_df2.applymap(lambda x: "{:,.0f}".format(x))
2239
+ st.dataframe(output_df2)
2240
+
2241
+ st.subheader("Download Report")
2242
+ report_name = st.text_input(
2243
+ "Report name",
2244
+ key="report_input",
2245
+ placeholder="Report name",
2246
+ label_visibility="collapsed",
2247
+ )
2248
+ st.download_button(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2249
  "Download Report",
2250
  data = save_report_forecast(output_df1,output_df2),
2251
  file_name = report_name+".xlsx",
 
2253
  # on_click=lambda: save_report_forecast(forecasted_table_df,report_name),
2254
  disabled=len(st.session_state["report_input"]) == 0,#use_container_width=True
2255
  )
2256
+
2257
+ except:
2258
+ st.warning("Please make sure the base data is updated")
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
 
2267
 
2268
 
summary_df.pkl CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:576e0d173ca100c08b5b592f57ac43bc52a32ffaa46cd1b542e5cbe1690f045c
3
  size 1822
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3903995f3ab1eb9b34db90db9d8177955cff0a37af45969c97543cc82909a170
3
  size 1822