This commit is contained in:
ada-dmitry
2023-12-18 19:08:35 +03:00
parent 8722b83f16
commit 3956cf7186
2 changed files with 186 additions and 14 deletions
+183
View File
@@ -0,0 +1,183 @@
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 Employee:
def __init__(self, id, name, position, department):
self.id = id
self.name = name
self.position = position
self.department = department
def hiring(self): # Добавление в базу данных
conn = None
cur = None
try:
conn = self.db.connect()
cur = conn.cursor()
cur.execute("INSERT INTO employees (id, name, position, department) VALUES (%s, %s, %s, %s)",\
(self.id, self.name, self.position, self.department))
conn.commit()
finally:
self.db.close(conn, cur)
def dismissal(self): # Удаление из базы данных
conn = None
cur = None
try:
conn = self.db.connect()
cur = conn.cursor()
cur.execute("DELETE FROM employees WHERE id = %s", self.id)
conn.commit()
finally:
self.db.close(conn, cur)
def get_details(self):
return f"ID: {self.id}, Name: {self.name}, Position: {self.position}, Department: {self.department}"
def assign_to_department(self, new_department):
# self.department = new_department
conn = None
cur = None
try:
conn = self.db.connect()
cur = conn.cursor()
cur.execute("UPDATE employees SET department = %s WHERE id = %s", new_department, self.id)
conn.commit()
finally:
self.db.close(conn, cur)
def promote(self):
# Логика для продвижения по службе
pass
def calculate_salary(self):
# Логика для расчета зарплаты
pass
class Developer(Employee):
def __init__(self, id, name, position, department, languages, experience_level):
super().__init__(id, name, position, department)
self.languages = languages
self.experience_level = experience_level
def code(self):
# Логика для написания кода
pass
def attend_tech_conferences(self):
# Логика для посещения технических конференций
pass
def update_skills(self):
# Логика для обновления навыков
pass
def collaborate(self):
# Логика для совместной работы над проектами
pass
class Tester(Employee):
def __init__(self, id, name, position, department, testing_tools, automation_level):
super().__init__(id, name, position, department)
self.testing_tools = testing_tools
self.automation_level = automation_level
def run_tests(self):
# Логика для запуска тестов
pass
def report_bugs(self):
# Логика для создания отчетов о найденных ошибках
pass
def automate_tests(self):
# Логика для автоматизации тестирования
pass
def collaborate(self):
# Логика для совместной работы над проектами
pass
class ProjectManager(Employee):
def __init__(self, id, name, position, department, projects_managed, team_size):
super().__init__(id, name, position, department)
self.projects_managed = projects_managed
self.team_size = team_size
def plan_project(self):
# Логика для планирования проекта
pass
def allocate_resources(self):
# Логика для выделения ресурсов на проект
pass
def communicate(self):
# Логика для коммуникации с командой и заинтересованными сторонами
pass
def track_progress(self):
# Логика для отслеживания прогресса проекта
pass
class SalesPerson(Employee):
def __init__(self, id, name, position, department, sales_region, sales_targets):
super().__init__(id, name, position, department)
self.sales_region = sales_region
self.sales_targets = sales_targets
def meet_clients(self):
# Логика для встречи с клиентами
pass
def negotiate_deals(self):
# Логика для ведения переговоров
pass
def analyze_market(self):
# Логика для анализа рынка
pass
def strategize(self):
# Логика для разработки стратегий продаж
pass
class Department:
def __init__(self, name, employees):
self.name = name
self.employees = employees
def list_employees(self):
# Логика для вывода списка сотрудников отдела
pass
def add_employee(self, employee):
# Логика для добавления сотрудника в отдел
pass
def remove_employee(self, employee):
# Логика для удаления сотрудника из отдела
pass
def update_department_head(self, new_head):
# Логика для обновления начальника отдела
pass