Spaces:
Paused
Paused
| import math | |
| import datetime | |
| from lunardate import LunarDate | |
| class RetailTools: | |
| def calculate(expression: str): | |
| try: | |
| allowed = set("0123456789.+-*/() ") | |
| if not all(c in allowed for c in expression): return "Error" | |
| return str(eval(expression, {"__builtins__": None}, {})) | |
| except: return "Error" | |
| def get_lunar_date(): | |
| today = datetime.date.today() | |
| lunar = LunarDate.fromSolarDate(today.year, today.month, today.day) | |
| return f"{lunar.day}/{lunar.month}/{lunar.year} (Lunar)" | |
| def analyze_financial_health(revenue, total_assets, debt): | |
| """ | |
| Implements the logic from the Research Paper. | |
| Calculates simple ratios to predict health. | |
| """ | |
| try: | |
| revenue = float(revenue) | |
| assets = float(total_assets) | |
| debt = float(debt) | |
| if assets == 0: return "Error: Assets cannot be 0" | |
| # Key Metrics from Paper | |
| asset_turnover = revenue / assets | |
| leverage = debt / assets | |
| advice = [] | |
| score = 100 | |
| # 1. Asset Turnover Logic | |
| if asset_turnover < 0.5: | |
| advice.append("⚠️ Vòng quay tài sản thấp (<0.5). Bạn đang tồn đọng vốn quá nhiều.") | |
| score -= 20 | |
| else: | |
| advice.append("✅ Vòng quay tài sản tốt.") | |
| # 2. Leverage Logic (Paper says high leverage correlates with profit BUT high risk) | |
| if leverage > 0.6: | |
| advice.append("⚠️ Tỷ lệ nợ cao (>60%). Rủi ro tài chính lớn nếu thị trường biến động.") | |
| score -= 30 | |
| elif leverage < 0.2: | |
| advice.append("ℹ️ Tỷ lệ nợ thấp. Bạn có thể cân nhắc vay thêm để mở rộng (Đòn bẩy tài chính).") | |
| else: | |
| advice.append("✅ Cấu trúc vốn an toàn.") | |
| return { | |
| "score": score, | |
| "metrics": {"turnover": round(asset_turnover, 2), "leverage": round(leverage, 2)}, | |
| "advice": advice | |
| } | |
| except: | |
| return "Invalid Data" | |
| def health_check(saas_api, store_id): | |
| alerts = [] | |
| sales = saas_api.get_sales_report(store_id, "today") | |
| if sales['revenue'] == 0: alerts.append("⚠️ Chưa có doanh thu hôm nay.") | |
| return alerts |