Skip to content

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.

TabDataAksi
Contractts_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)
Orderts_lineitem per kontrak: lineitem_no, lineitem_desc, cbs_id, order_id, po_item_id, is_manualaddlineitem, editlineitem, deletelineitem, editlinecbs, movegridtogrid
Expenditurets_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_transactaddline_transact, editline_transact, deleteline_transact, moveTransact, addmap, editmap, delmap, import invoice (import_inv_preview_upload), validateDuplicateInvNo
Reportlaporan cetak di bawahPrint
Snapshotheader ts_actual_forecast dengan baris ts_actual_forecast_snapshot: salinan beku setiap transaksi beserta nilai order, actual dan forecast-nyasimpan, 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 laporanKeadaan saat helper legacy melempar exception
print_afe_accrual_2, print_act_vs_payment*, print_afe_finance_accrual_xls, print_report3, dua ekspor Excel mingguanmemakai $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_summarymati
salinan *20091019.php dan *_061014.phpbackup bertanggal, tidak dirutekan

Yang masih memakai helper legacy

Dihitung 2026-09-06: 328 pemanggilan iw_mysql_query() berbanding 495 pemakaian $pdo.

PathKeadaan 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.phpsebagian 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.phpmati

Hal yang perlu diwaspadai

  • Foldernya procurement, menunya Cost Control. Tiket yang menyebut "modul procurement" biasanya maksudnya grup Procurement. Tanyakan layar mana.
  • ts_map_transact adalah 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) dan ts_afe_internal, dipetakan ke WBS lewat ts_map_cbs_pertamina_afe. Laporan mengelompokkan berdasarkan yang klien.
  • Import ledger (modules/cost_control_reference/importledgercustom.php, tabel ts_importledger_custom) adalah import terjadwal dari ledger akuntansi. Memakai helper legacy dan mati.

Perbedaan antar instance

Diperiksa 2026-09-06.

InstancePerbedaan
MasterSatu-satunya instance yang memasang modul ini, untuk QA.
Jadestone, Medco, JOTRE, TimasTidak terpasang di database QA mereka. Kode identik dengan master, byte demi byte.

Terkait