Beispiel #1
0
 public function update($id, $params)
 {
     $data = array();
     $valid_params = true;
     $status = Response::STATUS_BAD_REQUEST;
     unset($params['shipment_id']);
     list($shipments, ) = fn_get_shipments_info(array('shipment_id' => $id));
     $shipment_data = reset($shipments);
     $order_info = fn_get_order_info($shipment_data['order_id'], false, true, true);
     if (Settings::instance()->getValue('use_shipments', '', $order_info['company_id']) == 'Y') {
         $data['message'] = __('api_shipments_not_allow_update');
         $valid_params = false;
     }
     if ($valid_params) {
         $shipment_id = fn_update_shipment($params, $id);
         if ($shipment_id) {
             $status = Response::STATUS_OK;
             $data = array('shipment_id' => $shipment_id);
         }
     }
     return array('status' => $status, 'data' => $data);
 }
Beispiel #2
0
function fn_spsr_pre_check_invoice_create($order_id, $section, $spsr_shipments = array())
{
    $shipping = array();
    if (empty($order_id)) {
        return array(CONTROLLER_STATUS_REDIRECT, "orders.manage");
    }
    $order_info = fn_get_order_info($order_id, false, true, true, true);
    if (!empty($order_info)) {
        list($_shipments) = fn_get_shipments_info(array('order_id' => $order_id, 'advanced_info' => true));
        if (!empty($_shipments)) {
            $shipments = array();
            foreach ($_shipments as $shipment) {
                if ($shipment['carrier'] == 'spsr') {
                    if (empty($spsr_shipments) || !empty($spsr_shipments[$shipment['shipment_id']])) {
                        $shipments[$shipment['shipment_id']] = $shipment;
                    }
                }
            }
        }
        if (!empty($shipments)) {
            foreach ($shipments as $shipment_id => $shipment) {
                $shipping = fn_get_shipping_info($shipment['shipping_id'], DESCR_SL);
                $shipping['rate'] = $order_info['shipping_cost'];
                $invoices[$shipment_id] = RusSpsr::preInvoiceByShipments($shipment, $order_info, $shipping);
                $shipping_data[$shipment_id] = $shipping;
            }
        } else {
            return array(CONTROLLER_STATUS_REDIRECT, "orders.details?order_id={$order_id}&selected_section={$section}");
        }
    }
    return array($order_info, $invoices, $shipments, $shipping_data);
}
Beispiel #3
0
         $response->setResponseList(Api::getAsList($object, $sections));
     } else {
         $response->setResponseList(TwigmoOrder::getOrdersAsApiList($orders, $lang_code));
     }
     $is_paginate = true;
 } elseif ($object == 'products') {
     fn_twg_set_response_products($response, $_REQUEST, $items_per_page, $lang_code);
 } elseif ($object == 'categories' || $object == 'categories_paginated') {
     if ($object == 'categories') {
         fn_twg_set_response_categories($response, $_REQUEST, 0, $lang_code);
     } elseif ($object == 'categories_paginated') {
         fn_twg_set_response_categories($response, $_REQUEST, $items_per_page, $lang_code);
     }
 } elseif ($object == 'shipments') {
     $_REQUEST['advanced_info'] = true;
     list($shipments, $search, $totals) = fn_get_shipments_info($_REQUEST, $items_per_page);
     if (!empty($_REQUEST['order_id'])) {
         $items_amount = db_get_row("SELECT SUM(?:order_details.amount) as amount,\n                    SUM(?:shipment_items.amount) as shipped_amount\n                    FROM ?:order_details\n                    LEFT JOIN ?:shipment_items\n                    ON ?:shipment_items.item_id = ?:order_details.item_id\n                    WHERE ?:order_details.order_id = ?i\n                    GROUP BY ?:order_details.order_id", $_REQUEST['order_id']);
         $not_shipped = $items_amount['amount'] - $items_amount['shipped_amount'];
         $need_shipment = $not_shipped > 0 ? 'Y' : 'N';
         $response->setMeta($need_shipment, 'need_shipment');
     }
     $response->setResponseList(Api::getAsList($object, $shipments));
     $is_paginate = true;
 } elseif ($object == 'order_stats') {
     $orders_stats = array();
     // Dayly orders
     $today = getdate(TIME);
     $last_day = getdate(TIME - SECONDS_IN_DAY);
     // Weekly orders
     $wday = empty($today['wday']) ? "6" : ($today['wday'] == 1 ? "0" : $today['wday'] - 1);
Beispiel #4
0
        exit;
    }
    return array(CONTROLLER_STATUS_OK, $url);
}
if ($mode == 'details') {
    $params = $_REQUEST;
    $order_info = Tygh::$app['view']->getTemplateVars('order_info');
    $sdek_info = $sdek_pvz = false;
    if (!empty($order_info['shipping'])) {
        foreach ($order_info['shipping'] as $shipping) {
            if ($shipping['module'] == 'sdek' && !empty($shipping['office_id'])) {
                $sdek_pvz = $shipping['office_id'];
            }
        }
    }
    list($all_shipments) = fn_get_shipments_info(array('order_id' => $params['order_id'], 'advanced_info' => true));
    if (!empty($all_shipments)) {
        $sdek_shipments = $data_shipments = array();
        foreach ($all_shipments as $key => $_shipment) {
            if ($_shipment['carrier'] == 'sdek') {
                $sdek_shipments[] = $_shipment;
            }
        }
        if (!empty($sdek_shipments)) {
            $offices = array();
            $rec_city = !empty($order_info['s_city']) ? $order_info['s_city'] : $order_info['b_city'];
            $rec_city_code = db_get_field("SELECT city_code FROM ?:rus_city_sdek_descriptions as a LEFT JOIN ?:rus_cities_sdek as b ON a.city_id=b.city_id WHERE city = ?s", $rec_city);
            $lastname = "";
            if (!empty($order_info['lastname'])) {
                $lastname = $order_info['lastname'];
            } elseif (!empty($order_info['s_lastname'])) {
Beispiel #5
0
function fn_get_packing_info($shipment_id)
{
    $params['advanced_info'] = true;
    $params['shipment_id'] = $shipment_id;
    list($shipment, $search, $total) = fn_get_shipments_info($params);
    if (!empty($shipment)) {
        $shipment = array_pop($shipment);
        $order_info = fn_get_order_info($shipment['order_id'], false, true, true);
        $shippings = db_get_array("SELECT a.shipping_id, a.min_weight, a.max_weight, a.position, a.status, b.shipping, b.delivery_time, a.usergroup_ids FROM ?:shippings as a LEFT JOIN ?:shipping_descriptions as b ON a.shipping_id = b.shipping_id AND b.lang_code = ?s ORDER BY a.position", DESCR_SL);
        $_products = db_get_array("SELECT item_id, SUM(amount) AS amount FROM ?:shipment_items WHERE order_id = ?i GROUP BY item_id", $shipment['order_id']);
        $shipped_products = array();
        if (!empty($_products)) {
            foreach ($_products as $_product) {
                $shipped_products[$_product['item_id']] = $_product['amount'];
            }
        }
        foreach ($order_info['items'] as $k => $oi) {
            if (isset($shipped_products[$k])) {
                $order_info['items'][$k]['shipment_amount'] = $oi['amount'] - $shipped_products[$k];
            } else {
                $order_info['items'][$k]['shipment_amount'] = $order_info['items'][$k]['amount'];
            }
            if (isset($shipment['items'][$k])) {
                $order_info['items'][$k]['amount'] = $shipment['items'][$k];
            } else {
                $order_info['items'][$k]['amount'] = 0;
            }
        }
    } else {
        $shipment = $order_info = array();
    }
    return array($shipment, $order_info);
}
Beispiel #6
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_live_editor_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;
}
Beispiel #7
0
     return array(CONTROLLER_STATUS_NO_PAGE);
 }
 if ($order_info['is_parent_order'] == 'Y') {
     $child_ids = db_get_fields("SELECT order_id FROM ?:orders WHERE parent_order_id = ?i", $_REQUEST['order_id']);
     return array(CONTROLLER_STATUS_REDIRECT, 'orders.search?period=A&order_id=' . implode(',', $child_ids));
 }
 if (fn_allowed_for('MULTIVENDOR')) {
     Registry::get('view')->assign('take_surcharge_from_vendor', fn_take_payment_surcharge_from_vendor($order_info['products']));
 }
 // Repay functionality
 $statuses = fn_get_statuses(STATUSES_ORDER, array(), true);
 if (Registry::get('settings.Checkout.repay') == 'Y' && (!empty($statuses[$order_info['status']]['params']['repay']) && $statuses[$order_info['status']]['params']['repay'] == 'Y')) {
     fn_prepare_repay_data(empty($_REQUEST['payment_id']) ? 0 : $_REQUEST['payment_id'], $order_info, $auth);
 }
 $navigation_tabs = array('general' => array('title' => __('general'), 'js' => true, 'href' => 'orders.details?order_id=' . $_REQUEST['order_id'] . '&selected_section=general'));
 list($shipments) = fn_get_shipments_info(array('order_id' => $order_info['order_id'], 'advanced_info' => true));
 $use_shipments = !fn_one_full_shipped($shipments);
 if (!fn_allowed_for('ULTIMATE:FREE')) {
     if (Registry::get('settings.General.use_shipments') == 'Y' || $use_shipments) {
         $navigation_tabs['shipment_info'] = array('title' => __('shipment_info'), 'js' => true, 'href' => 'orders.details?order_id=' . $_REQUEST['order_id'] . '&selected_section=shipment_info');
         $use_shipments = true;
     }
 }
 Registry::get('view')->assign('shipments', $shipments);
 Registry::get('view')->assign('use_shipments', $use_shipments);
 Registry::set('navigation.tabs', $navigation_tabs);
 Registry::get('view')->assign('order_info', $order_info);
 Registry::get('view')->assign('status_settings', $statuses[$order_info['status']]['params']);
 if (!empty($_REQUEST['selected_section'])) {
     Registry::get('view')->assign('selected_section', $_REQUEST['selected_section']);
 }
Beispiel #8
0
function fn_qwintry_save_order_invoice($order_id, $area = AREA, $lang_code = CART_LANGUAGE)
{
    $view = Tygh::$app['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'));
    $order_info = fn_get_order_info($order_id, false, true, false, true);
    if (empty($order_info)) {
        return;
    }
    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));
    fn_disable_live_editor_mode();
    $html[] = $view->displayMail('orders/print_invoice.tpl', false, $area, $order_info['company_id'], $lang_code);
    $filename = QWINTRY_DIR_INVOICES . $order_id . '.pdf';
    if (Pdf::render($html, $filename, true)) {
        return $filename;
    }
    return false;
}