# Magic eP

[magic-ep.dfactoryindex.com](https://magic-ep.dfactoryindex.com)

# eP Specifications

[![eP Spec 1.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-07/scaled-1680-/ep-spec-1.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-07/ep-spec-1.png)

How to:

1. **Upload excel files** containing the specifications as extracted from ePerolehan website.
2. Click the `Run all` button or run for individual excel files.
3. Copy the script that will automatically filled in the details and remarks.
4. Click `Compliance` button to copy the script for Ya/Tidak options.

---

##### 1 - Upload file

[![eP Spec 2.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/ep-spec-2.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/ep-spec-2.png)

##### 2 - Click Run

[![eP Spec 3.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/ep-spec-3.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/ep-spec-3.png)

##### 3 - Copy script

Example:

```javascript
maklumbalas_arr = [`1 PPHD 1001 ROTARY HAMMER DRILL`,
`Please specify the product country origin, brand name and model number
The ROTARY HAMMER DRILL should have minimum requirement as below :
1.0 GENERAL SPECIFICATION / DESCRIPTION
1.1 The tool for hammer drilling in concrete, brick and stone. It is also suitable for wood, metal, ceramic and plastic.
1.2 Electronic control and forward/reverse rotation`,
]

catatan_arr = [``,
]


var textareas = document.querySelectorAll('textarea[id^="_scSupplierProposal_WAR_NGePportlet_:form:j_idt"]');
var id = textareas[0].id.match(/idt(\d+)/)[1];

maklumbalas_arr.forEach((data, i) => {
  var txt = document.getElementById(`_scSupplierProposal_WAR_NGePportlet_:form:j_idt${id}:questionTbl:${i}:answerText`);
  if (txt!=null) {
    txt.value = data;
  }
});

catatan_arr.forEach((data, i) => {
  var remarks = document.getElementById(`_scSupplierProposal_WAR_NGePportlet_:form:j_idt${id}:questionTbl:${i}:answerRemarks`);
  if (remarks!=null) {
    remarks.value = data;
  }
});
```

##### 4 - Optional Actions (Download, View cleaned)

- Download button lets you download the code/script above.
- View cleaned button lets you see the information that will be filled in including the characters length of each row data. 
    - <span style="background-color: rgb(251, 238, 184);">Future improvements: Highlight the row with &gt;1000 length.</span>

[![eP Spec 4.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/ep-spec-4.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/ep-spec-4.png)

# eP Harga

[![eP Harga.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/ep-harga.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/ep-harga.png)

How to:

1. Copy price list from excel file and paste it in `"List Harga"`. For example: `2,250.00 7,100.00 5,397.00`
2. Fill in the remarks `Catatan`.
3. Click the <span style="color: rgb(236, 240, 241); background-color: rgb(22, 145, 121);">Run</span> button.
4. Copy the output on the left side to automatically fill in the prices and remarks.
5. (Optional) Copy the output on the right side to change only the remarks `Catatan` for other bidding companies.

---

##### Example after running the program

[![eP Harga 2.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/ep-harga-2.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/ep-harga-2.png)

# Bidding Price — Peralatan

[![Bidding Price - Peralatan.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/bidding-price-peralatan.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/bidding-price-peralatan.png)

How to:

1. Copy the items' prices from excel file and paste it in the field `List Harga`
2. Copy the items' units from excel file and paste it in the field `Units`
3. Copy the bidding companies' target prices and paste it in the field `Targets`
4. Click the <span style="background-color: rgb(22, 145, 121); color: rgb(236, 240, 241);">Run</span> button.
5. Copy the output.

---

##### Example after running the program

[![Bidding Price - Peralatan 2.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/bidding-price-peralatan-2.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/bidding-price-peralatan-2.png)

# Bidding Price — ICT

[![Bidding Price - ICT.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/bidding-price-ict.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/bidding-price-ict.png)

How to:

1. Copy one example of items' prices from excel file and paste it in the field `List Harga`
2. Copy the items' units from excel file and paste it in the field `Units`
3. Copy the number of months from excel file and paste it in the field `Months`
4. Copy the bidding companies' target prices and paste it in the field `Targets`
5. Set the first item price for each targets in `Lock Price Item 1`
    - <p class="callout info">If there is only one item, this field will be ignored and the bidding price will be calculated as follows;  
        **Price = Target ÷ (Units × Months)**  
        </p>
6. Click the <span style="background-color: rgb(22, 145, 121); color: rgb(236, 240, 241);">Run</span> button.
7. Copy the output.

---

##### Case 1 — Predict prices for multiple items

[![Bidding Price - ICT 2.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/scaled-1680-/bidding-price-ict-2.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/bidding-price-ict-2.png)

##### Case 2 — Predict price for one item

[![Bidding Price - ICT 3.png](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/bidding-price-ict-3.png)](https://lib.dfactoryindex.com/uploads/images/gallery/2026-06/bidding-price-ict-2.png)