- Added a data table for displaying customs brokers with columns for key, name, type, license, RFC, email, phone, city, and actions. - Created a dialog for adding new customs brokers with a form for inputting necessary details. - Implemented actions for viewing details and deleting customs brokers with confirmation dialogs. - Integrated search functionality to find customs brokers by their key. - Established server-side loading for the customs brokers page to handle authentication and data retrieval.
33 lines
932 B
Python
33 lines
932 B
Python
from sqlalchemy.orm import Session
|
|
|
|
from . import dto, models
|
|
|
|
|
|
class DriverService:
|
|
@staticmethod
|
|
def get_driver_by_key_and_line(db: Session, transporter_key: str, line: int):
|
|
return (
|
|
db.query(models.Driver)
|
|
.filter(
|
|
models.Driver.transporter_key == transporter_key,
|
|
models.Driver.line == line,
|
|
)
|
|
.first()
|
|
)
|
|
|
|
@staticmethod
|
|
def create_driver(db: Session, driver_data: dto.DriverCreateDTO):
|
|
new_driver = models.Driver(**driver_data.dict())
|
|
db.add(new_driver)
|
|
db.commit()
|
|
db.refresh(new_driver)
|
|
return new_driver
|
|
|
|
@staticmethod
|
|
def delete_driver(db: Session, transporter_key: str, line: int):
|
|
driver = DriverService.get_driver_by_key_and_line(db, transporter_key, line)
|
|
if driver:
|
|
db.delete(driver)
|
|
db.commit()
|
|
return driver
|