Skip to content

API — HR

The HTTP surface of the HR module: the employee master file and every record hanging off it, plus daily attendance. HumanResourceController is the second-largest controller in the solution — most of its actions are the per-tab Manage* / Add* / Edit* / Delete* fragments behind the employee card.

See HR module for what these screens do, and HR Onboarding for the end-to-end flow.

115 actions across 3 controllers

Routing, the permission model, response kinds and error behaviour are described once in the API Overview. Unless a row says otherwise the route is /{Controller}/{Action}, id is a GUID string, and a Details page is a full View while Manage* / Create fragments are PartialViews loaded into a modal.

HumanResourceController

The employee master file — the approved and draft employee grids, the employee card, and every sub-record tab (identity documents, family, relatives, contracts, positions, insurance, allowances, deductions, attachments, e-signatures).

Source: NKO.Main/NKO.Main/Controllers/HumanResourceController.cs · route prefix: /HumanResource · 97 actions · 1 ungated

Route Verb Parameters Permission Returns
/HumanResource/AddFamilyMember GET string id, bool? type HumanResourceFamilyManagement PartialView
/HumanResource/AddFamilyMember POST AppUserFamily model HumanResourceFamilyManagement JSON
/HumanResource/AddNote GET string id, string returnUrl HumanResourceAddNote PartialView
/HumanResource/AddNote POST Note model, string returnUrl HumanResourceAddNote PartialView / JSON
/HumanResource/ApproveSign GET int signId, int userId HumanResourceManageSign Redirect
/HumanResource/Attachments GET string id, string errM, int? editId HumanResourceAttachments View
/HumanResource/Charges GET string id HumanResourceContract View
/HumanResource/Conflict GET string id HumanResourceConflict View
/HumanResource/Contract GET string id HumanResourceContract View
/HumanResource/Contract POST AppUserExtend model HumanResourceContract View
/HumanResource/ContractDetails GET string u, int? t HumanResourceContractDetails PartialView
/HumanResource/Create GET — HumanResourceCreate PartialView
/HumanResource/Create POST CustomUserCreateModel Model HumanResourceCreate PartialView / JSON
/HumanResource/CreateEmployee GET int JobId, string applicantGuid HumanResourceCreate Redirect
/HumanResource/Dashboard GET string id HumanResourceDashboard View
/HumanResource/Delete GET string id HumanResourceEdit PartialView / Redirect
/HumanResource/Delete POST AppUser model HumanResourceEdit PartialView / JSON
/HumanResource/DeleteAttachment GET string id HumanResourceDeleteAttachment PartialView / Redirect
/HumanResource/DeleteAttachment POST AppUserAttachment model HumanResourceDeleteAttachment JSON
/HumanResource/DeleteCharge GET int id HumanResourceContract PartialView
/HumanResource/DeleteCharge POST AppUserCharge model HumanResourceContract PartialView / JSON
/HumanResource/DeleteConflict GET int id HumanResourceConflictManagement PartialView / Redirect
/HumanResource/DeleteConflict POST AppUserRelative model HumanResourceConflictManagement PartialView / JSON
/HumanResource/DeleteContract GET string id HumanResourceContract PartialView / Redirect
/HumanResource/DeleteContract POST AppUserContract model HumanResourceContract PartialView / JSON
/HumanResource/DeleteDeduction GET int t, string u HumanResourceManageData PartialView
/HumanResource/DeleteDeduction POST DeductionVM model HumanResourceManageData PartialView / JSON
/HumanResource/DeleteFamilyMember GET int id HumanResourceFamilyManagement PartialView / Redirect
/HumanResource/DeleteFamilyMember POST AppUserFamily model HumanResourceFamilyManagement PartialView / JSON
/HumanResource/DeleteFile POST string id HumanResourceManageAttachment JSON
/HumanResource/DeleteFileCharge POST string id HumanResourceContract JSON
/HumanResource/DeleteNote GET string id HumanResourceDeleteAttachment PartialView / Redirect
/HumanResource/DeleteNote POST Note model HumanResourceDeleteAttachment JSON
/HumanResource/DeleteReward GET int t, string u HumanResourceManageData PartialView
/HumanResource/DeleteReward POST RewardVM model HumanResourceManageData PartialView / JSON
/HumanResource/DeleteSign GET int id HumanResourceManageSign PartialView
/HumanResource/DeleteSign POST UserCreateSignVM model HumanResourceManageSign PartialView / JSON
/HumanResource/Details GET string id HumanResourceDetails View
/HumanResource/DownloadAttachment GET string attachmentId — open Redirect / NotFound
/HumanResource/DownloadContract2 GET int id HumanResourceContract File
/HumanResource/DownloadContractPDF GET int id HumanResourceContract Task<ActionResult>
/HumanResource/DraftEmployees GET string sortOrder, string currentFilter, string searchString, int? page, string type, string currentType, int? currentEnabledFilter, int? enabledFilter, int? filterBranch, int? filterSubBranch HumanResourceDraftEmployees View
/HumanResource/Edit GET string id HumanResourceEdit View
/HumanResource/Edit POST CustomUserEditModel Model, IFormFile file, List<string> Langauges HumanResourceEdit View
/HumanResource/EditEmp GET string id HumanResourceEdit View
/HumanResource/EditEmp POST CustomEmployeeEditModel Model, IFormFile file HumanResourceEdit View
/HumanResource/EditFamilyMember GET int id HumanResourceFamilyManagement PartialView
/HumanResource/EditFamilyMember POST AppUserFamily model HumanResourceFamilyManagement JSON
/HumanResource/EmployeeCard GET string id HumanResourceEmployeeCard View
/HumanResource/ExAllowance GET string id HumanResourcePosition View
/HumanResource/ExportUsers GET string userIds HumanResourceExportUsers View
/HumanResource/FamilyManagement GET string id HumanResourceFamilyManagement View
/HumanResource/IdInformation GET string id HumanResourceFamilyManagement View
/HumanResource/ImportData GET — PayrollTransferData View
/HumanResource/ImportData POST IFormFile file PayrollTransferData View
/HumanResource GET string sortOrder, string currentFilter, string searchString, int? filterBranch, int? filterSubBranch, int? page, string type, string currentType, int? currentEnabledFilter, int? enabledFilter, bool? isDirect, int activeStatus HumanResourceIndex View
/HumanResource/Leaves GET string id, int? page, int? filterStatus, int? filterType HumanResourceLeaves View
/HumanResource/Manage POST AppUserOvertime Model HumanResourceContract PartialView / JSON
/HumanResource/ManageAllowance GET string u, int? t HumanResourceManagePosition PartialView
/HumanResource/ManageAllowance POST AppUserAllowance Model HumanResourceManagePosition PartialView / JSON
/HumanResource/ManageAttachment GET string u, int? t HumanResourceManageAttachment Redirect
/HumanResource/ManageAttachment POST AppUserAttachment Model HumanResourceManageAttachment Redirect
/HumanResource/ManageCharge GET int userId, int? id HumanResourceContract PartialView
/HumanResource/ManageCharge POST AppUserCharge model HumanResourceContract PartialView / JSON
/HumanResource/ManageConflict GET string u, int? t HumanResourceConflictManagement PartialView
/HumanResource/ManageConflict POST AppUserRelative Model HumanResourceConflictManagement PartialView / JSON
/HumanResource/ManageContract GET string u, int? t HumanResourceContract PartialView
/HumanResource/ManageContract POST AppUserContract Model HumanResourceContract JSON
/HumanResource/ManageDeduction GET string u, int? t HumanResourceManageData PartialView
/HumanResource/ManageDeduction POST AppUserDeduction Model HumanResourceManageData JSON
/HumanResource/ManageInsurance GET string u, int? t HumanResourceManageData PartialView
/HumanResource/ManageInsurance POST AppUserInsurance Model HumanResourceManageData PartialView / JSON
/HumanResource/ManageOvertime GET string u, int? t HumanResourceContract PartialView
/HumanResource/ManageReward GET string u, int? t HumanResourceManageData PartialView
/HumanResource/ManageReward POST AppUserReward Model HumanResourceManageData JSON
/HumanResource/ManageSign GET string id, int? signId HumanResourceManageSign Redirect
/HumanResource/ManageSign POST UserCreateSignVM model HumanResourceManageSign Redirect
/HumanResource/Navigation GET string id, string side, string currentPage, int status HumanResourceIndex View / Redirect
/HumanResource/Notes GET string id HumanResourceNotes View
/HumanResource/Overtime GET string id HumanResourceOvertime View
/HumanResource/RefreshContract GET int contractId HumanResourceContract PartialView
/HumanResource/RefreshContract POST AppUserContract model HumanResourceContract JSON
/HumanResource/RejectSign GET int signId, int userId HumanResourceManageSign PartialView
/HumanResource/RejectSign POST UserCreateSignVM model HumanResourceManageSign PartialView / JSON
/HumanResource/RenewContract GET int contractId HumanResourceContract Redirect
/HumanResource/Report GET int tab, int? page, string searchText, List<int> departmentIds, List<int> branchIds, List<int> nationalityIds, bool? sex, List<int> maritalStatuses, List<int> bankIds, List<int> birthCountryIds, List<int> directManagerIds, List<int> technicalManagerIds, List<int> qualifications, List<int> bloodTypes, DateTime? startLeftDate, DateTime? endLeftDate, DateTime? startDateOfStart, DateTime? endDateOfStart, int activeStatus, int? resCountryId, int? governorateId, int? districtId, bool? notes, bool? bankRequired, bool? pacEmail, bool? pacCardId, List<int> subBranchIds, bool? isChronicDiseases, bool? relativeId, bool? signture, bool? isDirect, int? projectId, int? contractType, int? workType, int? positionId, int? contractScaleId, DateTime? contractStartDate, DateTime? contractEndDate, DateTime? contractActualEndDate, int? levelId, int? stepId, int? fromSalary, int? toSalary, bool? totalAllowance, int? currencyId, int? defaultNationalityId, int? defaultId, int? salaryType, bool? passport, bool? turkishId, bool? residencyPermit, bool? tempProtectionId, bool? workPermit, bool? syrianId, bool? cV, bool? noconviction, bool? scientificCertificate, bool? trainingCertificate, bool? medicalCertificate, bool? personalImage, bool? other, bool? censusRegistrationCertificate, bool? residenceCertificate, bool? sGK, bool? signatureApprovalForm, bool? isimDenklikBelgesi, int? chargePositionId, bool? isActiveContract, bool hasNoDirectManager, bool hasNoTechnicalManager, bool hasNoChargePosition, bool hasNoBirthCountry, bool hasNoNationality, bool hasNoQualification, bool hasNoMaritalStatus, bool hasNoBank, bool hasNoAddressCountry, bool hasNoAddressCity, bool hasNoAddressZone, bool hasNoBloodType, bool reset HumanResourceReport View
/HumanResource/Salary GET string id HumanResourceSalary View
/HumanResource/SearchUser GET string id, string currentPage HumanResourceIndex View / Redirect
/HumanResource/Signatures GET string id, int? signId, string msg HumanResourceSignatures View
/HumanResource/UpdateSubData GET — PayrollTransferData View
/HumanResource/UpdateSubData POST IFormFile file PayrollTransferData View
/HumanResource/UploadFile POST — HumanResourceManageAttachment JSON
/HumanResource/UploadFileCharge POST — HumanResourceContract JSON
/HumanResource/UploadFiles POST int id HumanResourceUploadFiles Content
/HumanResource/ViewDeduction GET string u, int t HumanResourceOvertime PartialView
/HumanResource/ViewReward GET string u, int t HumanResourceOvertime PartialView
/HumanResource/ViewUser GET string id HumanResourceViewUser View

AttendancesController

Daily attendance: check-in / check-out, the justification queue, the monthly and yearly calendar reconciliation, and the exports that feed payroll.

Source: NKO.Main/NKO.Main/Controllers/AttendancesController.cs · route prefix: /Attendances · 16 actions · 5 ungated

Route Verb Parameters Permission Returns
/Attendances/Delay GET string id, int year, int month, int? pdf AttendancesDelay View
/Attendances/Edit POST int? CheckIn, int? CheckOut AttendancesIndex Redirect
/Attendances/Export GET int month, int year HumanResourceExportUsers Redirect
/Attendances/ExportPendingAttendences GET int year, int month, int? SubBranchId AttendancesMissings Redirect
/Attendances GET string id, int? year AttendancesIndex View
/Attendances/GetMissingList GET int year, int month, int? SubBranchId, AppUser currentUser — open List<MissingsAttendanceVM> — internal helper, unintentionally routable
/Attendances/GetMissingListByUser GET int year, int month, int userId — open MissingsAttendanceVM — internal helper, unintentionally routable
/Attendances/HourPercentageFilled GET MonthAttendanceViewModel attendance — open Tuple<double,double> — internal helper, unintentionally routable
/Attendances/Justify GET int year, int month, int userId AttendancesMissings View
/Attendances/Missings GET int year, int month, string sortOrder, int? SubBranchId, int? page AttendancesMissings View
/Attendances/Navigation GET string id, string side, int month, int year AttendancesDelay JSON
/Attendances/PercentageFilled GET MonthAttendanceViewModel attendance — open double — internal helper, unintentionally routable
/Attendances/ResetCheck GET int id, int type ResetCheck PartialView
/Attendances/ResetCheck POST ResetCheckVM vm ResetCheck PartialView / JSON
/Attendances/TypeShouldHaveCheckinCheckout GET DayType type — open bool
/Attendances/Users GET int year, int month HumanResourceExportUsers View

DocumentController

Header and footer fragments requested by the PDF renderer while exporting a document. Both are [AllowAnonymous] because the renderer fetches them without the user session.

Source: NKO.Main/NKO.Main/Controllers/DocumentController.cs · route prefix: /Document · 2 actions · 2 ungated

Route Verb Parameters Permission Returns
/Document/ExportationRotativeFooter GET — [AllowAnonymous] PartialView
/Document/ExportationRotativeHeader GET — [AllowAnonymous] PartialView