/source/application/business/PDFGenerator.php
PHP | 213 lines | 176 code | 33 blank | 4 comment | 2 complexity | 1342d70cad05fc3b54de96970fe73401 MD5 | raw file
Possible License(s): LGPL-2.1
- <?php
- include_once FRAMEWORK_DIR.'/external/dompdf/dompdf_config.inc.php';
- $limit = ini_set("memory_limit", "1024M");
- Utils::setIniLang( TVC_Config::get('I18N','DEFAULT_LANGUAGE') );
- class PDFGenerator
- {
- private $dompdf = null;
- private $smarty = null;
- public function __construct()
- {
- $this->dompdf = new DOMPDF();
- $this->smarty = TVC::load('smarty');
- $this->smarty->left_delimiter = '<{';
- $this->smarty->right_delimiter = '}>';
- $this->smarty->_config[0]['vars']['_CURRENCY_UNIT'] = Parameter::$params['CURRENCY_SYSTEM'];
- }
- static function generalNameFile($filepath, $language)
- {
- $pathinfo = pathinfo($filepath);
- $newname = str_replace(".pdf", "_{$language}.pdf",$pathinfo['basename']);
- return "{$pathinfo['dirname']}/{$newname}";
- }
- public function generateConsumptionFile($filepath, $params)
- {
- $current_lang = TVC_MultiLanguage::getLanguage();
- try {
- $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
- $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
- $this->smarty->assign('extension', $extension);
- $this->smarty->assign('name', $params['name']);
- $this->smarty->assign('address', $params['address']);
- $tva_number = ($params['tva_number'] != Parameter::$params['INTRA_COMMUNITY_VAT_NO']) ? $params['tva_number'] : '';
- $this->smarty->assign('tva_number', $tva_number);
- $this->smarty->assign('country_name', $params['country_name']);
- $this->smarty->assign('office_details', $params['office']);
- $this->smarty->assign('reference',$params['reference']);
- $this->smarty->assign('c_date', $params['c_date']);
- $this->smarty->assign('title', utf8_decode($params['title']));
- $this->smarty->assign('tax', $params['tax']);
- $this->smarty->assign('tva', $params['tva']);
- $this->smarty->assign('ht', $params['ht']);
- $this->smarty->assign('ttc', $params['ttc']);
- $language = isset($params['language']) ? $params['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
- $this->dompdf = new DOMPDF();
- $c_date = $params['c_date'];
- list($day, $month, $year) = explode('/', $c_date);
- // get accountant day
- $accountant_day = "$year-$month-$day";
- $accountant_day = date_format(date_create($accountant_day), ($language == 'fr') ? 'd <{#F#}> Y' : '<{#F#}> dS Y');
- // get last month
- $last_month = join('-', array($month > 1 ? $year : $year - 1, $month > 1 ? $month - 1 : 12, 1));
- $last_month = date_format(date_create($last_month), '<{#F#}> Y');
- // get mature date
- $mature_day = join('-', array($month < 12 ? $year : $year + 1, $month < 12 ? $month + 1 : 1, $day - 1));
- $mature_day = date_format(date_create($mature_day), 'd/m/Y');
- // get data campaign and sum amount realise of all campaigns
- $data_campaign = $params['data_campaign'];
- $ht_campaign = isset($data_campaign['sum']) ? $data_campaign['sum'] : 0;
- unset($data_campaign['sum']);
- $this->smarty->assign('master_user_name', $params['master_user_name']);
- $this->smarty->assign('master_user_email', $params['master_user_email']);
- $this->smarty->assign('adv_id', $params['adv_id']);
- $this->smarty->assign('ht_campaign', $ht_campaign);
- $this->smarty->assign('adjustment', round($params['ht'] - $ht_campaign, 2));
- $this->smarty->assign('data_campaign', $data_campaign);
- $this->smarty->assign('accountant_day', $accountant_day);
- $this->smarty->assign('last_month', $last_month);
- $this->smarty->assign('mature_day', $mature_day);
- $this->smarty->assign('language', $language);
- TVC_MultiLanguage::setLanguage($language, false);
- $this->smarty->config_load('common/consumption_template_new.html.ini', $language);
- $html_content = $this->smarty->fetch("common/consumption_template_new.html");
- TVC_MultiLanguage::setLanguage($current_lang, false);
- $this->dompdf->load_html($html_content);
- $this->dompdf->set_paper("a4");
- $this->dompdf->set_output_encoding("windows-1252");
- $this->dompdf->render(0, 8, 0, -20);
- $output = $this->dompdf->output();
- $file = fopen($filepath, "w");
- $retval = fwrite($file, $output);
- fclose($file);
- } catch (Exception $e) {
- TVC_MultiLanguage::setLanguage($current_lang, false);
- return $e;
- }
- }
- public function generateGainFile($filepath, $params)
- {
- $current_lang = TVC_MultiLanguage::getLanguage();
- try {
- $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
- $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
- $this->smarty->assign('name', $params['name']);
- $this->smarty->assign('extension', $extension);
- $this->smarty->assign('address', $params['address']);
- $this->smarty->assign('tva_number', $params['tva_number']);
- $this->smarty->assign('country_name', $params['country_name']);
- $this->smarty->assign('reference',$params['reference']);
- $this->smarty->assign('c_date', $params['c_date']);
- $this->smarty->assign('title', utf8_decode($params['title']));
- $this->smarty->assign('tax', $params['tax']);
- $this->smarty->assign('tva', $params['tva']);
- $this->smarty->assign('ht', $params['ht']);
- $this->smarty->assign('ttc', $params['ttc']);
- $this->dompdf = new DOMPDF();
- $language = isset($params['language']) ? $params['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
- TVC_MultiLanguage::setLanguage($language, false);
- $this->smarty->config_load('common/gain_template.html.ini', $language);
- $html_content = $this->smarty->fetch("common/gain_template.html");
- TVC_MultiLanguage::setLanguage($current_lang, false);
- $this->dompdf->load_html($html_content);
- $this->dompdf->set_paper("a4");
- $this->dompdf->set_output_encoding("windows-1252");
- $this->dompdf->render(0, 8, 0, -20);
- $output = $this->dompdf->output();
- $file = fopen($filepath, "w");
- $retval = fwrite($file, $output);
- fclose($file);
- } catch (Exception $e) {
- TVC_MultiLanguage::setLanguage($current_lang, false);
- return $e;
- }
- }
- public function generateDepositReceiptFile($filepath, $data = array())
- {
- $current_lang = TVC_MultiLanguage::getLanguage();
- try {
- $smarty = TVC::load('smarty');
- $smarty->assign('data', $data);
- $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
- $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
- $this->smarty->assign('extension', $extension);
- $this->dompdf = new DOMPDF();
- $language = isset($data['language']) ? $data['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
- TVC_MultiLanguage::setLanguage($language, false);
- $html_content = $smarty->fetch("common/deposit_receipt_template.html");
- TVC_MultiLanguage::setLanguage($current_lang, false);
- $this->dompdf->load_html($html_content);
- $this->dompdf->set_paper("a4");
- $this->dompdf->set_output_encoding("windows-1252");
- $this->dompdf->render(0, 8, 0, -20);
- $output = $this->dompdf->output();
- $file = fopen($filepath, "w");
- $retval = fwrite($file, $output);
- fclose($file);
- return true;
- } catch (Exception $e) {
- TVC_MultiLanguage::setLanguage($current_lang, false);
- return false;
- }
- }
- public function generateWithdrawReceiptFile($filepath, $data = array())
- {
- try {
- $current_lang = TVC_MultiLanguage::getLanguage();
- $smarty = TVC::load('smarty');
- $smarty->assign('data', $data);
- $extension = substr(Parameter::$params['LOGO_OF_THE_BOARD'], strrpos(Parameter::$params['LOGO_OF_THE_BOARD'], '.') + 1);
- $this->smarty->assign('logo', Parameter::$params['LOGO_OF_THE_BOARD']);
- $this->smarty->assign('extension', $extension);
- $this->dompdf = new DOMPDF();
- $language = isset($data['language']) ? $data['language'] : TVC_Config::get('I18N','DEFAULT_LANGUAGE');
- TVC_MultiLanguage::setLanguage($language, false);
- $html_content = $smarty->fetch("common/withdraw_receipt_template.html");
- TVC_MultiLanguage::setLanguage($current_lang, false);
- $this->dompdf->load_html($html_content);
- $this->dompdf->set_paper("a4");
- $this->dompdf->set_output_encoding("windows-1252");
- $this->dompdf->render(0, 8, 0, -20);
- $output = $this->dompdf->output();
- $file = fopen($filepath, "w");
- $retval = fwrite($file, $output);
- fclose($file);
- return true;
- } catch (Exception $e) {
- TVC_MultiLanguage::setLanguage($current_lang, false);
- return false;
- }
- }
- }