corectie vjv2025
This commit is contained in:
24
main.py
24
main.py
@@ -298,23 +298,6 @@ def compute_data_referinta(end_month_str: str = None) -> datetime:
|
|||||||
today = datetime.now()
|
today = datetime.now()
|
||||||
return datetime(today.year, today.month, 1)
|
return datetime(today.year, today.month, 1)
|
||||||
|
|
||||||
|
|
||||||
def resolve_dynamic_tables(sql: str, data_referinta: datetime, months: int = 12) -> str:
|
|
||||||
"""
|
|
||||||
Replace vjv2025/vjc2025 with correct year (or UNION ALL if spanning years).
|
|
||||||
"""
|
|
||||||
end_year = (data_referinta - timedelta(days=1)).year
|
|
||||||
start_year = (data_referinta - relativedelta(months=months)).year
|
|
||||||
|
|
||||||
if start_year == end_year:
|
|
||||||
sql = sql.replace('vjv2025', f'vjv{end_year}')
|
|
||||||
sql = sql.replace('vjc2025', f'vjc{end_year}')
|
|
||||||
else:
|
|
||||||
sql = sql.replace('vjv2025', f'(SELECT * FROM vjv{start_year} UNION ALL SELECT * FROM vjv{end_year})')
|
|
||||||
sql = sql.replace('vjc2025', f'(SELECT * FROM vjc{start_year} UNION ALL SELECT * FROM vjc{end_year})')
|
|
||||||
return sql
|
|
||||||
|
|
||||||
|
|
||||||
class OracleConnection:
|
class OracleConnection:
|
||||||
"""Context manager for Oracle database connection"""
|
"""Context manager for Oracle database connection"""
|
||||||
|
|
||||||
@@ -351,12 +334,7 @@ def execute_query(connection, query_name: str, query_info: dict) -> pd.DataFrame
|
|||||||
try:
|
try:
|
||||||
sql = query_info['sql']
|
sql = query_info['sql']
|
||||||
params = query_info.get('params', {})
|
params = query_info.get('params', {})
|
||||||
|
|
||||||
# Resolve dynamic table names (vjv/vjc year-specific tables)
|
|
||||||
if 'data_referinta' in params:
|
|
||||||
months = params.get('months', 12)
|
|
||||||
sql = resolve_dynamic_tables(sql, params['data_referinta'], months)
|
|
||||||
|
|
||||||
print(f" 📊 Executare: {query_name}...", end=" ")
|
print(f" 📊 Executare: {query_name}...", end=" ")
|
||||||
|
|
||||||
with connection.cursor() as cursor:
|
with connection.cursor() as cursor:
|
||||||
|
|||||||
Reference in New Issue
Block a user