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); }