|
|
|
## 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](https://ais.amti.com.ph/hierarchy). 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**
|
|
|
|
|
|
|
|
<!-- ## ⚠️ ONGOING DEVELOPMENT OF WIKI ⚠️ -->
|
|
|
|
|
|
|
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
|
|
## 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"*
|
|
|
|
|
|
|
|
``` php
|
|
|
|
# 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. |
|
|
\ No newline at end of file |