/** * Tarkistaa varmistuskoodin syötetyn tuotepaikan ja koodin mukaan. * jos varmistuskoodia ei annettu yritetään käyttää keksissä olevaa varmistuskoodia. */ function tarkista_varmistuskoodi($tuotepaikka, $varmistuskoodi = '', $haettu_tuotepaikalla = '') { // Muutetaan saatuo tuotepaikka arrayksi $hylly = explode('-', $tuotepaikka); // Jos haettu vajaalla tuotepaikalla, eli hyllyalue-hyllynro, niin tarkistetaan että jos // keksissä oleva tuotepaikka täsmää kyseistä aluetta. Jos täsmää niin varmistuskoodi tarkistetaan suoraan. $tuotealue = false; if (stripos(str_replace('-', '', $_COOKIE['_tuotepaikka']), $haettu_tuotepaikalla) === 0) { $tuotealue = true; } // Jos varmistuskoodia ei saatu parametrissa, yritetään keksissä olevalla koodilla. if ($varmistuskoodi == '' and isset($_COOKIE['_varmistuskoodi']) and ($tuotepaikka == $_COOKIE['_tuotepaikka'] or $tuotealue == true)) { $varmistuskoodi = $_COOKIE['_varmistuskoodi']; } // Jos varmistuskoodi on edelleen tyhjä niin hylätään if ($varmistuskoodi == '') { return false; } else { $options = array('varmistuskoodi' => $varmistuskoodi); return tarkista_varaston_hyllypaikka($hylly[0], $hylly[1], $hylly[2], $hylly[3], $options); } }
$_mihin_varastoon = kuuluukovarastoon($ahyllyalue, $ahyllynro); if ($_mihin_varastoon != 0 and $ahyllyalue != '' and $ahyllynro != '' and $ahyllyvali != '' and $ahyllytaso != '' and $ahyllyalue != "!!M") { $kaikki_ok = true; if ($yhtiorow['toimipaikkakasittely'] == "L") { // Haetaan varaston toimipaikan parametrit $_var_tp = hae_varaston_toimipaikka($_mihin_varastoon); $_var_tp = (!empty($_var_tp) and is_array($_var_tp)) ? $_var_tp['tunnus'] : null; $yhtiorow_alkuperainen = $yhtiorow; $yhtiorow = hae_yhtion_parametrit($kukarow['yhtio'], $_var_tp); } if ($yhtiorow['kerayserat'] == 'K') { $ahyllyalue = strtoupper($ahyllyalue); $ahyllynro = strtoupper($ahyllynro); $ahyllyvali = strtoupper($ahyllyvali); $ahyllytaso = strtoupper($ahyllytaso); $kaikki_ok = tarkista_varaston_hyllypaikka($ahyllyalue, $ahyllynro, $ahyllyvali, $ahyllytaso); } if ($yhtiorow['varastontunniste'] != '') { if (!isset($select_varastontunniste) or trim($select_varastontunniste) == "") { $kaikki_ok = false; } } // Palautetaan yhtiön parametrit if (!empty($yhtiorow_alkuperainen)) { $yhtiorow = hae_yhtion_parametrit($kukarow['yhtio']); } if ($kaikki_ok) { echo "<font class='message'>" . "Uusi varastopaikka luotiin tuotteelle" . ": {$tuoteno} ({$ahyllyalue}-{$ahyllynro}-{$ahyllyvali}-{$ahyllytaso})</font><br>"; $query = "SELECT oletus\n FROM tuotepaikat\n WHERE yhtio = '{$kukarow['yhtio']}'\n and tuoteno = '{$tuoteno}'\n and oletus != ''"; $result = pupe_query($query); if (mysql_num_rows($result) > 0) {
$errors[] = t("Virheellinen tuotepaikka, yritä syöttää tuotepaikka käsin") . " ({$minne_hyllypaikka})"; } if (count($errors) == 0) { $query = "SELECT tunnus\n FROM tuotepaikat\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$row['tuoteno']}'\n AND hyllyalue = '{$hyllyalue}'\n AND hyllynro = '{$hyllynro}'\n AND hyllyvali = '{$hyllyvali}'\n AND hyllytaso = '{$hyllytaso}'"; $chk_res = pupe_query($query); if (mysql_num_rows($chk_res) == 0) { $errors[] = t("Tuotepaikkaa (%s-%s-%s-%s) ei ole perustettu tuotteelle", "", $hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) . '.'; } } // Tarkistetaan että tuotepaikka on olemassa if ($onko_varaston_hyllypaikat_kaytossa and count($errors) == 0 and !tarkista_varaston_hyllypaikka($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso)) { $errors[] = t("Tuotepaikkaa (%s-%s-%s-%s) ei ole perustettu varaston hyllypaikkoihin", "", $hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) . '.'; } if ($onko_varaston_hyllypaikat_kaytossa and count($errors) == 0) { $options = array('varmistuskoodi' => $minne_koodi); if (!is_numeric($minne_koodi) or !tarkista_varaston_hyllypaikka($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso, $options)) { $errors[] = t("Virheellinen varmistuskoodi") . " ({$minne_koodi})"; } } } if (count($errors) == 0) { list($siirrettava_yht, $siirrettavat_rivit) = laske_siirrettava_maara($row); $query = "SELECT tuotepaikat.*, tuote.yksikko\n FROM tuotepaikat\n JOIN tuote ON (tuote.yhtio = tuotepaikat.yhtio AND tuote.tuoteno = tuotepaikat.tuoteno)\n WHERE tuotepaikat.yhtio = '{$kukarow['yhtio']}'\n AND tuotepaikat.tuoteno = '{$row['tuoteno']}'\n AND tuotepaikat.hyllyalue = '{$hyllyalue}'\n AND tuotepaikat.hyllynro = '{$hyllynro}'\n AND tuotepaikat.hyllyvali = '{$hyllyvali}'\n AND tuotepaikat.hyllytaso = '{$hyllytaso}'"; $res = pupe_query($query); $minnerow = mysql_fetch_assoc($res); $params = array('kappaleet' => $siirrettava_yht, 'lisavaruste' => '', 'tuoteno' => $row['tuoteno'], 'tuotepaikat_tunnus_otetaan' => $row['tunnus'], 'tuotepaikat_tunnus_siirretaan' => $minnerow['tunnus'], 'mistarow' => $row, 'minnerow' => $minnerow, 'sarjano_array' => array(), 'selite' => '', 'tun' => 0); hyllysiirto($params); if (count($siirrettavat_rivit) > 0) { foreach ($siirrettavat_rivit as $siirrettavat_rivi) { $query = "UPDATE tilausrivi SET\n hyllyalue = '{$hyllyalue}',\n hyllynro = '{$hyllynro}',\n hyllyvali = '{$hyllyvali}',\n hyllytaso = '{$hyllytaso}'\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = {$siirrettavat_rivi}"; pupe_query($query);
if (isset($suuntalavanhyllyalue) and trim($suuntalavanhyllyalue) == '' or isset($suuntalavanhyllypaikka) and trim($suuntalavanhyllypaikka) == '') { echo "<font class='error'>", t("Hyllyalue oli tyhjä"), "!</font><br />"; $toiminto = 'suuntalavat'; $tee = 'vie_koko_suuntalava'; } else { $vietiinko_koko_suuntalava = ''; if (trim($suuntalavanhyllypaikka) != '') { list($suuntalavanhyllyalue, $suuntalavanhyllynro, $suuntalavanhyllyvali, $suuntalavanhyllytaso) = explode("#", $suuntalavanhyllypaikka); } $suuntalavanhyllyalue = mysql_real_escape_string($suuntalavanhyllyalue); $suuntalavanhyllynro = mysql_real_escape_string($suuntalavanhyllynro); $suuntalavanhyllyvali = mysql_real_escape_string($suuntalavanhyllyvali); $suuntalavanhyllytaso = mysql_real_escape_string($suuntalavanhyllytaso); // Koko suuntalava voidaan viedä vain reservipaikalle, jossa ei ole tuotteita. $options = array('reservipaikka' => 'K'); $hyllypaikka_ok = tarkista_varaston_hyllypaikka($suuntalavanhyllyalue, $suuntalavanhyllynro, $suuntalavanhyllyvali, $suuntalavanhyllytaso, $options); // Hyllypaikkaa ei löydy tai se ei ole reservipaikka if (!$hyllypaikka_ok) { echo "<font class='error'>" . t("Hyllypaikkaa ei löydy tai se ei ole reservipaikka") . "</font></br>"; // Takaisin samaan näkymään $toiminto = 'suuntalavat'; $tee = 'vie_koko_suuntalava'; } else { // OK, päivitetään tilausrivien hyllypaikat $paivitetyt_rivit = paivita_hyllypaikat($suuntalavan_tunnus, $suuntalavanhyllyalue, $suuntalavanhyllynro, $suuntalavanhyllyvali, $suuntalavanhyllytaso); if ($paivitetyt_rivit > 0) { echo "<br />", t("Päivitettiin suuntalavan tuotteet paikalle"), " {$suuntalavanhyllyalue} {$suuntalavanhyllynro} {$suuntalavanhyllyvali} {$suuntalavanhyllytaso}<br />"; $vietiinko_koko_suuntalava = 'joo'; } } }
// Virheet $errors = array(); switch ($submit_button) { case 'new': echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=uusi_kerayspaikka.php?{$url}'>"; exit; break; case 'submit': // Tarkistetaan määrä if (!is_numeric($maara) or $maara < 1) { $errors[] = t("Virheellinen määrä"); } if ($onko_varaston_hyllypaikat_kaytossa) { // Tarkistetaan koodi $options = array('varmistuskoodi' => $koodi); if (!is_numeric($koodi) or !tarkista_varaston_hyllypaikka($row['hyllyalue'], $row['hyllynro'], $row['hyllyvali'], $row['hyllytaso'], $options)) { $errors[] = t("Virheellinen varmistuskoodi"); } // Setataan viimeinen muuttuja jos lavalla vain yksi rivi jäjellä if (!empty($alusta_tunnus)) { $query = "SELECT * FROM tilausrivi WHERE suuntalava = '{$alusta_tunnus}' AND yhtio='{$kukarow['yhtio']}'"; $rivit_result = pupe_query($query); $rivit = mysql_num_rows($rivit_result); } } $viimeinen = (isset($rivit) and $rivit == 1) ? true : false; // Jos ei virheitä if (count($errors) == 0) { $tilausrivit = array(); // Jos rivi on jo kohdistettu eri saapumiselle if (!empty($row['uusiotunnus'])) {
} elseif (strstr($data['hyllypaikka'], '-') or strstr($data['hyllypaikka'], ' ')) { // Parsitaan tuotepaikka omiin muuttujiin (erotelto välilyönnillä) if (preg_match('/\\w+\\s\\w+\\s\\w+\\s\\w+/i', $data['hyllypaikka'])) { list($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) = explode(' ', $data['hyllypaikka']); } elseif (preg_match('/\\w+-\\w+-\\w+-\\w+/i', $data['hyllypaikka'])) { list($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) = explode('-', $data['hyllypaikka']); } // Ei saa olla tyhjiä kenttiä if ($hyllyalue == '' or $hyllynro == '' or $hyllyvali == '' or $hyllytaso == '') { $errors[] = t("Virheellinen tuotepaikka") . ". ({$data['hyllypaikka']})"; } } else { $errors[] = t("Virheellinen tuotepaikka, yritä syöttää tuotepaikka käsin") . " ({$data['hyllypaikka']})"; } // Tarkistetaan että tuotepaikka on olemassa if (count($errors) == 0 and !tarkista_varaston_hyllypaikka($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso)) { $errors[] = t("Varaston tuotepaikkaa (%s-%s-%s-%s) ei ole perustettu", "", $hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) . '.'; } if (count($errors) == 0) { $data['hyllyalue'] = $hyllyalue; $data['hyllynro'] = $hyllynro; $data['hyllyvali'] = $hyllyvali; $data['hyllytaso'] = $hyllytaso; } } if (count($errors) == 0) { // Rakennetaan parametrit kentistä $url = http_build_query($data); echo "<META HTTP-EQUIV='Refresh'CONTENT='0;URL=tuotteella_useita_tuotepaikkoja.php?{$url}'>"; exit; }
} elseif (strstr($tuotepaikka, '-') or strstr($tuotepaikka, ' ')) { // Parsitaan tuotepaikka omiin muuttujiin (erotelto välilyönnillä) if (preg_match('/\\w+\\s\\w+\\s\\w+\\s\\w+/i', $tuotepaikka)) { list($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) = explode(' ', $tuotepaikka); } elseif (preg_match('/\\w+-\\w+-\\w+-\\w+/i', $tuotepaikka)) { list($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) = explode('-', $tuotepaikka); } // Ei saa olla tyhjiä kenttiä if ($hyllyalue == '' or $hyllynro == '' or $hyllyvali == '' or $hyllytaso == '') { $errors[] = t("Virheellinen tuotepaikka") . ". ({$tuotepaikka})"; } } else { $errors[] = t("Virheellinen tuotepaikka, yritä syöttää tuotepaikka käsin") . " ({$tuotepaikka})"; } // Tarkistetaan että tuotepaikka on olemassa if ($onko_varaston_hyllypaikat_kaytossa and count($errors) == 0 and !tarkista_varaston_hyllypaikka($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso)) { $errors[] = t("Varaston tuotepaikkaa ({$hyllyalue}-{$hyllynro}-{$hyllyvali}-{$hyllytaso}) ei ole perustettu") . '.'; } // Ei sarjanumerollisia tuotteita $query = "SELECT sarjanumeroseuranta\n FROM tuote\n WHERE yhtio='{$kukarow['yhtio']}'\n AND tuoteno='{$row['tuoteno']}'"; $result = pupe_query($query); $tuote = mysql_fetch_assoc($result); if (isset($siirra_saldot) and count($siirra_saldot) > 0) { if (count($siirra_saldot) == 1 and $siirra_saldot[0] == 'default') { $siirra_saldot = ''; } else { $siirra_saldot = $siirra_saldot[1]; } } else { $siirra_saldot = ''; }
if (preg_match('/\\w+\\s\\w+\\s\\w+\\s\\w+/i', $tuotepaikka)) { list($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) = explode(' ', $tuotepaikka); } elseif (preg_match('/\\w+-\\w+-\\w+-\\w+/i', $tuotepaikka)) { list($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) = explode('-', $tuotepaikka); } // Ei saa olla tyhjiä kenttiä if ($hyllyalue == '' or $hyllynro == '' or $hyllyvali == '' or $hyllytaso == '') { $error['varalle'] .= t("Virheellinen tuotepaikka") . ". ({$tuotepaikka})<br>"; } } else { $error['varalle'] .= t("Virheellinen tuotepaikka, yritä syöttää tuotepaikka käsin") . " ({$tuotepaikka})<br>"; } // Tarkistetaan hyllypaikka ja varmistuskoodi // hyllypaikan on oltava reservipaikka ja siellä ei saa olla tuotteita $options = array('varmistuskoodi' => $koodi, 'reservipaikka' => 'K'); $kaikki_ok = tarkista_varaston_hyllypaikka($hyllyalue, $hyllynro, $hyllyvali, $hyllytaso, $options); if (isset($suuntalavan_tuotteet) and count($suuntalavan_tuotteet) > 0) { foreach ($suuntalavan_tuotteet as $_tun => $_maara) { if (trim($_maara) != '') { if (!is_numeric($_maara)) { $error['tuotteet'] = t("Määrä täytyy olla numeerinen!"); $kaikki_ok = false; break; } $_maara = (double) $_maara; $_tun = (int) $_tun; $query = "SELECT varattu\n FROM tilausrivi\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$_tun}'"; $chk_varattu_res = pupe_query($query); $chk_varattu_row = mysql_fetch_assoc($chk_varattu_res); if ((int) ($_maara * 10000) <= (int) ($chk_varattu_row['varattu'] * 10000)) { $error['tuotteet'] = t("Syötetty määrä täytyy olla suurempi kuin alkuperäinen määrä!");