Skip to content

Projects and MDR settings

Module: reference (Projects) and dms_reference (the MDR settings). Everything that has to be configured per project before documents can be imported, uploaded and routed.

How this page was verified

Written from master on 2026-09-06 and compared with the big five the same day. No earlier page existed.

The project row

Reference, Projects (projects.php, form ref_projects_form.htm) creates and edits ts_projects. The form asks for:

FieldColumnNotes
Project Codeproject_codevalidated for uniqueness (cmd=validateProjectCode); read-only after creation
Contract Noproject_contract_no
Project Name, Descriptionproject_name, project_desc
Start Date, Completion Dateproject_start, project_complete_date
Owner companyowner_idthe label is project_company_internal_label, default "Main Company"
External companycompany_idthe label is project_company_external_label, default "Third Party"
MDR Matrix Typematrix_typeissued_status (default), transmission_type or doc_number. Column added March 2025.
Project Statusproject_status
Batch Routingbatch_routing1 moves the DocCon (D) sign-off into the External Transmission flow, see Action Indicated

Columns the form does not show but code still reads: mdr_row_as_value_start (set from the MDR settings screen below), project_east_java (the legacy folder-shape integer, kept for Medco's Auto Folder Creation seed), project_numbering and project_numdetail (per-project document numbering, edited through cmd=docnum and act=edit_docnum), client_id, account_type_id, project_dav_path.

Deleting a project goes through cmd=validateDeleteProject first, which refuses when documents exist.

What each setting feeds

SettingRead by
matrix_typeImport MDR, through getProjectMdrMatrixType(); decides how the User Matrix block is shaped
mdr_row_as_value_start and the MDR template settingsImport MDR, first data row and column mapping
the file name settingUpload, which parses number, revision and title from the filename
issued statuses and progress gatesUpload (review durations, next expected), the MDR progress and the Plan Date columns
owner_id and the two company labelsthe sign-off form's Next Expected gating, see Users and Privileges
batch_routingthe D sign-off path
the transmittal default foldersUpload Transmittal and Return, which file their correspondence rows there

MDR template settings

DMS Reference, Multi Project Setting (multi_project_setting.inc.php with its form and post handlers) is where the MDR spreadsheet layout is defined, per project, and copied between projects.

ActionWhat it does
mdrSettingList, mdrSettingSavewhich columns of the catalog ts_mdr_column the project uses, with a custom caption and an import flag, stored in ts_mdr_template_setting (project_id, mdr_column_id, col_custom, is_import)
mdrSettingDefaultreset to the default column set
mdrSettingDownloadCurrent, mdrSettingDownloadDefaultdownload the Excel template built from the settings, with PhpSpreadsheet
mdrSettingColumnCopy, mdrSettingColumnCopyProjectListcopy one project's settings to others
mdrColumnCustomAZListthe custom column letters
fileNameSettingList, fileNameSettingSave, fileNameSettingDefaultthe filename scheme in ts_file_name_setting (file_name_setting_project_id, file_name_setting_data, file_name_setting_separator, file_name_preview)

The screen also writes ts_projects.mdr_row_as_value_start, the row where data starts in the template.

ts_mdr_column is the catalog: name, data_type, doc_master_related_column (which ts_documents_master column it maps to), sample_data, defaults, is_custom, and the cell geometry (colspan, rowspan, width, align, valign, rotation) used when the template is written.

Issued statuses and progress gates

Both are generic reference editors bound through MODULE_REFERENCE_TABLE_CONFIG in src/basic/Base.php:

ScreenTableColumns
DMS Reference, Issued Status (issued.php)ts_issued_statusissued_no, issued_code, issued_desc, percentage, issued_rev, project_id, company_code, gate_code, issued_matrix (internal or external)
DMS Reference, Progress Gate (progress_gate.php)ts_progress_gatesequence, gate_code, percentage, project_id, submission_progress
DMS Reference, Review Time (workingdays.php)working days per issued statusreview durations

An issued status is the unit the whole MDR progress is measured in: each one has a percentage, belongs to a gate, and says whether the matrix at that stage is internal or external. Master's Plan Date columns are one per issued status.

Transmittal default folders

Where an incoming Transmittal Sheet and an outgoing Transmittal Out are filed is a per-project choice in Reference, Library Index (corrindex.php): ts_incoming_transmittal_default_folder and ts_outgoing_transmittal_default_folder, each project_id plus library_id. Added June 2026. The transin and transout templates in projects.php are commented out; the settings moved to the index screen.

Database tables

TableWritten by
ts_projectsProjects form, docnum, Multi Project Setting
ts_mdr_template_setting, ts_file_name_settingMulti Project Setting
ts_mdr_columnseed only; the catalog is not edited in the UI
ts_issued_status, ts_progress_gatetheir reference screens
ts_incoming_transmittal_default_folder, ts_outgoing_transmittal_default_folderLibrary Index
ts_map_doc_lib_project, ts_corr_libraryfolder trees created per project

Gotchas

  • Change the matrix type only on an empty project. Import MDR shapes the matrix from it; documents imported under one type do not re-shape.
  • The filename scheme is a contract with the client. Upload rejects every file that does not parse. Set it before the first upload and do not change it mid-project.
  • mdr_row_as_value_start is easy to get wrong. One row off and Import MDR reads the header line as a document.
  • The two company labels are display strings that gate logic. Renaming them without updating stored organization_name values breaks Next Expected. See the known issue.

Instance differences

Checked on 2026-09-06.

InstanceDifference
JadestoneRelated projects: a ts_projects_relations table (June 2026) and val_project_related_ids on the form, so one project can be linked to others. Also writes ts_adms_projects.
TimasThe same related-projects fields on the form. No matrix_type column; the matrix type is fixed. Writes ts_corr_library from the project form.
JOTREAdds a progress gate grouping list to the project form (val_pgate_grouping_list). Writes ts_corr_library from the project form.
MedcoHas a separate DMS Reference screen for the file name setting (file_name_setting.php) next to the multi-project one.