* (c) 2004 Vladimir V. Kalynyak, Alexey V. Vinokurov, Ilya M. Shalnev * * * * This is commercial software, only users who have purchased a valid * * license and accept to the terms of the License Agreement can install * * and use this program. * * * **************************************************************************** * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE * * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. * ****************************************************************************/ use Tygh\Registry; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($mode == 'view') { fn_disable_translation_mode(); if (empty($_REQUEST['display'])) { die('Access denied'); } $types = array('pdf', 'xls'); $price_schema = fn_get_schema('price_list', 'schema'); $selected_fields = Registry::get('addons.price_list.price_list_fields'); $modes = fn_price_list_get_pdf_layouts(); // Check the available libs foreach ($types as $type) { if (!empty($modes[$type])) { foreach ($modes[$type] as $f_mode) { if ($_REQUEST['display'] == fn_basename($f_mode, '.php')) { include_once Registry::get('config.dir.addons') . '/price_list/templates/' . $type . '/' . $f_mode; $meta_redirect_url = urlencode(fn_url('price_list.view?display=' . fn_basename($f_mode, '.php'), 'C', 'http')); if (!empty($_REQUEST['return_url'])) {
function fn_print_spsr_invoice($invoice_ids, $pdf = false, $lang_code = CART_LANGUAGE) { $view = Tygh::$app['view']; $html = array(); if (!is_array($invoice_ids)) { $invoice_ids = array($invoice_ids); } $spsr_settings = Registry::get('addons.rus_spsr'); $info_barcode = array('width' => $spsr_settings['width'], 'height' => $spsr_settings['height'], 'type' => 'C128B'); $view->assign('info_barcode', $info_barcode); foreach ($invoice_ids as $invoice_id) { list($invoice_info, $pieces) = fn_get_spsr_invoice_info($invoice_id); $order_info = fn_get_order_info($invoice_info['order_id'], false, true, false, true); if (empty($invoice_info) && empty($order_info)) { continue; } $view->assign('order_info', $order_info); $view->assign('invoice_info', $invoice_info); $view->assign('pieces', $pieces); if ($pdf == true) { fn_disable_translation_mode(); $html[] = $view->displayMail('orders/print_packing_slip.tpl', false, 'A', $invoice_info['company_id'], $lang_code); } else { $view->displayMail('addons/rus_spsr/print_invoice.tpl', true, 'A', $invoice_info['company_id'], $lang_code); } if ($invoice_id != end($invoice_ids)) { echo "<div style='page-break-before: always;'> </div>"; } } if ($pdf == true) { Pdf::render($html, __('packing_slip') . '-' . implode('-', $order_ids)); } return true; }
Registry::get('view')->assign('search', $search); Registry::get('view')->assign('totals', $totals); Registry::get('view')->assign('display_totals', fn_display_order_totals($orders)); Registry::get('view')->assign('shippings', $shippings); $payments = fn_get_simple_payment_methods(false); Registry::get('view')->assign('payments', $payments); } elseif ($mode == 'get_custom_file') { if (!empty($_REQUEST['file']) && !empty($_REQUEST['order_id'])) { $file_path = 'order_data/' . $_REQUEST['order_id'] . '/' . $_REQUEST['file']; if (Storage::instance('custom_files')->isExist($file_path)) { $filename = !empty($_REQUEST['filename']) ? $_REQUEST['filename'] : ''; Storage::instance('custom_files')->get($file_path, $filename); } } } // // Calculate gross total and totally paid values for the current set of orders // function fn_display_order_totals($orders) { $result = array(); $result['gross_total'] = 0; $result['totally_paid'] = 0; if (is_array($orders)) { foreach ($orders as $k => $v) { $result['gross_total'] += $v['total']; if ($v['status'] == 'C' || $v['status'] == 'P') { $result['totally_paid'] += $v['total'];
function fn_print_order_invoices($order_ids, $pdf = false, $area = AREA, $lang_code = CART_LANGUAGE) { $view = Registry::get('view'); $html = array(); $view->assign('order_status_descr', fn_get_simple_statuses(STATUSES_ORDER, true, true)); $view->assign('profile_fields', fn_get_profile_fields('I')); if (!is_array($order_ids)) { $order_ids = array($order_ids); } foreach ($order_ids as $order_id) { $order_info = fn_get_order_info($order_id, false, true, false, true); if (empty($order_info)) { continue; } if (fn_allowed_for('MULTIVENDOR')) { $view->assign('take_surcharge_from_vendor', fn_take_payment_surcharge_from_vendor($order_info['products'])); } list($shipments) = fn_get_shipments_info(array('order_id' => $order_info['order_id'], 'advanced_info' => true)); $use_shipments = !fn_one_full_shipped($shipments); $view->assign('order_info', $order_info); $view->assign('shipments', $shipments); $view->assign('use_shipments', $use_shipments); $view->assign('payment_method', fn_get_payment_data(!empty($order_info['payment_method']['payment_id']) ? $order_info['payment_method']['payment_id'] : 0, $order_info['order_id'], $lang_code)); $view->assign('order_status', fn_get_status_data($order_info['status'], STATUSES_ORDER, $order_info['order_id'], $lang_code, $order_info['company_id'])); $view->assign('status_settings', fn_get_status_params($order_info['status'])); $view->assign('company_data', fn_get_company_placement_info($order_info['company_id'], $lang_code)); if ($pdf == true) { fn_disable_translation_mode(); $html[] = $view->displayMail('orders/print_invoice.tpl', false, $area, $order_info['company_id'], $lang_code); } else { $view->displayMail('orders/print_invoice.tpl', true, $area, $order_info['company_id'], $lang_code); if ($order_id != end($order_ids)) { echo "<div style='page-break-before: always;'> </div>"; } } } if ($pdf == true) { Pdf::render($html, __('invoices') . '-' . implode('-', $order_ids)); } return true; }
public static function sendMail($params, $area = AREA, $lang_code = CART_LANGUAGE) { if (empty($params['to']) || empty($params['from']) || empty($params['tpl']) && empty($params['body'])) { return false; } fn_disable_translation_mode(); $from = array('email' => '', 'name' => ''); $to = array(); $reply_to = array(); $cc = array(); $mailer = self::instance(!empty($params['mailer_settings']) ? $params['mailer_settings'] : array()); fn_set_hook('send_mail_pre', $mailer, $params, $area, $lang_code); $mailer->ClearReplyTos(); $mailer->ClearAttachments(); $mailer->Sender = ''; $params['company_id'] = !empty($params['company_id']) ? $params['company_id'] : 0; $company_data = fn_get_company_placement_info($params['company_id'], $lang_code); foreach (array('reply_to', 'to', 'cc') as $way) { if (!empty($params[$way])) { if (!is_array($params[$way])) { ${$way}[] = !empty($company_data[$params[$way]]) ? $company_data[$params[$way]] : $params[$way]; } else { foreach ($params[$way] as $way_ar) { ${$way}[] = !empty($company_data[$way_ar]) ? $company_data[$way_ar] : $way_ar; } } } } if (!empty($reply_to)) { $reply_to = $mailer->formatEmails($reply_to); foreach ($reply_to as $rep_to) { $mailer->AddReplyTo($rep_to); } } if (!empty($cc)) { $cc = $mailer->formatEmails($cc); foreach ($cc as $c) { $mailer->AddCC($c); } } if (!is_array($params['from'])) { if (!empty($company_data[$params['from']])) { $from['email'] = $company_data[$params['from']]; $from['name'] = strstr($params['from'], 'default_') ? $company_data['default_company_name'] : $company_data['company_name']; } elseif (self::ValidateAddress($params['from'])) { $from['email'] = $params['from']; } } else { if (!empty($params['from']['email'])) { if (!empty($company_data[$params['from']['email']])) { $from['email'] = $company_data[$params['from']['email']]; if (empty($params['from']['name'])) { $params['from']['name'] = strstr($params['from']['email'], 'default_') ? $company_data['default_company_name'] : $company_data['company_name']; } } else { $from['email'] = $params['from']['email']; } $from['name'] = !empty($company_data[$params['from']['name']]) ? $company_data[$params['from']['name']] : $params['from']['name']; } } if (empty($to) || empty($from['email'])) { return false; } $mailer->SetFrom($from['email'], $from['name']); $mailer->IsHTML(isset($params['is_html']) ? $params['is_html'] : true); $mailer->CharSet = CHARSET; // Pass data to template foreach ($params['data'] as $k => $v) { Registry::get('view')->assign($k, $v); } Registry::get('view')->assign('company_data', $company_data); $company_id = isset($params['company_id']) ? $params['company_id'] : null; if (!empty($params['tpl'])) { // Get template name for subject and render it $tpl_ext = fn_get_file_ext($params['tpl']); $subj_tpl = str_replace('.' . $tpl_ext, '_subj.' . $tpl_ext, $params['tpl']); $subject = Registry::get('view')->displayMail($subj_tpl, false, $area, $company_id, $lang_code); // Render template for body $body = Registry::get('view')->displayMail($params['tpl'], false, $area, $company_id, $lang_code); } else { $subject = $params['subj']; $body = $params['body']; } $mailer->Body = $mailer->attachImages($body); $mailer->Subject = trim($subject); if (!empty($params['attachments'])) { foreach ($params['attachments'] as $name => $file) { $mailer->AddAttachment($file, $name); } } $to = $mailer->formatEmails($to); foreach ($to as $v) { $mailer->ClearAddresses(); $mailer->AddAddress($v, ''); $result = $mailer->Send(); if (!$result) { fn_set_notification('E', __('error'), __('error_message_not_sent') . ' ' . $mailer->ErrorInfo); } fn_set_hook('send_mail', $mailer); } return $result; }