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
20
api.py
20
api.py
|
|
@ -33,6 +33,7 @@ from email_queue import email_queue
|
||||||
from sage_client import sage_client, SageGatewayClient
|
from sage_client import sage_client, SageGatewayClient
|
||||||
|
|
||||||
from schemas import (
|
from schemas import (
|
||||||
|
SocieteInfo,
|
||||||
TiersDetails,
|
TiersDetails,
|
||||||
BaremeRemiseResponse,
|
BaremeRemiseResponse,
|
||||||
Users,
|
Users,
|
||||||
|
|
@ -176,7 +177,7 @@ app.include_router(universign_router)
|
||||||
@app.get("/clients", response_model=List[ClientDetails], tags=["Clients"])
|
@app.get("/clients", response_model=List[ClientDetails], tags=["Clients"])
|
||||||
async def obtenir_clients(
|
async def obtenir_clients(
|
||||||
query: Optional[str] = Query(None),
|
query: Optional[str] = Query(None),
|
||||||
#sage: SageGatewayClient = Depends(get_sage_client_for_user),
|
# sage: SageGatewayClient = Depends(get_sage_client_for_user),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
clients = sage_client.lister_clients(filtre=query or "")
|
clients = sage_client.lister_clients(filtre=query or "")
|
||||||
|
|
@ -2854,6 +2855,23 @@ async def modifier_collaborateur(numero: int, collaborateur: CollaborateurUpdate
|
||||||
raise HTTPException(500, str(e))
|
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"])
|
@app.get("/health", tags=["System"])
|
||||||
async def health_check(
|
async def health_check(
|
||||||
sage: SageGatewayClient = Depends(get_sage_client_for_user),
|
sage: SageGatewayClient = Depends(get_sage_client_for_user),
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,7 @@ class SageGatewayClient:
|
||||||
return self._post(
|
return self._post(
|
||||||
"/sage/collaborateurs/list",
|
"/sage/collaborateurs/list",
|
||||||
{
|
{
|
||||||
"filtre": filtre or "", # Convertir None en ""
|
"filtre": filtre or "",
|
||||||
"actifs_seulement": actifs_seulement,
|
"actifs_seulement": actifs_seulement,
|
||||||
},
|
},
|
||||||
).get("data", [])
|
).get("data", [])
|
||||||
|
|
@ -427,6 +427,10 @@ class SageGatewayClient:
|
||||||
"/sage/collaborateurs/update", {"numero": numero, **data}
|
"/sage/collaborateurs/update", {"numero": numero, **data}
|
||||||
).get("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:
|
def refresh_cache(self) -> Dict:
|
||||||
return self._post("/sage/cache/refresh")
|
return self._post("/sage/cache/refresh")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,8 @@ from schemas.sage.sage_gateway import (
|
||||||
CurrentGatewayInfo,
|
CurrentGatewayInfo,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from schemas.society.societe import SocieteInfo
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"TiersDetails",
|
"TiersDetails",
|
||||||
"TypeTiers",
|
"TypeTiers",
|
||||||
|
|
@ -114,4 +116,5 @@ __all__ = [
|
||||||
"SyncStatsResponse",
|
"SyncStatsResponse",
|
||||||
"CreateSignatureRequest",
|
"CreateSignatureRequest",
|
||||||
"TransactionResponse",
|
"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