コード例 #1
0
*   (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'])) {
コード例 #2
0
ファイル: spsr_invoice.php プロジェクト: ambient-lounge/site
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;'>&nbsp;</div>";
        }
    }
    if ($pdf == true) {
        Pdf::render($html, __('packing_slip') . '-' . implode('-', $order_ids));
    }
    return true;
}
コード例 #3
0
ファイル: orders.php プロジェクト: OneataBogdan/lead_coriolan
    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'];
コード例 #4
0
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;'>&nbsp;</div>";
            }
        }
    }
    if ($pdf == true) {
        Pdf::render($html, __('invoices') . '-' . implode('-', $order_ids));
    }
    return true;
}
コード例 #5
0
ファイル: Mailer.php プロジェクト: OneataBogdan/lead_coriolan
 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;
 }