This commit is contained in:
ada-dmitry
2023-12-11 20:23:07 +03:00
commit 3835a1cb80
4 changed files with 273 additions and 0 deletions
+140
View File
@@ -0,0 +1,140 @@
import psycopg2
class Database:
def __init__(self):
self.db_params = {
"dbname": "postgres",
"user": "myuser",
"password": "qwerty",
"host": "localhost"
}
def connect(self):
return psycopg2.connect(**self.db_params)
def close(self, conn, cur):
if cur:
cur.close()
if conn:
conn.close()
class ServiceDepartment:
def __init__(self, departmentID, departmentName, database):
self.departmentID = departmentID
self.departmentName = departmentName
self.database = database
def addToDatabase(self):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("INSERT INTO service_department (department_id, name) VALUES (%s, %s)", (self.departmentID, self.departmentName))
conn.commit()
finally:
self.database.close(conn, cur)
def handleInquires(self, application):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("UPDATE loan_applications SET status = %s WHERE application_id = %s", ('processed', application.applicationID))
conn.commit()
finally:
self.database.close(conn, cur)
class LoanOfficer:
def __init__(self, officerID, name, database):
self.officerID = officerID
self.name = name
self.database = database
def addToDatabase(self):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("INSERT INTO loan_officer (officer_id, name) VALUES (%s, %s)", (self.officerID, self.name))
conn.commit()
finally:
self.database.close(conn, cur)
def processLoanApplication(self, application):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
if (application.loanAmount <= 50000):
cur.execute("UPDATE loan_applications SET status = %s WHERE application_id = %s", ('approved', application.applicationID))
else:
cur.execute("UPDATE loan_applications SET status = %s WHERE application_id = %s", ('rejected', application.applicationID))
conn.commit()
finally:
self.database.close(conn, cur)
class Client:
def __init__(self, clientID, name, email, database):
self.clientID = clientID
self.name = name
self.email = email
self.database = database
def submitApplication(self):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("INSERT INTO client (client_id, name, email) VALUES (%s, %s, %s)", (self.clientID, self.name, self.email))
conn.commit()
finally:
self.database.close(conn, cur)
class LoanApplication:
def __init__(self, applicationID, client, loanAmount, status, database):
self.applicationID = applicationID
self.client = client
self.loanAmount = loanAmount
self.status = status
self.database = database
def addToDatabase(self):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("INSERT INTO loan_applications (client_id, loan_amount, status) VALUES (%s, %s, %s)", (self.client.clientID, self.loanAmount, self.status))
conn.commit()
finally:
self.database.close(conn, cur)
# Создание объектов
database = Database()
my_client = Client(clientID=1, name='Alice Smith', email='alice@example.com', database=database)
my_client.submitApplication()
# Подача заявки на кредит
application = LoanApplication(applicationID=1, client=my_client, loanAmount=20000.00, status='waiting', database=database)
application.addToDatabase()
# Создание объектов
service_dept = ServiceDepartment(departmentID=1, departmentName='Customer Service', database=database)
service_dept.addToDatabase()
# Обработка заявки на кредит
service_dept.handleInquires(application)
# Создание объектов
loan_officer = LoanOfficer(officerID=1, name='John Doe', database=database)
loan_officer.addToDatabase()
# Вынесение решения по заявке на кредит
loan_officer.processLoanApplication(application)
+133
View File
@@ -0,0 +1,133 @@
import psycopg2
class data_base:
def __init__(self):
self.db_params = {
"dbname": "postgres",
"user": "myuser",
"password": "qwerty",
"host": "localhost"
}
def connect(self):
return psycopg2.connect(**self.db_params)
def close(self, conn, cur):
if cur:
cur.close()
if conn:
conn.close()
class patient:
def __init__(self, pat_id, pat_fio, pat_born, medcard_id, db):
self.pat_id = pat_id
self.pat_fio = pat_fio
self.pat_born = pat_born
self.medcardc_id = medcard_id
self.db = db
def add2db(self):
conn = None
cur = None
try:
conn = self.db.connect()
cur = conn.cursor()
cur.execute("INSERT INTO patient_db (pat_id, pat_fio, pat_born, medcard_id) VALUES (%s, %s, %s, %s)",\
(self.pat_id, self.pat_fio, self.pat_born, self.medcardc_id))
conn.commit()
finally:
self.db.close(conn, cur)
def note_check(self):
conn = None
cur = None
try:
conn = self.db.connect()
cur = conn.cursor()
cur.execute("SELECT * FROM appointment WHERE pat_id = %s", (self.pat_id))
conn.commit()
finally:
self.db.close(conn, cur)
class doctor:
def __init__(self, doc_id, doc_fio, doc_specialization, doc_room, db):
self.doc_id = doc_id
self.doc_fio = doc_fio
self.doc_specialization = doc_specialization
self.doc_room = doc_room
self.db = db
def add2db(self):
conn = None
cur = None
try:
conn = self.db.connect()
cur = conn.cursor()
cur.execute("INSERT INTO doctors_db (doc_id, doc_fio, doc_specialization, doc_room) VALUES (%s, %s, %s, %s)", \
(self.doc_id, self.doc_fio, self.doc_specialization, self.doc_room))
conn.commit()
finally:
self.db.close(conn, cur)
def workload_check(self, timetable):
conn = None
cur = None
try:
conn = self.db.connect()
cur = conn.cursor()
if (timetable.loanAmount <= 50000):
# что вместо апдейта?
cur.execute("UPDATE loan_applications SET status = %s WHERE application_id = %s", ('approved', timetable.applicationID))
else:
cur.execute("UPDATE loan_applications SET status = %s WHERE application_id = %s", ('rejected', timetable.applicationID))
conn.commit()
finally:
self.db.close(conn, cur)
class MedWorker:
def __init__(self, mw_id, mw_fio, mw_born, mw_education, db):
self.mw_id = mw_id
self.mw_fio = mw_fio
self.mw_born = mw_born
self.db = db
class DocAppointment:
def __init__(self, appointment_id, patient, status, db):
self.appointment_id = appointment_id
self.patient = patient
self.status = status
self.db = db
def addToDatabase(self):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("INSERT INTO loan_applications (client_id, loan_amount, status) VALUES (%s, %s, %s)", (self.client.clientID, self.loanAmount, self.status))
conn.commit()
finally:
self.database.close(conn, cur)
def del_appoint(self):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("DELETE FROM appointment WHERE appointment_id = %s", self.appointment_id)
conn.commit()
finally:
self.database.close(conn, cur)
def add_appoint(self):
conn = None
cur = None
try:
conn = self.database.connect()
cur = conn.cursor()
cur.execute("INSERT INTO appointment (appointment_id, patient, status) VALUES (%s, %s, %s)", self.appointment_id, self.patient, self.status)
conn.commit()
finally:
self.database.close(conn, cur)
Binary file not shown.
Binary file not shown.