PageRenderTime 101ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 0ms

/source/application/business/PDFGenerator.php

http://sharebooks.googlecode.com/
PHP | 213 lines | 176 code | 33 blank | 4 comment | 2 complexity | 1342d70cad05fc3b54de96970fe73401 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. include_once FRAMEWORK_DIR.'/external/dompdf/dompdf_config.inc.php';
  3. $limit = ini_set("memory_limit", "1024M");
  4. Utils::setIniLang( TVC_Config::get('I18N','DEFAULT_LANGUAGE') );
  5. class PDFGenerator
  6. {
  7. private $dompdf = null;
  8. private $smarty = null;
  9. public function __construct()
  10. {
  11. $this->dompdf = new DOMPDF();
  12. $this->smarty = TVC::load('smarty');
  13. $this->smarty->left_delimiter = '<{';
  14. $this->smarty->right_delimiter = '}>';
  15. $this->smarty->_config[0]['vars']['_CURRENCY_UNIT'] = Parameter::$params['CURRENCY_SYSTEM'];
  16. }
  17. static function generalNameFile($filepath, $language)
  18. {
  19. $pathinfo = pathinfo($filepath);
  20. $newname = str_replace(".pdf", "_{$language}.pdf",$pathinfo['basename']);
  21. return "{$pathinfo['dirname']}/{$newname}";
  22. }
  23. public function generateConsumptionFile($filepath, $params)
  24. {
  25. $current_lang = TVC_MultiLanguage::getLanguage();
  26. try {
  27. $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
  28. $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
  29. $this->smarty->assign('extension', $extension);
  30. $this->smarty->assign('name', $params['name']);
  31. $this->smarty->assign('address', $params['address']);
  32. $tva_number = ($params['tva_number'] != Parameter::$params['INTRA_COMMUNITY_VAT_NO']) ? $params['tva_number'] : '';
  33. $this->smarty->assign('tva_number', $tva_number);
  34. $this->smarty->assign('country_name', $params['country_name']);
  35. $this->smarty->assign('office_details', $params['office']);
  36. $this->smarty->assign('reference',$params['reference']);
  37. $this->smarty->assign('c_date', $params['c_date']);
  38. $this->smarty->assign('title', utf8_decode($params['title']));
  39. $this->smarty->assign('tax', $params['tax']);
  40. $this->smarty->assign('tva', $params['tva']);
  41. $this->smarty->assign('ht', $params['ht']);
  42. $this->smarty->assign('ttc', $params['ttc']);
  43. $language = isset($params['language']) ? $params['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
  44. $this->dompdf = new DOMPDF();
  45. $c_date = $params['c_date'];
  46. list($day, $month, $year) = explode('/', $c_date);
  47. // get accountant day
  48. $accountant_day = "$year-$month-$day";
  49. $accountant_day = date_format(date_create($accountant_day), ($language == 'fr') ? 'd <{#F#}> Y' : '<{#F#}> dS Y');
  50. // get last month
  51. $last_month = join('-', array($month > 1 ? $year : $year - 1, $month > 1 ? $month - 1 : 12, 1));
  52. $last_month = date_format(date_create($last_month), '<{#F#}> Y');
  53. // get mature date
  54. $mature_day = join('-', array($month < 12 ? $year : $year + 1, $month < 12 ? $month + 1 : 1, $day - 1));
  55. $mature_day = date_format(date_create($mature_day), 'd/m/Y');
  56. // get data campaign and sum amount realise of all campaigns
  57. $data_campaign = $params['data_campaign'];
  58. $ht_campaign = isset($data_campaign['sum']) ? $data_campaign['sum'] : 0;
  59. unset($data_campaign['sum']);
  60. $this->smarty->assign('master_user_name', $params['master_user_name']);
  61. $this->smarty->assign('master_user_email', $params['master_user_email']);
  62. $this->smarty->assign('adv_id', $params['adv_id']);
  63. $this->smarty->assign('ht_campaign', $ht_campaign);
  64. $this->smarty->assign('adjustment', round($params['ht'] - $ht_campaign, 2));
  65. $this->smarty->assign('data_campaign', $data_campaign);
  66. $this->smarty->assign('accountant_day', $accountant_day);
  67. $this->smarty->assign('last_month', $last_month);
  68. $this->smarty->assign('mature_day', $mature_day);
  69. $this->smarty->assign('language', $language);
  70. TVC_MultiLanguage::setLanguage($language, false);
  71. $this->smarty->config_load('common/consumption_template_new.html.ini', $language);
  72. $html_content = $this->smarty->fetch("common/consumption_template_new.html");
  73. TVC_MultiLanguage::setLanguage($current_lang, false);
  74. $this->dompdf->load_html($html_content);
  75. $this->dompdf->set_paper("a4");
  76. $this->dompdf->set_output_encoding("windows-1252");
  77. $this->dompdf->render(0, 8, 0, -20);
  78. $output = $this->dompdf->output();
  79. $file = fopen($filepath, "w");
  80. $retval = fwrite($file, $output);
  81. fclose($file);
  82. } catch (Exception $e) {
  83. TVC_MultiLanguage::setLanguage($current_lang, false);
  84. return $e;
  85. }
  86. }
  87. public function generateGainFile($filepath, $params)
  88. {
  89. $current_lang = TVC_MultiLanguage::getLanguage();
  90. try {
  91. $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
  92. $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
  93. $this->smarty->assign('name', $params['name']);
  94. $this->smarty->assign('extension', $extension);
  95. $this->smarty->assign('address', $params['address']);
  96. $this->smarty->assign('tva_number', $params['tva_number']);
  97. $this->smarty->assign('country_name', $params['country_name']);
  98. $this->smarty->assign('reference',$params['reference']);
  99. $this->smarty->assign('c_date', $params['c_date']);
  100. $this->smarty->assign('title', utf8_decode($params['title']));
  101. $this->smarty->assign('tax', $params['tax']);
  102. $this->smarty->assign('tva', $params['tva']);
  103. $this->smarty->assign('ht', $params['ht']);
  104. $this->smarty->assign('ttc', $params['ttc']);
  105. $this->dompdf = new DOMPDF();
  106. $language = isset($params['language']) ? $params['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
  107. TVC_MultiLanguage::setLanguage($language, false);
  108. $this->smarty->config_load('common/gain_template.html.ini', $language);
  109. $html_content = $this->smarty->fetch("common/gain_template.html");
  110. TVC_MultiLanguage::setLanguage($current_lang, false);
  111. $this->dompdf->load_html($html_content);
  112. $this->dompdf->set_paper("a4");
  113. $this->dompdf->set_output_encoding("windows-1252");
  114. $this->dompdf->render(0, 8, 0, -20);
  115. $output = $this->dompdf->output();
  116. $file = fopen($filepath, "w");
  117. $retval = fwrite($file, $output);
  118. fclose($file);
  119. } catch (Exception $e) {
  120. TVC_MultiLanguage::setLanguage($current_lang, false);
  121. return $e;
  122. }
  123. }
  124. public function generateDepositReceiptFile($filepath, $data = array())
  125. {
  126. $current_lang = TVC_MultiLanguage::getLanguage();
  127. try {
  128. $smarty = TVC::load('smarty');
  129. $smarty->assign('data', $data);
  130. $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
  131. $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
  132. $this->smarty->assign('extension', $extension);
  133. $this->dompdf = new DOMPDF();
  134. $language = isset($data['language']) ? $data['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
  135. TVC_MultiLanguage::setLanguage($language, false);
  136. $html_content = $smarty->fetch("common/deposit_receipt_template.html");
  137. TVC_MultiLanguage::setLanguage($current_lang, false);
  138. $this->dompdf->load_html($html_content);
  139. $this->dompdf->set_paper("a4");
  140. $this->dompdf->set_output_encoding("windows-1252");
  141. $this->dompdf->render(0, 8, 0, -20);
  142. $output = $this->dompdf->output();
  143. $file = fopen($filepath, "w");
  144. $retval = fwrite($file, $output);
  145. fclose($file);
  146. return true;
  147. } catch (Exception $e) {
  148. TVC_MultiLanguage::setLanguage($current_lang, false);
  149. return false;
  150. }
  151. }
  152. public function generateWithdrawReceiptFile($filepath, $data = array())
  153. {
  154. try {
  155. $current_lang = TVC_MultiLanguage::getLanguage();
  156. $smarty = TVC::load('smarty');
  157. $smarty->assign('data', $data);
  158. $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
  159. $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
  160. $this->smarty->assign('extension', $extension);
  161. $this->dompdf = new DOMPDF();
  162. $language = isset($data['language']) ? $data['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
  163. TVC_MultiLanguage::setLanguage($language, false);
  164. $html_content = $smarty->fetch("common/withdraw_receipt_template.html");
  165. TVC_MultiLanguage::setLanguage($current_lang, false);
  166. $this->dompdf->load_html($html_content);
  167. $this->dompdf->set_paper("a4");
  168. $this->dompdf->set_output_encoding("windows-1252");
  169. $this->dompdf->render(0, 8, 0, -20);
  170. $output = $this->dompdf->output();
  171. $file = fopen($filepath, "w");
  172. $retval = fwrite($file, $output);
  173. fclose($file);
  174. return true;
  175. } catch (Exception $e) {
  176. TVC_MultiLanguage::setLanguage($current_lang, false);
  177. return false;
  178. }
  179. }
  180. }