pdf模板中的Autocalculcated字段

时间:2017-05-21 16:41:26

标签: php sugarcrm suitecrm

我使用SuiteCRM 7.8x并且需要在生成基于pdf模板的合同时进行自动计算字段(仅在模板代码中使用)。 例如,在模块联系人中,我有字段姓氏和名字 - 安迪史密斯。当我生成合同时,我需要自动计算字段,如:

$bean->p_fio_short_c = substr($bean->first_name,0,1) . '.' . $bean->last_name;

如果我只是在数据库中为此计算创建新字段,我可以这样做,但我不想这样做(对数据库不合理)。

1 个答案:

答案 0 :(得分:0)

如果你想在例如逻辑钩子中生成这个pdf,你可以这样做:

在您的pdf模板中,添加一些占位符,例如' %% auto-calc-field %%'。

并在您选择的逻辑钩子中:

$template = BeanFactory::getBean('AOS_PDF_Templates', 'some-id');
$value = $bean->p_fio_short_c = substr($bean->first_name,0,1) . '.' . $bean->last_name;
str_replace('%%auto-calc-field%%', $value, $template->description);

这会将占位符文本替换为pdf模板中的计算值。您将生成pdf并根据需要保存(在本例中使用mPDF),但可以使用tcpdf或类似的。

//Create the PDF
$pdf = new mPDF('en', 'A4', '', 'DejaVuSansCondensed', 15, 15, 16, 16, 8, 8);
$pdf->setAutoFont();
$pdf->SetHTMLHeader(html_entity_decode($template->pdfheader));
$pdf->SetHTMLFooter(html_entity_decode($template->pdffooter));
$pdf->writeHTML(html_entity_decode($template->description));

$pdf->Output('some/path/'. $bean->id .'.pdf'), 'F');
相关问题