Files
Verificacion_EFOS_Backend/output/generated/services/suppliers_service.py
2026-04-06 16:06:31 -07:00

67 lines
2.2 KiB
Python

from sqlalchemy.orm import Session
from datetime import datetime
from typing import Optional
from fastapi import HTTPException
from app.modules.suppliers.models import Suppliers
from app.modules.suppliers.schema import
class SuppliersService:
@staticmethod
def create_suppliers(db: Session, data: ):
new_suppliers = Suppliers(**data.dict())
db.add(new_suppliers)
db.commit()
db.refresh(new_suppliers)
return new_suppliers
@staticmethod
def get_suppliers(db: Session, suppliers_id: int, current_user):
suppliers = db.query(Suppliers).filter(Suppliers.id == suppliers_id).first()
if not suppliers:
raise ValueError("suppliers no encontrado")
return suppliers
@staticmethod
def update_suppliers(db: Session, suppliers_id: int, data: , current_user):
suppliers = db.query(Suppliers).filter(Suppliers.id == suppliers_id).first()
if not suppliers:
raise ValueError("suppliers no encontrado")
if current_user.role not in ["ROOT", "ADMIN"]:
raise ValueError("No tienes permisos para actualizar este suppliers")
update_data = data.dict(exclude_unset=True)
for key, value in update_data.items():
setattr(suppliers, key, value)
db.commit()
db.refresh(suppliers)
return suppliers
@staticmethod
def delete_suppliers(db: Session, suppliers_id: int, current_user):
suppliers = db.query(Suppliers).filter(Suppliers.id == suppliers_id).first()
if not suppliers:
raise ValueError("suppliers no encontrado")
if current_user.role not in ["ROOT", "ADMIN"]:
raise ValueError("No tienes permisos para eliminar este suppliers")
try:
suppliers.is_active = False
suppliers.deleted_at = datetime.utcnow()
suppliers.deleted_by = current_user.id
db.commit()
db.refresh(suppliers)
except Exception as e:
db.rollback()
raise ValueError(f"Error al eliminar el suppliers: {e}")
return {"message": "suppliers eliminado correctamente"}