} list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($tuoteno, 'JTSPEC', '', '', $saldorow["hyllyalue"], $saldorow["hyllynro"], $saldorow["hyllyvali"], $saldorow["hyllytaso"]); echo "<tr>"; echo "<td>{$saldorow['nimitys']}</td>"; echo "<td>"; if (tarkista_oikeus('inventoi.php', '', 1)) { echo "<a href='{$palvelin2}inventoi.php?tee=INVENTOI&tuoteno=" . urlencode($saldorow["tuoteno"]) . "&lopetus={$lopetus}/SPLIT/muuvarastopaikka.php////tee=M//tuoteno=" . urlencode($saldorow["tuoteno"]) . "'>{$saldorow['hyllyalue']} {$saldorow['hyllynro']} {$saldorow['hyllyvali']} {$saldorow['hyllytaso']}</a>"; } elseif (tarkista_oikeus('inventoi.php', 'OLETUSVARASTO', 1)) { echo "<a href='{$palvelin2}inventoi.php?toim=OLETUSVARASTO&tee=INVENTOI&tuoteno=" . urlencode($saldorow["tuoteno"]) . "&lopetus={$lopetus}/SPLIT/muuvarastopaikka.php////toim=OLETUSVARASTO//tee=M//tuoteno=" . urlencode($saldorow["tuoteno"]) . "'>{$saldorow['hyllyalue']} {$saldorow['hyllynro']} {$saldorow['hyllyvali']} {$saldorow['hyllytaso']}</a>"; } else { echo "{$saldorow['hyllyalue']} {$saldorow['hyllynro']} {$saldorow['hyllyvali']} {$saldorow['hyllytaso']}"; } echo "</td><td align='right'>{$saldorow['saldo']}</td><td align='right'>{$hyllyssa}</td><td align='right'>{$myytavissa}</td>"; if (kuuluukovarastoon($saldorow["hyllyalue"], $saldorow["hyllynro"])) { echo "<td>"; if ($oletusvarasto_chk == '' or $oletusvarasto_chk != '' and kuuluukovarastoon($oletusrow["hyllyalue"], $oletusrow["hyllynro"], $oletusvarasto_chk) != 0) { echo "<input type = 'radio' name='oletus' value='{$saldorow['tunnus']}' {$checked}>"; } echo "</td>"; echo "<td><input type='text' size='6' name='halyraja2[{$saldorow['tunnus']}]' value='{$saldorow['halytysraja']}'></td>\n <td><input type='text' size='6' name='tilausmaara2[{$saldorow['tunnus']}]' value='{$saldorow['tilausmaara']}'></td>\n <td><input type='text' size='6' name='prio2[{$saldorow['tunnus']}]' value='{$saldorow['prio']}'></td>"; } else { echo "<td></td><td></td><td></td><td></td>"; } $chk = $poistoteksti = ""; if ($saldorow["poistettava"] != "") { $chk = "CHECKED"; $poistoteksti = "(" . t("Poistetaan kun saldo loppuu/myytävissä nolla, eikä tuotepaikalle ole avoimia rivejä") . ")"; } // Ei näytetä boxia, jos sitä ei saa käyttää if ($saldorow["saldo"] != 0 and $saldorow["oletus"] != "") { echo "<td></td>";
$virherivi++; } } if ($virherivi != 0) { echo "<font class='error'>", t("HUOM: Tuotteita ei viety hyllyyn. Syötä pakkauskirjain"), "!</font><br /><br />"; $keraysvirhe++; $virherivi = 0; } } } // Tarkistetaan syötetyt varastopaikat if ($toim == 'VASTAANOTA_REKLAMAATIO') { for ($a = 0; $a < count($kerivi); $a++) { // varastorekla on dropdown ja vertaushylly on kannasta if (trim($varastorekla[$kerivi[$a]]) == trim($vertaus_hylly[$kerivi[$a]]) and $reklahyllyalue[$kerivi[$a]] != '' and $reklahyllynro[$kerivi[$a]] != '') { if (kuuluukovarastoon($reklahyllyalue[$kerivi[$a]], $reklahyllynro[$kerivi[$a]], '') == 0) { echo "<font class='error'>" . t("VIRHE: Tuotenumerolle") . " " . $rivin_tuoteno[$kerivi[$a]] . " " . t("annettu paikka") . " " . $reklahyllyalue[$kerivi[$a]] . "-" . $reklahyllynro[$kerivi[$a]] . "-" . $reklahyllyvali[$kerivi[$a]] . "-" . $reklahyllytaso[$kerivi[$a]] . " " . t("ei kuulu mihinkään varastoon") . "!</font><br>"; $virherivi++; } } if (trim($varastorekla[$kerivi[$a]]) != trim($vertaus_hylly[$kerivi[$a]]) and $reklahyllyalue[$kerivi[$a]] != '') { echo "<font class='error'>" . t("VIRHE: Tuotenumerolle") . " " . $rivin_tuoteno[$kerivi[$a]] . " " . t("voi antaa vain yhden paikan per rivi") . "</font><br>"; $virherivi++; } } } if ($virherivi != 0 and $toim == 'VASTAANOTA_REKLAMAATIO') { echo "<font class='error'>" . t("HUOM: Tuotteita ei viety hyllyyn. Korjaa virheet") . "!</font><br><br>"; $keraysvirhe++; } }
$query .= ", {$otsikko} = '{$taulunrivit[$taulu][$eriviindex][$r]}' "; } } //lisätään rivi if ($taulunrivit[$taulu][$eriviindex][$postoiminto] == 'LISAA') { if ($table_mysql == 'tuotepaikat' and $otsikko == 'OLETUS' and $taulunrivit[$taulu][$eriviindex][$r] == 'XVAIHDA') { //vaihdetaan tämä oletukseksi $taulunrivit[$taulu][$eriviindex][$r] = "X"; // pakotetaan oletus // Selvitetään vanha oletuspaikka $vanha_oletus_query = "SELECT *\n FROM tuotepaikat\n WHERE tuoteno = '{$tuoteno}'\n and yhtio = '{$kukarow['yhtio']}'\n and oletus != ''"; $oletusresult = pupe_query($vanha_oletus_query); $oletusrow = mysql_fetch_assoc($oletusresult); // Päivitetään uusi oletuspaikka myös avoimille ostotilausriveille (jos uusi paikka on samassa varastossa kun vanha) $hylly = array("hyllyalue" => $taulunrivit["tuotepaikat"][$eriviindex][array_search("HYLLYALUE", $taulunotsikot["tuotepaikat"])], "hyllynro" => $taulunrivit["tuotepaikat"][$eriviindex][array_search("HYLLYNRO", $taulunotsikot["tuotepaikat"])], "hyllytaso" => $taulunrivit["tuotepaikat"][$eriviindex][array_search("HYLLYTASO", $taulunotsikot["tuotepaikat"])], "hyllyvali" => $taulunrivit["tuotepaikat"][$eriviindex][array_search("HYLLYVALI", $taulunotsikot["tuotepaikat"])]); if (mysql_num_rows($oletusresult) == 1 and kuuluukovarastoon($oletusrow['hyllyalue'], $oletusrow['hyllynro']) == kuuluukovarastoon($hylly['hyllyalue'], $hylly['hyllynro'])) { $uusi_oletus_query = "UPDATE tilausrivi\n SET hyllyalue = '{$hylly['hyllyalue']}',\n hyllynro = '{$hylly['hyllynro']}',\n hyllytaso = '{$hylly['hyllytaso']}',\n hyllyvali = '{$hylly['hyllyvali']}'\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$tuoteno}'\n AND hyllyalue = '{$oletusrow['hyllyalue']}'\n AND hyllynro = '{$oletusrow['hyllynro']}'\n AND hyllytaso = '{$oletusrow['hyllytaso']}'\n AND hyllyvali = '{$oletusrow['hyllyvali']}'\n AND tyyppi = 'O'\n AND uusiotunnus = '0'\n AND kpl = '0'\n AND varattu != '0'"; $paivitysresult = pupe_query($uusi_oletus_query); if (mysql_affected_rows() > 0) { lue_data_echo(t("Päivitettiin %s ostotilausrivin varastopaikkaa.", '', mysql_affected_rows()) . "<br>"); } } $tpupque = "UPDATE tuotepaikat SET oletus = '' where yhtio = '{$kukarow['yhtio']}' and tuoteno = '{$tuoteno}'"; $query .= ", {$otsikko} = '{$taulunrivit[$taulu][$eriviindex][$r]}' "; } elseif (substr($taulu, 0, 11) == 'puun_alkio_') { if ($otsikko == 'PUUN_TUNNUS') { if ($dynaamisen_taulun_liitos == 'koodi') { $query_x = "SELECT tunnus\n FROM dynaaminen_puu\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND laji = '{$table_tarkenne}'\n AND koodi = '{$taulunrivit[$taulu][$eriviindex][$r]}'"; $koodi_tunnus_res = pupe_query($query_x); $koodi_tunnus_row = mysql_fetch_assoc($koodi_tunnus_res); $query .= ", puun_tunnus = '{$koodi_tunnus_row['tunnus']}' ";
echo " <SCRIPT TYPE=\"text/javascript\" LANGUAGE=\"JavaScript\">\n <!--\n \$(document).ready(function(){\n var taytasarake = function() {\n\n var sarake_id = \$(this).attr('id').replace('taytasarake_', '');\n var teksti = \$(this).val();\n\n \$('input[id^='+sarake_id+']').each(\n function() {\n \$(this).val(teksti);\n \$(this).trigger('change');\n }\n );\n };\n\n \$('input[id^=taytasarake_]').on('keyup change blur', taytasarake);\n });\n //-->\n </script>"; echo "<form method='post'><table>"; for ($id = 0; $id < $countti; $id++) { $error = ''; if ($uusipaikka[$id] == 'uusi' and $hyllyalue[$id] != '') { $hyllyalue[$id] = strtoupper($hyllyalue[$id]); if ($hyllynro[$id] == '') { $hyllynro[$id] = '0'; } if ($hyllyvali[$id] == '') { $hyllyvali[$id] = '0'; } if ($hyllytaso[$id] == '') { $hyllytaso[$id] = '0'; } $kuuluuko = kuuluukovarastoon($hyllyalue[$id], $hyllynro[$id], $tuvarasto); if ($kuuluuko > 0) { $query = "SELECT *\n FROM tuotepaikat\n WHERE yhtio = '{$kukarow['yhtio']}'\n and tuoteno = '{$tuoteno[$id]}'\n and oletus != ''"; $oleresult = pupe_query($query); if (mysql_num_rows($oleresult) == 0) { $oletus = 'X'; } else { $oletus = ''; } $query = "SELECT tunnus\n FROM tuotepaikat\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$tuoteno[$id]}'\n AND hyllyalue = '{$hyllyalue[$id]}'\n AND hyllynro = '{$hyllynro[$id]}'\n AND hyllyvali = '{$hyllyvali[$id]}'\n AND hyllytaso = '{$hyllytaso[$id]}'"; $loytyykoresult = pupe_query($query); if (mysql_num_rows($loytyykoresult) == 0) { lisaa_tuotepaikka($tuoteno[$id], $hyllyalue[$id], $hyllynro[$id], $hyllyvali[$id], $hyllytaso[$id], "Hälytysrajojen ja tilausmäärien sisäänluvussa", $oletus, $halytysraja[$id], $tilattava[$id], 0); } } else { $error = "<font class='error'>" . t("Antamasi varastopaikka ei ole käsiteltävässä varastossa") . "</font>";
echo "<br>"; $thyllyalue = strtoupper(pupesoft_cleanstring($ahyllyalue)); // Tuleva tuotepaikka $thyllynro = strtoupper(pupesoft_cleanstring($ahyllynro)); // Tuleva tuotepaikka $thyllyvali = strtoupper(pupesoft_cleanstring($ahyllyvali)); // Tuleva tuotepaikka $thyllytaso = strtoupper(pupesoft_cleanstring($ahyllytaso)); // Tuleva tuotepaikka // Virhetarkastukset if ($tee == "W") { if ($thyllyalue == "" or $thyllynro == "" or $thyllyvali == "" or $thyllytaso == "") { echo "<font class='error'>" . t("VIRHE: Syötetty varastopaikka ei ollut täydellinen") . "</font><br>"; $tee = "V"; } if (kuuluukovarastoon($thyllyalue, $thyllynro) == 0) { echo "<font class='error'>" . t("VIRHE: Syötetty varastopaikka ei kuulu mihinkään varastoon") . " ({$ahyllyalue}-{$ahyllynro})</font><br>"; $tee = "V"; } // Et rukasannut mitään if (!is_array($tunnukset) or $tunnukset == "") { echo "<font class='error'>VIRHE: Ei yhtään valittua tuotetta</font><br>"; $tee = "V"; } // Kohdevarasto ja lähdevarastopaikka on samat if ($varastopaikka != "") { $minnesiirretaan = $thyllyalue . "-" . $thyllynro . "-" . $thyllyvali . "-" . $thyllytaso; if (strtoupper($varastopaikka) == strtoupper($minnesiirretaan)) { echo "<font class='error'>VIRHE: Lähdevarastopaikka ja kohdevarastopaikka eivät voi olla samat</font><br>"; $tee = "V"; }
} if (!isset($siirrettava_yht)) { $siirrettava_yht = 0; } if (!isset($siirretty)) { $siirretty = 0; } $errors = array(); if ($tuotepaikan_tunnus == 0 or $siirretty) { echo "<META HTTP-EQUIV='Refresh'CONTENT='0;URL=hyllysiirrot.php'>"; exit; } $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.tunnus = '{$tuotepaikan_tunnus}'"; $res = pupe_query($query); $row = mysql_fetch_assoc($res); $_varasto = kuuluukovarastoon($row['hyllyalue'], $row['hyllynro']); $onko_varaston_hyllypaikat_kaytossa = onko_varaston_hyllypaikat_kaytossa($_varasto); if (isset($submit)) { switch ($submit) { case 'kerayspaikka': $url = "tuotepaikan_tunnus={$tuotepaikan_tunnus}&tullaan=tuotteen_hyllypaikan_muutos"; if (trim($minne_hyllypaikka) != '') { $url .= "&tuotepaikka={$minne_hyllypaikka}&mista_koodi={$mista_koodi}&minne_koodi={$minne_koodi}"; } echo "<META HTTP-EQUIV='Refresh'CONTENT='0;URL=uusi_kerayspaikka.php?{$url}'>"; exit; break; case 'ok': // Tarkistetaan koodi $options = array('varmistuskoodi' => $mista_koodi); if ($onko_varaston_hyllypaikat_kaytossa and (!is_numeric($mista_koodi) or !tarkista_varaston_hyllypaikka($row['hyllyalue'], $row['hyllynro'], $row['hyllyvali'], $row['hyllytaso'], $options))) {
exit; } // katotaan ollaanko haluttu optimoida johonki varastoon if ($laskurow["varasto"] != 0) { $query = "SELECT * from tilausrivi where yhtio='{$kukarow['yhtio']}' and otunnus='{$laskurow['tunnus']}' and tyyppi='O'"; $result = pupe_query($query); // käydään läpi kaikki tilausrivit while ($ostotilausrivit = mysql_fetch_assoc($result)) { // käydään läpi kaikki tuotteen varastopaikat $query = "SELECT *, concat(lpad(upper(hyllyalue), 5, '0'),lpad(upper(hyllynro), 5, '0'),lpad(upper(hyllyvali), 5, '0'),lpad(upper(hyllytaso), 5, '0')) sorttauskentta,\n hyllyalue, hyllynro, hyllytaso, hyllyvali\n from tuotepaikat\n where yhtio='{$kukarow['yhtio']}' and tuoteno='{$ostotilausrivit['tuoteno']}'\n order by sorttauskentta"; $tuopaires = pupe_query($query); // apulaskuri $kuuluu = 0; while ($tuopairow = mysql_fetch_assoc($tuopaires)) { // katotaan kuuluuko tuotepaikka haluttuun varastoon if (kuuluukovarastoon($tuopairow["hyllyalue"], $tuopairow["hyllynro"], $laskurow["varasto"]) != 0) { // jos kuului niin päivitetään info tilausriville $query = "UPDATE tilausrivi set\n hyllyalue = '{$tuopairow['hyllyalue']}',\n hyllynro = '{$tuopairow['hyllynro']}',\n hyllytaso = '{$tuopairow['hyllytaso']}',\n hyllyvali = '{$tuopairow['hyllyvali']}'\n where yhtio = '{$kukarow['yhtio']}' and\n tunnus = '{$ostotilausrivit['tunnus']}'"; $tuopaiupd = pupe_query($query); $kuuluu++; break; // breakataan niin ei looppailla enää turhaa } } // end while tuopairow // tuotteella ei ollut varastopaikkaa halutussa varastossa, tehdään sellainen if ($kuuluu == 0) { // haetaan halutun varaston tiedot $query = "SELECT alkuhyllyalue, alkuhyllynro from varastopaikat where yhtio='{$kukarow['yhtio']}' and tunnus='{$laskurow['varasto']}'"; $hyllyres = pupe_query($query); $hyllyrow = mysql_fetch_assoc($hyllyres);
if ($yhtiorow['laaja_inventointilista'] != "") { list($_saldo, $_hyllyssa, $_myytavissa) = saldo_myytavissa($tuoterow["tuoteno"], '', '', '', $tuoterow["hyllyalue"], $tuoterow["hyllynro"], $tuoterow["hyllyvali"], $tuoterow["hyllytaso"]); } else { $_hyllyssa = 0; } $query = "INSERT INTO inventointilistarivi SET\n yhtio = '{$kukarow['yhtio']}',\n tila = 'A',\n aika = null,\n otunnus = '{$listanro}',\n tuoteno = '{$tuoterow['tuoteno']}',\n hyllyalue = '{$tuoterow['hyllyalue']}',\n hyllynro = '{$tuoterow['hyllynro']}',\n hyllyvali = '{$tuoterow['hyllyvali']}',\n hyllytaso = '{$tuoterow['hyllytaso']}',\n rivinro = '{$rivinro}',\n hyllyssa = '{$_hyllyssa}',\n laskettu = '{$_hyllyssa}',\n tuotepaikkatunnus = '{$tuoterow['tuotepaikkatunnus']}',\n muuttaja = '{$kukarow['kuka']}',\n laatija = '{$kukarow['kuka']}',\n luontiaika = now(),\n muutospvm = now()"; $munresult = pupe_query($query, $GLOBALS["masterlink"]); } if ($rivit >= $maxrivit) { $sivulaskuri++; fwrite($fh, str_replace("<SIVUNUMERO>", "{$sivulaskuri} / {$kokonaissivumaara}", $ots)); $rivit = 1; } if ($naytasaldo != '') { //katotaan mihin varastooon tilausrivillä tuotepaikka kuuluu $rivipaikka = kuuluukovarastoon($tuoterow["hyllyalue"], $tuoterow["hyllynro"]); $query = "SELECT tuote.yhtio, tuote.tuoteno, tuote.ei_saldoa, varastopaikat.tunnus varasto,\n varastopaikat.tyyppi varastotyyppi, varastopaikat.maa varastomaa,\n tuotepaikat.oletus, tuotepaikat.hyllyalue, tuotepaikat.hyllynro, tuotepaikat.hyllyvali, tuotepaikat.hyllytaso,\n concat(rpad(upper(hyllyalue), 5, '0'),lpad(upper(hyllynro), 5, '0'),lpad(upper(hyllyvali), 5, '0'),lpad(upper(hyllytaso), 5, '0')) sorttauskentta,\n varastopaikat.nimitys, if(varastopaikat.tyyppi!='', concat('(',varastopaikat.tyyppi,')'), '') tyyppi\n FROM tuote\n JOIN tuotepaikat ON (tuotepaikat.yhtio = tuote.yhtio and tuotepaikat.tuoteno = tuote.tuoteno)\n JOIN varastopaikat ON (varastopaikat.yhtio = tuotepaikat.yhtio\n AND varastopaikat.tunnus = tuotepaikat.varasto\n AND varastopaikat.tunnus = '{$rivipaikka}')\n WHERE tuote.yhtio = '{$kukarow['yhtio']}'\n AND tuote.tuoteno = '{$tuoterow['tuoteno']}'\n ORDER BY tuotepaikat.oletus DESC, varastopaikat.nimitys, sorttauskentta"; $sresult = pupe_query($query); $rivipaikkahyllyssa = 0; $rivivarastohyllyssa = 0; $rivipaikkasaldo = 0; $rivivarastosaldo = 0; if (mysql_num_rows($sresult) > 0) { while ($saldorow = mysql_fetch_assoc($sresult)) { list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($saldorow["tuoteno"], '', '', '', $saldorow["hyllyalue"], $saldorow["hyllynro"], $saldorow["hyllyvali"], $saldorow["hyllytaso"], '', '', $saldorow["era"]); if ($saldorow['hyllyalue'] == $tuoterow['hyllyalue'] and $saldorow['hyllynro'] == $tuoterow['hyllynro'] and $saldorow['hyllyvali'] == $tuoterow['hyllyvali'] and $saldorow['hyllytaso'] == $tuoterow['hyllytaso']) { $rivipaikkahyllyssa += $hyllyssa; $rivipaikkasaldo += $saldo; } $rivivarastohyllyssa += $hyllyssa; $rivivarastosaldo += $saldo;
function nimike($limit = '') { global $path_nimike, $yhtio, $logisticar; $where_logisticar = $logisticar[$yhtio]["where"]; echo "Tuotteet ..."; $query = "SELECT\n tuote.tuoteno nimiketunnus,\n tuote.nimitys nimitys,\n tuote.yksikko yksikko,\n tuote.try tuoteryhma,\n avainsana.selitetark tuoteryhma_nimi,\n tuote.kustp kustannuspaikka,\n '' toimittajatunnus,\n '0' varastotunnus,\n '0' toimittajannimiketunnus,\n '1' hintayksikko,\n if(tuote.status = 'T', '0', '1') varastoimiskoodi,\n tuote.tuotetyyppi nimikelaji,\n kuka.kuka ostaja,\n tuote.tuotemassa paino,\n tuote.status status,\n tuote.epakurantti25pvm,\n tuote.epakurantti50pvm,\n tuote.epakurantti75pvm,\n tuote.epakurantti100pvm\n FROM tuote\n LEFT JOIN avainsana ON (avainsana.selite = tuote.try AND avainsana.yhtio = tuote.yhtio AND tuote.try not in ('','0'))\n LEFT JOIN kuka ON (kuka.myyja = tuote.ostajanro AND kuka.yhtio = tuote.yhtio AND kuka.myyja > 0)\n WHERE tuote.yhtio = '{$yhtio}'\n AND tuote.tuotetyyppi NOT IN ('A','B')\n {$limit}"; $rest = pupe_query($query); $rows = mysql_num_rows($rest); if ($rows == 0) { echo "Yhtään tuotetta ei löytynyt {$query}\n"; die; } $fp = fopen($path_nimike, 'w+'); $row = 0; $headers = array('nimiketunnus' => null, 'nimitys' => null, 'yksikko' => null, 'tuoteryhma' => null, 'kustannuspaikka' => null, 'toimittajatunnus' => null, 'varastotunnus' => null, 'toimittajannimiketunnus' => null, 'hintayksikko' => null, 'varastoimiskoodi' => null, 'nimikelaji' => null, 'ostaja' => null, 'paino' => null, 'status' => null, 'epakurantti25pvm' => null, 'epakurantti50pvm' => null, 'epakurantti75pvm' => null, 'epakurantti100pvm' => null); create_headers($fp, array_keys($headers)); while ($tuote = mysql_fetch_assoc($rest)) { // mones tämä on $row++; $query = "SELECT\n liitostunnus toimittajatunnus,\n toim_tuoteno toimittajannimiketunnus\n FROM tuotteen_toimittajat\n WHERE tuoteno = '{$tuote['nimiketunnus']}'\n AND yhtio = '{$yhtio}'\n LIMIT 1"; $tuot_toim_res = pupe_query($query); $tuot_toim_row = mysql_fetch_assoc($tuot_toim_res); $query = "SELECT hyllyalue, hyllynro\n FROM tuotepaikat\n WHERE tuoteno = '{$tuote['nimiketunnus']}'\n AND oletus != ''\n AND yhtio = '{$yhtio}'\n LIMIT 1"; $res = pupe_query($query); $paikka = mysql_fetch_assoc($res); // mikä varasto $tuote['varastotunnus'] = kuuluukovarastoon($paikka['hyllyalue'], $paikka['hyllynro']); $tuote['toimittajatunnus'] = $tuot_toim_row['toimittajatunnus']; $tuote['toimittajannimiketunnus'] = $tuot_toim_row['toimittajannimiketunnus']; // Siivotaan kentät: foreach ($tuote as &$tk) { $tk = pupesoft_csvstring($tk); } $data = array_merge($headers, $tuote); $data = implode("\t", $data); if (!fwrite($fp, $data . "\n")) { echo "Failed writing row.\n"; die; } } fclose($fp); echo "Done.\n"; }
list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($tuoteno, '', $varasto_valinta, '', $lhyllyalue, $lhyllynro, $lhyllyvali, $lhyllytaso); if ($kpl == "X" or $kpl > $myytavissa) { $tiedr[1] = $myytavissa; } } // Tarkistetaan onko annettu lähdevarastopaikka valitussa varastossa $lahdetsekki = kuuluukovarastoon($lhyllyalue, $lhyllynro, $varasto_valinta); if ($lahdetsekki == 0) { echo "<font class='error'>" . t("Tuotteen %s lähdevarastopaikka %s %s %s %s ei ole valitussa varastossa", "", $tuoteno, $lhyllyalue, $lhyllynro, $lhyllyvali, $lhyllytaso) . "!</font><br>"; unset($kaikki_tiedostorivit[$rowkey]); continue; } // KOHDEVARASTOPAIKKA list($ahyllyalue, $ahyllynro, $ahyllyvali, $ahyllytaso) = explode("-", $kohdevarastopk); // Tarkistetaan onko annettu kohdevarastopaikka valitussa varastossa $kohdetsekki = kuuluukovarastoon($ahyllyalue, $ahyllynro, $varasto_valinta); if ($kohdetsekki == 0) { echo "<font class='error'>" . t("Tuotteen %s kohdevarastopaikka %s %s %s %s ei ole valitussa varastossa", "", $tuoteno, $ahyllyalue, $ahyllynro, $ahyllyvali, $ahyllytaso) . "!</font><br>"; unset($kaikki_tiedostorivit[$rowkey]); continue; } // Onko kohdetuotepaikka olemassa $query_ktp = "SELECT *\n FROM tuotepaikat use index (tuote_index)\n WHERE tuoteno = '{$tuoteno}'\n AND yhtio = '{$kukarow['yhtio']}'\n AND hyllyalue = '{$ahyllyalue}'\n AND hyllynro = '{$ahyllynro}'\n AND hyllyvali = '{$ahyllyvali}'\n AND hyllytaso = '{$ahyllytaso}'"; $kvresult = pupe_query($query_ktp); // Jos kohdetuotepaikkaa ei löydy, yritetään perustaa sellainen if (mysql_num_rows($kvresult) == 0) { $tee = "UUSIPAIKKA"; $kutsuja = "varastopaikka_aineistolla.php"; $ahalytysraja = 0; $atilausmaara = 0; // Jos lähdepaikka poistetaan, niin siirretään halytysraja ja tilausmaara uudelle paikalle.
} else { if ($tm_toimitustaparow['vak_kielto'] == 'K' or $tm_toimitustaparow['vak_kielto'] != '' and $tm_toimitustaparow['nouto'] == '') { echo "<br><font class='error'>" . t("VIRHE: Tämä toimitustapa ei salli VAK-tuotteita") . "! (" . implode(",", $vak_chk_array) . ")</font><br>"; echo "<font class='error'>" . t("Valitse uusi toimitustapa") . "!</font><br><br>"; $tilausok++; } } } // tarkistetaan kuuluuko kaikki reklamaation rivit samaan varastoon if ($kukarow["extranet"] == "" and $toim == "REKLAMAATIO" and ($yhtiorow['reklamaation_kasittely'] == 'U' or $yhtiorow['reklamaation_kasittely'] == 'X' and $laskurow['tilaustyyppi'] != 'U')) { $varasto_chk_array = array(); $reklamaatio_saldoton_count = 0; while ($varasto_chk_row = mysql_fetch_assoc($result)) { if ($varasto_chk_row["ei_saldoa"] == "") { // Mihin varastoon $varasto_chk = kuuluukovarastoon($varasto_chk_row["hyllyalue"], $varasto_chk_row["hyllynro"]); $varasto_chk_array[$varasto_chk] = $varasto_chk; } else { $reklamaatio_saldoton_count++; } } if (count($varasto_chk_array) > 1) { echo "<br><font class='error'>" . t("VIRHE: Tuotteet eivät kuulu samaan varastoon"), "!</font><br>"; $tilausok++; } mysql_data_seek($result, 0); } echo "<br><table>"; if ($toim == "TARJOUS" or $toim == "EXTTARJOUS" or $toim == "TYOMAARAYS" or $toim == "TYOMAARAYS_ASENTAJA" or $laskurow["tilaustyyppi"] == "T" or $kukarow["yhtio"] == "savt") { $trivityyppi_result = t_avainsana("TRIVITYYPPI", "", "ORDER BY avainsana.selitetark"); if (mysql_num_rows($trivityyppi_result) > 0) {
while ($varastoon_row = mysql_fetch_assoc($varastoon_result)) { // Mitkä myyntitilausrivit vastaanotettiin tällä siirtolistalla $jtrivit[$varastoon_row["jtrivi"]] = $varastoon_row["jtrivi"]; // Katotaan mille paikalle nää meni, jotta myyntitilaus voidaan laukasta tältä paikalta $jtrivit_paikat[$varastoon_row["jtrivi"]] = $varastoon_row["tapahtumatunnus"]; // haetaan $varastoon vain kerran if ($varastoon == '') { $varastoon = array(kuuluukovarastoon($varastoon_row['hyllyalue'], $varastoon_row['hyllynro'])); } } } else { // kohdevarasto voi olla siirtolistalla vain yksi varasto, joten tehään tää loopin (~388) ulkopuolella yhden kerran (viimeinen rivi) $query = "SELECT tilausrivin_lisatiedot.kohde_hyllyalue hyllyalue,\n tilausrivin_lisatiedot.kohde_hyllynro hyllynro\n FROM tilausrivin_lisatiedot\n WHERE tilausrivin_lisatiedot.yhtio = '{$kukarow['yhtio']}'\n AND tilausrivin_lisatiedot.tilausrivitunnus = '{$tun}'"; $varastoon_result = pupe_query($query); $varastoon_row = mysql_fetch_assoc($varastoon_result); $varastoon = array(kuuluukovarastoon($varastoon_row['hyllyalue'], $varastoon_row['hyllynro'])); } jt_toimita("", "", $varastoon, $jtrivit, $jtrivit_paikat, $automaaginen, "JATKA", '', '', '', ''); if ($_jt_toimita_toimitus) { jt_toimita("", "", "", "", "", "dummy", "TOIMITA"); } } if ($echotaanko) { echo "<br><br>"; } if ($virheita == 0) { //päivitetään otsikko vastaanotetuksi ja tapvmmään päivä $query = "SELECT otunnus, sum(rivihinta) rivihinta\n FROM tilausrivi\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND otunnus IN ({$id})\n AND tyyppi = 'G'\n GROUP BY 1"; $result = pupe_query($query); while ($apusummarow = mysql_fetch_assoc($result)) { // Nää oli tossa updatessa mutta muuttujia ei ollut eikä tullut
$reservipaikka = 'E'; } // Haetaan listan 'ensimmäinen' tuote $query = "SELECT\n tuote.nimitys,\n tuote.tuoteno,\n tuote.yksikko,\n tuotepaikat.saldo,\n tuotepaikat.hyllyalue,\n tuotepaikat.hyllynro,\n tuotepaikat.hyllyvali,\n tuotepaikat.hyllytaso,\n inventointilista.tunnus as inventointilista,\n inventointilista.naytamaara as inventointilista_naytamaara,\n tuotepaikat.tyyppi,\n concat_ws('-', tuotepaikat.hyllyalue, tuotepaikat.hyllynro,\n tuotepaikat.hyllyvali, tuotepaikat.hyllytaso) as tuotepaikka,\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 FROM inventointilista\n JOIN inventointilistarivi ON (inventointilistarivi.yhtio = inventointilista.yhtio\n AND inventointilistarivi.otunnus = inventointilista.tunnus)\n JOIN tuote on (tuote.yhtio=inventointilistarivi.yhtio and tuote.tuoteno=inventointilistarivi.tuoteno)\n JOIN tuotepaikat ON (tuotepaikat.yhtio = inventointilistarivi.yhtio\n AND tuotepaikat.tunnus = inventointilistarivi.tuotepaikkatunnus)\n WHERE inventointilista.yhtio = '{$kukarow['yhtio']}'\n AND inventointilista.tunnus = '{$lista}'\n AND inventointilistarivi.tila = 'A' # Inventoidut tuotteet on nollattu\n ORDER BY sorttauskentta, tuoteno\n LIMIT 1"; $result = pupe_query($query); if (mysql_num_rows($result) == 0) { include 'views/inventointi/erat_loppu.php'; exit; } } else { // Haetaan tuotteen ja tuotepaikan tiedot $query = "SELECT\n tuote.nimitys,\n tuote.tuoteno,\n tuote.yksikko,\n tuotepaikat.tyyppi,\n tuotepaikat.hyllyalue,\n tuotepaikat.hyllynro,\n concat_ws('-',tuotepaikat.hyllyalue, tuotepaikat.hyllynro,\n tuotepaikat.hyllyvali, tuotepaikat.hyllytaso) as tuotepaikka\n FROM tuotepaikat\n JOIN tuote on (tuote.yhtio=tuotepaikat.yhtio and tuote.tuoteno=tuotepaikat.tuoteno)\n WHERE tuotepaikat.yhtio = '{$kukarow['yhtio']}'\n AND tuote.tuoteno='{$tuoteno}'\n AND concat_ws('-',tuotepaikat.hyllyalue, tuotepaikat.hyllynro,\n tuotepaikat.hyllyvali, tuotepaikat.hyllytaso) = '{$tuotepaikka}'"; $result = pupe_query($query); } $tuote = mysql_fetch_assoc($result); $_varasto = kuuluukovarastoon($tuote['hyllyalue'], $tuote['hyllynro']); $onko_varaston_hyllypaikat_kaytossa = onko_varaston_hyllypaikat_kaytossa($_varasto); // Haetaan sscc jos tyyppi if ($tuote['tyyppi'] == 'S') { // etsitään suuntalavan sscc $suuntalava_query = "SELECT group_concat(sscc) as sscc\n FROM tilausrivi\n JOIN suuntalavat on (suuntalavat.yhtio=tilausrivi.yhtio AND suuntalavat.tunnus=tilausrivi.suuntalava)\n WHERE tuoteno='{$tuote['tuoteno']}'\n AND tilausrivi.tyyppi='O'\n AND tilausrivi.suuntalava!=''\n AND tilausrivi.yhtio='{$kukarow['yhtio']}'\n AND concat_ws('-', hyllyalue, hyllynro,\n hyllyvali, hyllytaso) = '{$tuote['tuotepaikka']}'"; $suuntalava_sscc = pupe_query($suuntalava_query); $suuntalava_sscc = mysql_fetch_assoc($suuntalava_sscc); $sscc = $suuntalava_sscc['sscc']; } $query = "SELECT tunnus\n FROM tuotteen_toimittajat\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$tuote['tuoteno']}'\n ORDER BY if(jarjestys = 0, 9999, jarjestys), tunnus\n LIMIT 1"; $paatoimittaja_result = pupe_query($query); $paatoimittaja_tunnus = mysql_fetch_assoc($paatoimittaja_result); $pakkaukset = tuotteen_toimittajat_pakkauskoot($paatoimittaja_tunnus['tunnus']); $apulaskuri_url = ''; // Jos pakkauksia ei löytynyt, ei näytetä apulaskuria
echo "<br>Tuote {$tuoteno} saldo muutettu {$kpl} paikalla {$hyllyalue}-{$hyllynro}-{$hyllyvali}-{$hyllytaso}"; } } // haetaan tuotteet list($saldot, $lisavarusteet, $paikat) = hae_tuotteet(); // korjataan saldo_varatut // nollataan eka kaikkien tuotteiden saldo_varattu $query = "UPDATE tuotepaikat SET\n saldo_varattu = '0',\n saldoaika = now(),\n muuttaja = '{$kukarow['kuka']}',\n muutospvm = now()\n WHERE yhtio = '{$kukarow['yhtio']}'"; $paikres = pupe_query($query); foreach ($lisavarusteet as $tuote => $kpl) { list($tuoteno, $hyllyalue, $hyllynro, $hyllyvali, $hyllytaso) = explode("#!#", $tuote); $query = "SELECT saldo, saldo_varattu\n FROM tuotepaikat\n WHERE tuoteno = '{$tuoteno}'\n and yhtio = '{$kukarow['yhtio']}'\n and hyllyalue = '{$hyllyalue}'\n and hyllynro = '{$hyllynro}'\n and hyllyvali = '{$hyllyvali}'\n and hyllytaso = '{$hyllytaso}'"; $alkuresult = pupe_query($query); $alkurow = mysql_fetch_array($alkuresult); // katotaan onko paikka OK $tunnus = kuuluukovarastoon($hyllyalue, $hyllynro); // pitäisi olla kaikki OK if ($tunnus == 0) { echo "<h1>tänne ei pitäs tulla {$query}</h1>"; } // jos paikka on OK if ($tunnus != 0) { // tuotteella ei ollut perustettu tätä paikkaa if (mysql_num_rows($alkuresult) == 0) { // katotaaan eka onko joku paikka jo oletus $query = "SELECT *\n FROM tuotepaikat\n WHERE tuoteno = '{$tuoteno}'\n and yhtio = '{$kukarow['yhtio']}'\n and oletus != ''"; $paikres = pupe_query($query); if (mysql_num_rows($paikres) == 0) { $oletus = 'X'; } else { $oletus = '';
$toimita_ennakko = explode(",", $toimita_ennakko); foreach ($toimita_ennakko as $tilausnro) { $query = "SELECT *\n FROM lasku\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$tilausnro}'\n AND tila = 'E'\n AND tilaustyyppi = 'E'"; $jtrest = pupe_query($query); while ($laskurow = mysql_fetch_assoc($jtrest)) { $query = "UPDATE lasku\n SET tila = 'N',\n alatila = '',\n clearing = 'ENNAKKOTILAUS',\n tilaustyyppi = ''\n WHERE yhtio = '{$kukarow['yhtio']}'\n and tunnus = '{$laskurow['tunnus']}'"; $apure = pupe_query($query); $laskurow["tila"] = "N"; $laskurow["alatila"] = ""; $laskurow["clearing"] = "ENNAKKOTILAUS"; $laskurow["tilaustyyppi"] = ""; // Päivitetään rivit $query = "SELECT tunnus, tuoteno, hyllyalue, hyllynro, hyllyvali, hyllytaso\n FROM tilausrivi\n WHERE yhtio = '{$kukarow['yhtio']}'\n and otunnus = '{$laskurow['tunnus']}'\n and tyyppi = 'E'"; $apure = pupe_query($query); while ($rivirow = mysql_fetch_assoc($apure)) { $varastorotunnus = kuuluukovarastoon($rivirow["hyllyalue"], $rivirow["hyllynro"]); if ($laskurow["varasto"] > 0 and $varastorotunnus != $laskurow["varasto"]) { // Katotaan, että rivit myydään halutusta varastosta $query = "SELECT tuotepaikat.hyllyalue,\n tuotepaikat.hyllynro,\n tuotepaikat.hyllytaso,\n tuotepaikat.hyllyvali\n FROM tuotepaikat\n WHERE tuotepaikat.yhtio = '{$kukarow['yhtio']}'\n AND tuotepaikat.tuoteno = '{$rivirow['tuoteno']}'\n and tuotepaikat.varasto = '{$laskurow["varasto"]}'\n ORDER BY saldo desc\n LIMIT 1"; $tuotepaikka_result = pupe_query($query); if (mysql_num_rows($tuotepaikka_result) == 1) { $tuotepaikka_row = mysql_fetch_assoc($tuotepaikka_result); $rivirow["hyllyalue"] = $tuotepaikka_row["hyllyalue"]; $rivirow["hyllynro"] = $tuotepaikka_row["hyllynro"]; $rivirow["hyllyvali"] = $tuotepaikka_row["hyllyvali"]; $rivirow["hyllytaso"] = $tuotepaikka_row["hyllytaso"]; } } elseif ($varastorotunnus == 0) { // Rivillä ei ollut mitään viksua paikkaa $query = "SELECT tuotepaikat.hyllyalue, tuotepaikat.hyllynro, tuotepaikat.hyllytaso, tuotepaikat.hyllyvali\n FROM tuotepaikat\n WHERE tuotepaikat.yhtio = '{$kukarow['yhtio']}'\n AND tuotepaikat.tuoteno = '{$rivirow['tuoteno']}'\n AND tuotepaikat.oletus != ''"; $tuotepaikka_result = pupe_query($query);