EmployeeCompanyLoan::SetDatabaseAdapter($dbLocal);
Setting::SetDatabaseAdapter($dbLocal);
ChiNhanh::SetDatabaseAdapter($dbLocal);
Ca::SetDatabaseAdapter($dbLocal);
BoPhan::SetDatabaseAdapter($dbLocal);
Nguon::SetDatabaseAdapter($dbLocal);
LoaiNgay::SetDatabaseAdapter($dbLocal);
NVState::SetDatabaseAdapter($dbLocal);
NhanVien::SetDatabaseAdapter($dbLocal);
NhuCauTuyenDung::SetDatabaseAdapter($dbLocal);
$baseService = new BaseService();
$baseService->setNonDeletables("User", "id", 1);
$baseService->setCurrentUser($user);
$baseService->setDB($dbLocal);
$fileService = new FileService();
$settingsManager = new SettingsManager();
$emailEnabled = $settingsManager->getSetting("Email: Enable");
$emailMode = $settingsManager->getSetting("Email: Mode");
$emailSender = null;
if ($emailEnabled == "1") {
    if ($emailMode == "SMTP") {
        $emailSender = new SMTPEmailSender($settingsManager);
    } else {
        if ($emailMode == "SNS") {
            $emailSender = new SNSEmailSender($settingsManager);
        }
    }
}
$userTables = array("EmployeeSkill", "EmployeeEducation", "EmployeeCertification", "EmployeeLanguage", "EmergencyContact", "EmployeeDependent", "EmployeeImmigration", "EmployeeSalary", "EmployeeLeave", "EmployeeTimeSheet", "EmployeeTimeEntry", "EmployeeProject", "EmployeeDocument", "EmployeeCompanyLoan");
$baseService->setUserTables($userTables);
$baseService->setSqlErrors($mysqlErrors);