This commit is contained in:
Iliyan Angelov
2025-11-21 09:43:54 +02:00
parent 4488e3a795
commit b56f1a6769
14 changed files with 462 additions and 225 deletions

View File

@@ -838,6 +838,8 @@ class UpdateCompanySettingsRequest(BaseModel):
company_email: Optional[str] = None
company_address: Optional[str] = None
tax_rate: Optional[float] = None
chat_working_hours_start: Optional[int] = None
chat_working_hours_end: Optional[int] = None
@router.get("/company")
async def get_company_settings(
@@ -853,6 +855,8 @@ async def get_company_settings(
"company_email",
"company_address",
"tax_rate",
"chat_working_hours_start",
"chat_working_hours_end",
]
settings_dict = {}
@@ -887,6 +891,8 @@ async def get_company_settings(
"company_email": settings_dict.get("company_email", ""),
"company_address": settings_dict.get("company_address", ""),
"tax_rate": float(settings_dict.get("tax_rate", 0)) if settings_dict.get("tax_rate") else 0.0,
"chat_working_hours_start": int(settings_dict.get("chat_working_hours_start", 9)) if settings_dict.get("chat_working_hours_start") else 9,
"chat_working_hours_end": int(settings_dict.get("chat_working_hours_end", 17)) if settings_dict.get("chat_working_hours_end") else 17,
"updated_at": updated_at,
"updated_by": updated_by,
}
@@ -915,6 +921,10 @@ async def update_company_settings(
db_settings["company_address"] = request_data.company_address
if request_data.tax_rate is not None:
db_settings["tax_rate"] = str(request_data.tax_rate)
if request_data.chat_working_hours_start is not None:
db_settings["chat_working_hours_start"] = str(request_data.chat_working_hours_start)
if request_data.chat_working_hours_end is not None:
db_settings["chat_working_hours_end"] = str(request_data.chat_working_hours_end)
for key, value in db_settings.items():
@@ -940,7 +950,7 @@ async def update_company_settings(
updated_settings = {}
for key in ["company_name", "company_tagline", "company_logo_url", "company_favicon_url", "company_phone", "company_email", "company_address", "tax_rate"]:
for key in ["company_name", "company_tagline", "company_logo_url", "company_favicon_url", "company_phone", "company_email", "company_address", "tax_rate", "chat_working_hours_start", "chat_working_hours_end"]:
setting = db.query(SystemSettings).filter(
SystemSettings.key == key
).first()
@@ -976,6 +986,8 @@ async def update_company_settings(
"company_email": updated_settings.get("company_email", ""),
"company_address": updated_settings.get("company_address", ""),
"tax_rate": float(updated_settings.get("tax_rate", 0)) if updated_settings.get("tax_rate") else 0.0,
"chat_working_hours_start": int(updated_settings.get("chat_working_hours_start", 9)) if updated_settings.get("chat_working_hours_start") else 9,
"chat_working_hours_end": int(updated_settings.get("chat_working_hours_end", 17)) if updated_settings.get("chat_working_hours_end") else 17,
"updated_at": updated_at,
"updated_by": updated_by,
}