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); }
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); }
$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);
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'])) {
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); }
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;'> </div>"; } } } if ($pdf == true) { Pdf::render($html, __('invoices') . '-' . implode('-', $order_ids)); } return true; }
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']); }
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; }