$action = 'update_inventory';
}
if ($action == 'update_inventory' && count($eans)) {
    cw_load('serials', 'warehouse');
    foreach ($settings_vars as $val) {
        $ean_settings[$val] = ${$val};
    }
    $ean_products = array();
    $saved_products_info = array();
    foreach ($eans as $ean) {
        if (empty($ean['ean'])) {
            continue;
        }
        $result = $ean;
        if (!$saved_products_info[$ean['ean']]) {
            $saved_products_info[$ean['ean']] = cw_ean_get_product_info($ean['ean']);
        }
        $product_info =& $saved_products_info[$ean['ean']];
        if ($product_info['product_id']) {
            $result['product_info'] = $product_info;
            $product_id = $product_info['product_id'];
            if ($addons['sn']) {
                $result['auto_generated'] = cw_serials_is_auto_generated($product_id);
                if ($result['auto_generated']) {
                    $result['numbers'] = implode(" ", cw_serials_check_product($product_id));
                } elseif ($ean['serial'] && $ean['serial'] != $default_number) {
                    $res = cw_serials_add($user_account['warehouse_customer_id'], $product_id, $ean['serial']);
                    $result['numbers'] = $ean['serial'];
                    if (!$res) {
                        $result['error'] = 2;
                    }
function cw_product_get_product_by_ean($ean)
{
    global $tables, $user_account;
    $info = cw_ean_get_product_info($ean);
    return cw_func_call('cw_product_get', array('id' => $info['product_id'], 'user_account' => $user_account));
}
    $newproduct_ids = explode(" ", trim($newproduct_id));
    $amounts = explode(' ', trim($newamount));
    $aom_orders[$doc_id]['info']['use_shipping_cost_alt'] = 'N';
    $out_products = cw_aom_add_new_products($aom_orders[$doc_id], $newproduct_ids, array(), $amounts, array(), array(), $is_old);
    $doc_data = cw_doc_get($doc_id, 0);
    $aom_orders[$doc_id] = cw_aom_normalize_after_update($aom_orders[$doc_id], $doc_data);
}
if ($action == 'add_item_by_ean' && is_array($eans) && !$aom_orders[$doc_id]['saved']) {
    $pids = array();
    $amounts = array();
    $discounts = array();
    foreach ($eans as $ean) {
        if (empty($ean['ean'])) {
            continue;
        }
        $product_info = cw_ean_get_product_info(trim($ean['ean']));
        if (!$product_info) {
            $not_found[] = $ean['ean'];
            continue;
        }
        $pids[] = $product_info['product_id'];
        $vars[] = $product_info['variant_id'];
        $amounts[] = $default_use_only_ean == 'Y' ? intval($default_number) : $ean['amount'];
        $discounts[] = $ean['discount'];
    }
    $out_products = cw_aom_add_new_products($aom_orders[$doc_id], $pids, $vars, $amounts, $discounts, array(), $is_old);
    $doc_data = cw_doc_get($doc_id, 0);
    $aom_orders[$doc_id] = cw_aom_normalize_after_update($aom_orders[$doc_id], $doc_data);
}
if ($action == 'update_discount' && !$aom_orders[$doc_id]['saved']) {
    if ($param == 'gd_value' && ($current_area == 'G' && $accl['100002'] || $current_area != 'G')) {