Update app.py
Browse files
app.py
CHANGED
|
@@ -12,7 +12,7 @@ def main():
|
|
| 12 |
|
| 13 |
if api_key:
|
| 14 |
# Download BOE rates
|
| 15 |
-
|
| 16 |
|
| 17 |
# Allow user to upload Excel sheet
|
| 18 |
uploaded_file = st.file_uploader("Upload Excel file", type=["xlsx", "xls"])
|
|
@@ -39,15 +39,8 @@ def main():
|
|
| 39 |
'amount': amounts
|
| 40 |
})
|
| 41 |
|
| 42 |
-
#
|
| 43 |
-
|
| 44 |
-
# Get the latest Bank of England base rate
|
| 45 |
-
latest_base_rate = boe_rates_df['Bank Rate'].iloc[-1]
|
| 46 |
-
# Calculate late interest with adjusted rate
|
| 47 |
-
df_with_interest = calculate_late_interest(df_calculate, late_interest_rate, latest_base_rate)
|
| 48 |
-
else:
|
| 49 |
-
# Calculate late interest using the specified late interest rate
|
| 50 |
-
df_with_interest = calculate_late_interest(df_calculate, late_interest_rate)
|
| 51 |
|
| 52 |
# Display calculated late interest
|
| 53 |
total_late_interest = df_with_interest['late_interest'].sum()
|
|
@@ -84,17 +77,10 @@ def main():
|
|
| 84 |
st.warning("Please enter your OpenAI API key.")
|
| 85 |
|
| 86 |
# Function to calculate late interest
|
| 87 |
-
def calculate_late_interest(data, late_interest_rate
|
| 88 |
-
#
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
data['late_days'] = (data['payment_date'] - data['due_date']).dt.days.clip(lower=0)
|
| 92 |
-
data['late_interest'] = data['late_days'] * data['amount'] * ((late_interest_rate + base_rate) / 100)
|
| 93 |
-
else:
|
| 94 |
-
# Calculate late days and late interest using the provided late interest rate
|
| 95 |
-
data['late_days'] = (data['payment_date'] - data['due_date']).dt.days.clip(lower=0)
|
| 96 |
-
data['late_interest'] = data['late_days'] * data['amount'] * (late_interest_rate / 100)
|
| 97 |
-
|
| 98 |
return data
|
| 99 |
|
| 100 |
# Function to analyze Excel sheet and extract relevant information
|
|
@@ -125,13 +111,10 @@ def download_boe_rates():
|
|
| 125 |
df = pd.read_html(response.text)[0]
|
| 126 |
df.to_csv('boe_rates.csv', index=False)
|
| 127 |
st.success("Bank of England rates downloaded successfully.")
|
| 128 |
-
return df
|
| 129 |
else:
|
| 130 |
st.error("Failed to retrieve data from the Bank of England website.")
|
| 131 |
-
return None
|
| 132 |
except requests.RequestException as e:
|
| 133 |
st.error(f"Failed to download rates: {e}")
|
| 134 |
-
return None
|
| 135 |
|
| 136 |
if __name__ == "__main__":
|
| 137 |
main()
|
|
|
|
| 12 |
|
| 13 |
if api_key:
|
| 14 |
# Download BOE rates
|
| 15 |
+
download_boe_rates()
|
| 16 |
|
| 17 |
# Allow user to upload Excel sheet
|
| 18 |
uploaded_file = st.file_uploader("Upload Excel file", type=["xlsx", "xls"])
|
|
|
|
| 39 |
'amount': amounts
|
| 40 |
})
|
| 41 |
|
| 42 |
+
# Calculate late interest
|
| 43 |
+
df_with_interest = calculate_late_interest(df_calculate, late_interest_rate)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
|
| 45 |
# Display calculated late interest
|
| 46 |
total_late_interest = df_with_interest['late_interest'].sum()
|
|
|
|
| 77 |
st.warning("Please enter your OpenAI API key.")
|
| 78 |
|
| 79 |
# Function to calculate late interest
|
| 80 |
+
def calculate_late_interest(data, late_interest_rate):
|
| 81 |
+
# Calculate late days and late interest
|
| 82 |
+
data['late_days'] = (data['payment_date'] - data['due_date']).dt.days.clip(lower=0)
|
| 83 |
+
data['late_interest'] = data['late_days'] * data['amount'] * (late_interest_rate / 100)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
return data
|
| 85 |
|
| 86 |
# Function to analyze Excel sheet and extract relevant information
|
|
|
|
| 111 |
df = pd.read_html(response.text)[0]
|
| 112 |
df.to_csv('boe_rates.csv', index=False)
|
| 113 |
st.success("Bank of England rates downloaded successfully.")
|
|
|
|
| 114 |
else:
|
| 115 |
st.error("Failed to retrieve data from the Bank of England website.")
|
|
|
|
| 116 |
except requests.RequestException as e:
|
| 117 |
st.error(f"Failed to download rates: {e}")
|
|
|
|
| 118 |
|
| 119 |
if __name__ == "__main__":
|
| 120 |
main()
|