Skip to content

Report Documents Library

Kode report: documents. Membuka modul documents dengan cmd=print_costume, form kustomisasi, yang tombol Preview-nya mengirim print=print_all ke modul yang sama. Tidak ada handler terpisah: report ini adalah query grid library yang dicetak sebagai tabel, dirender documents_print_all.htm, dengan satu header grup per folder root. Grid dan report selalu sepakat, karena menjalankan SQL yang sama.

Cara halaman ini diverifikasi

Ditelusuri di master pada 2026-09-06; jalur cetaknya sama di big five dan KTP kecuali kolom yang ditambahkan tiap fork ke grid. Screenshot dari inact-ktp.eris.place, project SNS.

Form kustomisasi

Report Documents Library, form kustomisasi
Report Documents Library, form kustomisasi · click to enlarge
KontrolFieldEfek
Projectproject
Filter Byfield[], operator[], what[]kolom grid lewat alias SQL-nya (d.doc_number, d.issued_code, d.doc_res_id, d.library_code2, ...); operator contains, start with, not contain, equals, not equal, greater than, less than
All / By Dateprint_typeall mencetak "As Of hari ini"; perday mencetak "As of <dari> to <sampai>" dan mengambil rentangnya dari filter tanggal
Show All Revisionsprint_all_revisionsatu baris per baris library, bukan satu per dokumen
Tanpa comment sheetprint_without_commentsheetmenambah doc_rev NOT LIKE '%_C'
Hanya vendor / subcontractorprint_only_vendor_subcontractor, print_vendor_subc_optmembatasi ke folder yang library_code-nya diawali 13 (vendor), 14 (subcontractor) atau keduanya
Sortsortby[], sorttype[]Preview mengirim doc_send_received desc secara default

Catatan di bawah form adalah aturan yang penting: secara default report menampilkan revisi terakhir dan revisi ber-comment terakhir tiap dokumen.

Query-nya

Query grid di documents.php: ts_map_documents_library map di-join ke ts_doc_library dan ts_documents, untuk project, dengan map.stat_id = 0 (tidak dihapus dari folder), daftar akses folder group user (admin melewatinya), baris filter, dan:

  • default: satu baris per doc_number, yang pertama dalam urutan doc_send_received DESC, doc_rev DESC. MySQL melakukannya dengan GROUP BY d.doc_no, doc_number atas subquery terurut; SQL Server dan PostgreSQL dengan ROW_NUMBER() OVER (PARTITION BY d.doc_number ORDER BY d.doc_due_date DESC, d.doc_send_received DESC ...). Seperti di MDR Report Summary, kedua urutan itu tidak sama.
  • Show All Revisions: GROUP BY d.doc_no, semua baris.

Baris lalu dilewati urut dokumen. Loop cetak menerapkan satu aturan lagi saat Show All Revisions mati: setelah baris pertama sebuah dokumen, baris berikutnya dari dokumen yang sama dicetak hanya kalau revisinya diawali karakter yang sama dengan yang terakhir dicetak. Begitulah B dan B_C (comment sheet) dicetak bersama sementara A dibuang. Baris dikelompokkan di bawah header per folder root (getRootParent(library_code), "None" kalau dokumen tidak punya folder).

Kolomnya

Report Documents Library, preview HTML pada snapshot KTP
Report Documents Library, preview HTML pada snapshot KTP · click to enlarge
Header, grup folder ‘None’ dan baris pertama, satu dokumen per baris
Header, grup folder ‘None’ dan baris pertama, satu dokumen per baris · click to enlarge

Dari documents_print_all.htm di master: ID (doc_no), Library (library_desc), Document Number, Rev, Title, Result Code (doc_res_id), Issued Status (issued_code), Submission Date (doc_send_received), Issued Date (doc_issued_date), Due Date, Originator (doc_originator_person_id), Lead Reviewer, Notes, dan Expiration Date kalau enable_doclib_retention menyala. Template KTP memberi label tanggal "Received Date" dan tidak punya kolom Lead Reviewer, seperti terlihat di screenshot. Header membawa perusahaan dari inact_report_title_company dan "Documents: All, As Of <tanggal>" atau rentang By Date.

Tombol Print di grid itu sendiri (grid=1, documents_print_grid.inc.php) adalah hal lain: ia mencetak XML grid saat ini dengan kolom yang dicentang user, tanpa grouping, tanpa aturan revisi.

Masalah yang diketahui

  • Aturan revisi berdasarkan karakter pertama. Revisi 1 dan 10 dicetak bersama; B dan B1 juga. Dokumen dengan revisi A, B mencetak B saja, yang memang dimaksud, tetapi B, A_C mencetak B saja dan membuang comment sheet revisi yang lebih lama.
  • Folder vendor dan subcontractor dikenali dari awalan kode 13 dan 14, konvensi dari project-project pertama yang tidak diikuti semua instance.
  • By Date membaca rentangnya dari baris filter tanggal; tanpa baris tanggal header mencetak rentang kosong.

Perbedaan antar instance

Diperiksa 2026-09-06.

InstancePerbedaan
Semua big five, plus Timas dan KTPJalur cetaknya sama (documents_print_grid.inc.php Prima Energy identik byte per byte dengan master); perbedaannya ada di get_doc_column(), daftar kolom grid yang diperluas tiap fork (system_code, well_site_code, function_code, doc_classification, ...). Kolom report ditetapkan template dan tidak mengikuti grid.

Terkait