Skip to main content

EKAJAYA -COMPANY

🏢 Technical Specification: Company Setup


📋 Feature Overview

Attribute Detail
Module ⚙️ Settings
Feature Name Company Setup
Description Acts as the master data management tool for company entities. Supports creating internal/external companies and manages soft deletes.
User Guide 📄 [Ekajaya Admin User Guide - Setting Module, Section 1]

💼 Functional Workflow

  • 📍 Navigation Go to Settings > Company
  • 👁️ Listing View Displays paginated list. Search filters: Name, Description, Remark.
  • ➕ Add Action Click the Add button to open the creation form.
  • ✏️ Edit Action Click the Pencil icon on a row to modify details.
  • 🗑️ Delete Action Click the Trash icon to perform a soft delete (validation required).

🛠️ Technical Implementation

A. Permissions & Access Control

Note: Access is controlled via PermissionGuard and UI directives (*ngIf).
Scope Permission Code Description
Menu Visibility COMPANY.MENU Sidebar menu item visibility for both listing and edit/add company.
Page Access COMPANY.LISTING Access to /listing-company.
View/Edit Access COMPANY.VIEW Access to /add-company-manage.

Create Action

COMPANY.CREATE

Visibility of the Add + button.

Update/Edit Action COMPANY.UPDATE Ability to save changes on Edit screen.
Delete Action COMPANY.DELETE Visibility of the Delete 🗑️ icon.

B. API Interaction

Base URL: ${environment.baseApiUrl}
1. Retrieve Company List (Query)
Endpoint
/companies/getQuery
Method
POST
Purpose
Fetches paginated data for the grid.
Params
filter: isDeleted||$eq||0
sort: companyName
2. Get Single Company (Edit Mode)
Endpoint
/companies/getOne
Method
GET
Params
id (Number)
3. Create Company
Endpoint
/companies/create
Method
POST
{
  "companyName": "String",
  "description": "String",
  "remark": "String",
  "isInternal": Boolean
}
4. Update Company
Endpoint
/companies/update
Method
POST
Payload is same as Create, but includes "id": Number.
5. Delete Company (Soft Delete)
Endpoint
/companies/update
Method
POST
Logic
Updates record setting isDeleted: true.

{
  "id": Number,
  "isDeleted": true
}

C. Validation & Business Logic

1. Unique Name Validation

  • Trigger: On Save (Create Mode Only)
  • Logic: Calls /companies/getQuery with filter companyName||$eq||{Input}
  • Error: Blocking error: "Company name already exists".

2. Pre-Delete Dependency Checks

Before allowing a delete, the system checks if the company is tied to active records in other modules.

# Module Endpoint Filter
1 👥 Users /companyUsers/getQuery companyId
2 🚚 Drivers /drivers/getQuery companyId
3 📦 Movers /movers/getQuery companyId
4 ⛽ Tankers /tankers/getQuery companyId