feat(financial-indicators): Complete Financial Indicators Dashboard Card
Implementare completă a card-ului Indicatori Financiari în Dashboard Solduri: Backend: - Model FinancialIndicators cu 22+ indicatori organizați pe categorii - Service cu calcule din VBAL (Lichiditate, Eficiență, Risc, Cash Flow, Dinamică) - Altman Z-Score cu toate componentele (X1-X4) și valori absolute - Profitabilitate cu ROA, ROE, Cifra Afaceri, Cheltuieli separate (operaționale/financiare) - Caching inteligent pe company_id, luna, an Frontend: - FinancialIndicatorsCard.vue cu 4 indicatori principali collapsed - Expanded view grupat pe categorii (desktop + mobile BottomSheet) - Subindicatori pentru verificare manuală în balanță - Traduceri complete în română - Dark mode support complet - Sparklines cu tooltips - Responsive design (desktop grid + mobile carousel) Documentație: - PRD complet cu specificații și formule - Descrieri cu conturi din planul contabil român (OMFP 1802/2014) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -61,12 +61,16 @@ class Settings(BaseSettings):
|
||||
@property
|
||||
def database_url(self) -> str:
|
||||
"""Get SQLite database URL for async."""
|
||||
return f"sqlite+aiosqlite:///{self.sqlite_database_path}"
|
||||
# Resolve to absolute path for Windows/IIS compatibility
|
||||
abs_path = Path(self.sqlite_database_path).resolve()
|
||||
return f"sqlite+aiosqlite:///{abs_path}"
|
||||
|
||||
@property
|
||||
def sync_database_url(self) -> str:
|
||||
"""Get SQLite database URL for sync operations (Alembic)."""
|
||||
return f"sqlite:///{self.sqlite_database_path}"
|
||||
# Resolve to absolute path for Windows/IIS compatibility
|
||||
abs_path = Path(self.sqlite_database_path).resolve()
|
||||
return f"sqlite:///{abs_path}"
|
||||
|
||||
@property
|
||||
def upload_path_resolved(self) -> Path:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
"""Alembic environment configuration."""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from logging.config import fileConfig
|
||||
from dotenv import load_dotenv
|
||||
|
||||
@@ -24,7 +25,8 @@ from backend.modules.data_entry.db.models.ocr_settings import UserOCRPreference,
|
||||
config = context.config
|
||||
|
||||
# Override sqlalchemy.url from environment variable if set
|
||||
db_path = os.getenv("SQLITE_DATABASE_PATH", "data/receipts/receipts.db")
|
||||
# Resolve to absolute path for Windows/IIS compatibility
|
||||
db_path = Path(os.getenv("SQLITE_DATABASE_PATH", "data/receipts/receipts.db")).resolve()
|
||||
config.set_main_option("sqlalchemy.url", f"sqlite:///{db_path}")
|
||||
|
||||
# Interpret the config file for Python logging.
|
||||
|
||||
Reference in New Issue
Block a user