bhavika24 commited on
Commit
20528e3
·
verified ·
1 Parent(s): 83b6e91

Upload 6 files

Browse files
Files changed (5) hide show
  1. engine.py +21 -15
  2. field_types.json +219 -0
  3. fields.json +0 -0
  4. join_graph.json +1268 -0
  5. modules.json +872 -0
engine.py CHANGED
@@ -166,7 +166,6 @@ def build_sql(plan):
166
  meta = load_metadata()
167
 
168
  module = plan["module"]
169
-
170
  if module not in meta["modules"]:
171
  raise ValueError(f"Unknown module: {module}")
172
 
@@ -176,34 +175,40 @@ def build_sql(plan):
176
  joined_tables = set()
177
  where_clauses = []
178
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  for f in plan.get("filters", []):
180
- field_name = f["field"]
181
- operator = f["operator"]
182
- value = f["value"]
183
 
184
- # Resolve field metadata
185
- field = resolve_field(field_name, module)
186
  table = field["table"]
187
  column = field["column"]
188
 
189
- # Handle JOIN only once
190
  if table != base_table and table not in joined_tables:
191
  join_steps = resolve_join_path(base_table, table)
192
- join_sql = build_join_sql(base_table, join_steps)
193
-
194
- joins.append(join_sql)
195
  joined_tables.add(table)
196
 
197
- # Operator resolution
198
- sql_op, sql_value = resolve_operator(operator, value)
199
-
200
  where_clauses.append(
201
  f"{table}.{column} {sql_op} {sql_value}"
202
  )
203
 
204
- # Final SQL
205
  sql = f"""
206
- SELECT {base_table}.*
207
  FROM {base_table}
208
  {' '.join(joins)}
209
  WHERE {' AND '.join(where_clauses)}
@@ -213,6 +218,7 @@ def build_sql(plan):
213
  return sql.strip()
214
 
215
 
 
216
  # =========================
217
  # VALIDATION
218
  # =========================
 
166
  meta = load_metadata()
167
 
168
  module = plan["module"]
 
169
  if module not in meta["modules"]:
170
  raise ValueError(f"Unknown module: {module}")
171
 
 
175
  joined_tables = set()
176
  where_clauses = []
177
 
178
+ # ---------- SELECT ----------
179
+ select_fields = plan.get("select", [])
180
+
181
+ if select_fields:
182
+ select_columns = []
183
+ for f in select_fields:
184
+ field = resolve_field(f, module)
185
+ select_columns.append(
186
+ f"{field['table']}.{field['column']}"
187
+ )
188
+ select_sql = ", ".join(select_columns)
189
+ else:
190
+ select_sql = f"{base_table}.*"
191
+
192
+ # ---------- FILTERS ----------
193
  for f in plan.get("filters", []):
194
+ field = resolve_field(f["field"], module)
 
 
195
 
 
 
196
  table = field["table"]
197
  column = field["column"]
198
 
 
199
  if table != base_table and table not in joined_tables:
200
  join_steps = resolve_join_path(base_table, table)
201
+ joins.append(build_join_sql(base_table, join_steps))
 
 
202
  joined_tables.add(table)
203
 
204
+ sql_op, sql_value = resolve_operator(f["operator"], f["value"])
 
 
205
  where_clauses.append(
206
  f"{table}.{column} {sql_op} {sql_value}"
207
  )
208
 
209
+ # ---------- FINAL SQL ----------
210
  sql = f"""
211
+ SELECT {select_sql}
212
  FROM {base_table}
213
  {' '.join(joins)}
214
  WHERE {' AND '.join(where_clauses)}
 
218
  return sql.strip()
219
 
220
 
221
+
222
  # =========================
223
  # VALIDATION
224
  # =========================
field_types.json ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "text": {
3
+ "label": "Text",
4
+ "ui_component": "text",
5
+ "operators": [
6
+ "contains",
7
+ "does_not_contain",
8
+ "equals",
9
+ "not_equals",
10
+ "starts_with",
11
+ "ends_with",
12
+ "is_empty",
13
+ "is_not_empty"
14
+ ],
15
+ "default_operator": "contains",
16
+ "description": "Plain text field for strings and general text content"
17
+ },
18
+ "number": {
19
+ "label": "Number",
20
+ "ui_component": "number",
21
+ "operators": [
22
+ "equals",
23
+ "not_equals",
24
+ "greater_than",
25
+ "less_than",
26
+ "greater_or_equal",
27
+ "less_or_equal",
28
+ "between",
29
+ "not_between",
30
+ "is_empty",
31
+ "is_not_empty"
32
+ ],
33
+ "default_operator": "equals",
34
+ "description": "Numeric field for integers and decimal values"
35
+ },
36
+ "date": {
37
+ "label": "Date",
38
+ "ui_component": "date",
39
+ "operators": [
40
+ "today",
41
+ "yesterday",
42
+ "tomorrow",
43
+ "this_week",
44
+ "last_week",
45
+ "next_week",
46
+ "this_month",
47
+ "last_month",
48
+ "next_month",
49
+ "this_quarter",
50
+ "last_quarter",
51
+ "next_quarter",
52
+ "this_year",
53
+ "last_year",
54
+ "equals",
55
+ "before",
56
+ "after",
57
+ "between",
58
+ "not_equals",
59
+ "not_between",
60
+ "is_empty",
61
+ "is_not_empty"
62
+ ],
63
+ "default_operator": "date_equals",
64
+ "description": "Date field for date and datetime values"
65
+ },
66
+ "boolean": {
67
+ "label": "Boolean",
68
+ "ui_component": "checkbox",
69
+ "operators": [
70
+ "equals",
71
+ "not_equals",
72
+ "is_empty",
73
+ "is_not_empty"
74
+ ],
75
+ "default_operator": "equals",
76
+ "description": "Boolean field for true/false values"
77
+ },
78
+ "foreign_key": {
79
+ "label": "Foreign Key",
80
+ "ui_component": "select",
81
+ "operators": [
82
+ "equals",
83
+ "not_equals",
84
+ "is_empty",
85
+ "is_not_empty"
86
+ ],
87
+ "default_operator": "equals",
88
+ "description": "Foreign key reference to another table"
89
+ },
90
+ "enum": {
91
+ "label": "Enumeration",
92
+ "ui_component": "select",
93
+ "operators": [
94
+ "equals",
95
+ "not_equals",
96
+ "is_empty",
97
+ "is_not_empty"
98
+ ],
99
+ "default_operator": "equals",
100
+ "description": "Enumerated field with predefined options"
101
+ },
102
+ "email": {
103
+ "label": "Email",
104
+ "ui_component": "email",
105
+ "operators": [
106
+ "equals",
107
+ "not_equals",
108
+ "contains",
109
+ "startswith",
110
+ "endswith"
111
+ ],
112
+ "default_operator": "contains",
113
+ "description": "Email address field"
114
+ },
115
+ "phone": {
116
+ "label": "Phone",
117
+ "ui_component": "tel",
118
+ "operators": [
119
+ "equals",
120
+ "not_equals",
121
+ "contains",
122
+ "startswith"
123
+ ],
124
+ "default_operator": "contains",
125
+ "description": "Phone number field"
126
+ },
127
+ "textarea": {
128
+ "label": "Text Area",
129
+ "ui_component": "textarea",
130
+ "operators": [
131
+ "contains",
132
+ "startswith",
133
+ "endswith"
134
+ ],
135
+ "default_operator": "contains",
136
+ "description": "Multi-line text field"
137
+ },
138
+ "currency": {
139
+ "label": "Currency",
140
+ "ui_component": "currency",
141
+ "operators": [
142
+ "equals",
143
+ "not_equals",
144
+ "greater_than",
145
+ "less_than",
146
+ "greater_or_equal",
147
+ "less_or_equal",
148
+ "between"
149
+ ],
150
+ "default_operator": "equals",
151
+ "description": "Currency/money field with decimal precision"
152
+ },
153
+ "percentage": {
154
+ "label": "Percentage",
155
+ "ui_component": "percentage",
156
+ "operators": [
157
+ "equals",
158
+ "not_equals",
159
+ "greater_than",
160
+ "less_than",
161
+ "between"
162
+ ],
163
+ "default_operator": "equals",
164
+ "description": "Percentage field (0-100)"
165
+ },
166
+ "datetime": {
167
+ "label": "Date & Time",
168
+ "ui_component": "datetime",
169
+ "operators": [
170
+ "today",
171
+ "yesterday",
172
+ "tomorrow",
173
+ "this_week",
174
+ "last_week",
175
+ "next_week",
176
+ "this_month",
177
+ "last_month",
178
+ "next_month",
179
+ "this_quarter",
180
+ "last_quarter",
181
+ "next_quarter",
182
+ "this_year",
183
+ "last_year",
184
+ "equals",
185
+ "before",
186
+ "after",
187
+ "between",
188
+ "not_equals",
189
+ "not_between",
190
+ "is_empty",
191
+ "is_not_empty"
192
+ ],
193
+ "default_operator": "date_equals",
194
+ "description": "Date and time field"
195
+ },
196
+ "time": {
197
+ "label": "Time",
198
+ "ui_component": "time",
199
+ "operators": [
200
+ "equals",
201
+ "not_equals",
202
+ "greater_than",
203
+ "less_than",
204
+ "between"
205
+ ],
206
+ "default_operator": "equals",
207
+ "description": "Time only field"
208
+ },
209
+ "multiselect": {
210
+ "label": "Multi-Select",
211
+ "ui_component": "multiselect",
212
+ "operators": [
213
+ "in",
214
+ "not_in"
215
+ ],
216
+ "default_operator": "in",
217
+ "description": "Multiple selection field"
218
+ }
219
+ }
fields.json ADDED
The diff for this file is too large to render. See raw diff
 
join_graph.json ADDED
@@ -0,0 +1,1268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "employees__organization_departments": {
3
+ "path_name": "employee_to_active_department",
4
+ "start_table": "employees",
5
+ "end_table": "organization_departments",
6
+ "description": "Join to only active departments through department_locations",
7
+ "steps": [
8
+ {
9
+ "step": 1,
10
+ "table": "organization_department_locations",
11
+ "alias": "active_deptloc",
12
+ "join_type": "left",
13
+ "base_column": "organization_department_location_id",
14
+ "foreign_column": "organization_department_location_id",
15
+ "from_previous_step": false
16
+ },
17
+ {
18
+ "step": 2,
19
+ "table": "organization_departments",
20
+ "alias": "active_dept",
21
+ "join_type": "left",
22
+ "base_column": "organization_department_id",
23
+ "foreign_column": "organization_department_id",
24
+ "from_previous_step": true,
25
+ "extra_conditions": [
26
+ {
27
+ "column": "is_active",
28
+ "operator": "=",
29
+ "value": 1
30
+ }
31
+ ]
32
+ }
33
+ ]
34
+ },
35
+ "employees__organization_designations": {
36
+ "path_name": "employee_to_designation",
37
+ "start_table": "employees",
38
+ "end_table": "organization_designations",
39
+ "description": "Direct join from employees to designations",
40
+ "steps": [
41
+ {
42
+ "step": 1,
43
+ "table": "organization_designations",
44
+ "alias": "desig",
45
+ "join_type": "left",
46
+ "base_column": "organization_designation_id",
47
+ "foreign_column": "organization_designation_id",
48
+ "from_previous_step": false
49
+ }
50
+ ]
51
+ },
52
+ "employees__organization_locations": {
53
+ "path_name": "employee_to_location",
54
+ "start_table": "employees",
55
+ "end_table": "organization_locations",
56
+ "description": "Join from employees to locations through department_locations",
57
+ "steps": [
58
+ {
59
+ "step": 1,
60
+ "table": "organization_department_locations",
61
+ "alias": "deptloc",
62
+ "join_type": "left",
63
+ "base_column": "organization_department_location_id",
64
+ "foreign_column": "organization_department_location_id",
65
+ "from_previous_step": false
66
+ },
67
+ {
68
+ "step": 2,
69
+ "table": "organization_locations",
70
+ "alias": "orgloc",
71
+ "join_type": "left",
72
+ "base_column": "organization_location_id",
73
+ "foreign_column": "organization_location_id",
74
+ "from_previous_step": true
75
+ }
76
+ ]
77
+ },
78
+ "employees__organization_employment_statuses": {
79
+ "path_name": "employee_to_employment_status",
80
+ "start_table": "employees",
81
+ "end_table": "organization_employment_statuses",
82
+ "description": "Direct join from employees to employment status",
83
+ "steps": [
84
+ {
85
+ "step": 1,
86
+ "table": "organization_employment_statuses",
87
+ "alias": "empstat",
88
+ "join_type": "left",
89
+ "base_column": "organization_employment_status_id",
90
+ "foreign_column": "organization_employment_status_id",
91
+ "from_previous_step": false
92
+ }
93
+ ]
94
+ },
95
+ "employees__organization_employment_types": {
96
+ "path_name": "employee_to_employment_type",
97
+ "start_table": "employees",
98
+ "end_table": "organization_employment_types",
99
+ "description": "Direct join from employees to employment type",
100
+ "steps": [
101
+ {
102
+ "step": 1,
103
+ "table": "organization_employment_types",
104
+ "alias": "emptype",
105
+ "join_type": "left",
106
+ "base_column": "organization_employment_type_id",
107
+ "foreign_column": "organization_employment_type_id",
108
+ "from_previous_step": false
109
+ }
110
+ ]
111
+ },
112
+ "employees__organization_work_shifts": {
113
+ "path_name": "employee_to_work_shift",
114
+ "start_table": "employees",
115
+ "end_table": "organization_work_shifts",
116
+ "description": "Direct join from employees to work shifts",
117
+ "steps": [
118
+ {
119
+ "step": 1,
120
+ "table": "organization_work_shifts",
121
+ "alias": "shift",
122
+ "join_type": "left",
123
+ "base_column": "organization_work_shift_id",
124
+ "foreign_column": "organization_work_shift_id",
125
+ "from_previous_step": false
126
+ }
127
+ ]
128
+ },
129
+ "employees__employees": {
130
+ "path_name": "employee_to_manager",
131
+ "start_table": "employees",
132
+ "end_table": "employees",
133
+ "description": "Self-referential join from employee to their reporting manager",
134
+ "steps": [
135
+ {
136
+ "step": 1,
137
+ "table": "employees",
138
+ "alias": "manager",
139
+ "join_type": "left",
140
+ "base_column": "reporting_manager_id",
141
+ "foreign_column": "employee_id",
142
+ "from_previous_step": false
143
+ }
144
+ ]
145
+ },
146
+ "employees__employee_contacts": {
147
+ "path_name": "employee_to_contact",
148
+ "start_table": "employees",
149
+ "end_table": "employee_contacts",
150
+ "description": "Direct join from employees to employee contacts",
151
+ "steps": [
152
+ {
153
+ "step": 1,
154
+ "table": "employee_contacts",
155
+ "alias": "contact",
156
+ "join_type": "left",
157
+ "base_column": "employee_id",
158
+ "foreign_column": "employee_id",
159
+ "from_previous_step": false
160
+ }
161
+ ]
162
+ },
163
+ "employees__organization_work_models": {
164
+ "path_name": "employee_to_work_model",
165
+ "start_table": "employees",
166
+ "end_table": "organization_work_models",
167
+ "description": "Direct join from employees to work models",
168
+ "steps": [
169
+ {
170
+ "step": 1,
171
+ "table": "organization_work_models",
172
+ "alias": "wmodel",
173
+ "join_type": "left",
174
+ "base_column": "organization_work_model_id",
175
+ "foreign_column": "organization_work_model_id",
176
+ "from_previous_step": false
177
+ }
178
+ ]
179
+ },
180
+ "employees__organization_units": {
181
+ "path_name": "employee_to_organization_unit",
182
+ "start_table": "employees",
183
+ "end_table": "organization_units",
184
+ "description": "Direct join from employees to organization units",
185
+ "steps": [
186
+ {
187
+ "step": 1,
188
+ "table": "organization_units",
189
+ "alias": "unit",
190
+ "join_type": "left",
191
+ "base_column": "organization_unit_id",
192
+ "foreign_column": "organization_unit_id",
193
+ "from_previous_step": false
194
+ }
195
+ ]
196
+ },
197
+ "employees__organization_employment_stages": {
198
+ "path_name": "employee_to_employment_stage",
199
+ "start_table": "employees",
200
+ "end_table": "organization_employment_stages",
201
+ "description": "Direct join from employees to employment stages",
202
+ "steps": [
203
+ {
204
+ "step": 1,
205
+ "table": "organization_employment_stages",
206
+ "alias": "stage",
207
+ "join_type": "left",
208
+ "base_column": "organization_employment_stage_id",
209
+ "foreign_column": "organization_employment_stage_id",
210
+ "from_previous_step": false
211
+ }
212
+ ]
213
+ },
214
+ "employees__cities": {
215
+ "path_name": "employee_to_city",
216
+ "start_table": "employees",
217
+ "end_table": "cities",
218
+ "description": "Join from employees to cities through employee_addresses",
219
+ "steps": [
220
+ {
221
+ "step": 1,
222
+ "table": "employee_addresses",
223
+ "alias": "empaddr",
224
+ "join_type": "left",
225
+ "base_column": "employee_id",
226
+ "foreign_column": "employee_id",
227
+ "from_previous_step": false
228
+ },
229
+ {
230
+ "step": 2,
231
+ "table": "cities",
232
+ "alias": "city",
233
+ "join_type": "left",
234
+ "base_column": "city_id",
235
+ "foreign_column": "city_id",
236
+ "from_previous_step": true
237
+ }
238
+ ]
239
+ },
240
+ "organization_person_leaves__persons": {
241
+ "path_name": "employee_leaves_to_persons",
242
+ "start_table": "organization_person_leaves",
243
+ "end_table": "persons",
244
+ "description": "Join path from organization_person_leaves to persons via organization_persons",
245
+ "steps": [
246
+ {
247
+ "table": "organization_persons",
248
+ "alias": "op",
249
+ "base_column": "organization_person_leaves.organization_person_id",
250
+ "foreign_column": "organization_person_id",
251
+ "join_type": "left",
252
+ "from_previous_step": false
253
+ },
254
+ {
255
+ "table": "persons",
256
+ "alias": "p",
257
+ "base_column": "op.person_id",
258
+ "foreign_column": "person_id",
259
+ "join_type": "left",
260
+ "from_previous_step": false
261
+ }
262
+ ]
263
+ },
264
+ "organization_persons__persons": {
265
+ "path_name": "organization_persons_to_persons",
266
+ "start_table": "organization_persons",
267
+ "end_table": "persons",
268
+ "description": "Join path from organization_persons to persons table via person_id",
269
+ "steps": [
270
+ {
271
+ "step": 1,
272
+ "table": "persons",
273
+ "alias": "p",
274
+ "base_column": "person_id",
275
+ "foreign_column": "person_id",
276
+ "join_type": "left",
277
+ "from_previous_step": false
278
+ }
279
+ ]
280
+ },
281
+ "organization_persons__employees": {
282
+ "path_name": "organization_persons_to_employees",
283
+ "start_table": "organization_persons",
284
+ "end_table": "employees",
285
+ "description": "Join path from organization_persons to employees table via organization_person_id",
286
+ "steps": [
287
+ {
288
+ "step": 1,
289
+ "table": "employees",
290
+ "alias": "e",
291
+ "base_column": "organization_person_id",
292
+ "foreign_column": "organization_person_id",
293
+ "join_type": "left",
294
+ "from_previous_step": false
295
+ }
296
+ ]
297
+ },
298
+ "organization_persons__interns": {
299
+ "path_name": "organization_persons_to_interns",
300
+ "start_table": "organization_persons",
301
+ "end_table": "interns",
302
+ "description": "Join path from organization_persons to interns table via organization_person_id",
303
+ "steps": [
304
+ {
305
+ "step": 1,
306
+ "table": "interns",
307
+ "alias": "i",
308
+ "base_column": "organization_person_id",
309
+ "foreign_column": "organization_person_id",
310
+ "join_type": "left",
311
+ "from_previous_step": false
312
+ }
313
+ ]
314
+ },
315
+ "organization_persons__employee_addresses": {
316
+ "path_name": "organization_persons_to_employee_addresses",
317
+ "start_table": "organization_persons",
318
+ "end_table": "employee_addresses",
319
+ "description": "Join path from organization_persons to employee_addresses via organization_person_id",
320
+ "steps": [
321
+ {
322
+ "step": 1,
323
+ "table": "employee_addresses",
324
+ "alias": "ea",
325
+ "base_column": "organization_person_id",
326
+ "foreign_column": "organization_person_id",
327
+ "join_type": "left",
328
+ "from_previous_step": false
329
+ }
330
+ ]
331
+ },
332
+ "organization_persons__employee_contacts": {
333
+ "path_name": "organization_persons_to_employee_contacts",
334
+ "start_table": "organization_persons",
335
+ "end_table": "employee_contacts",
336
+ "description": "Join path from organization_persons to employee_contacts via organization_person_id",
337
+ "steps": [
338
+ {
339
+ "step": 1,
340
+ "table": "employee_contacts",
341
+ "alias": "ec",
342
+ "base_column": "organization_person_id",
343
+ "foreign_column": "organization_person_id",
344
+ "join_type": "left",
345
+ "from_previous_step": false
346
+ }
347
+ ]
348
+ },
349
+ "organization_persons__employee_educations": {
350
+ "path_name": "organization_persons_to_employee_educations",
351
+ "start_table": "organization_persons",
352
+ "end_table": "employee_educations",
353
+ "description": "Join path from organization_persons to employee_educations via organization_person_id",
354
+ "steps": [
355
+ {
356
+ "step": 1,
357
+ "table": "employee_educations",
358
+ "alias": "edu",
359
+ "base_column": "organization_person_id",
360
+ "foreign_column": "organization_person_id",
361
+ "join_type": "left",
362
+ "from_previous_step": false
363
+ }
364
+ ]
365
+ },
366
+ "organization_persons__employee_experiences": {
367
+ "path_name": "organization_persons_to_employee_experiences",
368
+ "start_table": "organization_persons",
369
+ "end_table": "employee_experiences",
370
+ "description": "Join path from organization_persons to employee_experiences via organization_person_id",
371
+ "steps": [
372
+ {
373
+ "step": 1,
374
+ "table": "employee_experiences",
375
+ "alias": "exp",
376
+ "base_column": "organization_person_id",
377
+ "foreign_column": "organization_person_id",
378
+ "join_type": "left",
379
+ "from_previous_step": false
380
+ }
381
+ ]
382
+ },
383
+ "organization_persons__employee_family_members": {
384
+ "path_name": "organization_persons_to_employee_family_members",
385
+ "start_table": "organization_persons",
386
+ "end_table": "employee_family_members",
387
+ "description": "Join path from organization_persons to employee_family_members via organization_person_id",
388
+ "steps": [
389
+ {
390
+ "step": 1,
391
+ "table": "employee_family_members",
392
+ "alias": "efm",
393
+ "base_column": "organization_person_id",
394
+ "foreign_column": "organization_person_id",
395
+ "join_type": "left",
396
+ "from_previous_step": false
397
+ }
398
+ ]
399
+ },
400
+ "organization_persons__employee_bank_accounts": {
401
+ "path_name": "organization_persons_to_employee_bank_accounts",
402
+ "start_table": "organization_persons",
403
+ "end_table": "employee_bank_accounts",
404
+ "description": "Join path from organization_persons to employee_bank_accounts via organization_person_id",
405
+ "steps": [
406
+ {
407
+ "step": 1,
408
+ "table": "employee_bank_accounts",
409
+ "alias": "eba",
410
+ "base_column": "organization_person_id",
411
+ "foreign_column": "organization_person_id",
412
+ "join_type": "left",
413
+ "from_previous_step": false
414
+ }
415
+ ]
416
+ },
417
+ "organization_persons__employee_documents": {
418
+ "path_name": "organization_persons_to_employee_documents",
419
+ "start_table": "organization_persons",
420
+ "end_table": "employee_documents",
421
+ "description": "Join path from organization_persons to employee_documents via organization_person_id",
422
+ "steps": [
423
+ {
424
+ "step": 1,
425
+ "table": "employee_documents",
426
+ "alias": "ed",
427
+ "base_column": "organization_person_id",
428
+ "foreign_column": "organization_person_id",
429
+ "join_type": "left",
430
+ "from_previous_step": false
431
+ }
432
+ ]
433
+ },
434
+ "organization_persons__employee_employment_records": {
435
+ "path_name": "organization_persons_to_employee_employment_records",
436
+ "start_table": "organization_persons",
437
+ "end_table": "employee_employment_records",
438
+ "description": "Join path from organization_persons to employee_employment_records via organization_person_id",
439
+ "steps": [
440
+ {
441
+ "step": 1,
442
+ "table": "employee_employment_records",
443
+ "alias": "eer",
444
+ "base_column": "organization_person_id",
445
+ "foreign_column": "organization_person_id",
446
+ "join_type": "left",
447
+ "from_previous_step": false
448
+ }
449
+ ]
450
+ },
451
+ "organization_persons__employee_increments": {
452
+ "path_name": "organization_persons_to_employee_increments",
453
+ "start_table": "organization_persons",
454
+ "end_table": "employee_increments",
455
+ "description": "Join path from organization_persons to employee_increments via organization_person_id",
456
+ "steps": [
457
+ {
458
+ "step": 1,
459
+ "table": "employee_increments",
460
+ "alias": "ei",
461
+ "base_column": "organization_person_id",
462
+ "foreign_column": "organization_person_id",
463
+ "join_type": "left",
464
+ "from_previous_step": false
465
+ }
466
+ ]
467
+ },
468
+ "organization_persons__employee_medicals": {
469
+ "path_name": "organization_persons_to_employee_medicals",
470
+ "start_table": "organization_persons",
471
+ "end_table": "employee_medicals",
472
+ "description": "Join path from organization_persons to employee_medicals via organization_person_id",
473
+ "steps": [
474
+ {
475
+ "step": 1,
476
+ "table": "employee_medicals",
477
+ "alias": "em",
478
+ "base_column": "organization_person_id",
479
+ "foreign_column": "organization_person_id",
480
+ "join_type": "left",
481
+ "from_previous_step": false
482
+ }
483
+ ]
484
+ },
485
+ "organization_persons__employee_languages": {
486
+ "path_name": "organization_persons_to_employee_languages",
487
+ "start_table": "organization_persons",
488
+ "end_table": "employee_languages",
489
+ "description": "Join path from organization_persons to employee_languages via organization_person_id",
490
+ "steps": [
491
+ {
492
+ "step": 1,
493
+ "table": "employee_languages",
494
+ "alias": "elang",
495
+ "base_column": "organization_person_id",
496
+ "foreign_column": "organization_person_id",
497
+ "join_type": "left",
498
+ "from_previous_step": false
499
+ }
500
+ ]
501
+ },
502
+ "organization_persons__employee_exits": {
503
+ "path_name": "organization_persons_to_employee_exits",
504
+ "start_table": "organization_persons",
505
+ "end_table": "employee_exits",
506
+ "description": "Join path from organization_persons to employee_exits via organization_person_id",
507
+ "steps": [
508
+ {
509
+ "step": 1,
510
+ "table": "employee_exits",
511
+ "alias": "eex",
512
+ "base_column": "organization_person_id",
513
+ "foreign_column": "organization_person_id",
514
+ "join_type": "left",
515
+ "from_previous_step": false
516
+ }
517
+ ]
518
+ },
519
+ "organization_persons__employee_work_shift_assignments": {
520
+ "path_name": "organization_persons_to_employee_work_shift_assignments",
521
+ "start_table": "organization_persons",
522
+ "end_table": "employee_work_shift_assignments",
523
+ "description": "Join path from organization_persons to employee_work_shift_assignments via organization_person_id",
524
+ "steps": [
525
+ {
526
+ "step": 1,
527
+ "table": "employee_work_shift_assignments",
528
+ "alias": "ewsa",
529
+ "base_column": "organization_person_id",
530
+ "foreign_column": "organization_person_id",
531
+ "join_type": "left",
532
+ "from_previous_step": false
533
+ }
534
+ ]
535
+ },
536
+ "organization_persons__employee_work_shift_rotation_assignments": {
537
+ "path_name": "organization_persons_to_employee_work_shift_rotation_assignments",
538
+ "start_table": "organization_persons",
539
+ "end_table": "employee_work_shift_rotation_assignments",
540
+ "description": "Join path from organization_persons to employee_work_shift_rotation_assignments via organization_person_id",
541
+ "steps": [
542
+ {
543
+ "step": 1,
544
+ "table": "employee_work_shift_rotation_assignments",
545
+ "alias": "ewsra",
546
+ "base_column": "organization_person_id",
547
+ "foreign_column": "organization_person_id",
548
+ "join_type": "left",
549
+ "from_previous_step": false
550
+ }
551
+ ]
552
+ },
553
+ "organization_persons__employee_functional_roles": {
554
+ "path_name": "organization_persons_to_employee_functional_roles",
555
+ "start_table": "organization_persons",
556
+ "end_table": "employee_functional_roles",
557
+ "description": "Join path from organization_persons to employee_functional_roles via organization_person_id",
558
+ "steps": [
559
+ {
560
+ "step": 1,
561
+ "table": "employee_functional_roles",
562
+ "alias": "efr",
563
+ "base_column": "organization_person_id",
564
+ "foreign_column": "organization_person_id",
565
+ "join_type": "left",
566
+ "from_previous_step": false
567
+ }
568
+ ]
569
+ },
570
+ "organization_persons__intern_addresses": {
571
+ "path_name": "organization_persons_to_intern_addresses",
572
+ "start_table": "organization_persons",
573
+ "end_table": "intern_addresses",
574
+ "description": "Join path from organization_persons to intern_addresses via organization_person_id",
575
+ "steps": [
576
+ {
577
+ "step": 1,
578
+ "table": "intern_addresses",
579
+ "alias": "ia",
580
+ "base_column": "organization_person_id",
581
+ "foreign_column": "organization_person_id",
582
+ "join_type": "left",
583
+ "from_previous_step": false
584
+ }
585
+ ]
586
+ },
587
+ "organization_persons__intern_contacts": {
588
+ "path_name": "organization_persons_to_intern_contacts",
589
+ "start_table": "organization_persons",
590
+ "end_table": "intern_contacts",
591
+ "description": "Join path from organization_persons to intern_contacts via organization_person_id",
592
+ "steps": [
593
+ {
594
+ "step": 1,
595
+ "table": "intern_contacts",
596
+ "alias": "ic",
597
+ "base_column": "organization_person_id",
598
+ "foreign_column": "organization_person_id",
599
+ "join_type": "left",
600
+ "from_previous_step": false
601
+ }
602
+ ]
603
+ },
604
+ "organization_persons__intern_educations": {
605
+ "path_name": "organization_persons_to_intern_educations",
606
+ "start_table": "organization_persons",
607
+ "end_table": "intern_educations",
608
+ "description": "Join path from organization_persons to intern_educations via organization_person_id",
609
+ "steps": [
610
+ {
611
+ "step": 1,
612
+ "table": "intern_educations",
613
+ "alias": "iedu",
614
+ "base_column": "organization_person_id",
615
+ "foreign_column": "organization_person_id",
616
+ "join_type": "left",
617
+ "from_previous_step": false
618
+ }
619
+ ]
620
+ },
621
+ "organization_persons__intern_experiences": {
622
+ "path_name": "organization_persons_to_intern_experiences",
623
+ "start_table": "organization_persons",
624
+ "end_table": "intern_experiences",
625
+ "description": "Join path from organization_persons to intern_experiences via organization_person_id",
626
+ "steps": [
627
+ {
628
+ "step": 1,
629
+ "table": "intern_experiences",
630
+ "alias": "iexp",
631
+ "base_column": "organization_person_id",
632
+ "foreign_column": "organization_person_id",
633
+ "join_type": "left",
634
+ "from_previous_step": false
635
+ }
636
+ ]
637
+ },
638
+ "organization_persons__intern_family_members": {
639
+ "path_name": "organization_persons_to_intern_family_members",
640
+ "start_table": "organization_persons",
641
+ "end_table": "intern_family_members",
642
+ "description": "Join path from organization_persons to intern_family_members via organization_person_id",
643
+ "steps": [
644
+ {
645
+ "step": 1,
646
+ "table": "intern_family_members",
647
+ "alias": "ifm",
648
+ "base_column": "organization_person_id",
649
+ "foreign_column": "organization_person_id",
650
+ "join_type": "left",
651
+ "from_previous_step": false
652
+ }
653
+ ]
654
+ },
655
+ "organization_persons__intern_bank_accounts": {
656
+ "path_name": "organization_persons_to_intern_bank_accounts",
657
+ "start_table": "organization_persons",
658
+ "end_table": "intern_bank_accounts",
659
+ "description": "Join path from organization_persons to intern_bank_accounts via organization_person_id",
660
+ "steps": [
661
+ {
662
+ "step": 1,
663
+ "table": "intern_bank_accounts",
664
+ "alias": "iba",
665
+ "base_column": "organization_person_id",
666
+ "foreign_column": "organization_person_id",
667
+ "join_type": "left",
668
+ "from_previous_step": false
669
+ }
670
+ ]
671
+ },
672
+ "organization_persons__intern_documents": {
673
+ "path_name": "organization_persons_to_intern_documents",
674
+ "start_table": "organization_persons",
675
+ "end_table": "intern_documents",
676
+ "description": "Join path from organization_persons to intern_documents via organization_person_id",
677
+ "steps": [
678
+ {
679
+ "step": 1,
680
+ "table": "intern_documents",
681
+ "alias": "id",
682
+ "base_column": "organization_person_id",
683
+ "foreign_column": "organization_person_id",
684
+ "join_type": "left",
685
+ "from_previous_step": false
686
+ }
687
+ ]
688
+ },
689
+ "organization_persons__intern_exit_records": {
690
+ "path_name": "organization_persons_to_intern_exit_records",
691
+ "start_table": "organization_persons",
692
+ "end_table": "intern_exit_records",
693
+ "description": "Join path from organization_persons to intern_exit_records via organization_person_id",
694
+ "steps": [
695
+ {
696
+ "step": 1,
697
+ "table": "intern_exit_records",
698
+ "alias": "ier",
699
+ "base_column": "organization_person_id",
700
+ "foreign_column": "organization_person_id",
701
+ "join_type": "left",
702
+ "from_previous_step": false
703
+ }
704
+ ]
705
+ },
706
+ "organization_persons__intern_functional_roles": {
707
+ "path_name": "organization_persons_to_intern_functional_roles",
708
+ "start_table": "organization_persons",
709
+ "end_table": "intern_functional_roles",
710
+ "description": "Join path from organization_persons to intern_functional_roles via organization_person_id",
711
+ "steps": [
712
+ {
713
+ "step": 1,
714
+ "table": "intern_functional_roles",
715
+ "alias": "ifr",
716
+ "base_column": "organization_person_id",
717
+ "foreign_column": "organization_person_id",
718
+ "join_type": "left",
719
+ "from_previous_step": false
720
+ }
721
+ ]
722
+ },
723
+ "organization_persons__intern_stipends": {
724
+ "path_name": "organization_persons_to_intern_stipends",
725
+ "start_table": "organization_persons",
726
+ "end_table": "intern_stipends",
727
+ "description": "Join path from organization_persons to intern_stipends via organization_person_id",
728
+ "steps": [
729
+ {
730
+ "step": 1,
731
+ "table": "intern_stipends",
732
+ "alias": "is",
733
+ "base_column": "organization_person_id",
734
+ "foreign_column": "organization_person_id",
735
+ "join_type": "left",
736
+ "from_previous_step": false
737
+ }
738
+ ]
739
+ },
740
+ "organization_persons__intern_stipend_payments": {
741
+ "path_name": "organization_persons_to_intern_stipend_payments",
742
+ "start_table": "organization_persons",
743
+ "end_table": "intern_stipend_payments",
744
+ "description": "Join path from organization_persons to intern_stipend_payments via organization_person_id",
745
+ "steps": [
746
+ {
747
+ "step": 1,
748
+ "table": "intern_stipend_payments",
749
+ "alias": "isp",
750
+ "base_column": "organization_person_id",
751
+ "foreign_column": "organization_person_id",
752
+ "join_type": "left",
753
+ "from_previous_step": false
754
+ }
755
+ ]
756
+ },
757
+ "organization_persons__intern_certificates": {
758
+ "path_name": "organization_persons_to_intern_certificates",
759
+ "start_table": "organization_persons",
760
+ "end_table": "intern_certificates",
761
+ "description": "Join path from organization_persons to intern_certificates via organization_person_id",
762
+ "steps": [
763
+ {
764
+ "step": 1,
765
+ "table": "intern_certificates",
766
+ "alias": "icert",
767
+ "base_column": "organization_person_id",
768
+ "foreign_column": "organization_person_id",
769
+ "join_type": "left",
770
+ "from_previous_step": false
771
+ }
772
+ ]
773
+ },
774
+ "organization_persons__intern_medicals": {
775
+ "path_name": "organization_persons_to_intern_medicals",
776
+ "start_table": "organization_persons",
777
+ "end_table": "intern_medicals",
778
+ "description": "Join path from organization_persons to intern_medicals via organization_person_id",
779
+ "steps": [
780
+ {
781
+ "step": 1,
782
+ "table": "intern_medicals",
783
+ "alias": "im",
784
+ "base_column": "organization_person_id",
785
+ "foreign_column": "organization_person_id",
786
+ "join_type": "left",
787
+ "from_previous_step": false
788
+ }
789
+ ]
790
+ },
791
+ "organization_persons__intern_languages": {
792
+ "path_name": "organization_persons_to_intern_languages",
793
+ "start_table": "organization_persons",
794
+ "end_table": "intern_languages",
795
+ "description": "Join path from organization_persons to intern_languages via organization_person_id",
796
+ "steps": [
797
+ {
798
+ "step": 1,
799
+ "table": "intern_languages",
800
+ "alias": "ilang",
801
+ "base_column": "organization_person_id",
802
+ "foreign_column": "organization_person_id",
803
+ "join_type": "left",
804
+ "from_previous_step": false
805
+ }
806
+ ]
807
+ },
808
+ "employee_employment_records__organization_employee_increment_types": {
809
+ "path_name": "employee_employment_records_to_increment_types",
810
+ "start_table": "employee_employment_records",
811
+ "end_table": "organization_employee_increment_types",
812
+ "description": "Join from employee_employment_records to organization_employee_increment_types",
813
+ "steps": [
814
+ {
815
+ "step": 1,
816
+ "table": "employee_increments",
817
+ "alias": "ei",
818
+ "base_column": "employee_increment_id",
819
+ "foreign_column": "employee_increment_id",
820
+ "join_type": "left",
821
+ "from_previous_step": false
822
+ },
823
+ {
824
+ "step": 2,
825
+ "table": "organization_employee_increment_types",
826
+ "alias": "oeit",
827
+ "base_column": "organization_employee_increment_type_id",
828
+ "foreign_column": "organization_employee_increment_type_id",
829
+ "join_type": "left",
830
+ "from_previous_step": false
831
+ }
832
+ ]
833
+ },
834
+ "employees__persons": {
835
+ "path_name": "employees_to_persons_via_org_persons",
836
+ "start_table": "employees",
837
+ "end_table": "persons",
838
+ "description": "Join from employees to persons via organization_persons",
839
+ "steps": [
840
+ {
841
+ "step": 1,
842
+ "table": "organization_persons",
843
+ "alias": "op",
844
+ "base_column": "organization_person_id",
845
+ "foreign_column": "organization_person_id",
846
+ "join_type": "left",
847
+ "from_previous_step": false
848
+ },
849
+ {
850
+ "step": 2,
851
+ "table": "persons",
852
+ "alias": "p",
853
+ "base_column": "person_id",
854
+ "foreign_column": "person_id",
855
+ "join_type": "left",
856
+ "from_previous_step": false
857
+ }
858
+ ]
859
+ },
860
+ "organization_payroll_employee_salary_structures__organization_persons": {
861
+ "path_name": "organization_payroll_employee_salary_structures_to_organization_persons",
862
+ "start_table": "organization_payroll_employee_salary_structures",
863
+ "end_table": "organization_persons",
864
+ "description": "Join path from salary structures to organization_persons for employee filtering",
865
+ "steps": [
866
+ {
867
+ "step": 1,
868
+ "table": "organization_persons",
869
+ "alias": "op",
870
+ "base_column": "organization_person_id",
871
+ "foreign_column": "organization_person_id",
872
+ "join_type": "left",
873
+ "from_previous_step": false
874
+ }
875
+ ]
876
+ },
877
+ "organization_payroll_employee_salary_structures__organization_payroll_cycles": {
878
+ "path_name": "organization_payroll_employee_salary_structures_to_organization_payroll_cycles",
879
+ "start_table": "organization_payroll_employee_salary_structures",
880
+ "end_table": "organization_payroll_cycles",
881
+ "description": "Join path from salary structures to payroll cycles",
882
+ "steps": [
883
+ {
884
+ "step": 1,
885
+ "table": "organization_payroll_cycles",
886
+ "alias": "pc",
887
+ "base_column": "organization_payroll_cycle_id",
888
+ "foreign_column": "organization_payroll_cycle_id",
889
+ "join_type": "left",
890
+ "from_previous_step": false
891
+ }
892
+ ]
893
+ },
894
+ "organization_payroll_components__organization_payroll_component_types": {
895
+ "path_name": "organization_payroll_components_to_organization_payroll_component_types",
896
+ "start_table": "organization_payroll_components",
897
+ "end_table": "organization_payroll_component_types",
898
+ "description": "Join path from payroll components to component types",
899
+ "steps": [
900
+ {
901
+ "step": 1,
902
+ "table": "organization_payroll_component_types",
903
+ "alias": "pct",
904
+ "base_column": "organization_payroll_component_type_id",
905
+ "foreign_column": "organization_payroll_component_type_id",
906
+ "join_type": "left",
907
+ "from_previous_step": false
908
+ }
909
+ ]
910
+ },
911
+ "organization_payroll_component_slabs__organization_payroll_components": {
912
+ "path_name": "organization_payroll_component_slabs_to_organization_payroll_components",
913
+ "start_table": "organization_payroll_component_slabs",
914
+ "end_table": "organization_payroll_components",
915
+ "description": "Join path from payroll component slabs to components",
916
+ "steps": [
917
+ {
918
+ "step": 1,
919
+ "table": "organization_payroll_components",
920
+ "alias": "pcomp",
921
+ "base_column": "organization_payroll_component_id",
922
+ "foreign_column": "organization_payroll_component_id",
923
+ "join_type": "left",
924
+ "from_previous_step": false
925
+ }
926
+ ]
927
+ },
928
+ "organization_payroll_periods__organization_payroll_cycles": {
929
+ "path_name": "organization_payroll_periods_to_organization_payroll_cycles",
930
+ "start_table": "organization_payroll_periods",
931
+ "end_table": "organization_payroll_cycles",
932
+ "description": "Join path from payroll periods to payroll cycles",
933
+ "steps": [
934
+ {
935
+ "step": 1,
936
+ "table": "organization_payroll_cycles",
937
+ "alias": "pcycle",
938
+ "base_column": "organization_payroll_cycle_id",
939
+ "foreign_column": "organization_payroll_cycle_id",
940
+ "join_type": "left",
941
+ "from_previous_step": false
942
+ }
943
+ ]
944
+ },
945
+ "organization_payroll_runs__organization_payroll_cycles": {
946
+ "path_name": "organization_payroll_runs_to_organization_payroll_cycles",
947
+ "start_table": "organization_payroll_runs",
948
+ "end_table": "organization_payroll_cycles",
949
+ "description": "Join path from payroll runs to payroll cycles",
950
+ "steps": [
951
+ {
952
+ "step": 1,
953
+ "table": "organization_payroll_cycles",
954
+ "alias": "prcycle",
955
+ "base_column": "payroll_cycle_id",
956
+ "foreign_column": "organization_payroll_cycle_id",
957
+ "join_type": "left",
958
+ "from_previous_step": false
959
+ }
960
+ ]
961
+ },
962
+ "organization_payroll_run_employees__organization_persons": {
963
+ "path_name": "organization_payroll_run_employees_to_organization_persons",
964
+ "start_table": "organization_payroll_run_employees",
965
+ "end_table": "organization_persons",
966
+ "description": "Join path from payroll run employees to organization_persons for employee filtering",
967
+ "steps": [
968
+ {
969
+ "step": 1,
970
+ "table": "organization_persons",
971
+ "alias": "opre",
972
+ "base_column": "organization_person_id",
973
+ "foreign_column": "organization_person_id",
974
+ "join_type": "left",
975
+ "from_previous_step": false
976
+ }
977
+ ]
978
+ },
979
+ "organization_payroll_run_employees__organization_payroll_runs": {
980
+ "path_name": "organization_payroll_run_employees_to_organization_payroll_runs",
981
+ "start_table": "organization_payroll_run_employees",
982
+ "end_table": "organization_payroll_runs",
983
+ "description": "Join path from payroll run employees to payroll runs",
984
+ "steps": [
985
+ {
986
+ "step": 1,
987
+ "table": "organization_payroll_runs",
988
+ "alias": "prun",
989
+ "base_column": "organization_payroll_run_id",
990
+ "foreign_column": "organization_payroll_run_id",
991
+ "join_type": "left",
992
+ "from_previous_step": false
993
+ }
994
+ ]
995
+ },
996
+ "PayrollRunEmployeeComponents__organization_payroll_run_employees": {
997
+ "path_name": "PayrollRunEmployeeComponents_to_organization_payroll_run_employees",
998
+ "start_table": "PayrollRunEmployeeComponents",
999
+ "end_table": "organization_payroll_run_employees",
1000
+ "description": "Join path from payroll run employee components to payroll run employees",
1001
+ "steps": [
1002
+ {
1003
+ "step": 1,
1004
+ "table": "organization_payroll_run_employees",
1005
+ "alias": "pre",
1006
+ "base_column": "organization_payroll_run_employee_id",
1007
+ "foreign_column": "organization_payroll_run_employee_id",
1008
+ "join_type": "left",
1009
+ "from_previous_step": false
1010
+ }
1011
+ ]
1012
+ },
1013
+ "PayrollRunEmployeeComponents__organization_payroll_components": {
1014
+ "path_name": "PayrollRunEmployeeComponents_to_organization_payroll_components",
1015
+ "start_table": "PayrollRunEmployeeComponents",
1016
+ "end_table": "organization_payroll_components",
1017
+ "description": "Join path from payroll run employee components to payroll components",
1018
+ "steps": [
1019
+ {
1020
+ "step": 1,
1021
+ "table": "organization_payroll_components",
1022
+ "alias": "pcomp2",
1023
+ "base_column": "organization_payroll_component_id",
1024
+ "foreign_column": "organization_payroll_component_id",
1025
+ "join_type": "left",
1026
+ "from_previous_step": false
1027
+ }
1028
+ ]
1029
+ },
1030
+ "organization_payroll_account_mappings__organization_payroll_components": {
1031
+ "path_name": "organization_payroll_account_mappings_to_organization_payroll_components",
1032
+ "start_table": "organization_payroll_account_mappings",
1033
+ "end_table": "organization_payroll_components",
1034
+ "description": "Join path from account mappings to payroll components",
1035
+ "steps": [
1036
+ {
1037
+ "step": 1,
1038
+ "table": "organization_payroll_components",
1039
+ "alias": "pcomp3",
1040
+ "base_column": "organization_payroll_component_id",
1041
+ "foreign_column": "organization_payroll_component_id",
1042
+ "join_type": "left",
1043
+ "from_previous_step": false
1044
+ }
1045
+ ]
1046
+ },
1047
+ "employee_payslips__organization_persons": {
1048
+ "path_name": "employee_payslips_to_organization_persons",
1049
+ "start_table": "employee_payslips",
1050
+ "end_table": "organization_persons",
1051
+ "description": "Join path from employee payslips to organization_persons for employee filtering",
1052
+ "steps": [
1053
+ {
1054
+ "step": 1,
1055
+ "table": "organization_persons",
1056
+ "alias": "opp",
1057
+ "base_column": "organization_person_id",
1058
+ "foreign_column": "organization_person_id",
1059
+ "join_type": "left",
1060
+ "from_previous_step": false
1061
+ }
1062
+ ]
1063
+ },
1064
+ "employee_payslips__organization_payroll_run_employees": {
1065
+ "path_name": "employee_payslips_to_organization_payroll_run_employees",
1066
+ "start_table": "employee_payslips",
1067
+ "end_table": "organization_payroll_run_employees",
1068
+ "description": "Join path from employee payslips to payroll run employees",
1069
+ "steps": [
1070
+ {
1071
+ "step": 1,
1072
+ "table": "organization_payroll_run_employees",
1073
+ "alias": "pre2",
1074
+ "base_column": "payroll_run_employee_id",
1075
+ "foreign_column": "organization_payroll_run_employee_id",
1076
+ "join_type": "left",
1077
+ "from_previous_step": false
1078
+ }
1079
+ ]
1080
+ },
1081
+ "organization_payroll_employee_salary_structure_components__organization_payroll_employee_salary_structures": {
1082
+ "path_name": "organization_payroll_employee_salary_structure_components_to_organization_payroll_employee_salary_st",
1083
+ "start_table": "organization_payroll_employee_salary_structure_components",
1084
+ "end_table": "organization_payroll_employee_salary_structures",
1085
+ "description": "Join path from salary structure components to salary structures",
1086
+ "steps": [
1087
+ {
1088
+ "step": 1,
1089
+ "table": "organization_payroll_employee_salary_structures",
1090
+ "alias": "pess",
1091
+ "base_column": "organization_payroll_employee_salary_structure_id",
1092
+ "foreign_column": "organization_payroll_employee_salary_structure_id",
1093
+ "join_type": "left",
1094
+ "from_previous_step": false
1095
+ }
1096
+ ]
1097
+ },
1098
+ "organization_payroll_employee_salary_structure_components__organization_payroll_components": {
1099
+ "path_name": "organization_payroll_employee_salary_structure_components_to_organization_payroll_components",
1100
+ "start_table": "organization_payroll_employee_salary_structure_components",
1101
+ "end_table": "organization_payroll_components",
1102
+ "description": "Join path from salary structure components to payroll components",
1103
+ "steps": [
1104
+ {
1105
+ "step": 1,
1106
+ "table": "organization_payroll_components",
1107
+ "alias": "pcomp4",
1108
+ "base_column": "organization_payroll_component_id",
1109
+ "foreign_column": "organization_payroll_component_id",
1110
+ "join_type": "left",
1111
+ "from_previous_step": false
1112
+ }
1113
+ ]
1114
+ },
1115
+ "organization_payroll_loans__organization_persons": {
1116
+ "path_name": "organization_payroll_loans_to_organization_persons",
1117
+ "start_table": "organization_payroll_loans",
1118
+ "end_table": "organization_persons",
1119
+ "description": "Join path from payroll loans to organization_persons for employee filtering",
1120
+ "steps": [
1121
+ {
1122
+ "step": 1,
1123
+ "table": "organization_persons",
1124
+ "alias": "opl",
1125
+ "base_column": "organization_person_id",
1126
+ "foreign_column": "organization_person_id",
1127
+ "join_type": "left",
1128
+ "from_previous_step": false
1129
+ }
1130
+ ]
1131
+ },
1132
+ "organization_payroll_loans__organization_payroll_loan_types": {
1133
+ "path_name": "organization_payroll_loans_to_organization_payroll_loan_types",
1134
+ "start_table": "organization_payroll_loans",
1135
+ "end_table": "organization_payroll_loan_types",
1136
+ "description": "Join path from payroll loans to loan types",
1137
+ "steps": [
1138
+ {
1139
+ "step": 1,
1140
+ "table": "organization_payroll_loan_types",
1141
+ "alias": "plt",
1142
+ "base_column": "organization_payroll_loan_type_id",
1143
+ "foreign_column": "organization_payroll_loan_type_id",
1144
+ "join_type": "left",
1145
+ "from_previous_step": false
1146
+ }
1147
+ ]
1148
+ },
1149
+ "organization_payroll_loan_transactions__organization_payroll_loans": {
1150
+ "path_name": "organization_payroll_loan_transactions_to_organization_payroll_loans",
1151
+ "start_table": "organization_payroll_loan_transactions",
1152
+ "end_table": "organization_payroll_loans",
1153
+ "description": "Join path from loan transactions to payroll loans",
1154
+ "steps": [
1155
+ {
1156
+ "step": 1,
1157
+ "table": "organization_payroll_loans",
1158
+ "alias": "pl",
1159
+ "base_column": "organization_payroll_loan_id",
1160
+ "foreign_column": "organization_payroll_loan_id",
1161
+ "join_type": "left",
1162
+ "from_previous_step": false
1163
+ }
1164
+ ]
1165
+ },
1166
+ "organization_payroll_securities__organization_persons": {
1167
+ "path_name": "organization_payroll_securities_to_organization_persons",
1168
+ "start_table": "organization_payroll_securities",
1169
+ "end_table": "organization_persons",
1170
+ "description": "Join path from payroll securities to organization_persons for employee filtering",
1171
+ "steps": [
1172
+ {
1173
+ "step": 1,
1174
+ "table": "organization_persons",
1175
+ "alias": "ops",
1176
+ "base_column": "organization_person_id",
1177
+ "foreign_column": "organization_person_id",
1178
+ "join_type": "left",
1179
+ "from_previous_step": false
1180
+ }
1181
+ ]
1182
+ },
1183
+ "organization_payroll_security_transactions__organization_payroll_securities": {
1184
+ "path_name": "organization_payroll_security_transactions_to_organization_payroll_securities",
1185
+ "start_table": "organization_payroll_security_transactions",
1186
+ "end_table": "organization_payroll_securities",
1187
+ "description": "Join path from security transactions to payroll securities",
1188
+ "steps": [
1189
+ {
1190
+ "step": 1,
1191
+ "table": "organization_payroll_securities",
1192
+ "alias": "ps",
1193
+ "base_column": "organization_payroll_security_id",
1194
+ "foreign_column": "organization_payroll_security_id",
1195
+ "join_type": "left",
1196
+ "from_previous_step": false
1197
+ }
1198
+ ]
1199
+ },
1200
+ "organization_payroll_advances__organization_persons": {
1201
+ "path_name": "organization_payroll_advances_to_organization_persons",
1202
+ "start_table": "organization_payroll_advances",
1203
+ "end_table": "organization_persons",
1204
+ "description": "Join path from payroll advances to organization_persons for employee filtering",
1205
+ "steps": [
1206
+ {
1207
+ "step": 1,
1208
+ "table": "organization_persons",
1209
+ "alias": "opa",
1210
+ "base_column": "organization_person_id",
1211
+ "foreign_column": "organization_person_id",
1212
+ "join_type": "left",
1213
+ "from_previous_step": false
1214
+ }
1215
+ ]
1216
+ },
1217
+ "organization_payroll_adjustments__organization_persons": {
1218
+ "path_name": "organization_payroll_adjustments_to_organization_persons",
1219
+ "start_table": "organization_payroll_adjustments",
1220
+ "end_table": "organization_persons",
1221
+ "description": "Join path from payroll adjustments to organization_persons for employee filtering",
1222
+ "steps": [
1223
+ {
1224
+ "step": 1,
1225
+ "table": "organization_persons",
1226
+ "alias": "opadj",
1227
+ "base_column": "organization_person_id",
1228
+ "foreign_column": "organization_person_id",
1229
+ "join_type": "left",
1230
+ "from_previous_step": false
1231
+ }
1232
+ ]
1233
+ },
1234
+ "organization_payroll_reimbursements__organization_persons": {
1235
+ "path_name": "organization_payroll_reimbursements_to_organization_persons",
1236
+ "start_table": "organization_payroll_reimbursements",
1237
+ "end_table": "organization_persons",
1238
+ "description": "Join path from payroll reimbursements to organization_persons for employee filtering",
1239
+ "steps": [
1240
+ {
1241
+ "step": 1,
1242
+ "table": "organization_persons",
1243
+ "alias": "opr",
1244
+ "base_column": "organization_person_id",
1245
+ "foreign_column": "organization_person_id",
1246
+ "join_type": "left",
1247
+ "from_previous_step": false
1248
+ }
1249
+ ]
1250
+ },
1251
+ "organization_payroll_reimbursements__organization_payroll_reimbursement_types": {
1252
+ "path_name": "organization_payroll_reimbursements_to_organization_payroll_reimbursement_types",
1253
+ "start_table": "organization_payroll_reimbursements",
1254
+ "end_table": "organization_payroll_reimbursement_types",
1255
+ "description": "Join path from payroll reimbursements to reimbursement types",
1256
+ "steps": [
1257
+ {
1258
+ "step": 1,
1259
+ "table": "organization_payroll_reimbursement_types",
1260
+ "alias": "prt",
1261
+ "base_column": "organization_payroll_reimbursement_type_id",
1262
+ "foreign_column": "organization_payroll_reimbursement_type_id",
1263
+ "join_type": "left",
1264
+ "from_previous_step": false
1265
+ }
1266
+ ]
1267
+ }
1268
+ }
modules.json ADDED
@@ -0,0 +1,872 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "employees": {
3
+ "id": 1,
4
+ "label": "Employees",
5
+ "description": "Employee management module",
6
+ "base_table": "organization_persons"
7
+ },
8
+ "departments": {
9
+ "id": 4,
10
+ "label": "Departments",
11
+ "description": "Department management module",
12
+ "base_table": "organization_departments"
13
+ },
14
+ "employee_educations": {
15
+ "id": 5,
16
+ "label": "Employee Education",
17
+ "description": "Employee education management module",
18
+ "base_table": "employee_educations"
19
+ },
20
+ "employee_languages": {
21
+ "id": 6,
22
+ "label": "Employee Language",
23
+ "description": "Employee language management module",
24
+ "base_table": "employee_languages"
25
+ },
26
+ "employee_family_members": {
27
+ "id": 7,
28
+ "label": "Employee Family Member",
29
+ "description": "Employee family member management module",
30
+ "base_table": "employee_family_members"
31
+ },
32
+ "employee_addresses": {
33
+ "id": 8,
34
+ "label": "Employee Address",
35
+ "description": "Employee address management module",
36
+ "base_table": "employee_addresses"
37
+ },
38
+ "employee_contacts": {
39
+ "id": 9,
40
+ "label": "Employee Contact",
41
+ "description": "Employee contact management module",
42
+ "base_table": "employee_contacts"
43
+ },
44
+ "employee_experiences": {
45
+ "id": 10,
46
+ "label": "Employee Experience",
47
+ "description": "Employee experience management module",
48
+ "base_table": "employee_experiences"
49
+ },
50
+ "employee_medicals": {
51
+ "id": 11,
52
+ "label": "Employee Medical",
53
+ "description": "Employee medical management module",
54
+ "base_table": "employee_medicals"
55
+ },
56
+ "employee_bank_accounts": {
57
+ "id": 12,
58
+ "label": "Employee Bank Account",
59
+ "description": "Employee bank account management module",
60
+ "base_table": "employee_bank_accounts"
61
+ },
62
+ "employee_documents": {
63
+ "id": 13,
64
+ "label": "Employee Document",
65
+ "description": "Employee document management module",
66
+ "base_table": "employee_documents"
67
+ },
68
+ "employee_exits": {
69
+ "id": 14,
70
+ "label": "Employee Exit",
71
+ "description": "Employee exit management module",
72
+ "base_table": "employee_exits"
73
+ },
74
+ "employee_employment_records": {
75
+ "id": 15,
76
+ "label": "Employee Records",
77
+ "description": "Employee employment records management module",
78
+ "base_table": "employee_employment_records"
79
+ },
80
+ "employee_functional_roles": {
81
+ "id": 16,
82
+ "label": "Employee Function Role",
83
+ "description": "Employee functional role management module",
84
+ "base_table": "employee_functional_roles"
85
+ },
86
+ "organization_employment_stages": {
87
+ "id": 17,
88
+ "label": "Organization Employment Stages",
89
+ "description": "Organization employment stage management module",
90
+ "base_table": "organization_employment_stages"
91
+ },
92
+ "employee_document_types": {
93
+ "id": 18,
94
+ "label": "Employee Document Types",
95
+ "description": "Employee document types management module",
96
+ "base_table": "employee_document_types"
97
+ },
98
+ "organization_work_shifts": {
99
+ "id": 20,
100
+ "label": "Organization Work Shift",
101
+ "description": "Organization work shift management module",
102
+ "base_table": "organization_work_shifts"
103
+ },
104
+ "employee_work_shift_assignments": {
105
+ "id": 21,
106
+ "label": "Employee Work Shift Assignment",
107
+ "description": "Employee work shift assignment management module",
108
+ "base_table": "employee_work_shift_assignments"
109
+ },
110
+ "organization_work_shift_rotation_patterns": {
111
+ "id": 22,
112
+ "label": "Organization Shift Rotation Pattern",
113
+ "description": "Organization work shift rotation pattern management module",
114
+ "base_table": "organization_work_shift_rotation_patterns"
115
+ },
116
+ "organization_work_shift_rotation_days": {
117
+ "id": 23,
118
+ "label": "Organization Work Shift Rotation Days",
119
+ "description": "Organization work shift rotation days management module",
120
+ "base_table": "organization_work_shift_rotation_days"
121
+ },
122
+ "employee_work_shift_rotation_assignments": {
123
+ "id": 24,
124
+ "label": "Employee Work Shift Rotation Assignment",
125
+ "description": "Employee work shift rotation assignment management module",
126
+ "base_table": "employee_work_shift_rotation_assignments"
127
+ },
128
+ "employee_attendance_timelogs": {
129
+ "id": 25,
130
+ "label": "Employee Attendance Time Log",
131
+ "description": "Employee attendance time log management module",
132
+ "base_table": "employee_attendance_timelogs"
133
+ },
134
+ "employee_attendance_records": {
135
+ "id": 26,
136
+ "label": "Employee Attendance Record",
137
+ "description": "Employee attendance record management module",
138
+ "base_table": "employee_attendance_records"
139
+ },
140
+ "organization_holiday_calendars": {
141
+ "id": 27,
142
+ "label": "Organization Holiday Calendar",
143
+ "description": "Organization holiday calendar management module",
144
+ "base_table": "organization_holiday_calendars"
145
+ },
146
+ "employee_leaves": {
147
+ "id": 28,
148
+ "label": "Employee Leaves",
149
+ "description": "Employee leaves management module",
150
+ "base_table": "employee_leaves"
151
+ },
152
+ "organization_leave_entitlements": {
153
+ "id": 29,
154
+ "label": "Organization Leave Entitlement",
155
+ "description": "Organization leave entitlement management module",
156
+ "base_table": "organization_leave_entitlements"
157
+ },
158
+ "employee_leave_monthly_summaries": {
159
+ "id": 30,
160
+ "label": "Employee Leave Monthly Summary",
161
+ "description": "Employee leave monthly summary management module",
162
+ "base_table": "employee_leave_monthly_summaries"
163
+ },
164
+ "employee_leave_balances": {
165
+ "id": 31,
166
+ "label": "Employee Leave Balances",
167
+ "description": "Employee leave balances management module",
168
+ "base_table": "employee_leave_balances"
169
+ },
170
+ "organization_employee_increment_types": {
171
+ "id": 32,
172
+ "label": "Organization Employee Increment Types",
173
+ "description": "Organization employee increment type management module",
174
+ "base_table": "organization_employee_increment_types"
175
+ },
176
+ "employee_increments": {
177
+ "id": 33,
178
+ "label": "Employee Increments",
179
+ "description": "Employee increments management module",
180
+ "base_table": "employee_increments"
181
+ },
182
+ "organization_users": {
183
+ "id": 34,
184
+ "label": "Organization User",
185
+ "description": "Organization user management module",
186
+ "base_table": "organization_users"
187
+ },
188
+ "organization_user_roles": {
189
+ "id": 35,
190
+ "label": "Organization User Roles",
191
+ "description": "Organization user roles management module",
192
+ "base_table": "organization_users"
193
+ },
194
+ "organization_internship_types": {
195
+ "id": 36,
196
+ "label": "Organization Internship Types",
197
+ "description": "Organization internship types management module",
198
+ "base_table": "organization_internship_types"
199
+ },
200
+ "organization_internship_statuses": {
201
+ "id": 37,
202
+ "label": "Organization Internship Status",
203
+ "description": "Organization internship status management module",
204
+ "base_table": "organization_internship_statuses"
205
+ },
206
+ "interns": {
207
+ "id": 38,
208
+ "label": "Interns",
209
+ "description": "Interns management module",
210
+ "base_table": "interns"
211
+ },
212
+ "intern_exit_records": {
213
+ "id": 39,
214
+ "label": "Intern Exit Records",
215
+ "description": "Intern exit records management module",
216
+ "base_table": "intern_exit_records"
217
+ },
218
+ "intern_leaves": {
219
+ "id": 40,
220
+ "label": "Intern Leaves",
221
+ "description": "Intern leaves management module",
222
+ "base_table": "intern_leaves"
223
+ },
224
+ "intern_document_types": {
225
+ "id": 41,
226
+ "label": "Intern Document Types",
227
+ "description": "Intern document types management module",
228
+ "base_table": "intern_document_types"
229
+ },
230
+ "intern_stipends": {
231
+ "id": 42,
232
+ "label": "Intern Stipends",
233
+ "description": "Intern stipends management module",
234
+ "base_table": "intern_stipends"
235
+ },
236
+ "intern_attendance_timelogs": {
237
+ "id": 43,
238
+ "label": "Intern Attendance Time Logs",
239
+ "description": "Intern attendance time logs management module",
240
+ "base_table": "intern_attendance_timelogs"
241
+ },
242
+ "intern_attendance_records": {
243
+ "id": 44,
244
+ "label": "Intern Attendance Records",
245
+ "description": "Intern attendance records management module",
246
+ "base_table": "intern_attendance_records"
247
+ },
248
+ "intern_certificates": {
249
+ "id": 45,
250
+ "label": "Intern Certificates",
251
+ "description": "Intern certificates management module",
252
+ "base_table": "intern_certificates"
253
+ },
254
+ "organization_internship_stages": {
255
+ "id": 46,
256
+ "label": "Organization Internship Stages",
257
+ "description": "Organization internship stages management module",
258
+ "base_table": "organization_internship_stages"
259
+ },
260
+ "intern_addresses": {
261
+ "id": 47,
262
+ "label": "Intern Addresses",
263
+ "description": "Intern addresses management module",
264
+ "base_table": "intern_addresses"
265
+ },
266
+ "intern_contacts": {
267
+ "id": 49,
268
+ "label": "Intern Contacts",
269
+ "description": "Intern contacts management module",
270
+ "base_table": "intern_contacts"
271
+ },
272
+ "intern_educations": {
273
+ "id": 50,
274
+ "label": "Intern Educations",
275
+ "description": "Intern educations management module",
276
+ "base_table": "intern_educations"
277
+ },
278
+ "intern_experiences": {
279
+ "id": 51,
280
+ "label": "Intern Experiences",
281
+ "description": "Intern experiences management module",
282
+ "base_table": "intern_experiences"
283
+ },
284
+ "intern_family_members": {
285
+ "id": 52,
286
+ "label": "Intern Family Members",
287
+ "description": "Intern family members management module",
288
+ "base_table": "intern_family_members"
289
+ },
290
+ "intern_functional_roles": {
291
+ "id": 53,
292
+ "label": "Intern Functional Roles",
293
+ "description": "Intern functional roles management module",
294
+ "base_table": "intern_functional_roles"
295
+ },
296
+ "intern_languages": {
297
+ "id": 54,
298
+ "label": "Intern Languages",
299
+ "description": "Intern languages management module",
300
+ "base_table": "intern_languages"
301
+ },
302
+ "intern_leave_balances": {
303
+ "id": 55,
304
+ "label": "Intern Leave Balances",
305
+ "description": "Intern leave balances management module",
306
+ "base_table": "intern_leave_balances"
307
+ },
308
+ "intern_leave_category_monthly_summaries": {
309
+ "id": 56,
310
+ "label": "Intern Leave Category Monthly Summaries",
311
+ "description": "Intern leave category monthly summaries management module",
312
+ "base_table": "intern_leave_category_monthly_summaries"
313
+ },
314
+ "intern_leave_monthly_summaries": {
315
+ "id": 57,
316
+ "label": "Intern Leave Monthly Summaries",
317
+ "description": "Intern leave monthly summaries management module",
318
+ "base_table": "intern_leave_monthly_summaries"
319
+ },
320
+ "intern_leave_type_monthly_summaries": {
321
+ "id": 58,
322
+ "label": "Intern Leave Type Monthly Summaries",
323
+ "description": "Intern leave type monthly summaries management module",
324
+ "base_table": "intern_leave_type_monthly_summaries"
325
+ },
326
+ "intern_medicals": {
327
+ "id": 59,
328
+ "label": "Intern Medicals",
329
+ "description": "Intern medicals management module",
330
+ "base_table": "intern_medicals"
331
+ },
332
+ "intern_attendance_monthly_summaries": {
333
+ "id": 60,
334
+ "label": "Intern Attendance Monthly Summaries",
335
+ "description": "Intern attendance monthly summaries management module",
336
+ "base_table": "intern_attendance_monthly_summaries"
337
+ },
338
+ "intern_stipend_payments": {
339
+ "id": 61,
340
+ "label": "Intern Stipend Payments",
341
+ "description": "Intern stipend payments management module",
342
+ "base_table": "intern_stipend_payments"
343
+ },
344
+ "intern_attendance_overtime_records": {
345
+ "id": 62,
346
+ "label": "Intern Attendance Overtime Records",
347
+ "description": "Intern attendance overtime records management module",
348
+ "base_table": "intern_attendance_overtime_records"
349
+ },
350
+ "organizations": {
351
+ "id": 63,
352
+ "label": "Organizations",
353
+ "description": "Organizations management module",
354
+ "base_table": "organizations"
355
+ },
356
+ "organization_attendance_breaks": {
357
+ "id": 64,
358
+ "label": "Organization Attendance Breaks",
359
+ "description": "Organization Attendance Breaks module for managing attendance break definitions",
360
+ "base_table": "organization_attendance_breaks"
361
+ },
362
+ "organization_business_divisions": {
363
+ "id": 65,
364
+ "label": "Organization Business Divisions",
365
+ "description": "Organization business divisions management module",
366
+ "base_table": "organization_business_divisions"
367
+ },
368
+ "organization_business_ownership_types": {
369
+ "id": 66,
370
+ "label": "Organization Business Ownership Types",
371
+ "description": "Organization business ownership types management module",
372
+ "base_table": "organization_business_ownership_types"
373
+ },
374
+ "organization_business_profiles": {
375
+ "id": 67,
376
+ "label": "Organization Business Profiles",
377
+ "description": "Organization business profiles management module",
378
+ "base_table": "organization_business_profiles"
379
+ },
380
+ "organization_business_registrations": {
381
+ "id": 68,
382
+ "label": "Organization Business Registrations",
383
+ "description": "Organization business registrations management module",
384
+ "base_table": "organization_business_registrations"
385
+ },
386
+ "organization_business_registration_types": {
387
+ "id": 69,
388
+ "label": "Organization Business Registration Types",
389
+ "description": "Organization business registration types management module",
390
+ "base_table": "organization_business_registration_types"
391
+ },
392
+ "organization_business_units": {
393
+ "id": 70,
394
+ "label": "Organization Business Units",
395
+ "description": "Organization business units management module",
396
+ "base_table": "organization_business_units"
397
+ },
398
+ "organization_configuration_templates": {
399
+ "id": 71,
400
+ "label": "Organization Configuration Templates",
401
+ "description": "Organization configuration templates management module",
402
+ "base_table": "organization_configuration_templates"
403
+ },
404
+ "organization_department_locations": {
405
+ "id": 72,
406
+ "label": "Organization Department Locations",
407
+ "description": "Organization department location mapping module",
408
+ "base_table": "organization_department_locations"
409
+ },
410
+ "organization_designations": {
411
+ "id": 73,
412
+ "label": "Organization Designations",
413
+ "description": "Organization designation management module",
414
+ "base_table": "organization_designations"
415
+ },
416
+ "organization_education_degrees": {
417
+ "id": 74,
418
+ "label": "Organization Education Degrees",
419
+ "description": "Organization education degree management module",
420
+ "base_table": "organization_education_degrees"
421
+ },
422
+ "organization_education_levels": {
423
+ "id": 75,
424
+ "label": "Organization Education Levels",
425
+ "description": "Organization education level management module",
426
+ "base_table": "organization_education_levels"
427
+ },
428
+ "organization_education_level_degree_streams": {
429
+ "id": 76,
430
+ "label": "Organization Education Level Degree Streams",
431
+ "description": "Organization education level degree stream mapping module",
432
+ "base_table": "organization_education_level_degree_streams"
433
+ },
434
+ "organization_education_streams": {
435
+ "id": 77,
436
+ "label": "Organization Education Streams",
437
+ "description": "Organization education stream management module",
438
+ "base_table": "organization_education_streams"
439
+ },
440
+ "organization_employee_address_types": {
441
+ "id": 78,
442
+ "label": "Organization Employee Address Types",
443
+ "description": "Organization employee address type management module",
444
+ "base_table": "organization_employee_address_types"
445
+ },
446
+ "organization_employment_exit_reason_types": {
447
+ "id": 79,
448
+ "label": "Organization Employment Exit Reason Types",
449
+ "description": "Organization employment exit reason type management module",
450
+ "base_table": "organization_employment_exit_reason_types"
451
+ },
452
+ "organization_employment_exit_reasons": {
453
+ "id": 80,
454
+ "label": "Organization Employment Exit Reasons",
455
+ "description": "Organization employment exit reason management module",
456
+ "base_table": "organization_employment_exit_reasons"
457
+ },
458
+ "organization_employment_statuses": {
459
+ "id": 81,
460
+ "label": "Organization Employment Statuses",
461
+ "description": "Organization employment status management module",
462
+ "base_table": "organization_employment_statuses"
463
+ },
464
+ "organization_employment_types": {
465
+ "id": 82,
466
+ "label": "Organization Employment Types",
467
+ "description": "Organization employment type management module",
468
+ "base_table": "organization_employment_types"
469
+ },
470
+ "organization_employment_categories": {
471
+ "id": 83,
472
+ "label": "Organization Employment Categories",
473
+ "description": "Organization employment category management module",
474
+ "base_table": "organization_employment_categories"
475
+ },
476
+ "organization_employee_residential_ownership_types": {
477
+ "id": 86,
478
+ "label": "Organization Employee Residential Ownership Types",
479
+ "description": "Organization employee residential ownership type management module",
480
+ "base_table": "organization_employee_residential_ownership_types"
481
+ },
482
+ "organization_entities": {
483
+ "id": 87,
484
+ "label": "Organization Entities",
485
+ "description": "Organization entity management module",
486
+ "base_table": "organization_entities"
487
+ },
488
+ "organization_entity_types": {
489
+ "id": 88,
490
+ "label": "Organization Entity Types",
491
+ "description": "Organization entity type management module",
492
+ "base_table": "organization_entity_types"
493
+ },
494
+ "organization_groups": {
495
+ "id": 89,
496
+ "label": "Organization Groups",
497
+ "description": "Organization group management module",
498
+ "base_table": "organization_groups"
499
+ },
500
+ "organization_holidays": {
501
+ "id": 90,
502
+ "label": "Organization Holidays",
503
+ "description": "Organization holiday management module",
504
+ "base_table": "organization_holidays"
505
+ },
506
+ "organization_holiday_templates": {
507
+ "id": 91,
508
+ "label": "Organization Holiday Templates",
509
+ "description": "Organization holiday template management module",
510
+ "base_table": "organization_holiday_templates"
511
+ },
512
+ "organization_holiday_types": {
513
+ "id": 92,
514
+ "label": "Organization Holiday Types",
515
+ "description": "Organization holiday type management module",
516
+ "base_table": "organization_holiday_types"
517
+ },
518
+ "organization_identity_profiles": {
519
+ "id": 93,
520
+ "label": "Organization Identity Profiles",
521
+ "description": "Organization identity profile management module",
522
+ "base_table": "organization_identity_profiles"
523
+ },
524
+ "organization_languages": {
525
+ "id": 94,
526
+ "label": "Organization Languages",
527
+ "description": "Organization language management module",
528
+ "base_table": "organization_languages"
529
+ },
530
+ "organization_leave_categories": {
531
+ "id": 95,
532
+ "label": "Organization Leave Categories",
533
+ "description": "Organization leave category management module",
534
+ "base_table": "organization_leave_categories"
535
+ },
536
+ "organization_leave_duration_types": {
537
+ "id": 96,
538
+ "label": "Organization Leave Duration Types",
539
+ "description": "Organization leave duration type management module",
540
+ "base_table": "organization_leave_duration_types"
541
+ },
542
+ "organization_leave_policies": {
543
+ "id": 97,
544
+ "label": "Organization Leave Policies",
545
+ "description": "Organization leave policy management module",
546
+ "base_table": "organization_leave_policies"
547
+ },
548
+ "organization_leave_reasons": {
549
+ "id": 98,
550
+ "label": "Organization Leave Reasons",
551
+ "description": "Organization leave reason management module",
552
+ "base_table": "organization_leave_reasons"
553
+ },
554
+ "organization_leave_reason_types": {
555
+ "id": 99,
556
+ "label": "Organization Leave Reason Types",
557
+ "description": "Organization leave reason type management module",
558
+ "base_table": "organization_leave_reason_types"
559
+ },
560
+ "organization_leave_types": {
561
+ "id": 100,
562
+ "label": "Organization Leave Types",
563
+ "description": "Organization leave type management module",
564
+ "base_table": "organization_leave_types"
565
+ },
566
+ "organization_locations": {
567
+ "id": 101,
568
+ "label": "Organization Locations",
569
+ "description": "Organization location management module",
570
+ "base_table": "organization_locations"
571
+ },
572
+ "organization_location_ownership_types": {
573
+ "id": 102,
574
+ "label": "Organization Location Ownership Types",
575
+ "description": "Organization location ownership type management module",
576
+ "base_table": "organization_location_ownership_types"
577
+ },
578
+ "organization_employee_profile_sections": {
579
+ "id": 103,
580
+ "label": "Organization Employee Profile Sections",
581
+ "description": "Organization employee profile section management module",
582
+ "base_table": "organization_employee_profile_sections"
583
+ },
584
+ "organization_registrations": {
585
+ "id": 104,
586
+ "label": "Organization Registrations",
587
+ "description": "Organization registration management module",
588
+ "base_table": "organization_registrations"
589
+ },
590
+ "organization_residential_ownership_types": {
591
+ "id": 105,
592
+ "label": "Organization Residential Ownership Types",
593
+ "description": "Organization residential ownership type management module",
594
+ "base_table": "organization_residential_ownership_types"
595
+ },
596
+ "organization_roles": {
597
+ "id": 106,
598
+ "label": "Organization Roles",
599
+ "description": "Organization role management module",
600
+ "base_table": "organization_roles"
601
+ },
602
+ "organization_settings": {
603
+ "id": 107,
604
+ "label": "Organization Settings",
605
+ "description": "Organization setting management module",
606
+ "base_table": "organization_settings"
607
+ },
608
+ "organization_units": {
609
+ "id": 109,
610
+ "label": "Organization Units",
611
+ "description": "Organization Units module for managing organizational units",
612
+ "base_table": "organization_units"
613
+ },
614
+ "organization_unit_types": {
615
+ "id": 110,
616
+ "label": "Organization Unit Types",
617
+ "description": "Organization Unit Types module for managing organizational unit types",
618
+ "base_table": "organization_unit_types"
619
+ },
620
+ "organization_functional_role_skills": {
621
+ "id": 111,
622
+ "label": "Organization Functional Role Skills",
623
+ "description": "Organization Functional Role Skills module for managing skills associated with functional roles",
624
+ "base_table": "organization_functional_role_skills"
625
+ },
626
+ "organization_functional_role_skill_elements": {
627
+ "id": 112,
628
+ "label": "Organization Functional Role Skill Elements",
629
+ "description": "Organization Functional Role Skill Elements module for managing skill elements associated with functional roles",
630
+ "base_table": "organization_functional_role_skill_elements"
631
+ },
632
+ "organization_skill_categories": {
633
+ "id": 113,
634
+ "label": "Organization Skill Categories",
635
+ "description": "Organization Skill Categories module for managing skill categories",
636
+ "base_table": "organization_skill_categories"
637
+ },
638
+ "organization_skill_elements": {
639
+ "id": 114,
640
+ "label": "Organization Skill Elements",
641
+ "description": "Organization Skill Elements module for managing skill elements",
642
+ "base_table": "organization_skill_elements"
643
+ },
644
+ "organization_skill_element_groups": {
645
+ "id": 115,
646
+ "label": "Organization Skill Element Groups",
647
+ "description": "Organization Skill Element Groups module for managing skill element groups",
648
+ "base_table": "organization_skill_element_groups"
649
+ },
650
+ "organization_skills": {
651
+ "id": 116,
652
+ "label": "Organization Skills",
653
+ "description": "Organization Skills module for managing skills",
654
+ "base_table": "organization_skills"
655
+ },
656
+ "organization_skill_subcategories": {
657
+ "id": 117,
658
+ "label": "Organization Skill Subcategories",
659
+ "description": "Organization Skill Subcategories module for managing skill subcategories",
660
+ "base_table": "organization_skill_subcategories"
661
+ },
662
+ "organization_learning_providers": {
663
+ "id": 118,
664
+ "label": "Organization Learning Providers",
665
+ "description": "Organization Learning Providers module for managing learning providers",
666
+ "base_table": "organization_learning_providers"
667
+ },
668
+ "organization_learning_provider_types": {
669
+ "id": 119,
670
+ "label": "Organization Learning Provider Types",
671
+ "description": "Organization Learning Provider Types module for managing learning provider types",
672
+ "base_table": "organization_learning_provider_types"
673
+ },
674
+ "organization_learning_resource_functional_roles": {
675
+ "id": 120,
676
+ "label": "Organization Learning Resource Functional Roles",
677
+ "description": "Organization Learning Resource Functional Roles module for managing functional roles associated with learning resources",
678
+ "base_table": "organization_learning_resource_functional_roles"
679
+ },
680
+ "organization_learning_resources": {
681
+ "id": 121,
682
+ "label": "Organization Learning Resources",
683
+ "description": "Organization Learning Resources module for managing learning resources",
684
+ "base_table": "organization_learning_resources"
685
+ },
686
+ "organization_learning_resource_skill_elements": {
687
+ "id": 122,
688
+ "label": "Organization Learning Resource Skill Elements",
689
+ "description": "Organization Learning Resource Skill Elements module for managing skill elements associated with learning resources",
690
+ "base_table": "organization_learning_resource_skill_elements"
691
+ },
692
+ "organization_work_shift_days": {
693
+ "id": 123,
694
+ "label": "Organization Work Shift Days",
695
+ "description": "Organization Work Shift Days module for managing work shift day configurations",
696
+ "base_table": "organization_work_shift_days"
697
+ },
698
+ "organization_work_model_days": {
699
+ "id": 124,
700
+ "label": "Organization Work Model Days",
701
+ "description": "Organization Work Model Days module for managing work model day configurations",
702
+ "base_table": "organization_work_model_days"
703
+ },
704
+ "organization_attendance_status_types": {
705
+ "id": 125,
706
+ "label": "Attendance Status Types",
707
+ "description": "Attendance Status Types module for managing attendance status type definitions",
708
+ "base_table": "organization_attendance_status_types"
709
+ },
710
+ "organization_attendance_deviation_reasons": {
711
+ "id": 126,
712
+ "label": "Attendance Deviation Reasons",
713
+ "description": "Attendance Deviation Reasons module for managing attendance deviation reason definitions",
714
+ "base_table": "organization_attendance_deviation_reasons"
715
+ },
716
+ "organization_attendance_break_types": {
717
+ "id": 127,
718
+ "label": "Attendance Break Types",
719
+ "description": "Attendance Break Types module for managing attendance break type definitions",
720
+ "base_table": "organization_attendance_break_types"
721
+ },
722
+ "organization_attendance_sources": {
723
+ "id": 128,
724
+ "label": "Attendance Sources",
725
+ "description": "Attendance Sources module for managing attendance source definitions",
726
+ "base_table": "organization_attendance_sources"
727
+ },
728
+ "organization_work_shift_breaks": {
729
+ "id": 131,
730
+ "label": "Organization Work Shift Breaks",
731
+ "description": "Organization Work Shift Breaks module for managing work shift break associations",
732
+ "base_table": "organization_work_shift_breaks"
733
+ },
734
+ "organization_functional_roles": {
735
+ "id": 132,
736
+ "label": "Organization Functional Roles",
737
+ "description": "Organization Functional Roles module for managing functional role definitions",
738
+ "base_table": "organization_functional_roles"
739
+ },
740
+ "organization_functional_role_specializations": {
741
+ "id": 133,
742
+ "label": "Organization Functional Role Specializations",
743
+ "description": "Organization Functional Role Specializations module for managing functional role specialization definitions",
744
+ "base_table": "organization_functional_role_specializations"
745
+ },
746
+ "payroll_account_mapping": {
747
+ "id": 135,
748
+ "label": "Payroll Account Mapping",
749
+ "description": "Payroll Account Mapping module for filtering account mappings",
750
+ "base_table": "organization_payroll_account_mappings"
751
+ },
752
+ "account_mapping": {
753
+ "id": 136,
754
+ "label": "Account Mapping",
755
+ "description": "Payroll Account Mapping module for filtering account mappings",
756
+ "base_table": "organization_payroll_account_mappings"
757
+ },
758
+ "employee_payslip": {
759
+ "id": 137,
760
+ "label": "Employee Payslip",
761
+ "description": "Employee Payslip module for filtering payslips",
762
+ "base_table": "employee_payslips"
763
+ },
764
+ "employee_payslip_payment": {
765
+ "id": 138,
766
+ "label": "Employee Payslip Payment",
767
+ "description": "Employee Payslip Payment module for filtering payslip payments",
768
+ "base_table": "employee_payslip_payments"
769
+ },
770
+ "employee_salary_structure": {
771
+ "id": 139,
772
+ "label": "Employee Salary Structure",
773
+ "description": "Employee Salary Structure module for filtering salary structures",
774
+ "base_table": "organization_payroll_employee_salary_structures"
775
+ },
776
+ "loan_type": {
777
+ "id": 140,
778
+ "label": "Loan Type",
779
+ "description": "Loan Type module for filtering loan types",
780
+ "base_table": "organization_payroll_loan_types"
781
+ },
782
+ "payroll_adjustment": {
783
+ "id": 141,
784
+ "label": "Payroll Adjustment",
785
+ "description": "Payroll Adjustment module for filtering adjustments",
786
+ "base_table": "organization_payroll_adjustments"
787
+ },
788
+ "payroll_adjustment_type": {
789
+ "id": 142,
790
+ "label": "Payroll Adjustment Type",
791
+ "description": "Payroll Adjustment Type module for filtering adjustment types",
792
+ "base_table": "organization_payroll_adjustment_types"
793
+ },
794
+ "payroll_advance": {
795
+ "id": 143,
796
+ "label": "Payroll Advance",
797
+ "description": "Payroll Advance module for filtering advances",
798
+ "base_table": "organization_payroll_advances"
799
+ },
800
+ "payroll_component": {
801
+ "id": 144,
802
+ "label": "Payroll Component",
803
+ "description": "Payroll Component module for filtering components",
804
+ "base_table": "organization_payroll_components"
805
+ },
806
+ "payroll_component_type": {
807
+ "id": 145,
808
+ "label": "Payroll Component Type",
809
+ "description": "Payroll Component Type module for filtering component types",
810
+ "base_table": "organization_payroll_component_types"
811
+ },
812
+ "payroll_cycle": {
813
+ "id": 146,
814
+ "label": "Payroll Cycle",
815
+ "description": "Payroll Cycle module for filtering cycles",
816
+ "base_table": "organization_payroll_cycles"
817
+ },
818
+ "payroll_journal_entry": {
819
+ "id": 147,
820
+ "label": "Payroll Journal Entry",
821
+ "description": "Payroll Journal Entry module for filtering journal entries",
822
+ "base_table": "organization_payroll_journal_entries"
823
+ },
824
+ "payroll_loan": {
825
+ "id": 148,
826
+ "label": "Payroll Loan",
827
+ "description": "Payroll Loan module for filtering loans",
828
+ "base_table": "organization_payroll_loans"
829
+ },
830
+ "payroll_run_employee": {
831
+ "id": 149,
832
+ "label": "Payroll Run Employee",
833
+ "description": "Payroll Run Employee module for filtering payroll run employees",
834
+ "base_table": "organization_payroll_run_employees"
835
+ },
836
+ "payroll_run_employee_component": {
837
+ "id": 150,
838
+ "label": "Payroll Run Employee Component",
839
+ "description": "Payroll Run Employee Component module for filtering run employee components",
840
+ "base_table": "PayrollRunEmployeeComponents"
841
+ },
842
+ "payroll_salary_component": {
843
+ "id": 151,
844
+ "label": "Payroll Salary Component",
845
+ "description": "Payroll Salary Component module for filtering salary structure components",
846
+ "base_table": "organization_payroll_employee_salary_structure_components"
847
+ },
848
+ "payroll_security": {
849
+ "id": 152,
850
+ "label": "Payroll Security",
851
+ "description": "Payroll Security module for filtering securities",
852
+ "base_table": "organization_payroll_securities"
853
+ },
854
+ "payroll_slab": {
855
+ "id": 153,
856
+ "label": "Payroll Slab",
857
+ "description": "Payroll Slab module for filtering component slabs",
858
+ "base_table": "organization_payroll_component_slabs"
859
+ },
860
+ "payslip_component": {
861
+ "id": 154,
862
+ "label": "Payslip Component",
863
+ "description": "Payslip Component module for filtering payslip components",
864
+ "base_table": "employee_payslip_components"
865
+ },
866
+ "security_transaction": {
867
+ "id": 155,
868
+ "label": "Security Transaction",
869
+ "description": "Security Transaction module for filtering security transactions",
870
+ "base_table": "organization_payroll_security_transactions"
871
+ }
872
+ }