Clearance Technical Debts
There are many causes that the technical debts have accumulated especially in clearance module.
- Required to implement the module as soon as possible (due to pandemic).
- Some specific AMTI departments have specific way of dealing with clearance routed to them.
- Some specific AMTI Approvers have specific timeline to process the clearance.
- Routes are dynamic and varies to employee application.
- Unforeseen specification that was eventually needed and was not advised early on regarding such scenario.
- I'm partly to blame as I haven't expected such features to be requested.
However, this is not a wiki to discuss the reasons why I have technical debts.
Tech Debt 1: Approver and Route Management
Managing route and approvers is identical as it relies heavily on the AIS Hierarchy Module. This can be solved in a single module page only by filtering the clearance Form Types only - AFC and - ONSITE.
But I have planned to separate this inside a single web page but have two (2) tab page to separate the data tables per form allowing us also to have separate Add, Edit and Archive.
Changing the forms
Ongoing Solution for solving this: Route Management
Tech Debt 2: Sales Logistics Special conditions
This is a requirement that was only brought up after the day the clearance has been implemented. The approvers of the Sales Logistics Department (Part of the standard route) should be dynamic according to employee department.
Sales Logistic Department has many BU/Teams under its wing, and those BU or Business Units are managed by two (2) AMTI Employees.
"In my current tenure, the Sales Logistics Approver is Ma'am Donna Perez have two AMTI employee's under her. Ma'am Lorry and Ma'am Jaymee. This is an unhandled on the initial implementation of the clearance module. However a work around was made to comply their requirements. - matt"
# The following code is at:
# FILE: clearance.php
# CLASS: Clearance
# FUNCTION: addClearance()
case 'AFC':
$clearanceId = $this->clearance_model->insertClearance($clearance); // insert clearance
// ======= SPECIAL SCENARIO FOR SALES LOGISTICS UNDER MA'AM DONNA. =======
$msJaymee = ['D0066', 'D0053', 'D0040', 'D0004', 'D0005', 'D0072', 'D0007', 'D0008', 'D0009', 'D0044'];
$msLorry = ['D0010', 'D0022', 'D0027', 'D0028', 'D0029', 'D0030', 'D0012', 'D0023', 'D0024', 'D0025', 'D0026', 'D0032'];
$salesSubApprover = null;
// if employee is under ms.Jaymee. Remove (51 = Miss Lorry)
if (in_array($clearance['dept_ID'], $msJaymee)) $salesSubApprover = '51';
// if employee is under ms.Lorry. Remove (21 = miss jaymee)
else if (in_array($clearance['dept_ID'], $msLorry)) $salesSubApprover = '21';
$clearanceRoutes = $this->clearance_model->routesAFC($clearance['supervisor_id'], $salesSubApprover);
echo json_encode(['code' => '0', 'msg' => 'success']);
$isClearanceInserted = true;
// ===================== SPECIAL SCENARIO ENDS HERE =======================
break;
| Approver/User ID | Approver | Dept ID | Department |
|---|---|---|---|
| 21 | Ma'am Jaymee | D0004 | AMTI - CEBU |
| 21 | Ma'am Jaymee | D0005 | AMTI - DAVAO |
| 21 | Ma'am Jaymee | D0007 | ASCEND MANAGEMENT |
| 21 | Ma'am Jaymee | D0008 | ASCEND-BPO FACILITIES & SOLUTIONS |
| 21 | Ma'am Jaymee | D0009 | ASCEND-CYBERSECURITY |
| 21 | Ma'am Jaymee | D0040 | GOVERNMENT TEAM |
| 21 | Ma'am Jaymee | D0044 | IMS - SALES GROUP |
| 21 | Ma'am Jaymee | D0053 | PROFESSIONAL SERVICES GROUP(PSG) |
| 21 | Ma'am Jaymee | D0066 | UNCS NETWORK/SECURITY |
| 21 | Ma'am Jaymee | D0072 | AMARANTOS |
| 51 | Ma'am Lorry | D0010 | AVIT |
| 51 | Ma'am Lorry | D0012 | BFSI |
| 51 | Ma'am Lorry | D0022 | EBU 1 |
| 51 | Ma'am Lorry | D0023 | EBU 11(ESG2) |
| 51 | Ma'am Lorry | D0024 | EBU 12(ESG2) |
| 51 | Ma'am Lorry | D0025 | EBU 14(ESG2) |
| 51 | Ma'am Lorry | D0026 | EBU 15(ESG2) |
| 51 | Ma'am Lorry | D0027 | EBU 2 |
| 51 | Ma'am Lorry | D0028 | EBU 3 |
| 51 | Ma'am Lorry | D0029 | EBU 5 |
| 51 | Ma'am Lorry | D0030 | EBU 6 |
| 51 | Ma'am Lorry | D0032 | EBU 9 / CONSUMABLES & PERIPHER |
Prospect solution: This could be solved in a single table inside the clearance database to be a managed data. But this must be in synced with the current sub-approvers of Sales logistics. Else this could pose an error to the function.
Tech Debt 3: Clearance Routes is inserted on clearance submit application .
This is an old tech debt that I am fully aware of since the day of implementation but unable to publish the updates due to the requirements being requested occasionally outdating the pending updates further more.