Merge branch 'feat/get_society' into fix/update_pdf_structure
This commit is contained in:
commit
08665f15dd
4 changed files with 77 additions and 2 deletions
18
api.py
18
api.py
|
|
@ -33,6 +33,7 @@ from email_queue import email_queue
|
|||
from sage_client import sage_client, SageGatewayClient
|
||||
|
||||
from schemas import (
|
||||
SocieteInfo,
|
||||
TiersDetails,
|
||||
BaremeRemiseResponse,
|
||||
Users,
|
||||
|
|
@ -2854,6 +2855,23 @@ async def modifier_collaborateur(numero: int, collaborateur: CollaborateurUpdate
|
|||
raise HTTPException(500, str(e))
|
||||
|
||||
|
||||
@app.get("/societe/info", response_model=SocieteInfo, tags=["Société"])
|
||||
async def obtenir_informations_societe():
|
||||
try:
|
||||
societe = sage_client.lire_informations_societe()
|
||||
|
||||
if not societe:
|
||||
raise HTTPException(404, "Informations société introuvables")
|
||||
|
||||
return societe
|
||||
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception as e:
|
||||
logger.error(f"Erreur lecture info société: {e}")
|
||||
raise HTTPException(500, str(e))
|
||||
|
||||
|
||||
@app.get("/health", tags=["System"])
|
||||
async def health_check(
|
||||
sage: SageGatewayClient = Depends(get_sage_client_for_user),
|
||||
|
|
|
|||
|
|
@ -408,7 +408,7 @@ class SageGatewayClient:
|
|||
return self._post(
|
||||
"/sage/collaborateurs/list",
|
||||
{
|
||||
"filtre": filtre or "", # Convertir None en ""
|
||||
"filtre": filtre or "",
|
||||
"actifs_seulement": actifs_seulement,
|
||||
},
|
||||
).get("data", [])
|
||||
|
|
@ -427,6 +427,10 @@ class SageGatewayClient:
|
|||
"/sage/collaborateurs/update", {"numero": numero, **data}
|
||||
).get("data")
|
||||
|
||||
def lire_informations_societe(self) -> Optional[Dict]:
|
||||
"""Lit les informations de la société depuis P_DOSSIER"""
|
||||
return self._get("/sage/societe/info").get("data")
|
||||
|
||||
def refresh_cache(self) -> Dict:
|
||||
return self._post("/sage/cache/refresh")
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ from schemas.sage.sage_gateway import (
|
|||
CurrentGatewayInfo,
|
||||
)
|
||||
|
||||
from schemas.society.societe import SocieteInfo
|
||||
|
||||
__all__ = [
|
||||
"TiersDetails",
|
||||
"TypeTiers",
|
||||
|
|
@ -114,4 +116,5 @@ __all__ = [
|
|||
"SyncStatsResponse",
|
||||
"CreateSignatureRequest",
|
||||
"TransactionResponse",
|
||||
"SocieteInfo"
|
||||
]
|
||||
|
|
|
|||
50
schemas/society/societe.py
Normal file
50
schemas/society/societe.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
|
||||
|
||||
class ExerciceComptable(BaseModel):
|
||||
numero: int
|
||||
debut: str
|
||||
fin: Optional[str] = None
|
||||
|
||||
|
||||
class SocieteInfo(BaseModel):
|
||||
# Identification
|
||||
raison_sociale: str
|
||||
numero_dossier: str
|
||||
siret: Optional[str] = None
|
||||
code_ape: Optional[str] = None
|
||||
numero_tva: Optional[str] = None
|
||||
|
||||
# Adresse
|
||||
adresse: Optional[str] = None
|
||||
complement_adresse: Optional[str] = None
|
||||
code_postal: Optional[str] = None
|
||||
ville: Optional[str] = None
|
||||
code_region: Optional[str] = None
|
||||
pays: Optional[str] = None
|
||||
|
||||
# Contacts
|
||||
telephone: Optional[str] = None
|
||||
telecopie: Optional[str] = None
|
||||
email: Optional[str] = None
|
||||
email_societe: Optional[str] = None
|
||||
site_web: Optional[str] = None
|
||||
|
||||
# Informations juridiques
|
||||
capital: float = 0.0
|
||||
forme_juridique: Optional[str] = None
|
||||
|
||||
# Exercices comptables
|
||||
exercices: List[ExerciceComptable] = []
|
||||
|
||||
# Configuration
|
||||
devise_compte: int = 0
|
||||
devise_equivalent: int = 0
|
||||
longueur_compte_general: int = 0
|
||||
longueur_compte_analytique: int = 0
|
||||
regime_fec: int = 0
|
||||
|
||||
# Autres
|
||||
base_modele: Optional[str] = None
|
||||
marqueur: int = 0
|
||||
Loading…
Reference in a new issue