Cost Control
Modul: procurement, di menu tampil sebagai Cost Control. Nama foldernya adalah nama lama modul ini dan menjadi sumber kebingungan terbesar di area ini: grup menu Procurement (Requisition, RFQ, PO dan lainnya) ada di folder lain, sedangkan modules/procurement/ adalah register komitmen dan pengeluaran dari grup Cost Control & Budgeting.
Cara halaman ini diverifikasi
Ditulis dari master pada 2026-09-06 dan dibandingkan dengan big five di hari yang sama. Tidak ada halaman sebelumnya. Peta, bukan penelusuran baris per baris: 49 file, sekitar 820 pemanggilan database. Hanya master yang memasang modul ini, jadi layarnya tidak dicoba di fork.
Posisinya
WBS (ts_cbs) ─┐
AFE ─┼→ Contract (ts_contract_number, revisi) → Order line item (ts_lineitem)
│ → Expenditure (ts_transact: actual, forecast, invoice, payment)
│ → snapshot Actual & Forecast → Budget & Expense Reporting
Vendor ─┘Setiap nominal bergantung pada satu node WBS dan satu AFE, jadi setting Cost Control harus diisi sebelum kontrak pertama.
Lima tab
procurement.php dengan procurement_browse.htm membuka tab bar: Contract, Order, Expenditure, Report, Snapshot. Satu toolbar melayani semuanya: New, Add, Edit, Delete, Save, Close, Add Lineitem, Select Lineitem, Import, Import from Excel, Print, Export to CSV, Search, Sort, View Comments, Refresh.
| Tab | Data | Aksi |
|---|---|---|
| Contract | ts_contract_number: contract_number, contract_desc, contract_value, contract_currency, contract_exchangerate, contract_date, contract_award_date, contract_completion_date, contract_requisition_ref, itb_id, company_code, status_contract_id, procurement representative. Revisi di ts_contract_rev. | adddatacontract, editcontract, addrevcontract, editrev, approveunapprove, import Excel (import_excel_upload) |
| Order | ts_lineitem per kontrak: lineitem_no, lineitem_desc, cbs_id, order_id, po_item_id, is_manual | addlineitem, editlineitem, deletelineitem, editlinecbs, movegridtogrid |
| Expenditure | ts_transact per line item: transact_unit, jumlah dan nilai, transact_order_date, transact_actual_date, transact_forec_accrual_completion_date, transact_forec_cash_completion_date, payment_status, pertamina_afe_id, approve_for_actual_date; ts_projectdocref untuk dokumen referensi (invoice, surat jalan) dengan projectdocref_value dan mata uangnya; ts_invoice; semuanya diikat oleh ts_map_transact | addline_transact, editline_transact, deleteline_transact, moveTransact, addmap, editmap, delmap, import invoice (import_inv_preview_upload), validateDuplicateInvNo |
| Report | laporan cetak di bawah | |
| Snapshot | header ts_actual_forecast dengan baris ts_actual_forecast_snapshot: salinan beku setiap transaksi beserta nilai order, actual dan forecast-nya | simpan, lihat |
Voucher accounts payable (AccPayAdd, AccPayEdit, procurement_accounts_payable_voucher.php) adalah form keenam yang dibuka dari tab Expenditure.
Laporan
Tab Report dan heading Cost Control & Budgeting di menu Report menjalankan skrip yang sama: AFE accrual (tiga versi dan satu versi snapshot), finance accrual, actual versus payment (per kontrak dan per WBS, varian mingguan dan Excel), budget commitment, cost summary, accrual summary. Cara pendaftarannya ada di halaman Reporting.
| Skrip laporan | Keadaan saat helper legacy melempar exception |
|---|---|
print_afe_accrual_2, print_act_vs_payment*, print_afe_finance_accrual_xls, print_report3, dua ekspor Excel mingguan | memakai $pdo, jalan |
print_afe_accrual, print_afe_accrual_2_month, print_afe_accrual_snapshot, print_accrual_summary, print_budget_commitment, print_cost_summary_report, procurement_handler_summary | mati |
salinan *20091019.php dan *_061014.php | backup bertanggal, tidak dirutekan |
Yang masih memakai helper legacy
Dihitung 2026-09-06: 328 pemanggilan iw_mysql_query() berbanding 495 pemakaian $pdo.
| Path | Keadaan saat helper legacy melempar exception |
|---|---|
procurement.php, procurement.inc.php, procurement_handler_browse.inc.php, procurement_handler_ajaxform.inc.php, procurement_expenditure_subgrid.php, procurement_handler_tree.inc.php | sebagian besar $pdo, satu sampai empat pemanggilan legacy per file |
procurement_handler_post.inc.php (79 legacy, 139 PDO) | campuran; penulisan kontrak dan transaksi memakai PDO, beberapa helper tidak |
procurement_handler_ajax.inc.php (9 legacy, 3 PDO) | campuran |
procurement_accounts_payable_voucher.php | mati |
Hal yang perlu diwaspadai
- Foldernya
procurement, menunya Cost Control. Tiket yang menyebut "modul procurement" biasanya maksudnya grup Procurement. Tanyakan layar mana. ts_map_transactadalah tabel penghubung untuk semuanya. Transaksi tanpa baris map tidak terlihat di grid dan di setiap laporan, walaupun ada.- Nilai kontrak versus line item. Header kontrak membawa
contract_value; tab Order menjumlahkan line item. Tidak ada yang menjaga keduanya sama. - Dua register AFE.
ts_pertamina_afe(AFE klien) dants_afe_internal, dipetakan ke WBS lewatts_map_cbs_pertamina_afe. Laporan mengelompokkan berdasarkan yang klien. - Import ledger (
modules/cost_control_reference/importledgercustom.php, tabelts_importledger_custom) adalah import terjadwal dari ledger akuntansi. Memakai helper legacy dan mati.
Perbedaan antar instance
Diperiksa 2026-09-06.
| Instance | Perbedaan |
|---|---|
| Master | Satu-satunya instance yang memasang modul ini, untuk QA. |
| Jadestone, Medco, JOTRE, Timas | Tidak terpasang di database QA mereka. Kode identik dengan master, byte demi byte. |
Terkait
- Budget & Expense Reporting: sisi budget dari data yang sama.
- Material Expediting: sisi pengiriman dari line item.
- Setting Cost Control: WBS, AFE, tipe kontrak, status.
- Reporting.