91 lines
2.9 KiB
Python
91 lines
2.9 KiB
Python
from backend.code.enums.errors_enum import ErrorTypeEnum
|
|
from backend.code.core.controller import Controller
|
|
from backend.code.enums.errors_enum import ErrorTypeEnum
|
|
from backend.code.modules.database.database_sqlite import DatabaseSqliteModule
|
|
from backend.code.modules.settlements.repository import SettlementRepository
|
|
from backend.code.models.responses.settlement_detail import SettlementDetailResponse
|
|
|
|
class SettlementController(Controller):
|
|
def __init__(self):
|
|
database = DatabaseSqliteModule()
|
|
self.repo = SettlementRepository(database)
|
|
|
|
def ListSettlements(self, params: str = None):
|
|
result = []
|
|
|
|
if params is not None:
|
|
params = self._OnProcessParams(params)
|
|
|
|
settlements = self.repo.FilterSettlements(params)
|
|
if len(settlements) == 0:
|
|
return result
|
|
|
|
for _settlement in settlements:
|
|
settlement = SettlementDetailResponse(
|
|
Id = _settlement[0],
|
|
Name = _settlement[1],
|
|
Address = _settlement[2],
|
|
LastDone = _settlement[4],
|
|
LastDoneBy = _settlement[5],
|
|
Active = _settlement[6]
|
|
)
|
|
result.append(settlement)
|
|
|
|
return result
|
|
|
|
def SelectSettlement(self, id: int):
|
|
settlement = self.repo.SelectSettlementById(id)
|
|
if settlement is None:
|
|
return
|
|
|
|
return SettlementDetailResponse(
|
|
Id = settlement[0],
|
|
Name = settlement[1],
|
|
Address = settlement[2],
|
|
LastDone = settlement[4],
|
|
LastDoneBy = settlement[5],
|
|
Active = settlement[6]
|
|
)
|
|
|
|
def RegisterSettlement(self, name: str, address: str, active: bool = True):
|
|
exists = self.repo.FilterSettlements({'name': name, 'address': address})
|
|
if len(exists) > 0:
|
|
return ErrorTypeEnum.SETTLEMENT_EXISTS
|
|
|
|
settlement_id = self.repo.InsertSettlement(name, address, active)
|
|
if settlement_id is None:
|
|
return
|
|
|
|
return SettlementDetailResponse(
|
|
Id = settlement_id,
|
|
Name = name,
|
|
Address = address,
|
|
LastDone = None,
|
|
LastDoneBy = None,
|
|
Active = active
|
|
)
|
|
|
|
def EditSettlement(self, id: int, name: str, address: str, active: bool = True):
|
|
exists = self.repo.SelectSettlementById(id)
|
|
if exists is None:
|
|
return ErrorTypeEnum.SETTLEMENT_ID_NOT_EXISTS
|
|
|
|
edited = self.repo.UpdateSettlement(id, name, address, active)
|
|
if edited == 0:
|
|
return
|
|
|
|
return True
|
|
|
|
def RegisterSettlementDone(self, id: int, doneAt: datetime, doneBy: int):
|
|
pass
|
|
|
|
def DeleteSettlement(self, id: int):
|
|
exists = self.repo.SelectSettlementById(id)
|
|
if exists is None:
|
|
return ErrorTypeEnum.SETTLEMENT_ID_NOT_EXISTS
|
|
|
|
deleted = self.repo.DeleteSettlement(id)
|
|
if deleted == 0:
|
|
return
|
|
|
|
return True |