示例#1
0
function hae($viivakoodi = '', $tuoteno = '', $tuotepaikka = '')
{
    global $kukarow;
    // Poistetaan tuotepaikasta välimerkit
    $hylly = preg_replace("/[^a-zA-ZåäöÅÄÖ0-9]/", "", $tuotepaikka);
    // Hakuehdot
    if ($tuoteno != '') {
        $params['tuoteno'] = "tuote.tuoteno = '{$tuoteno}'";
    }
    if ($tuotepaikka != '') {
        $params['tuotepaikka'] = "hyllypaikka LIKE '{$hylly}%'";
    }
    // Viivakoodi case
    if ($viivakoodi != '') {
        $tuotenumerot = hae_viivakoodilla($viivakoodi);
        $param_viivakoodi = array();
        foreach ($tuotenumerot as $_tuoteno => $_arr) {
            array_push($param_viivakoodi, $_tuoteno);
        }
        $params['viivakoodi'] = "tuote.tuoteno in ('" . implode($param_viivakoodi, "','") . "')";
    }
    $osumat = array();
    if (!empty($params)) {
        $haku_ehto = implode($params, " AND ");
        $query = "SELECT\n              tuote.tuoteno,\n              inventointilistarivi.otunnus as inventointilista,\n              inventointilistarivi.aika as inventointilista_aika,\n              concat(  lpad(upper(tuotepaikat.hyllyalue), 5, '0'),\n                  lpad(upper(tuotepaikat.hyllynro), 5, '0'),\n                  lpad(upper(tuotepaikat.hyllyvali), 5, '0'),\n                  lpad(upper(tuotepaikat.hyllytaso), 5, '0')) as sorttauskentta,\n              concat_ws('-',tuotepaikat.hyllyalue, tuotepaikat.hyllynro,\n                    tuotepaikat.hyllyvali, tuotepaikat.hyllytaso) tuotepaikka\n              FROM tuotepaikat\n              JOIN varastopaikat ON (varastopaikat.yhtio = tuotepaikat.yhtio\n                AND varastopaikat.tunnus                   = tuotepaikat.varasto\n                AND varastopaikat.toimipaikka              = '{$kukarow['toimipaikka']}'\n                AND varastopaikat.tyyppi                   = ''\n              )\n              JOIN tuote on (tuote.yhtio=tuotepaikat.yhtio and tuote.tuoteno=tuotepaikat.tuoteno)\n              LEFT JOIN inventointilistarivi ON (inventointilistarivi.yhtio = tuotepaikat.yhtio\n                AND inventointilistarivi.tuotepaikkatunnus = tuotepaikat.tunnus\n                AND inventointilistarivi.tila              = 'A')\n              WHERE tuotepaikat.yhtio                      = '{$kukarow['yhtio']}'\n              AND {$haku_ehto}\n              LIMIT 200";
        $result = pupe_query($query);
        while ($row = mysql_fetch_assoc($result)) {
            $osumat[] = $row;
        }
    }
    return $osumat;
}
if ($ostotilaus != '' or $tuotenumero != '' or $viivakoodi != '' or $saapumisnro_haku != '') {
    if (strpos($tuotenumero, "%") !== FALSE) {
        $tuotenumero = urldecode($tuotenumero);
    }
    if ($tuotenumero != '') {
        $params['tuoteno'] = "tilausrivi.tuoteno = '{$tuotenumero}'";
    }
    if ($ostotilaus != '') {
        $params['otunnus'] = "tilausrivi.otunnus = '{$ostotilaus}'";
    }
    if ($saapumisnro_haku != '') {
        $saapumisnro_haku_lisa = "AND lasku.laskunro = '{$saapumisnro_haku}'";
    }
    // Viivakoodi case
    if ($viivakoodi != '') {
        $tuotenumerot = hae_viivakoodilla($viivakoodi);
        if (count($tuotenumerot) > 0) {
            $param_viivakoodi = array();
            foreach ($tuotenumerot as $_tuoteno => $_arr) {
                foreach ($_arr as $_liitostunnus) {
                    if (trim($_liitostunnus) != "") {
                        array_push($param_viivakoodi, "(tuote.tuoteno = '{$_tuoteno}' AND lasku.liitostunnus = '{$_liitostunnus}')");
                    }
                }
            }
            if (empty($param_viivakoodi)) {
                $params['viivakoodi'] = "tuote.tuoteno IN ('" . implode(array_keys($tuotenumerot), "','") . "')";
            } else {
                $params['viivakoodi'] = "(" . implode($param_viivakoodi, " OR ") . ")";
            }
        } else {