function cw_aom_get_doc_storage($type, $info = array(), $prefix = '', $special_info = array())
{
    $display_id = cw_doc_get_display_id($type);
    $usertype = 'C';
    if (in_array($type, array('P', 'Q', 'R'))) {
        $usertype = 'S';
    } elseif ($type == 'D') {
        $usertype = 'D';
    }
    $ret = array('doc_id' => 0, 'display_id' => $prefix . $display_id, 'prefix' => $prefix, 'display_doc_id' => $display_id, 'type' => $type, 'date' => cw_core_get_time(), 'status' => 'Q', 'info' => array('total' => 0), 'userinfo' => array('customer_id' => 0, 'usertype' => $usertype, 'current_address' => array('same_as_main' => 1)));
    if ($info) {
        $ret['info'] = array_merge($ret['info'], $info);
    }
    foreach ($special_info as $tbl => $fields) {
        $ret[$tbl] = $fields;
    }
    return $ret;
}
    list($profile_sections, $profile_fields, $additional_fields) = cw_profile_fields_get_sections('U', true, $fields_area);
    $aom_orders[$doc_id]['userinfo']['profile_sections'] = $profile_sections;
    $aom_orders[$doc_id]['userinfo']['profile_fields'] = $profile_fields;
    $smarty->assign('orders_data', array($aom_orders[$doc_id]));
    $smarty->assign('current_section', '');
    $smarty->assign('main', 'order_print');
    $smarty->assign('home_style', 'iframe');
    $smarty->assign('is_printing', true);
    cw_display('admin/index.tpl', $smarty);
    exit;
}
if ($action == 'save') {
    if ($confirmed == "Y") {
        $aom_orders[$doc_id]['type'] = $aom_orders[$doc_id]['type'][0];
        if ($aom_orders[$doc_id]['new']) {
            $aom_orders[$doc_id]['display_doc_id'] = cw_doc_get_display_id($aom_orders[$doc_id]['type']);
        }
        $display_doc_id = $aom_orders[$doc_id]['display_doc_id'];
        $prefix = $aom_orders[$doc_id]['prefix'];
        $year = $aom_orders[$doc_id]['year'];
        $aom_orders[$doc_id]['display_id'] = ($prefix ? $prefix . ' ' : '') . ($config['docs']['display_id_format'] == 'Y' ? $year . '/' : '') . $display_doc_id;
        cw_aom_update_order($aom_orders[$doc_id], $doc_data['products']);
        $aom_orders[$doc_id] = null;
        if ($notify_customer) {
            $doc_data = $doc_data_customer = cw_call('cw_doc_get', array($doc_id));
            if (!empty($doc_data)) {
                $to_customer = $userinfo['language'] ? $userinfo['language'] : $config['default_customer_language'];
                $doc_data_customer['products'] = cw_doc_translate_products($doc_data['products'], $to_customer);
                $smarty->assign('doc_data', $doc_data_customer);
                if ($doc_data['info']['layout_id']) {
                    $layout = cw_web_get_layout_by_id($doc_data['info']['layout_id']);
function cw_doc_generate_group($doc_ids)
{
    global $tables;
    if (is_array($doc_ids)) {
        $docs_info = array();
        $sum_fields = array('subtotal', 'discount', 'giftcert_discount', 'coupon_discount', 'shipping_cost', 'weight', 'shipping_insurance', 'tax', 'total');
        $doc_type = 'O';
        foreach ($doc_ids as $doc_id) {
            $fields = cw_query_first("select di.*, d.type from {$tables['docs_info']} as di, {$tables['docs']} as d where d.doc_id='{$doc_id}' and d.doc_info_id=di.doc_info_id");
            if ($fields) {
                foreach ($sum_fields as $k => $v) {
                    $docs_info[$v] += $fields[$v];
                }
            }
            $doc_type = $fields['type'];
        }
        $doc_info_id = cw_array2insert('docs_info', $docs_info);
        $display_id = cw_doc_get_display_id($doc_type);
        $doc = array('doc_info_id' => $doc_info_id, 'type' => $doc_type, 'display_id' => $display_id, 'prefix' => '', 'display_doc_id' => $display_id, 'year' => date('Y', cw_core_get_time()), 'date' => cw_core_get_time(), 'status_change' => cw_core_get_time());
        $doc_id_new = cw_array2insert('docs', $doc);
        $first_order_user_info = cw_query_first($sql = "select dui.* from {$tables['docs_user_info']} as dui, {$tables['docs']} as d where dui.doc_info_id=d.doc_info_id and d.doc_id in ('" . implode("', '", $doc_ids) . "') limit 1");
        $first_order_user_info['doc_info_id'] = $doc_info_id;
        cw_array2insert('docs_user_info', $first_order_user_info);
        foreach ($doc_ids as $doc_id) {
            $relations = cw_query("select * from {$tables['docs_items_relation']} where doc_id='{$doc_id}'");
            if ($relations) {
                foreach ($relations as $k => $v) {
                    $v['doc_id'] = $doc_id_new;
                    cw_array2insert('docs_items_relation', $v, true);
                }
            }
        }
    }
}