Skip to content

API — Logistics

The HTTP surface of the self-contained warehouse system. These controllers live in NKO.Main/NKO.Main/WarehouseControllers/ and read and write the separate NKO_DB_Warehouse database through WarehouseDBContext, while reusing core identity, permissions, signatures and notifications.

Two naming traps worth remembering:

  • WareBaseController is not a base class. Despite the name it is a standalone controller serving /WareBase/* AJAX lookups.
  • GRNReportController is not the procurement GRN. The core GoodReceivedNote records goods received from a supplier; the warehouse GRNReport records assets returned into the store.

See Logistics module.

174 actions across 10 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.

StockController

Consumable stock: item and specification masters, on-hand centre stock, stock movements, Stock Release Requests / delivery orders, waybills and centre-to-centre transfers.

Source: NKO.Main/NKO.Main/WarehouseControllers/StockController.cs · route prefix: /Stock · 46 actions

Route Verb Parameters Permission Returns
/Stock/AddSRRDetail GET string id StockCreateSRR PartialView / Redirect
/Stock/AddSRRDetail POST SRRDetailAddVM model StockCreateSRR PartialView / JSON
/Stock/AddStockDetail GET — StockAddStockDetail View
/Stock/AddStockDetail POST AddStockDetailVM model StockAddStockDetail View / Redirect
/Stock/AddWaybillDetail GET string id, string srrId StockWaybillDetails PartialView / Redirect
/Stock/AddWaybillDetail POST WayBillDetailsAddVM model StockWaybillDetails PartialView / JSON
/Stock/ContextActions POST string id, int operationType, int userType, string idText StockContextActions Redirect
/Stock/CreateSRR GET int? type StockCreateSRR View
/Stock/CreateSRR POST SRRCreateVM model StockCreateSRR View / Redirect
/Stock/CreateWaybill GET string id StockCreateWaybill View
/Stock/CreateWaybill POST WaybillCreateVM model StockCreateWaybill View / Redirect
/Stock/DeleteSRRDetail GET string id StockCreateSRR PartialView / Redirect
/Stock/DeleteSRRDetail POST SRRDetailVM model StockCreateSRR PartialView / JSON
/Stock/DeleteStockDetail GET string id StockDeleteStockDetail PartialView / Redirect
/Stock/DeleteStockDetail POST StockDetailVM model StockDeleteStockDetail PartialView / JSON
/Stock/DeleteWaybill GET string id StockWaybillDetails PartialView / Redirect
/Stock/DeleteWaybill POST WayBillVM model StockWaybillDetails PartialView / JSON
/Stock/DeleteWaybillDetail GET string id StockWaybillDetails PartialView / Redirect
/Stock/DeleteWaybillDetail POST WaybillDetailVM model StockWaybillDetails PartialView / JSON
/Stock/Details GET string id, int? filterStock, int? filterType, string startDate, string endDate, int? dateType, int? opType, int? opStatus, string searchInput, string errM, int? page StockDetails View
/Stock/DownloadFile GET int typeId StockIndex File
/Stock/EditSRR GET string id StockCreateSRR PartialView / Redirect
/Stock/EditSRR POST SRRVM model StockCreateSRR PartialView / JSON
/Stock/EditSRRDetail GET string id StockCreateSRR PartialView / Redirect
/Stock/EditSRRDetail POST SRRDetailAddVM model StockCreateSRR PartialView / JSON
/Stock/EditStockDetail GET string id StockEditWaybillDetail View / Redirect
/Stock/EditStockDetail POST AddStockDetailVM model StockEditWaybillDetail View / Redirect
/Stock/EditWaybill GET string id StockWaybillDetails PartialView / Redirect
/Stock/EditWaybill POST WayBillVM model StockWaybillDetails PartialView / JSON
/Stock/EditWaybillDetail GET string id StockWaybillDetails PartialView / Redirect
/Stock/EditWaybillDetail POST WayBillDetailsAddVM model StockWaybillDetails PartialView / JSON
/Stock/Export GET int? filterDir, int? filterSector, int? filterCenter, int? CatId, int? Cat2Id, int? Cat3Id, int? StockId, int? StockSpecId, int? donorId, int? projectId, string searchInput StockIndex Redirect
/Stock/ExportSRR GET int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? opType, int? opStatus, bool? IsExternal, int? UserId, int? curCenterId, string searchInput, int? searchType, int? projectId StockIndex View / Redirect
/Stock/GetCats GET string search StockGetStocks JSON
/Stock/GetCenters GET string search StockGetCenters JSON
/Stock/GetGenStocks GET string search, int type StockGetStocks JSON
/Stock/GetStocks GET string search, int id, int projectId StockGetStocks JSON
/Stock/GetStocksBySRR GET string search, string id StockGetCenters JSON
/Stock GET int? id, int? filterDir, int? filterSector, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? CatId, int? Cat2Id, int? Cat3Id, int? StockId, int? StockSpecId, int? donorId, int? projectId, int? opStatus, string searchInput, bool? IsAvailable, string errM, int? page StockIndex View
/Stock/IsSRRCorrect POST string ReferenceCode, int OpTypeId StockAddStockDetail JSON
/Stock/ReleaseStockDetail GET string Id StockAddStockDetail PartialView / Redirect
/Stock/ReleaseStockDetail POST ReleaseStockDetailVM model, string id StockAddStockDetail PartialView / JSON
/Stock/SRR GET int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? opType, int? opStatus, bool? IsExternal, int? UserId, int? curCenterId, string searchInput, int? searchType, string errM, int? projectId, int? page StockSRR View
/Stock/SRRDetails GET string id, int? pdf, string msg StockSRRDetails View / NotFound
/Stock/WaybillDetails GET string id, int? pdf StockWaybillDetails View
/Stock/Waybills GET string id, int? filterDir, int? filterSector, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? centerId, string searchInput, string errM, int? page StockWaybills View

AssetController

The fixed-asset register: registration and approval, hand-over to an employee, asset details and the employee asset card.

Source: NKO.Main/NKO.Main/WarehouseControllers/AssetController.cs · route prefix: /Asset · 40 actions · 1 ungated

Route Verb Parameters Permission Returns
/Asset/AddAsset GET — AssetAddAsset View
/Asset/AddAsset POST CreateAssetVM model AssetAddAsset View / Redirect
/Asset/AddSRRDetail GET string id StockCreateSRR PartialView / Redirect
/Asset/AddSRRDetail POST SRRDetailAddVM model StockCreateSRR PartialView / JSON
/Asset/CancelAsset POST AssetInfoVM model AssetCancelAsset Redirect
/Asset/ChangeStatus POST int srrId, int specId, List<int> selectedAssets, TransferType transferType, string? attachmentId AssetIndex Redirect
/Asset/ContextActions POST string id, int operationType, int userType, string idText StockContextActions Redirect
/Asset/CreateSRR GET int? type StockCreateSRR View
/Asset/CreateSRR POST AHFCreateVM model StockCreateSRR View / Redirect
/Asset/DeleteAsset GET string id AssetDeleteAsset PartialView / Redirect
/Asset/DeleteAsset POST Asset model AssetDeleteAsset PartialView / JSON
/Asset/DeleteAssetDetail GET string id, int srrId AssetDeleteAssetDetail PartialView / Redirect
/Asset/DeleteAssetDetail POST AssetDetail model AssetDeleteAssetDetail PartialView / JSON
/Asset/DeleteSRRDetail GET string id StockCreateSRR PartialView / Redirect
/Asset/DeleteSRRDetail POST SRRDetailVM model StockCreateSRR PartialView / JSON
/Asset/Details GET string id, string srrId, int? filterStock, int? filterType, string startDate, string endDate, int? dateType, int? opType, int? opStatus, string searchInput, string errM, int? page AssetDetails View
/Asset/DownloadAttachment GET string filePath, bool view — open Redirect
/Asset/DownloadFile GET int typeId AssetExport File
/Asset/EditAsset GET string id AssetEditAsset View / Redirect
/Asset/EditAsset POST Asset model, IFormFile file AssetEditAsset View / Redirect
/Asset/EditSRR GET string id StockCreateSRR View / Redirect
/Asset/EditSRR POST AHFVM model StockCreateSRR PartialView / Redirect
/Asset/EditSRRDetail GET string id StockCreateSRR PartialView / Redirect
/Asset/EditSRRDetail POST SRRDetailAddVM model StockCreateSRR PartialView / JSON
/Asset/Export GET int? filterDir, int? filterSector, int? filterCenter, int? CatId, int? Cat2Id, int? Cat3Id, int? StockId, int? StockSpecId, int? UserId, int? StatusId, string searchInput, int? searchType, bool? TerminationSuggested, bool? financeAsset, DateTime? startDate, DateTime? endDate, DateTime? statusDate, int? donorId, int? projectId AssetExport Redirect
/Asset/ExportSRR GET int? filterDir, int? filterSector, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? opType, int? opStatus, bool? IsExternal, int? UserId, int? curCenterId, string searchInput, int? searchType, int? projectId StockIndex View / Redirect
/Asset/GetAssets GET string search WareGRNIndex JSON
/Asset/GetCats GET string search StockGetStocks JSON
/Asset/GetCenters GET string search StockGetCenters JSON
/Asset/GetGenStocks GET string search, int type StockGetStocks JSON
/Asset/GetStocks GET string search, int id, int projectId StockGetStocks JSON
/Asset/GetUserCodes GET string search AssetDetails JSON
/Asset GET int? id, int? filterDir, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? CatId, int? Cat2Id, int? Cat3Id, int? StockId, int? StockSpecId, int? donorId, int? projectId, int? UserId, int? StatusId, string searchInput, int? searchType, string errM, int? pdf, int? page AssetIndex View
/Asset/IsSRRCorrect POST string ReferenceCode, int OpTypeId StockAddStockDetail JSON
/Asset/RegisterContextActions POST string id, int operationType, int userType, string note, string extraInfo AssetDetails Redirect
/Asset/SRR GET int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? opType, int? opStatus, bool? IsExternal, int? UserId, int? curCenterId, string searchInput, int? searchType, string errM, int? projectId, int? page StockSRR View
/Asset/SRRDetails GET string id, int? pdf, string msg StockSRRDetails View / NotFound
/Asset/TransferToUser POST AssetInfoVM model, IFormFile Attachment AssetTransferToUser Redirect
/Asset/TransferToWare POST AssetInfoVM model, IFormFile Attachment AssetTransferToWare Redirect
/Asset/WarehouseList GET string id, int SpecStockId, string errM, int? page AssetIndex View / Redirect

MaintenanceReqController

Asset maintenance requests and their approval.

Source: NKO.Main/NKO.Main/WarehouseControllers/MaintenanceReqController.cs · route prefix: /MaintenanceReq · 9 actions

Route Verb Parameters Permission Returns
/MaintenanceReq/ContextActions POST string id, int operationType, int userType, string note AssetMaintenanceDetails Redirect
/MaintenanceReq/Create GET — AssetMaintenanceCreate PartialView
/MaintenanceReq/Create POST MaintenanceReqVM model AssetMaintenanceCreate PartialView / JSON
/MaintenanceReq/Delete GET string id AssetMaintenanceDelete PartialView / Redirect
/MaintenanceReq/Delete POST MaintenanceReqVM model AssetMaintenanceDelete PartialView / JSON
/MaintenanceReq/Details GET string id, int? pdf AssetMaintenanceDetails View / NotFound
/MaintenanceReq/Edit GET string id AssetMaintenanceEdit PartialView / Redirect
/MaintenanceReq/Edit POST MaintenanceReqVM model AssetMaintenanceEdit PartialView / JSON
/MaintenanceReq GET int? statusId, string searchInput, int? page, int? warehouseId AssetMaintenanceIndex View

DestructionController

Asset disposal / destruction requests and their approval.

Source: NKO.Main/NKO.Main/WarehouseControllers/DestructionController.cs · route prefix: /Destruction · 12 actions

Route Verb Parameters Permission Returns
/Destruction/AssetsForDestruction GET int id DestructionCreate View
/Destruction/ContextActions POST string id, int operationType, int userType, string note, string cancelnote DestructionDetails Redirect
/Destruction/Create GET — DestructionCreate View
/Destruction/Create POST DestructionVM model DestructionCreate View / Redirect
/Destruction/CreateAttachment GET string id, int? fileType DestructionDetails PartialView
/Destruction/CreateAttachment POST string attachedFiles, string Description, string id, int? FileTypeId DestructionDetails JSON
/Destruction/DeleteAttachment GET string id DestructionDetails Redirect
/Destruction/Details GET string id, int? pdf DestructionDetails View
/Destruction/DownloadFile GET int typeId DestructionDetails File
/Destruction/Export GET int destructionId DestructionIndex Redirect
/Destruction GET int? page DestructionIndex View
/Destruction/UploadFiles POST int id, string desc DestructionDetails JSON

GRNReportController

The warehouse GRN report — assets returned into the store. A different document from the procurement GoodReceivedNote.

Source: NKO.Main/NKO.Main/WarehouseControllers/GRNReportController.cs · route prefix: /GRNReport · 9 actions

Route Verb Parameters Permission Returns
/GRNReport/ContextActions POST string id, int operationType, int userType, string note, string cancelnote WareGRNDetails Redirect
/GRNReport/Create GET — WareGRNCreate PartialView
/GRNReport/Create POST GRNReportVM model WareGRNCreate PartialView / JSON
/GRNReport/Delete GET string id WareGRNDelete PartialView / Redirect
/GRNReport/Details GET string id, int? pdf WareGRNDetails View / NotFound
/GRNReport/Edit GET string id WareGRNEdit PartialView / Redirect
/GRNReport/Edit POST GRNReportVM model WareGRNEdit PartialView / JSON
/GRNReport/GetAssetsByUser GET string search WareGRNIndex JSON
/GRNReport GET int? filterDir, int? filterSector, int? filterCenter, int? filterType, int? dateType, int? StatusId, string searchInput, int? searchType, string errM, int? page WareGRNIndex View

ReportController

Warehouse reporting: stock entries and movements, employee asset cards and the exports.

Source: NKO.Main/NKO.Main/WarehouseControllers/ReportController.cs · route prefix: /Report · 10 actions · 1 ungated

Route Verb Parameters Permission Returns
/Report/Asset GET int? filterType, string startDate, string endDate, int? dateType, string statusDate, int? CatId, int? StockId, int? StockSpecId, int? UserId, int? CenterId, int? projectId, bool? TerminationSuggested, bool? FinanceAsset, int? page ReportIndex View
/Report/EmployeeCard GET string errM, int? pdf, int? userId, int? page WareReportEmployeeCard View
/Report/EntriesReport GET int? dateType, int? filterCenter, int? filterType, string startDate, string endDate, int? opType, int? StockId, int? StockSpecId, int? projectId, string searchInput, string errM, int? page, int? pdf ReportIndex View
/Report/Export GET int? id, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? TypeId, int? BrandId, int? StatusId ReportIndex View / Redirect
/Report/ExportAssets GET int? filterCenter, int? CatId, int? StockId, int? StockSpecId, int? UserId, int? StatusId, string searchInput, int? searchType, DateTime? startDate, DateTime? endDate, DateTime? statusDate AssetExport Redirect
/Report/ExportEntriesReport GET int? filterCenter, int? dateType, string startDate, string endDate, int? opType, int? StockId, int? StockSpecId, int? projectId, string searchInput ReportIndex View / Redirect
/Report/ExportEntry GET string id, int? page StockIndex Task<ActionResult>
/Report/ExportStocks GET int? id, int? filterDir, int? filterSector, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? TypeId, int? BrandId, int? StatusId — open View / Redirect
/Report GET int? id, int? filterDir, int? filterSector, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? opType, int? CatId, int? StockId, int? projectId, int? StockSpecId, int? UserId, int? CenterId, bool? IsAsset, int? page ReportIndex View
/Report/Stock GET int id, int? filterDir, int? filterSector, int? filterCenter, int? filterType, string startDate, string endDate, int? dateType, int? opType, int StockSpecId, int? UserId, int? CenterId, int? projectId, int? page ReportIndex View

WareAdminController

The warehouse control panel — warehouses, categories (CatL1), goods, units and per-employee category permissions.

Source: NKO.Main/NKO.Main/WarehouseControllers/WareAdminController.cs · route prefix: /WareAdmin · 36 actions

Route Verb Parameters Permission Returns
/WareAdmin/AddCatOne GET — StockAdminAdvance PartialView
/WareAdmin/AddCatOne POST Cat1Vm model StockAdminAdvance PartialView / JSON
/WareAdmin/AddStockSpec GET int id StockAdmin PartialView
/WareAdmin/AddStockSpec POST StockSpecification model StockAdmin PartialView / JSON
/WareAdmin/AddWarehouse GET — StockAdminAdvance PartialView
/WareAdmin/AddWarehouse POST NKO.Warehouse.DataAccess.Warehouse model StockAdminAdvance PartialView / JSON
/WareAdmin/AllStocks GET string searchInput, int? page StockAdmin View
/WareAdmin/Create GET — StockAdmin View
/WareAdmin/Create POST CreateStockVM model StockAdmin View / Redirect
/WareAdmin/DeleteWarehouse GET int id StockAdminAdvance PartialView / Redirect
/WareAdmin/DeleteWarehouse POST NKO.Warehouse.DataAccess.Warehouse model StockAdminAdvance PartialView / JSON
/WareAdmin/Edit GET int id StockAdmin View
/WareAdmin/Edit POST Stock model StockAdmin View / Redirect
/WareAdmin/EditCatOne GET int id StockAdminAdvance PartialView
/WareAdmin/EditCatOne POST Cat1Vm model StockAdminAdvance PartialView / JSON
/WareAdmin/EditStockSpec GET int id StockAdmin PartialView
/WareAdmin/EditStockSpec POST StockSpecification model StockAdmin PartialView / JSON
/WareAdmin/EditWarehouse GET int id StockAdminAdvance PartialView
/WareAdmin/EditWarehouse POST NKO.Warehouse.DataAccess.Warehouse model StockAdminAdvance PartialView / JSON
/WareAdmin/Export GET — StockAdminAdvance View / Redirect
/WareAdmin/FixIssues GET — StockAdminAdvance View
/WareAdmin/ImportCenterData GET — StockAdminAdvance View
/WareAdmin/ImportCenterData POST IFormFile file, int centerId StockAdminAdvance View
/WareAdmin/ImportData GET — StockAdminImportData View
/WareAdmin/ImportData POST IFormFile file StockAdminImportData View
/WareAdmin/ImportRecipients GET — StockAdminAdvance View
/WareAdmin/ImportRecipients POST IFormFile file, int centerId StockAdminAdvance View
/WareAdmin/ImportSRRData GET — StockAdminAdvance View
/WareAdmin/ImportSRRData POST IFormFile file StockAdminAdvance View
/WareAdmin/ImportSpecifications GET — StockAdminAdvance View
/WareAdmin/ImportSpecifications POST IFormFile file StockAdminAdvance View
/WareAdmin GET int? page StockAdminAdvance View
/WareAdmin/SearchStocks GET string search StockAdmin JSON
/WareAdmin/StockSpecs GET int id, int? page StockAdmin View
/WareAdmin/Stocks GET int id, string searchInput, int? page StockAdmin View
/WareAdmin/Warehouses GET int? page, bool? isAsset StockAdminAdvance View

AttachmentsController

The warehouse document archive.

Source: NKO.Main/NKO.Main/WarehouseControllers/AttachmentsController.cs · route prefix: /Attachments · 5 actions

Route Verb Parameters Permission Returns
/Attachments/AddAttachment GET — WarehouseAttachments View
/Attachments/AddAttachment POST WarehouseEvidenceViewModel model WarehouseAttachments View / Redirect
/Attachments/Edit GET string id WarehouseAttachments View
/Attachments/Edit POST WarehouseEvidenceViewModel model WarehouseAttachments View / Redirect
/Attachments GET string searchInput, string descSearchInput, int? category, int? page WarehouseAttachments View

EvidencesController

Warehouse evidence records and their reference codes.

Source: NKO.Main/NKO.Main/WarehouseControllers/EvidenceController.cs · route prefix: /Evidences · 2 actions · 2 ungated

Route Verb Parameters Permission Returns
/Evidences/GetRefrenceCode GET string search, int type — open JSON
/Evidences GET — — open View

WareBaseController

Shared AJAX lookups used by the warehouse screens (stock and specification dropdowns). Not an inherited base class despite the name.

Source: NKO.Main/NKO.Main/WarehouseControllers/WareBaseController.cs · route prefix: /WareBase · 5 actions · 2 ungated

Route Verb Parameters Permission Returns
/WareBase/Download GET string filePath, AttachFileTypes type, string filename [Authorize] Redirect
/WareBase/GetImage GET int id [Authorize] File
/WareBase/GetStockSpecs GET int? id — open JSON
/WareBase/GetStocks GET int? id — open JSON
/WareBase/Thumbnail GET int width, int height, int id [Authorize] File