protected function getUserList(Vtiger_PDF_Model $pdf, $moduleName) { $users = []; $db = PearDatabase::getInstance(); foreach ($pdf->getRecordIds() as $recordId) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $user = $recordModel->getDisplayValue('assigned_user_id', $recordId, true); $time = (isset($users[$user]['time']) ? $users[$user]['time'] : 0) + $recordModel->get('sum_time'); $users[$user] = ['time' => $time, 'role' => vtranslate($this->getRoleName($recordModel->get('assigned_user_id')), $moduleName)]; } return $users; }
public function process($moduleName, $id, Vtiger_PDF_Model $pdf) { $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $fields = $moduleModel->getFields(); $ids = $pdf->getRecordIds(); if (!is_array($ids)) { $ids = [$ids]; } $html = '<br><style>' . '.table {width: 100%; border-collapse: collapse;}' . '.table thead th {border-bottom: 1px solid grey;}' . '.table tbody tr {border-bottom: 1px solid grey}' . '.table tbody tr:nth-child(even) {background-color: #F7F7F7;}' . '.center {text-align: center;}' . '.summary {border-top: 1px solid grey;}' . '</style>'; $html .= '<table class="table"><thead><tr>'; foreach ($this->columnNames as $column) { $fieldModel = $fields[$column]; $html .= '<th><span>' . vtranslate($fieldModel->get('label'), $moduleName) . '</span> </th>'; } $html .= '</tr></thead><tbody>'; $summary = []; foreach ($ids as $recordId) { $html .= '<tr>'; $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); foreach ($this->columnNames as $key => $column) { $fieldModel = $fields[$column]; $class = ''; if (in_array($column, ['time_start', 'time_end', 'due_date', 'date_start', 'sum_time'])) { $class = 'class="center"'; } $html .= '<td ' . $class . '>' . $recordModel->getDisplayValue($fieldModel->getName(), $recordId, true) . '</td>'; if ($column == 'sum_time') { $summary['sum_time'] += $recordModel->get($fieldModel->getName()); } } $html .= '</tr>'; } $html .= '</tbody><tfoot><tr>'; foreach ($this->columnNames as $key => $column) { $class = $content = ''; if ($column == 'sum_time') { $time = Vtiger_Functions::decimalTimeFormat($summary['sum_time']); $content = '<strong>' . $time['short'] . '</strong>'; $class = 'center'; } elseif ($column == 'name') { $content = '<strong>' . vtranslate('LBL_SUMMARY', $moduleName) . ':' . '</strong>'; } $html .= '<td class="summary ' . $class . '">' . $content . '</td>'; } $html .= '</tr></tfoot></table>'; return $html; }