Initial commit
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
from backend.code.modules.database.database import DatabaseModule
|
||||
from datetime import datetime
|
||||
|
||||
class SettlementRepository():
|
||||
def __init__(self, repo: DatabaseModule):
|
||||
self.conn = repo.conn
|
||||
self.cursor = repo.cursor
|
||||
|
||||
def FilterSettlements(self, filters: dict = None):
|
||||
params = list()
|
||||
|
||||
sql = '''
|
||||
SELECT *
|
||||
FROM settlements
|
||||
WHERE 1=1
|
||||
'''
|
||||
|
||||
if filters is not None:
|
||||
if 'name' in filters:
|
||||
sql = sql + ' AND name LIKE ?'
|
||||
params.append(filters['name'])
|
||||
|
||||
if 'address' in filters:
|
||||
sql = sql + ' AND address LIKE ?'
|
||||
params.append(filters['address'])
|
||||
|
||||
if 'last_done_by' in filters:
|
||||
sql = sql + ' AND last_done_by LIKE ?'
|
||||
params.append(filters['last_done_by'])
|
||||
|
||||
if 'last_done' in filters:
|
||||
sql = sql + ' AND last_done = ?'
|
||||
params.append(filters['last_done'])
|
||||
|
||||
# print(sql)
|
||||
|
||||
self.cursor.execute(sql, params)
|
||||
return self.cursor.fetchall()
|
||||
|
||||
def SelectSettlementById(self, id: int):
|
||||
sql = '''
|
||||
SELECT *
|
||||
FROM settlements
|
||||
WHERE id = ?
|
||||
AND active
|
||||
'''
|
||||
self.cursor.execute(sql, [id])
|
||||
return self.cursor.fetchone()
|
||||
|
||||
def InsertSettlement(self, name: str, address: str, active: bool = True):
|
||||
sql = '''
|
||||
INSERT INTO settlements(name, address, active)
|
||||
VALUES(?, ?, ?)
|
||||
'''
|
||||
self.cursor.execute(sql, [name, address, active])
|
||||
self.conn.commit()
|
||||
return self.cursor.lastrowid
|
||||
|
||||
def UpdateSettlement(self, id: int, name: str, address: str, active: bool = True):
|
||||
sql = '''
|
||||
UPDATE settlements
|
||||
set name = ?, address = ?, active = ?
|
||||
WHERE id = ?
|
||||
'''
|
||||
self.cursor.execute(sql, [name, address, active, id])
|
||||
self.conn.commit()
|
||||
return self.cursor.rowcount
|
||||
|
||||
def RegisterSettlementDone(self, id: int, user_done: int, done_at: datetime = datetime.now()):
|
||||
sql = '''
|
||||
UPDATE settlements
|
||||
SET last_done_by = ?, last_done = ?
|
||||
WHERE id = ?
|
||||
'''
|
||||
self.cursor.execute(sql, [done_at, user_done, id])
|
||||
self.conn.commit()
|
||||
return self.cursor.rowcount
|
||||
|
||||
def DeleteSettlement(self, id: int):
|
||||
sql = '''
|
||||
UPDATE settlements
|
||||
SET active = false
|
||||
WHERE id = ?
|
||||
'''
|
||||
self.cursor.execute(sql, [id])
|
||||
self.conn.commit()
|
||||
return self.cursor.rowcount
|
||||
Reference in New Issue
Block a user