diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj
index 4424458..7b35079 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj
+++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj
@@ -150,7 +150,7 @@
-
+
@@ -204,7 +204,7 @@
-
+
diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters
index 8a20aa6..d9514f7 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters
+++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters
@@ -39,9 +39,6 @@
Services
-
- Services
-
Services
@@ -192,14 +189,14 @@
Services
+
+ Services
+
Services
-
- Services
-
Services
@@ -338,6 +335,9 @@
Services
+
+ Services
+
diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp
index 3d97204..e7f4e30 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp
@@ -15,3 +15,22 @@ void ZenvyController::changePassword(const std::string& password)
{
m_authenticationManagementService->changePassword(password);
}
+
+//Employee Management
+void ZenvyController::createEmployee(Enums::EmployeeType employeeType, const std::string& email, const std::string& password, const std::string& name, const std::string& phone)
+{
+ m_employeeManagementService->createEmployee(employeeType, email, password, name, phone);
+}
+
+bool ZenvyController::deactivateEmployee(const std::string& id)
+{
+ return m_employeeManagementService->deactivateEmployee(id);
+}
+
+Employees EmployeeManagementService::getEmployees()
+{
+}
+
+std::shared_ptr EmployeeManagementService::getEmployee(const std::string& id)
+{
+}
diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h
index 1a5c77b..89ba319 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h
@@ -4,7 +4,7 @@
#include "AuthenticationManagementService.h"
#include "AttendanceManagementService.h"
#include "BookingManagementService.h"
-#include "EmployeeManagememtService.h"
+#include "EmployeeManagementService.h"
#include "LeaveManagementService.h"
#include "NotificationManagementService.h"
#include "PayslipManagementService.h"
@@ -19,7 +19,7 @@ private:
std::shared_ptr m_authenticationManagementService;
std::shared_ptr m_attendanceManagementService;
std::shared_ptr m_bookingManagementService;
- std::shared_ptr m_employeeManagememtService;
+ std::shared_ptr m_employeeManagementService;
std::shared_ptr m_leaveManagementService;
std::shared_ptr m_notificationManagementService;
std::shared_ptr m_payslipManagementService;
@@ -31,7 +31,7 @@ public:
m_authenticationManagementService(std::make_shared()),
m_attendanceManagementService(std::make_shared()),
m_bookingManagementService(std::make_shared()),
- m_employeeManagememtService(std::make_shared()),
+ m_employeeManagementService(std::make_shared()),
m_leaveManagementService(std::make_shared()),
m_notificationManagementService(std::make_shared()),
m_payslipManagementService(std::make_shared()),
@@ -43,4 +43,10 @@ public:
AuthenticationDTO login(const std::string& email, const std::string& password);
void logout();
void changePassword(const std::string&);
+
+ //Employee Management
+ void createEmployee(Enums::EmployeeType, const std::string&, const std::string&, const std::string&, const std::string&);
+ bool deactivateEmployee(const std::string&);
+ Employees getEmployees();
+ std::shared_ptr getEmployee(const std::string&);
};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp
index 16ddca1..e4f3c0c 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp
@@ -1,4 +1,5 @@
#include "DataStore.h"
+#include "EmployeeManagementService.h"
DataStore& DataStore::getInstance()
{
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Admin.h b/Trenser.Zenvy/Trenser.Zenvy/models/Admin.h
index 97f4f4e..5233d8d 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Admin.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Admin.h
@@ -3,4 +3,15 @@
class Admin : public Employee
{
+ Admin() = default;
+ Admin(
+ const std::string& password,
+ const std::string& name,
+ const std::string& phone,
+ const std::string& email,
+ const std::string& teamId,
+ std::shared_ptr payroll
+ ) :Employee(password, name, phone, email, teamId, Enums::EmployeeType::GENERAL, payroll) {
+ };
+ ~Admin() = default;
};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.cpp
index 01cec1a..2b61e80 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.cpp
@@ -1,5 +1,7 @@
#include "Announcement.h"
+int Announcement::m_anid = 0;
+
const std::string& Announcement::getAnnouncementId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.h b/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.h
index 23e333c..5d69bdb 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Announcement.h
@@ -5,14 +5,14 @@
class Announcement
{
private:
+ static int m_anid;
std::string m_id;
util::Timestamp m_timestamp;
std::string m_message;
public:
- Announcement() : m_id(""), m_timestamp(), m_message("") {}
- Announcement(const std::string& id,
- const std::string& message)
- : m_id(id), m_message(message) {}
+ Announcement() : m_id("AN" + std::to_string(++m_anid)), m_timestamp(), m_message("") {}
+ Announcement(const std::string& message)
+ : m_id("AN" + std::to_string(++m_anid)), m_message(message) {}
const std::string& getAnnouncementId() const;
const util::Timestamp& getAnnouncementTimestamp() const;
const std::string& getAnnouncementMessage() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.cpp
index 7565537..a6220dd 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.cpp
@@ -1,5 +1,7 @@
#include "Attendance.h"
+int Attendance::m_aid = 0;
+
const std::string& Attendance::getAttendanceId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.h b/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.h
index 3b10f5c..9f6d481 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Attendance.h
@@ -5,15 +5,15 @@
class Attendance
{
private:
+ static int m_aid;
std::string m_id;
util::Timestamp m_loginTime;
util::Timestamp m_logoutTime;
public:
- Attendance() : m_id(""), m_loginTime(), m_logoutTime() {}
- Attendance(const std::string& id,
- const util::Timestamp& loginTime,
+ Attendance() : m_id("AD" + std::to_string(++m_aid)), m_loginTime(), m_logoutTime() {}
+ Attendance(const util::Timestamp& loginTime,
const util::Timestamp& logoutTime)
- : m_id(id), m_loginTime(loginTime), m_logoutTime(logoutTime) {}
+ : m_id("AD" + std::to_string(++m_aid)), m_loginTime(loginTime), m_logoutTime(logoutTime) {}
const std::string& getAttendanceId() const;
const util::Timestamp& getLoginTime() const;
const util::Timestamp& getLogoutTime() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp
index a40ed2b..4c0dcb0 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.cpp
@@ -1,5 +1,7 @@
#include "Booking.h"
+int Booking::m_bid = 0;
+
const std::string& Booking::getBookingId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h
index 7e99b4a..c8bc55c 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h
@@ -7,19 +7,19 @@
class Booking
{
private:
+ static int m_bid;
std::string m_id;
util::Timestamp m_startTime;
util::Timestamp m_endTime;
std::string m_employeeId;
std::shared_ptr m_team;
public:
- Booking() : m_id(""), m_startTime(), m_endTime(), m_employeeId(""), m_team(nullptr) {}
- Booking(const std::string& id,
- const util::Timestamp& startTime,
+ Booking() : m_id("BK" + std::to_string(++m_bid)), m_startTime(), m_endTime(), m_employeeId(""), m_team(nullptr) {}
+ Booking(const util::Timestamp& startTime,
const util::Timestamp& endTime,
const std::string& employeeId,
std::shared_ptr team)
- : m_id(id), m_startTime(startTime), m_endTime(endTime), m_employeeId(employeeId), m_team(team) {}
+ : m_id("BK" + std::to_string(++m_bid)), m_startTime(startTime), m_endTime(endTime), m_employeeId(employeeId), m_team(team) {}
const std::string& getBookingId() const;
const util::Timestamp& getStartTime() const;
const util::Timestamp& getEndTime() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.cpp
index e4831a4..c48c2a1 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.cpp
@@ -1,5 +1,7 @@
#include "Candidate.h"
+int Candidate::m_cid = 0;
+
const std::string& Candidate::getCandidateId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.h b/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.h
index 257c54d..646a8ef 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Candidate.h
@@ -5,19 +5,19 @@
class Candidate
{
private:
+ static int m_cid;
std::string m_id;
std::string m_name;
long int m_phone;
std::string m_qualification;
Enums::CandidateStatus m_status;
public:
- Candidate() : m_id(""), m_name(""), m_phone(0), m_qualification(""), m_status(Enums::CandidateStatus::PENDING) {}
- Candidate(const std::string& id,
- const std::string& name,
+ Candidate() : m_id("CD" + std::to_string(++m_cid)), m_name(""), m_phone(0), m_qualification(""), m_status(Enums::CandidateStatus::PENDING) {}
+ Candidate(const std::string& name,
long int phone,
const std::string& qualification,
Enums::CandidateStatus status)
- : m_id(id), m_name(name), m_phone(phone), m_qualification(qualification), m_status(status) {}
+ : m_id("CD" + std::to_string(++m_cid)), m_name(name), m_phone(phone), m_qualification(qualification), m_status(status) {}
const std::string& getCandidateId() const;
const std::string& getCandidateName() const;
long int getCandidatePhone() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp
index 4bd8c3b..57db7a9 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.cpp
@@ -1,5 +1,7 @@
#include "Employee.h"
+int Employee::m_uid = 0;
+
const std::string& Employee::getEmployeeId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h
index 3509db1..4b26cd0 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h
@@ -14,6 +14,7 @@ using leaveMap = std::map>;
class Employee
{
private:
+ static int m_uid;
std::string m_id;
std::string m_password;
std::string m_name;
@@ -28,16 +29,15 @@ private:
leaveMap m_leaves;
Enums::EmployeeType m_employeeType;
public:
- Employee() : m_id(""), m_password(""), m_name(""), m_phone(""), m_email(""), m_accountStatus(Enums::AccountStatus::ACTIVE), m_teamStatus(Enums::TeamStatus::NOT_IN_TEAM), m_teamId(""), m_employeeType(Enums::EmployeeType::GENERAL) {}
- Employee(const std::string& id,
- const std::string& password,
+ Employee() : m_id("EMP" + std::to_string(++m_uid)), m_password(""), m_name(""), m_phone(""), m_email(""), m_accountStatus(Enums::AccountStatus::ACTIVE), m_teamStatus(Enums::TeamStatus::NOT_IN_TEAM), m_teamId(""), m_employeeType(Enums::EmployeeType::GENERAL) {}
+ Employee(const std::string& password,
const std::string& name,
const std::string& phone,
const std::string& email,
const std::string& teamId,
Enums::EmployeeType employeeType,
std::shared_ptr payroll)
- : m_id(id), m_password(password), m_name(name), m_phone(phone), m_email(email), m_accountStatus(Enums::AccountStatus::ACTIVE), m_teamStatus(Enums::TeamStatus::NOT_IN_TEAM), m_teamId(teamId), m_employeeType(employeeType), m_payroll(payroll) { }
+ : m_id("EMP" + std::to_string(++m_uid)), m_password(password), m_name(name), m_phone(phone), m_email(email), m_accountStatus(Enums::AccountStatus::ACTIVE), m_teamStatus(Enums::TeamStatus::NOT_IN_TEAM), m_teamId(teamId), m_employeeType(employeeType), m_payroll(payroll) { }
const std::string& getEmployeeId() const;
const std::string& getEmployeePassword() const;
const std::string& getEmployeeName() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/FinanceExecutive.h b/Trenser.Zenvy/Trenser.Zenvy/models/FinanceExecutive.h
index 8aafc69..8956d13 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/FinanceExecutive.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/FinanceExecutive.h
@@ -1,7 +1,19 @@
#pragma once
+#include
#include "Employee.h"
class FinanceExecutive : public Employee
{
+public:
+ FinanceExecutive() = default;
+ FinanceExecutive(
+ const std::string& password,
+ const std::string& name,
+ const std::string& phone,
+ const std::string& email,
+ const std::string& teamId,
+ std::shared_ptr payroll
+ ) :Employee(password, name, phone, email, teamId, Enums::EmployeeType::GENERAL, payroll) {};
+ ~FinanceExecutive() = default;
};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h b/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h
index 6307e28..14b33a4 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/GeneralEmployee.h
@@ -15,7 +15,7 @@ public:
const std::string& email,
const std::string& teamId,
std::shared_ptr payroll,
- Enums::EmployeeDesignation designation) : Employee(id, password, name, phone, email, teamId,Enums::EmployeeType::GENERAL, payroll), m_designation(designation) {}
+ Enums::EmployeeDesignation designation) : Employee(password, name, phone, email, teamId,Enums::EmployeeType::GENERAL, payroll), m_designation(designation) {}
Enums::EmployeeDesignation getDesignation() const;
void setDesignation(Enums::EmployeeDesignation designation);
~GeneralEmployee() = default;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/HRManager.h b/Trenser.Zenvy/Trenser.Zenvy/models/HRManager.h
index 5e50a74..5ace8bc 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/HRManager.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/HRManager.h
@@ -3,5 +3,16 @@
class HRManager : public Employee
{
+ HRManager() = default;
+ HRManager(
+ const std::string& password,
+ const std::string& name,
+ const std::string& phone,
+ const std::string& email,
+ const std::string& teamId,
+ std::shared_ptr payroll
+ ) :Employee(password, name, phone, email, teamId, Enums::EmployeeType::GENERAL, payroll) {
+ };
+ ~HRManager() = default;
};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/ITExecutive.h b/Trenser.Zenvy/Trenser.Zenvy/models/ITExecutive.h
index 2a61ef8..c8b1c0f 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/ITExecutive.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/ITExecutive.h
@@ -3,5 +3,16 @@
class ITExecutive : public Employee
{
+ ITExecutive() = default;
+ ITExecutive(
+ const std::string& password,
+ const std::string& name,
+ const std::string& phone,
+ const std::string& email,
+ const std::string& teamId,
+ std::shared_ptr payroll
+ ) :Employee(password, name, phone, email, teamId, Enums::EmployeeType::GENERAL, payroll) {
+ };
+ ~ITExecutive() = default;
};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.cpp
index ba1267c..5c2f704 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.cpp
@@ -1,5 +1,7 @@
#include "JobListing.h"
+int JobListing::m_jid = 0;
+
const std::string& JobListing::getJobId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h b/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h
index 3622743..7310897 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/JobListing.h
@@ -9,6 +9,7 @@ using candidateMap = std::map>;
class JobListing
{
private:
+ static int m_jid;
std::string m_id;
std::string m_name;
std::string m_description;
@@ -16,14 +17,13 @@ private:
int m_numberOfVacancies;
candidateMap m_candidates;
public:
- JobListing() : m_id(""), m_name(""), m_description(""), m_status(Enums::JobListingStatus::CLOSED), m_numberOfVacancies(0) {}
- JobListing(const std::string& id,
- const std::string& name,
+ JobListing() : m_id("JL" + std::to_string(++m_jid)), m_name(""), m_description(""), m_status(Enums::JobListingStatus::CLOSED), m_numberOfVacancies(0) {}
+ JobListing(const std::string& name,
const std::string& description,
Enums::JobListingStatus status,
int numberOfVacancies,
const candidateMap& candidates)
- : m_id(id), m_name(name), m_description(description), m_status(status), m_numberOfVacancies(numberOfVacancies), m_candidates(candidates) {}
+ : m_id("JL" + std::to_string(++m_jid)), m_name(name), m_description(description), m_status(status), m_numberOfVacancies(numberOfVacancies), m_candidates(candidates) {}
const std::string& getJobId() const;
const std::string& getJobName() const;
const std::string& getJobDescription() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Leave.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Leave.cpp
index 1755bc7..1163bcb 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Leave.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Leave.cpp
@@ -1,5 +1,7 @@
#include "Leave.h"
+int Leave::m_lid = 0;
+
const std::string& Leave::getLeaveId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Leave.h b/Trenser.Zenvy/Trenser.Zenvy/models/Leave.h
index 0133f4a..b745dbf 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Leave.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Leave.h
@@ -6,6 +6,7 @@
class Leave
{
private:
+ static int m_lid;
std::string m_id;
std::string m_employeeId;
util::Timestamp m_timestamp;
@@ -15,13 +16,12 @@ private:
static int m_numberOfMedicalLeave;
Enums::LeaveType m_leaveType;
public:
- Leave() : m_id(""), m_employeeId(""), m_timestamp(), m_reason(""), m_leaveType(Enums::LeaveType::GENERAL) {}
- Leave(const std::string& id,
- const std::string& employeeId,
+ Leave() : m_id("LV" + std::to_string(++m_lid)), m_employeeId(""), m_timestamp(), m_reason(""), m_leaveType(Enums::LeaveType::GENERAL) {}
+ Leave(const std::string& employeeId,
const util::Timestamp& timestamp,
const std::string& reason,
Enums::LeaveType leaveType)
- : m_id(id), m_employeeId(employeeId), m_timestamp(timestamp), m_reason(reason), m_leaveType(leaveType) {}
+ : m_id("LV" + std::to_string(++m_lid)), m_employeeId(employeeId), m_timestamp(timestamp), m_reason(reason), m_leaveType(leaveType) {}
const std::string& getLeaveId() const;
const std::string& getEmployeeId() const;
const util::Timestamp& getTimestamp() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Notification.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Notification.cpp
index f91530a..dae35ee 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Notification.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Notification.cpp
@@ -1,5 +1,7 @@
#include "Notification.h"
+int Notification::m_nid = 0;
+
const std::string& Notification::getNotificationId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Notification.h b/Trenser.Zenvy/Trenser.Zenvy/models/Notification.h
index 0cd723c..000f381 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Notification.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Notification.h
@@ -6,18 +6,18 @@
class Notification
{
private:
+ static int m_nid;
std::string m_id;
std::string m_employeeId;
std::string m_message;
util::Timestamp m_timestamp;
Enums::NotificationStatus m_notificationStatus;
public:
- Notification() : m_id(""), m_employeeId(""), m_message(""), m_timestamp(), m_notificationStatus(Enums::NotificationStatus::UNREAD) {}
- Notification(const std::string& id,
- const std::string& employeeId,
+ Notification() : m_id("NF" + std::to_string(++m_nid)), m_employeeId(""), m_message(""), m_timestamp(), m_notificationStatus(Enums::NotificationStatus::UNREAD) {}
+ Notification(const std::string& employeeId,
const std::string& message,
Enums::NotificationStatus notificationStatus)
- : m_id(id), m_employeeId(employeeId), m_message(message), m_notificationStatus(notificationStatus) {}
+ : m_id("NF" + std::to_string(++m_nid)), m_employeeId(employeeId), m_message(message), m_notificationStatus(notificationStatus) {}
const std::string& getNotificationId() const;
const std::string& getEmployeeId() const;
const std::string& getNotificationMessage() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.cpp
index eae13a1..71a3d5a 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.cpp
@@ -1,5 +1,7 @@
#include "Payroll.h"
+int Payroll::m_prid = 0;
+
const std::string& Payroll::getPayrollId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.h b/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.h
index 498eaf8..48215f5 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Payroll.h
@@ -4,6 +4,7 @@
class Payroll
{
private:
+ static int m_prid;
std::string m_id;
double m_basicSalary;
double m_houseRentAllowance;
@@ -11,14 +12,13 @@ private:
double m_employeePFContribution;
double m_employerPFContribution;
public:
- Payroll() : m_id(""), m_basicSalary(0.0), m_houseRentAllowance(0.0), m_foodAllowance(0.0), m_employeePFContribution(0.0), m_employerPFContribution(0.0) {}
- Payroll(const std::string& id,
- double basicSalary,
+ Payroll() : m_id("PR" + std::to_string(++m_prid)), m_basicSalary(0.0), m_houseRentAllowance(0.0), m_foodAllowance(0.0), m_employeePFContribution(0.0), m_employerPFContribution(0.0) {}
+ Payroll(double basicSalary,
double houseRentAllowance,
double foodAllowance,
double employeePFContribution,
double employerPFContribution)
- : m_id(id), m_basicSalary(basicSalary), m_houseRentAllowance(houseRentAllowance), m_foodAllowance(foodAllowance), m_employeePFContribution(employeePFContribution), m_employerPFContribution(employerPFContribution) {}
+ : m_id("PR" + std::to_string(++m_prid)), m_basicSalary(basicSalary), m_houseRentAllowance(houseRentAllowance), m_foodAllowance(foodAllowance), m_employeePFContribution(employeePFContribution), m_employerPFContribution(employerPFContribution) {}
const std::string& getPayrollId() const;
double getBasicSalary() const;
double getHouseRentAllowance() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.cpp
index 3daf4b9..fd40ee6 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.cpp
@@ -1,5 +1,7 @@
#include "Payslip.h"
+int Payslip::m_pid = 0;
+
const std::string& Payslip::getPayslipId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.h b/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.h
index 3f48dd2..78e37b1 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Payslip.h
@@ -4,11 +4,12 @@
class Payslip
{
private:
+ static int m_pid;
std::string m_id;
double m_salary;
public:
- Payslip() : m_id(""), m_salary(0.0) {}
- Payslip(const std::string& id, double salary) : m_id(id), m_salary(salary) {}
+ Payslip() : m_id("PS" + std::to_string(++m_pid)), m_salary(0.0) {}
+ Payslip(const double salary) : m_id("PS" + std::to_string(++m_pid)), m_salary(salary) {}
const std::string& getPayslipId() const;
double getSalary() const;
void setPayslipId(const std::string& id);
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp
index 9fcd521..8134102 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Room.cpp
@@ -1,5 +1,7 @@
#include "Room.h"
+int Room::m_rid = 0;
+
const std::string& Room::getRoomId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Room.h b/Trenser.Zenvy/Trenser.Zenvy/models/Room.h
index 48a4ba1..e0084e9 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Room.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Room.h
@@ -8,12 +8,13 @@ using bookingMap = std::map>;
class Room
{
private:
+ static int m_rid;
std::string m_id;
std::string m_name;
bookingMap m_bookings;
public:
- Room() : m_id(""), m_name("") {}
- Room(const std::string& id, const std::string& name) : m_id(id), m_name(name) {}
+ Room() : m_id("RM" + std::to_string(++m_rid)), m_name("") {}
+ Room(const std::string& name) : m_id("RM" + std::to_string(++m_rid)), m_name(name) {}
const std::string& getRoomId() const;
const std::string& getRoomName() const;
const bookingMap& getBookings() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/TalentExecutive.h b/Trenser.Zenvy/Trenser.Zenvy/models/TalentExecutive.h
index fcbfbcd..88c5018 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/TalentExecutive.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/TalentExecutive.h
@@ -3,5 +3,16 @@
class TalentExecutive : public Employee
{
+ TalentExecutive() = default;
+ TalentExecutive(
+ const std::string& password,
+ const std::string& name,
+ const std::string& phone,
+ const std::string& email,
+ const std::string& teamId,
+ std::shared_ptr payroll
+ ) :Employee(password, name, phone, email, teamId, Enums::EmployeeType::GENERAL, payroll) {
+ };
+ ~TalentExecutive() = default;
};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp
index a6848b3..fce9fd5 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Team.cpp
@@ -1,5 +1,7 @@
#include "Team.h"
+int Team::m_tmid = 0;
+
const std::string& Team::getTeamId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Team.h b/Trenser.Zenvy/Trenser.Zenvy/models/Team.h
index edb8f44..b4782cd 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Team.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Team.h
@@ -8,18 +8,19 @@ using employeeMap = std::map>;
class Team
{
private:
+ static int m_tmid;
std::string m_id;
std::string m_name;
std::shared_ptr m_lead;
employeeMap m_employees;
int m_maximumNumberOfEmployees;
public:
- Team() : m_id(""), m_name(""), m_lead(nullptr), m_maximumNumberOfEmployees(0) {}
- Team(const std::string& id,
+ Team() : m_id("TM" + std::to_string(++m_tmid)), m_name(""), m_lead(nullptr), m_maximumNumberOfEmployees(0) {}
+ Team(
const std::string& name,
std::shared_ptr lead,
int maximumNumberOfEmployees)
- : m_id(id), m_name(name), m_lead(lead), m_maximumNumberOfEmployees(maximumNumberOfEmployees) {
+ : m_id("TM" + std::to_string(++m_tmid)), m_name(name), m_lead(lead), m_maximumNumberOfEmployees(maximumNumberOfEmployees) {
}
const std::string& getTeamId() const;
const std::string& getTeamName() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/TeamExecutive.h b/Trenser.Zenvy/Trenser.Zenvy/models/TeamExecutive.h
index d7db4e9..e948a78 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/TeamExecutive.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/TeamExecutive.h
@@ -3,5 +3,16 @@
class TeamExecutive : public Employee
{
+ TeamExecutive() = default;
+ TeamExecutive(
+ const std::string& password,
+ const std::string& name,
+ const std::string& phone,
+ const std::string& email,
+ const std::string& teamId,
+ std::shared_ptr payroll
+ ) :Employee(password, name, phone, email, teamId, Enums::EmployeeType::GENERAL, payroll) {
+ };
+ ~TeamExecutive() = default;
};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.cpp b/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.cpp
index 328421c..431093e 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.cpp
@@ -1,5 +1,7 @@
#include "Ticket.h"
+int Ticket::m_tid = 0;
+
const std::string& Ticket::getTicketId() const
{
return m_id;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.h b/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.h
index 7d54a6f..1ab88aa 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/models/Ticket.h
@@ -5,19 +5,20 @@
class Ticket
{
private:
+ static int m_tid;
std::string m_id;
Enums::TicketType m_type;
std::string m_description;
Enums::TicketStatus m_status;
std::string m_employeeId;
public:
- Ticket() : m_id(""), m_type(Enums::TicketType::UNKNOWN), m_description(""), m_status(Enums::TicketStatus::OPEN), m_employeeId("") {}
- Ticket(const std::string& id,
+ Ticket() : m_id("TKT" + std::to_string(++m_tid)), m_type(Enums::TicketType::UNKNOWN), m_description(""), m_status(Enums::TicketStatus::OPEN), m_employeeId("") {}
+ Ticket(
Enums::TicketType type,
const std::string& description,
const std::string& employeeId,
Enums::TicketStatus status)
- : m_id(id), m_type(type), m_description(description), m_status(status), m_employeeId(employeeId) {}
+ : m_id("TKT" + std::to_string(++m_tid)), m_type(type), m_description(description), m_status(status), m_employeeId(employeeId) {}
const std::string& getTicketId() const;
Enums::TicketType getTicketType() const;
const std::string& getDescription() const;
diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/ApplicationConfig.h b/Trenser.Zenvy/Trenser.Zenvy/services/ApplicationConfig.h
index 8e4705e..0f3ab3d 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/services/ApplicationConfig.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/services/ApplicationConfig.h
@@ -6,4 +6,33 @@ namespace Config
{
constexpr const char* DEFAULT_PASSWORD = "password";
}
+
+ namespace Payroll
+ {
+ constexpr double TEAM_LEAD_BASIC_SALARY = 0.0;
+ constexpr double TEAM_LEAD_HOUSE_RENT_ALLOWANCE = 0.0;
+ constexpr double TEAM_LEAD_FOOD_ALLOWANCE = 0.0;
+ constexpr double TEAM_LEAD_EMPLOYEE_PF_CONTRIBUTION = 0.0;
+ constexpr double TEAM_LEAD_EMPLOYER_PF_CONTRIBUTION = 0.0;
+ constexpr double SENIOR_BASIC_SALARY = 0.0;
+ constexpr double SENIOR_HOUSE_RENT_ALLOWANCE = 0.0;
+ constexpr double SENIOR_FOOD_ALLOWANCE = 0.0;
+ constexpr double SENIOR_EMPLOYEE_PF_CONTRIBUTION = 0.0;
+ constexpr double SENIOR_EMPLOYER_PF_CONTRIBUTION = 0.0;
+ constexpr double JUNIOR_BASIC_SALARY = 0.0;
+ constexpr double JUNIOR_HOUSE_RENT_ALLOWANCE = 0.0;
+ constexpr double JUNIOR_FOOD_ALLOWANCE = 0.0;
+ constexpr double JUNIOR_EMPLOYEE_PF_CONTRIBUTION = 0.0;
+ constexpr double JUNIOR_EMPLOYER_PF_CONTRIBUTION = 0.0;
+ constexpr double HR_MANAGER_BASIC_SALARY = 0.0;
+ constexpr double HR_MANAGER_HOUSE_RENT_ALLOWANCE = 0.0;
+ constexpr double HR_MANAGER_FOOD_ALLOWANCE = 0.0;
+ constexpr double HR_MANAGER_EMPLOYEE_PF_CONTRIBUTION = 0.0;
+ constexpr double HR_MANAGER_EMPLOYER_PF_CONTRIBUTION = 0.0;
+ constexpr double EXECUTIVE_BASIC_SALARY = 0.0;
+ constexpr double EXECUTIVE_HOUSE_RENT_ALLOWANCE = 0.0;
+ constexpr double EXECUTIVE_FOOD_ALLOWANCE = 0.0;
+ constexpr double EXECUTIVE_EMPLOYEE_PF_CONTRIBUTION = 0.0;
+ constexpr double EXECUTIVE_EMPLOYER_PF_CONTRIBUTION = 0.0;
+ }
}
diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagememtService.cpp b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagememtService.cpp
deleted file mode 100644
index bf8ad9d..0000000
--- a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagememtService.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include "EmployeeManagememtService.h"
diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagememtService.h b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagememtService.h
deleted file mode 100644
index 05e6ca7..0000000
--- a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagememtService.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-class EmployeeManagememtService
-{
-};
-
diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.cpp b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.cpp
new file mode 100644
index 0000000..56e27b0
--- /dev/null
+++ b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.cpp
@@ -0,0 +1,17 @@
+#include "EmployeeManagementService.h"
+
+void EmployeeManagementService::createEmployee(Enums::EmployeeType, const std::string& email, const std::string& password, const std::string& name, const std::string& phone)
+{
+}
+
+bool EmployeeManagementService::deactivateEmployee(const std::string& id)
+{
+}
+
+Employees EmployeeManagementService::getEmployees()
+{
+}
+
+std::shared_ptr EmployeeManagementService::getEmployee(const std::string& id)
+{
+}
diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.h b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.h
new file mode 100644
index 0000000..5ff7613
--- /dev/null
+++ b/Trenser.Zenvy/Trenser.Zenvy/services/EmployeeManagementService.h
@@ -0,0 +1,19 @@
+#pragma once
+#include
+#include
+#include "DataStore.h"
+#include "Enums.h"
+
+using Employees = std::vector>;
+
+class EmployeeManagementService
+{
+private:
+ DataStore& m_dataStore;
+public:
+ EmployeeManagementService() : m_dataStore(DataStore::getInstance()) {};
+ void createEmployee(Enums::EmployeeType, const std::string&, const std::string&, const std::string&, const std::string&);
+ bool deactivateEmployee(const std::string&);
+ Employees getEmployees();
+ std::shared_ptr getEmployee(const std::string&);
+};
diff --git a/Trenser.Zenvy/Trenser.Zenvy/services/PayslipManagementService.h b/Trenser.Zenvy/Trenser.Zenvy/services/PayslipManagementService.h
index 04c9805..510ffe3 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/services/PayslipManagementService.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/services/PayslipManagementService.h
@@ -1,5 +1,9 @@
#pragma once
+
class PayslipManagementService
{
+private:
+ DataStore& m_dataStore;
+public:
+ PayslipManagementService() : m_dataStore(DataStore::getInstance()) {};
};
-