Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -59,6 +59,19 @@ project_choices = [
|
|
| 59 |
]
|
| 60 |
ai_suggestion_choices = ["Move", "Repair", "Replace"] # Removed "Pause Rent"
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
def call_ai_model(usage, idle, freq, cost, last):
|
| 63 |
try:
|
| 64 |
usage = float(usage) if usage is not None and not np.isnan(usage) else 0.0
|
|
@@ -99,6 +112,9 @@ def process_equipment_utilization(equip, proj, use_h, idle_h, move_f, cost_h, la
|
|
| 99 |
if not sf:
|
| 100 |
raise ValueError("Salesforce connection is not initialized. Please check credentials and try again.")
|
| 101 |
|
|
|
|
|
|
|
|
|
|
| 102 |
# Always run AI model to get suggestion, confidence, score
|
| 103 |
ai_sug_generated, conf, score = call_ai_model(use_h, idle_h, move_f, cost_h, last_maint)
|
| 104 |
|
|
|
|
| 59 |
]
|
| 60 |
ai_suggestion_choices = ["Move", "Repair", "Replace"] # Removed "Pause Rent"
|
| 61 |
|
| 62 |
+
def validate_date(last_maint):
|
| 63 |
+
try:
|
| 64 |
+
# Check if the provided date is in the future
|
| 65 |
+
if last_maint and last_maint != "N/A":
|
| 66 |
+
entered_date = datetime.datetime.strptime(last_maint, "%Y-%m-%d")
|
| 67 |
+
current_date = datetime.datetime.today()
|
| 68 |
+
|
| 69 |
+
if entered_date > current_date:
|
| 70 |
+
raise ValueError(f"Last Maintenance Date cannot be in the future. You entered: {last_maint}")
|
| 71 |
+
return last_maint
|
| 72 |
+
except ValueError as ve:
|
| 73 |
+
raise ValueError(f"Invalid date format for Last Maintenance. Please use YYYY-MM-DD. Error: {ve}")
|
| 74 |
+
|
| 75 |
def call_ai_model(usage, idle, freq, cost, last):
|
| 76 |
try:
|
| 77 |
usage = float(usage) if usage is not None and not np.isnan(usage) else 0.0
|
|
|
|
| 112 |
if not sf:
|
| 113 |
raise ValueError("Salesforce connection is not initialized. Please check credentials and try again.")
|
| 114 |
|
| 115 |
+
# Validate the Last Maintenance date
|
| 116 |
+
last_maint = validate_date(last_maint)
|
| 117 |
+
|
| 118 |
# Always run AI model to get suggestion, confidence, score
|
| 119 |
ai_sug_generated, conf, score = call_ai_model(use_h, idle_h, move_f, cost_h, last_maint)
|
| 120 |
|