Prepare ERP source for Gitea deployment
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.modules.clients.association_models import ClientAssociation
|
||||
|
||||
|
||||
def get_active_association(db: Session, client_id: int):
|
||||
stmt = (
|
||||
select(ClientAssociation)
|
||||
.where(ClientAssociation.client_id == client_id)
|
||||
.limit(1)
|
||||
)
|
||||
return db.execute(stmt).scalar_one_or_none()
|
||||
|
||||
|
||||
def ensure_active_association(db: Session, client_id: int):
|
||||
row = get_active_association(db, client_id)
|
||||
if row:
|
||||
return row
|
||||
|
||||
row = ClientAssociation(
|
||||
client_id=client_id,
|
||||
association_type="firm",
|
||||
created_source="system_admin",
|
||||
)
|
||||
db.add(row)
|
||||
db.commit()
|
||||
db.refresh(row)
|
||||
return row
|
||||
|
||||
|
||||
def update_association_fields(db: Session, client_id: int, **fields):
|
||||
row = ensure_active_association(db, client_id)
|
||||
for key, value in fields.items():
|
||||
if hasattr(row, key):
|
||||
setattr(row, key, value)
|
||||
db.add(row)
|
||||
db.commit()
|
||||
db.refresh(row)
|
||||
return row
|
||||
Reference in New Issue
Block a user